I’ve been working with Jamie Mann for a while now, previously releasing the MotoZero – a simple yet pretty motor controller, and the ZeroView – a clever PCB camera module window mount for the Pi Zero.
The ZeroSeg is the latest addition to the family, this time more angled at the display of data rather than robotics or camera projects.
Let me show you around…
The idea for the ZeroSeg started when I was playing with some generic parts I had lying around my office. One of these was a common 7-segment pre-soldered unit, which seems to be made by the millions, and by many different manufacturers in China, yet somehow always has the same circuit:
After finding a decent code library to allow me to use the board, I had the display up and running in no time – but I didn’t like the clunky and generic nature of the module.
I have this thing about messy wires, and as I wasn’t planning on making a housing for the module, I suddenly thought “Why hasn’t anyone made a PiZero version of this?”
The seed was planted…
I quickly ordered some small common cathode displays and started pulling apart the module. I wanted to find out exactly what this ‘generic’ wiring looked like, including the SMD MAX7219 chip, so that I could re-create the circuit to work with the code library I had found.
After a couple of hours tracking down the PCB’s traces with my multimeter, and mapping out the 24 pins of the chip, I finally had a circuit diagram to test out.
Trial & Error
The next part wasn’t so smooth! My first couple of attempts at breadboarding the circuit had mixed results. Segments would light up but in the wrong order. Data would show backwards or with missing segments…and I ran out of coffee. Crumbs!
I found that my through-hole MAX7219 had to be the ‘CNG’ variety rather than ‘ENG’ (I struggled to see much difference on the datasheets), and also found some of my circuit tracking was wrong due to the SMD and through-hole chip datasheets having differences I hadn’t noticed first time round.
With those issues removed, my prototype was working!
The next task was to produce some prototype PCBs. I had designed the board using RS DesignSpark PCB (commercially free PCB software) and fired off the gerbers to Ragworm (a quick and easy PCB prototyping service here in the UK).
Why do we get prototypes? Because we’re humans, and humans have this wonderful tendency to make mistakes…
I made an error with the initial prototype – one of the MAX7219 pins was traced incorrectly – meaning the code library I intended to use sent characters to the display in the wrong order – oops.
I quickly corrected the bad trace, made some other visual tweaks, and ordered another prototype. This one worked perfectly, so we were all set to order parts for retail – and here we are today!
The ZeroSeg comes in kit form, meaning you have to solder it yourself.
Now I know some of you are a little unsure about soldering, but I’ve always preferred kits over pre-assembled boards. Taking a bag of parts and making a ‘thing’ yourself can be so much more rewarding than just ‘buy thing > plug thing in’.
Here’s a shot of all the parts – displays, chips, sockets, resistors, capacitors, switches and more:
I wrote a user guide for the board that’s about 30 pages long. A large chunk of those pages are devoted to making the assembly nice and easy, through detailed instructions and lots of helpful pictures. It also shares some of the example code…