View All Posts
Want to keep up to date with the latest posts and videos? Subscribe to the newsletter
HELP SUPPORT MY WORK: If you're feeling flush then please stop by Patreon Or you can make a one off donation via ko-fi

Learn how a modular PCB design created a four-digit seven-segment display using TPIC6595 power shift registers and SMD components, capable of sinking large currents.

Related Content

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

HELP SUPPORT MY WORK: If you're feeling flush then please stop by Patreon Or you can make a one off donation via ko-fi
Want to keep up to date with the latest posts and videos? Subscribe to the newsletter
Blog Logo

Chris Greening


> Image


A collection of slightly mad projects, instructive/educational videos, and generally interesting stuff. Building projects around the Arduino and ESP32 platforms - we'll be exploring AI, Computer Vision, Audio, 3D Printing - it may get a bit eclectic...

View All Posts