SMP is a full cycle video surveillance and security company. It produces different kinds of video registrators and security solutions, develops software for them. It’s like a Russian Samsung, only a little bit smaller.


CMOS sensors

My first task at SMP was to make innovative smart CMOS sensors work with hardware we had. Here is example hardware:

tral 5 video registrator embedded linux

, a small device, runs on embedded linux. It uses iMX27 microprocessor:

imx27 interface block diagramimx27 emma featuresimx27 csi timing diagram

Raw binary data from sensor must be processed with hardware. I had to read the datasheet for microprocessor, and write embedded linux drivers to operate it.

Making whole system work is a complicated task to accomplish, many things can go wrong: bad power supply, swapped sensor wires, buggy hardware and much more.


CMOS sensor is a smart programmable device itself.

cmos sensor pinscmos sensor pixelscmos sensor areacmos sensor pixel timings

Each of them had hundreds of registers, each bit or group of bits would mean something. Debugging it used to be a nightmare. I’m particularly proud of RegisterClient software I have designed and developed, it improved sensors debugging and tuning process manyfold. It allowed me to achieve results that was not possible before!


RegisterClient runs on a desktop PC, can connect to a sensor wired to embedded linux host. GUI does all bit arithmetic automatically: bin, oct, dec, hex. GUI shows current values sensor has, lets operator easily change it in real time! Every register and a set of bits has a user-friendly name and description, which is set in XML config profile:

It can also store a snapshot of registers, load a snapshot. It can compare different snapshots! Compare feature proved to be invaluable for solving “weird random” sensor behaviour.

I have successfully produced complete result:

  1. a set of drivers for the hardware
  2. few situational sensor registers snapshots (presets), overall best default sensor preset, which solved real quality issues
  3. realtime efficient sensor tuning tools

Making 032 sensor work was particularly important. It has global shutter, it means data from every pixel is taken really simultaneously, no delay. Two 032 sensors can be coupled into a master-slave pair. Therefore, it can be used for stereo vision.


Stereo Vision

stereo vision

This is a classic stereo vision image pair. You may notice (a) and (b) are not exactly same. It was taken from two different cameras, standing nearby.