We're finally here, it's been a long journey.
But we're finally here, we've gone from this slightly monolithic big PCB to this more modular
version that will allow me to chain multiple digits together without having a massive and expensive PCB.
There are still a few things that I think could be improved, but it's pretty functional for now.
As always the boards came from PCBWay - fantastic service.
I've based the design around the TPIC6595 power shift registers.
These have open-drain outputs that can sink a large amount of current so they are ideal
for this kind of application.
In my original design, apart from some decoupling capacitors and indicator LEDs, I was mostly
using through-hole components.
This new modular version is different.
I've switched over to using SMD components for everything except for the sockets and
screw terminals.
If you've been following along with previous videos you will have already seen the slightly
silly mistake I made.
When I was ordering the parts I made a slight snafu and ended up with a bunch of TPIC6A595 ICs.
You wouldn't think a single letter would make such a big difference, but the pinouts are
completely different and these ICs didn't fit on the new PCBs.
It turned out that it was actually pretty difficult to actually find any TPIC6595 in
SMD format.
So I bit the bullet and redesigned my PCBs to fit this new part.
I've linked to a video in the description where I run through this mistake and how I
fixed it, it's definitely worth a watch - learn from my mistakes so you don't repeat them.
Switching to the A variant of the component has had a benefit.
I can now sink a lot more current.
This means the LED filaments are much brighter.
These power shift registers are pretty impressive and I can see a lot of fun applications for
them.
To support the high current, I swapped the resistors I was using from 15 ohms to 10 ohms.
With a 5v supply and about 3v dropping across the LED filament we'll get a current of around
200mA per filament.
The resistors I'm using are rated at 0.5W - 2v at 200mA comes in at 0.4W so should be
just about ok.
I think for the next revision of the board I'll move up to the next resistor size to
give ourselves a bit of leeway and maybe even go a bit brighter.
There is an impact from this change.
Now with all the filaments lit we will be drawing about 1.4 amps for each digit.
If we include the optional decimal place then we go up to 1.6 amps.
Chaining together 4 digits to make a clock will mean a total of 6.4 amps - we're starting
to get a bit toasty.
I'm thinking eventually of having 10 digits with decimal points - this will require a
peak of 16 amps if everything is lit up at the same time.
That's definitely more than a DuPont connector can handle - they max out at around 2.5A.
This is why in my design I opted for screw terminals for the 5v power supply connections
on each module.
The screw terminals I'm using are only rated for 10 amps but it will be quite easy to inject
power at both ends of the display so in theory, we'll only have half the maximum current going
through each terminal.
We can also inject power in the middle of the chain of displays so we've got a lot of
flexibility in this area.
On the PCBs themselves, I've put very thick traces from the power input terminal to the
power output terminal.
I've put these thick traces on both sides of the board so in total we have a thickness
of 10mm.
Using this handy trace width calculator we can see that for our 50mm length track with
16 amps 10mm should be ok as our two tracks are both on external layers.
To chain the logic signals from board to board I'm using standard 2.54 pitch PCB headers.
I was going to do a lot of crimping and make these connections up with individual wires.
But that is a lot of work and would get really untidy very quickly.
However, when I was laying out the PCBs, I was very careful to make sure that the signals
all lined up and none of the connections would need to be crossed over.
This means that I can use an IDC ribbon cable to connect the signals together.
You can buy these in quite wide strips that can be split down to the required size quite
easily.
The wires of these cables can all be connected at the same time using these connectors that
pierce the insulation.
I don't really have the correct tool for doing this, but I found that a pair of pliers seemed
to do a good enough job.
I did test a few to make sure of this as I was worried that I could easily mess it up.
The other main change from the original large PCB is that I've completely removed the level
shifters from 3v3 to 5v and I'm running the shift registers at 3v3 volts.
When I did the original board I followed the datasheet which said that the chips required
at least 4.5v and needed a high logic level of 0.85 that value.
This would have been 3.8 volts - which would not have worked directly from our 3.3v logic.
However, I came across this technical note that said the ICs will operate down to 3v
- this means that we can power it from the 3.3v supply and it will work without needing
any level shifting.
I was slightly worried that this wouldn't work, but I realised that in a worst-case
scenario I could just have a level shifter at the start of the chain and everything would
still work nicely.
Fortunately, my experiments showed that it would just work, which is great - we don't
need any extra components to drive the boards.
Assembly is pretty straightforward, I'm still working on my vacuum stencil holder - it's
not working as well as I'd like it to, so I need to do some refinement to it.
But it's easy enough with a stencil mask to apply the solder paste.
Looking under the microscope it's not too bad, definitely still needs some improvement.
I'm also still using the MHP30 mini hotplate - this is working really well, but it is a
bit small which does mean we need to do a bit of manoeuvring to get everything melted.
But the results are really great and after a bit of cleaning with a soft brush and alcohol
we have some nice solder joints and I don't see any bridging or bad connections.
With all the boards SMD assembled we just need to solder on the headers and screw terminals.
And there we have it, a fully assembled 4 digit seven-segment display.
I've got more digit PCBs on order from PCBWay as I really want to push the boundaries of
how many segments I can drive - Does anyone fancy a 10-digit jumbo-sized calculator?
If you want to learn a bit more about how the software works then you should watch this
video about NTP servers and time.
It's pretty interesting.