Daft Punk Table Replica Driver Board





Introduction: Daft Punk Table Replica Driver Board

This instructable presents an output expander card for something like the Daft Punk Table Replica. This is a work in progress and collaborations on this instructable are welcome.

The 'graphics card' is just an output expander. Just three microcontroller pins are needed to control an almost unlimited number of high voltage/high current outputs. An extra array of transistors allow the output expander to switch higher currents than plain microcontroller pins. Each output extender card has 16 outputs and multiple cards can be chained together. Two cards are required to drive a daft punk table replica with 25 squares. Note that muxing is not used, this is simply a 1:1 output expander.

****NOTE: the blog below is gone. The files are still available here. Important files have been attached to this instructable as well, without permission of the author.....****

The original daft punk table replica instructable didn't include a microcontroller program or a circuit for the output expander board. From the description (and looking at this blog.) we can tell that it uses a few I2C IO port expanders connected to a transistor array. Take a look at the PCB here.

The ULN2803A is used in all the designs I have seen. It is an array of transistors that switch higher current/voltage than plain microcontroller pins. This is a a perfect chip for this project, but note that the output is reversed. The ULN chip sinks current to ground, so we connect it to the ground side of whatever we want to switch.

I have the PCF8574 port expander in my parts box, but I wanted something cheaper, easier, and expandable. I ditched the I2C IO expanders. Why? The i2c bus needs 2 pullup resistors(a pain). I2C peripherals are a bit pricey: $1+ for the PCF8574 i2c port expander. You need to deal with I2C in hardware or software. The PCF8574 chips have a limited number of address selections (determined by the state of 3 pins):if all addresses are used a second I2C bus is needed.

I designed a new output expander with a handy chip I learned about in lady ada's bike POV instructable, the 74HC(T)595.

The 595 is a serial to parallel port expander with 8 output bits. The interface is a simple 3 line affair (SPI) with serial data/clock lines and a latch that puts the data on the pins. Now the cool part: several can be connected end-to-end so that you can create a chain with hundreds of extra outputs. Bits can be clocked in at up to 20Mhz, so large or multiplexed grids are possible.

Read a great detailed 74hc595 tutorial here.

Why its good:
1. Its fast, up to 20 Mhz
2. Simple SPI interface - clock in the bits then set the latch. With 595: <4 bytes per refresh. With (i2c) PCF8574: 8 bytes per refresh (+ i2c overhead). Easy 3 wire interface can be operated with microcontroller, PC parallel port, or even buttons - requires no extra passive components.
3. Its cheap: 0.33 per chip.
4. Massive expansion potential, multiple chips can be chained for a disgusting number of outputs.

The circuit is pretty basic. It only includes those things needed for the graphics card : I/O expanders, transistor array, connection headers. Check the PCB image for photo notes with a pin description for the board (the blue image below).

Power supply and control unit are separate components that will be added in future steps.

The capacitors on the latch line are optional. The datasheet [pdf!] for the 595 suggests adding a 0.1uf capacitor if the output flickers. I didn't need them, but if you experience flicker when changing the latch pin try adding one or two 0.1uf capacitors here.

Schematic and PCB, in Cadsoft Eagle format, are included in the zip archive.

The 74hc595 serial to parallel (SPI-compatible) output expander used in this project.
PCF8574 i2c IO expander used in the original daft punk table replica.
The ULN2803A, an array of transistors that allows us to switch bigger loads than the 595 alone.

Step 1: Controller With USB Interface and SD Card Script Storage.

A separate (PIC 18F2550 based...) board controls the graphics card.

Image input is accepted from a USB port (as a virtual serial port on your PC or MAC), or from scripts stored on an SD card (scripts generated using the software on this blog).

The driver board isn't done yet. It will go here after some testing. I can post my current draft cct/pcb if anyone would like to follow along.



    • Epilog Challenge 9

      Epilog Challenge 9
    • Pocket-Sized Contest

      Pocket-Sized Contest
    • Science of Cooking

      Science of Cooking

    We have a be nice policy.
    Please be positive and constructive.




    can you please post a part list for the whole table?(only the electrical parts) using 2 leds per square perhaps theese leds

    Hi , I'm making my own table, but I'm starting the part of the electronics, but i have no experience on this, and i don't understand anything of the things that you are saying here, can anyone pleasee help me telling me what should i buy, and what goes with what, and how i program everything, i can't wait to finish, and i really need alot of help here, need list of parts, pics of hows it should be done, and the software needed to program everything, thx !

    I know this is probably old and not kept updated but i was looking at the LED-Wiz. Would cost a little more but gives lots of different options. Only thing is you would still need to wire the graphic card but he did say that usb was possible.

    Nice! This could be used for a REALLY cool timed fireworks display!!

    Thank you for your outstanding work. Currently I try to build up the graphic and expander board by myself. Therefore I would like to ask you to post a list of the component parts?

    Please post more of your work (other schematics & pcb) I am doing a similar project and would like to "collaborate" with this little bit. My project differs in that I have multiple colours per square. Going to involve 12 shift registers to control essentially a 5x5x3 matrix (3 colours per square). I'm considering using a ATmega to build a usb controller right in, however, still waiting on parts.


    finished firmware tonight. It reads the plain text version of the script files from an sd card. It reads all *.dpt files from the root directory and plays them. I would like to extend the script format a bit to include additional instructions. If the first number for the column is bigger than 5 bits (say 255/0xff) then the next few bytes could be data bytes. I want to add a repeat instruction (per file, at beginning of script) and a speed instruction (change at any time). USB is possible, but I have not added it.


    coolness, can't wait to see how this turns out :)