It's Redesign Time
It's been a little while, I finally got the board design done for the second revision of this project. I'm very happy with how it turned out. this time around the project uses a much more simple layout and has some key advantages over the previous version (assembly won't take a few hours for one thing). I've also rethought the overall functionality and made some decisions. In the first revision of this board the design used a lithium ion battery that sat under the board and had to be recharged. This time around the board will be powered by an external 5V power supply using a slip-ring to deliver power onto the board, this way we only need 1 power supply for the motor and the board instead of complicating matters with any extra components. This version also has a micro sd card on board to store the animations that will be created on the project. Also due to the smaller component count this board was simple enough to route as a 2-layer board saving significant cost on the project. Here's an image of the new board:
Compare these images with the layout from the previous board (which was 4 layers)
which is not only bigger but requires a ton more components for no real good reason. Either way I'm looking forward to the future of this project since it no longer costs an arm and a leg to produce. I'm planning on completing a few boards before my break is over so that I can order everything at the same time and save a bit of money.
It's been a few months since I've touched this project. Primarilly that's due to the difficulty of the previous board design (the board had way too many parts and just didn't suit the goal very well overall). After some thinking and a lot of digikey browsing I think I've come up with a decent way to handle the project.
The primary difficulty of this project is the requirement for a large amount of IO (I'm still sticking with the ATMega2560 for this) and the overall current requirement. The Atmega2560 has a maximum output current of 50mA which is a significant problem since each row of the matrix has 16 LEDs drawing (ballpark) 10mA each. To handle the LED driving I've decided to use the 74ABT245B on the highside (controlling the RGB anodes) and some simple n-channel mosfets on the low side. The overall goal being to reduce the total number of components.
Here's the current schematic, the design is greatly simplified since each IO port on the Atmega has its own 74ABT245B buffer, which then connects to the header to drive the LED's directly. The low side switch block consists entirely of cheap n-channel mosfets to get used in the multiplexing. Finally this design also has a micro-sd card available, this should allow for much more complex animations since everything doesn't need to be stored directly on the flash memory of the micro-controller.
I'm on break at the moment, with the semester over I hope to push ahead on a few projects while I still have the time. See you in the next log.
I actually completed this board awhile ago. I just forgot to update the project log because my life got somewhat busy around the time I finished this. This board is one of the most complex I ever attempted and the layout took quite a bit of time. I'm not exactly happy with the final product but I have no doubt that it will get the job done. Here's the eye-candy version of the board design
And here's the actually useful images of the board. I went with a 4 layer design due to the shear complexity of the board, tried to keep everything as tight as possible but I could only do so much since the headers needed to be in the configuration shown up above. In this redesign the matrix itself sits in the gap between the two header rows.
Here's the top layer. The upper right corner handles all the power such as working with the lithium ion battery and boosting everything to 5V. On the fir right under that I've added some mod-headers which connect to 4 of the pins of the ATmega just in case there's something I want to add. I plan to use 1 of those headers to sense where the matrix is in its rotation.
The bottom of the board is really nothing special. I tried to keep it so that the top would go left and right and the bottom would go up and down. That almost worked out for me in this case. But with the pin pitch of the microcontroller I couldn't really place vias directly on the pins. I should have modified the via size to condense the board but I didn't think of it at the time so I'll have to keep that in mind for next time.
The next stage of this project is the mechanical design, which I'm dreading. Unfortunately at this point the project is on temporary hold, I just don't have the money at the moment to see it through. The bright side is that I can design almost all of this project directly in various CAD tools so I'll only have to assemble at the end.
Either way, see you in the next log!
the previous matrix display had an effective resolution of 10x10 LEDs, this time around I want to increase that number. Ideally this project would not use the shift registers that plagued the performance of the previous iteration.
For this version I've chosen the ATMEGA2560 to control the LED's, this way the IO can control the LED's directly, however that came with some constraints and some easy improvements. The MK.II persistence of vision matrix display will utilize an 16x16 LED matrix to create its images. the ATMEGA2560 is perfect for this application (although pricey), since 6 output ports can be dedicated to the high side (RGB) of the matrix and 2 output ports can be dedicated to the low side of the matrix. The overall result of this is that the final matrix will operate much more quickly. With all that said lets go through the finished schematics for the project.
kiCad doesn't allow for flat schematics, which is somewhat of a pain, so we'll have to take a look at the this schematic as a kind of block diagram. The port assignments are as follows
PL/PE = RED
PJ/PH = GREEN
PA/PC = BLUE
PE/PF = GND
the ATmega2560 cannot drive the LED's directly, therefore this project will utilize "a few" transistors to drive the matrix display, the two larger blocks to the right are those transistor arrays.
On the left towards the top we have the battery management and power system:
and along with that all the circuitry for powering the matrix directly
This is a rather big circuit, I've already begun the PCB layout which'll be the subject of the next log!