A by-project of the laser scanner, presented "as-is".

The PC-application of GrabschKam (aka.: GrabschKamView) can display contents of variables and video/images. This little set consists of two parts (3 if you count GraschKam itself, 4 including the hardware):

  • GrabschKamView
    • PC based C# application for (debugging) visualization

  • GrabschKamDebugger
    • Little Propeller software that sends buffer and variables' contents

  • GrabschKam
    • Propeller capture software (drives the hardware)

Notice that the GrabschKam hardware does not necessarily require a Propeller!
It can be attached to almost every (fast) processor. I already have firmware available for

  • STM32
  • PIC32.

Although the hardware is not that simple (*1*), it is based upon "easy" to obtain parts and can be modified to capture other stuff than just video...

(*1*) In return you'll get:

  • full 8 bit resolution
    • video black shoulder clamp
    • brightness control
  • hardware access to Vsync, Hsync, Odd/Even
  • green power LED =)


q&d schematic...
the dirty layout...

At a glance, the circuit might look "overengineered", but the requirements of the laser scanner led to this... Feel free to modify ;)

The processor was intentionally left out of the design. Although the fixed pinout of the 20 pin header might require some wire wraps, a separate PCB offers more freedom regarding the choice of the processor. Currently, I am using this one with a Propeller, a STM32 and a PIC32.

To be documented (11/2010)...


Source code is available for all parts of the software (see download section).
If documentation is at all available, it's in the source code...

GrabschKamView (PC, C#)

The C# app is terrible slow!
On a 2.4GHz Quad Core, it takes about 1-2s to receive and draw a complete 240x188 frame.
But fortunately, this is only a debugging tool ;-) The hardware itself will capture a single frame in realtime (20ms, 50Hz PAL assumed).

GrabschKamView should almost be self-explaining...

If your Propeller buffer, handled by PropCamViewDebugger, looks like this:

  long  a
  long  b
  byte  aa
  byte  bb
  byte  kekse[4]
  byte  video[20000]


Just enter this...

... set port, baudrate and hit "OPEN".
Setting can be saved or loaded with, guess what, the "SAVE" and "LOAD" buttons...

Keep this in mind:

  • requires NET framework

  • Propeller re-arranges VAR section order from longs to bytes!
    long, byte, long, byte, will not work (as expected)!

  • "SIGNED" button, "CHAR" and "FLOAT" are not yet implemented

  • "PIXEL BITS" is not yet implemented (defaults to 8bit black and white per pixel)

  • The length of the video buffer should be "a little" larger (at least +1)
    than the resolution X*Y

GrabschKamViewDebugger (Propeller, PASM)

Firing up GrabschKamViewDebugger only requires two lines of (Propeller) code:


PUB whatever
  pac.start(txpin, txmode, baud, @buffer, length)	

Just look at GrabschKam's and the Debugger source code...

GrabschKam (Propeller, PASM)

By default, a debug pin is available at P15. It can be used to determine at what time the start of a horizontal line begins (high) and ends (low). Tuning it to the visible part of a line removes the black border and saves some memory...

The short pulse, following during the next line, marks the time all (single line) data has been copied to the HUB RAM.

If you don't have a scope, use eyes (in conjunction with the little C# app) or brains (may require pocket calculator and beer).

  • configured for 6.4MHz quartz at 16x PLL (102.4MHz!)
  • 50Hz PAL camera, interlaced
  • only every 2nd line is captured (Prop does not offer that much memory...)
  • ...

Useless Pics

one of the 1000+ advantages of a biiiig monitor ;)

GrabschKam test PCB
With MPU and MiniFTDI



DOWNLOAD: Hardware V10
DOWNLOAD: Propeller firmware; V0.3
DOWNLOAD: PC application and C# source code

ASkr 10/2009 initial version
ASkr 03/2010 V00
ASkr 11/2010 uploaded docs for V10-HW, V02-FW, V06-SW
ASkr 03/2011 updated firmware for MPU usage; V0.3