LED Matrix Reboot!

After a long hiatus, it’s time to revisit the LED matix project.

  • Pattern generation on board.  Most of Ishani’s fun procedural patterns are fast enough to run on the AVR (at least for 8x8).
  • Live editing of animation and pattern parameters from the PC.
  • Accelerometer and microphone input to influence pattern parameters.  VU meter, anyone?
  • Accelerometer based tap interface.  Change animations/patterns on the fly without pesky computers.
  • Short-range IR communication between unit edges.  Share your animations between units.  Arbitrary extended display geometry?  Think Tiletoy, but prettier.
  • Keep the display board as-is for now since it works and is a hassle to change.  In the future it might be worth considering either 1) dropping some of the currently unused signals to simplify the connector or 2) working out a 4-layer board with both display and MCU on a single card.

Mmmm… Ambitiousness.

Comments (View)
Huzzah!  The new column driver can source enough current to keep two displays (for a total of eight characters) very bright and daylight visible.
It seems the logic on the displays is drawing a lot of current (almost 40mA per chip).  I had intended to get the required 5v for the display logic from a small charge pump attached to the AVR.  It looks like I’m going to need a real boost converter here.

Huzzah!  The new column driver can source enough current to keep two displays (for a total of eight characters) very bright and daylight visible.

It seems the logic on the displays is drawing a lot of current (almost 40mA per chip).  I had intended to get the required 5v for the display logic from a small charge pump attached to the AVR.  It looks like I’m going to need a real boost converter here.

Comments (View)
A better way to drive the columns.  With the MIC5891, our column drive is serially addressable and compact.  The outputs can source 500mA apiece, enough for four characters.
Writing to the display is straightforward:
Init the display by clocking 8 zeros into the column driver (COL_CLK, COL_DIN) and enabling (COL_OE).  Everything should now be off.
Clock 28 bits of row data into the (7 bits x 4 characters) display (ROW_CLK, ROW_DIN).
Disable the display and clock 1 « [column index] into into the column driver LSB first (I’ve inverted the connections, so bit 7 actually drives column 1 on the display).  Re-enable.  Your column should light.
Wait.
Repeat from step 2 with the next column index and data.

A better way to drive the columns.  With the MIC5891, our column drive is serially addressable and compact.  The outputs can source 500mA apiece, enough for four characters.

Writing to the display is straightforward:

  1. Init the display by clocking 8 zeros into the column driver (COL_CLK, COL_DIN) and enabling (COL_OE).  Everything should now be off.
  2. Clock 28 bits of row data into the (7 bits x 4 characters) display (ROW_CLK, ROW_DIN).
  3. Disable the display and clock 1 « [column index] into into the column driver LSB first (I’ve inverted the connections, so bit 7 actually drives column 1 on the display).  Re-enable.  Your column should light.
  4. Wait.
  5. Repeat from step 2 with the next column index and data.
Comments (View)
One way to drive the columns.  The transistors (or P-channel mosfets) need to be able to source 110mA per character.

One way to drive the columns.  The transistors (or P-channel mosfets) need to be able to source 110mA per character.

Comments (View)
w00t indeed.
Used five small PNP transistors to drive the columns while waiting for the correct part to arrive.  They are only rated to about 200mA (240mA shy of the requirement for four characters) so brightness is not great, but the device does work.
Interfacing is pretty straightforward.  We clock the data for one column of each of the four characters into the shift register, then light the column.  After a pause we advance to the next column.  Wash, rinse, repeat.
The bitmap data for each character comes from a lookup table in program memory.  Rather than creating the table myself (I’ve done it before and it’s a real waste of time) I borrowed this one.
Unfortunately for the watch application, the shift register logic doesn’t function below about 4.5v, which means driving directly from a single 3v lithium or 3.6v LiPo cell won’t be possible without a boost converter.  Avago make a (relatively expensive) 3.3v smart display in a similar form factor that might be worth investigating.

w00t indeed.

Used five small PNP transistors to drive the columns while waiting for the correct part to arrive.  They are only rated to about 200mA (240mA shy of the requirement for four characters) so brightness is not great, but the device does work.

Interfacing is pretty straightforward.  We clock the data for one column of each of the four characters into the shift register, then light the column.  After a pause we advance to the next column.  Wash, rinse, repeat.

The bitmap data for each character comes from a lookup table in program memory.  Rather than creating the table myself (I’ve done it before and it’s a real waste of time) I borrowed this one.

Unfortunately for the watch application, the shift register logic doesn’t function below about 4.5v, which means driving directly from a single 3v lithium or 3.6v LiPo cell won’t be possible without a boost converter.  Avago make a (relatively expensive) 3.3v smart display in a similar form factor that might be worth investigating.

Comments (View)
I picked up a dozen small dot matrix displays from a surplus place about ten years ago.  At the time, they were very cheap (maybe 10/$5?).  Now I wish I’d grabbed more.
I’d really like to make a wristwatch out of these.  Let’s not get ahead of ourselves.  The logic and power requirements of these things aren’t trivial.
They appear to be HDSP-2000 series displays made by HP/Avago.  They are “dumb” displays in that they don’t incorporate any kind of character encoding.  They are just the matrices and a shift register.
This application note shows how to hook them up.  It looks like an external constant current source capable of 110mA per channel per character is required to drive the columns.  The application note suggests UCN5890A but is a bit hard to find.  MIC5891 is roughly equivalent, easy to find, and will source 500mA per channel.

I picked up a dozen small dot matrix displays from a surplus place about ten years ago.  At the time, they were very cheap (maybe 10/$5?).  Now I wish I’d grabbed more.

I’d really like to make a wristwatch out of these.  Let’s not get ahead of ourselves.  The logic and power requirements of these things aren’t trivial.

They appear to be HDSP-2000 series displays made by HP/Avago.  They are “dumb” displays in that they don’t incorporate any kind of character encoding.  They are just the matrices and a shift register.

This application note shows how to hook them up.  It looks like an external constant current source capable of 110mA per channel per character is required to drive the columns.  The application note suggests UCN5890A but is a bit hard to find.  MIC5891 is roughly equivalent, easy to find, and will source 500mA per channel.

Comments (View)
With camera tether attached.

With camera tether attached.

Comments (View)
Assembled and working controller.  I’ve mismatched the Molex connector for the camera lead, but am eventually planning on soldering directly to the board to keep the thickness down.

Assembled and working controller.  I’ve mismatched the Molex connector for the camera lead, but am eventually planning on soldering directly to the board to keep the thickness down.

Comments (View)
Finished panel returned from PCBpanel today.  Looking good, but a bit expensive at a little over £10 per individual board.

Finished panel returned from PCBpanel today.  Looking good, but a bit expensive at a little over £10 per individual board.

Comments (View)
The final board.  After a failed attempt to photo etch it at home I triple-checked the board, crossed my fingers and sent it off to PCBpanel to be fab’d.  It’s a bit expensive, but I couldn’t find anyone to do 1/32” material any cheaper.

The final board.  After a failed attempt to photo etch it at home I triple-checked the board, crossed my fingers and sent it off to PCBpanel to be fab’d.  It’s a bit expensive, but I couldn’t find anyone to do 1/32” material any cheaper.

Comments (View)
hit counter
Provided by website-hit-counters.com .