PCB design showcase2010/02/26
A few minutes ago I sent an email to the dorkbotpdx mailing list offering to review and tweak people’s PCB to improve them as far as both aesthetics and immunity to assembly and interference problems. The first example board ended up being Scott Dixon’s IR temp-controller board, which he’s posted on the dorkbot blog along with his original artwork. The eventual goal is to develop a workshop with handout materials and live demonstration of what it takes to make a shiny-clean board.
However, I thought I’d also start posting some of my existing board artwork as examples. Between these and the process of reviewing others’ boards, I hope I can help advance the “state of the Art” in the DIY electronics world.
The first board I’ll post here is one that I am actually starting to bootstrap and write firmware for right now, between working on my contract and spec “job” projects.
This is a 4×2.5″ board with 4 microcontrollers and a whole lot of header pins. The ATXmega16A4 on the left is the master interface to the world, with the top-left 2×5 header providing VCC/GND as well as I2C, SPI, and serial interface options. The 2×2 header is a debug serial port for development. Bottom left 2×5 are for main V+ and ground to drive the LEDs. A +3.3V regulator provides logic power for all 4 chips. The 3 big uC’s are ATXmega128A1’s with 64 I/O’s each wired directly to the bulk headers. Each column of 4 pins provides V+ and R,G,B cathode drivers for a single RGB LED. The 3 main uC’s are connected to the driver uC via I2C for internal communications, and all 4 chips have their PDI programming interfaces routed to the 2×4 header on the right.
Identical software on each x128A1 will use Bit-Angle-Modulation to drive all 64 pins in 8 phased groups, controlled by the x16A4, which will interpret data from a variety of interfaces and formats up to the limits of flash size. An x64A4 could be fit in the same place if the software gets too bulky.
The intent is to wire 5mm, 10mm, or Piranha-style common-anode LEDs to directly to 1×4 headers and plug them straight into the board. Depending on the V+ fed to the board, one or more of the elements will need resistors. A +3.6V supply would only require a single 60-ohm resistor on the red LED. Higher voltages can be used because the software will be switching the I/O drive rather than the level, and since they are being pulled to ground rather than up to a given voltage, I anticipate no problems with I/O’s going south.
I have 3 of these PCBs on hand, and one of them is currently populated and being bootstrapped. I hope to be able to sell these as kits at some point, as this radically simplifies the task of building a large-scale display. This design was posted on Hackaday today, and demonstrates the insane expense and lengths to which one has to go currently to drive a decent number of LEDs…