Panda Display USB support in klh10 working

David Griffith dave at
Sun Jan 3 01:43:34 CST 2016

I've managed to edit klh10 to talk to my new USB Panda Display, but I'm 
quite sure it's not displaying things correctly.  What can I run to get it 
to display a recognizable pattern?  I'm thinking of whatever is causing 
the parallel display at to do 
what it's doing.

To make a quick and dirty USB Panda Display, wire up an atmega328
according to the schematics at

To start playing with this, first clone  You don't need Kicad at
this point.  Just open up panda-sch.pdf and wire up an atmega328 (maybe at
atmega8 will do) with a 20MHz crystal.  Other crystals can be used if you
alter the Makefile accordingly.  Use a max7219 matrix LED module.  It's a
board with an 8x8 matrix of LEDs and a max7219.  You'll also need a AVR
ISP breakout board and a USB-B breakout board.

A Unix environment is assumed here.  Set your AVR programmer (edit
makefile to match yours) such that it _DOES_NOT_ supply power to the
circuit.  Connect the programmer to the board and to your computer.  Then
connect a USB cable from your computer to the circuit.  Go into the
firmware directory, type "make hex" to build the firmware.  Then "make
program" to program the AVR.  The circuit should reset itself and then
display an X.  Now type "make ptest" to build a test program with which
you can send bytes to the Panda Display and see them immediately.  Use it
like this "./ptest 0x23, 0xff, 0x9a" and so on.

Once you're happy with that, move on to klh10.  Get my patched version at and build it like usual.  I used
the base-kl target and the klt20.ini config file from Mark Crispin's Panda
distribution.  Start the emulator and before you type "GO", type "lights
on".  You should be told that the Panda Display was initialized.  Type
"GO" and get things going.  The LED matrix will then start blinking.  I
don't know how it's supposed to look at this point.  The RUN light appears
to be at the bottom left of the matrix given that it blinks at 1 Hz.

Here's a udev rule that will work for the Panda Display:
SUBSYSTEM=="usb", ATTRS{idProduct}=="05df", ATTRS{idVendor}=="16c0",
MODE="0770", ATTRS{product}=="Panda Display", GROUP="plugdev"

Please play around with this and let me know what you think.  Again,
please tell me how I can get a predictable pattern going so I can get the
LEDs lit correctly.

David Griffith
dave at

A: Because it fouls the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?

More information about the cctech mailing list