I'm in love with the daft punk table: https://www.instructables.com/id/How-to-build-a-Daft-Punk-Table-Replica/?ALLSTEPSI'm actually making a wall hanging rather than a table because theres no room in my studio for another table.The author of that instructable didn't include the microcontroller program or a circuit for the driver board. From the description (and looking at another site) we can tell that it uses a a couple I2C port expanders connected to a transistor array. I have both the PFC port expander and the ULN2803A in my parts box, but I think it can be made cheaper, faster, and expandable.I want to ditch the I2C bus. Why? 1. Its slow (100 or 400 khz), not that more is needed, but what about bigger boards?2. Its bit intensive: each chip update requires a)start signal, b) address byte, c)port setting byte, d)stop signal. That's more than 8 bytes of bits per table update.3. Its expensive: the i2c bus needs 2 pullup resistors, and you have to route Vcc to them on the PCB. I2C peripherals are a bit pricey ($1+ for the PFC i2c port expander). You need a UC with hardware I2C, or write a I2C software routine, etc. 4. Its not expandable beyond the assigned number of I2C addresses. The PFC chips have a limited number of address selections (determined by the state of 3 pins). If all addresses have been used then a second I2C bus would have to be added.These goals can all be accomplished 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 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.Why its good:1. Its fast, up to 20 Mhz2. Simple interface - clock in only the bits needed then set the latch. 26 bits, <4 bytes per refresh.3. Its cheap: 0.33 per chip, easy 3 wire interface can be operated with microcontroller, PC parallel port, or even buttons.4. Massively 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. Power supply and control unit are separate components. The 595 has a 'blank' pin, it seems to reset all the chips to a known state when pulled low. I wanted to make it available for a 'more complete' design, but I also included a jumper so that it can be manually disabled for use in simpler implementations.The 3d is just for fun: the PCB is mostly unrouted.Any comments or suggestions? Has anyone used the 595 before? I've ordered a few to play with, but have not yet used them.
Topic by ian | last reply