Vertical display

This is the latest iteration of displays that use discrete domed LEDs to form segments developed for #6 segments suffice and implemented in #6 segment 2 digit LED display board and #7 segment 2 digit LED display board as well as other side projects such as #Ancient PMOS technology clock and #Ancient 12 hour display. But the time has come to declare a new project as several design decisions have been made for this series of displays.

  1. Vertical stacking versus horizontal stacking. Horizontal stacking seems natural to make multiples of 2 digits. However while looking in a shop window in Llanes, I saw a consumer LED clock where the digits were stacked vertically. I also realised that the clock on my smartphone lock screen also stacks vertically. Several advantages accrue:
    1. No separator between hours and minutes (and seconds, if present) is needed. The traditional blinking colon can be changed to a less prominent flashing dot.

    2. Portrait format instead of landscape which makes it easier to hang on walls. The MCU board can be attached to the bottom board providing some weight to keep the stack orthogonal.

    3. The display could be used to display say temperature and humidity without confusion from horizontal stacking.

  2. Chained shift registers with static drive for each segment versus segment-digit multiplexed display. The latter requires less components: a set of segment drivers and a set of digit drivers, whereas the former requires more drivers, one for each segment. Also a multiplexed scheme requires more MCU output pins and firmware support whereas a shift register chain only requires 3 lines minimum and 1 more if PWM dimming is implemented. Static drive also allows increasing the height of the stack with no change in lines, only chaining. If I use LED filaments later multiplexing becomes harder as the current per segment is around 30 mA so a fully lit digit would draw 210 mA divided by the per digit duty cycle, requiring more care with board tracks.

  3. Constant current LED drive. The 6 segment font has 4 or 5 LEDs per segment in the same display whereas it's fixed at 3 or 4 for all segments in the 7 segment font. This either requires different limiting resistors for the segments, which introduces a dependency on the supply voltage and the voltage drop of the LEDs which depends on the colour (junction type). This becomes even more important for LED filaments which I hope to use as segments in a future design. For this reason I have chosen to implement constant current drive. In a previous iteration I used the TL431 to generate a bias rail for the drivers. Then it occurred to me that there already is a reference rail, the 3.3 V supply for the MCU. (This is also a good opportunity to transition to 3.3 V MCUs as the 5 V MCUs are getting fewer.) Granted this is bit high and results in wasting about 2.5V across the limiting resistor. But I have elected to use boost converters to provide the LED power which provide flexibility.

  4. Surface mount versus through hole technology. More transistors and resistors in the static drive method push the design towards SMT where the parts are cheaper and more can be packed on the board. It also allows automated assembly for those who want to avoid soldering lots of small parts.

  5. Eliminate flying wires. The connector on the display board is designed to plug into an 8 pin Dupont pin socket on the MCU drive board, no other connections are required.

  6. Use a boost converter to provide the LED power. I used to worry about the voltage provided by wall warts, usually 5V or 12V and this was reflected in the design that resulted. Now a wide range of wall wart voltages is accepted as the LED supply voltage can be adjusted by trimpot, and a small SMD LDO regulator provides a calm 3.3 V rail for the MCU, which does not need much current.

First prototype

I made a prototype with the vertical design and it looked like this. Straight away I realised that the proportion was wrong, the digit pairs were too far apart vertically, as I don't have an artist's eyes looking at the board layout. But I'll post picture of the root schematic sheet and constant current driver sheet to show how the constant current circuit works.

figure>

The outputs of the 74HC595 shift register are 0 V or 3.3 V. At 0 V, the transistor is turned off and no LED current flows. At 3.3 V the transistor is turned on with a tiny drop in the base resistor due to the microamps of current. The emitter is pulled up to about (3.3 - 0.6) V resulting in about 2.7 mA flow through the 1 kΩ resistor. This is practically independent of the collector voltage thus constant current drive. The collector voltage will rise until the LED current is 2.7 mA. This assumes there is sufficient headroom, i.e. LED supply rail - drop across 4 or 5 LEDs > (3.3 + 0.1) V where 0.1 is a typical collector-base saturation voltage. Any headroom is dissipated by the transistor as heat but for the milliamp currents, it's negligible and necessary for constant current drive.

If you're wondering about the strange formatting of the drivers page, in a previous iteration I used resistor packs for the base and emittor resistors. But SMD resistors are small enough and besides the ground pad can be connected to a nearby point on the ground plane.

Second version, sponsored by PCBWay

At this point PCBWay contacted me and asked if I had any interesting projects that could draw attention to their PCB and PCBA services. They offered to sponsor this design. Here are the 3D renditions of the new, shorter board.

What's with the WayWayWay on the back silkscreen? This is a placeholder which PCBWay will replace with the order number that identifies your job. If it's not present, then PCBWay will put it in an inconspicuous place.

I have described in a log entry the data preparation for PCBA by PCBWay, using the kicad-cli command line tool to achieve reproducibility of the production files.

While waiting for the PCBA order to complete and to receive the boards, I will describe in build instructions how to populate the board with LEDs, and how to daisy chain two boards for 4 digits, as this has been the practice for previous iterations of display boards.