Silicon Chip14-segment, 4-digit LED Display Modules - November 2024 SILICON CHIP
  1. Contents
  2. Publisher's Letter: The challenges of making electronics work worldwide
  3. Feature: The Fox Report by Barry Fox
  4. Feature: Net Work by Alan Winstanley
  5. Project: Ideal Diode Bridge Rectifiers by Phil Prosser
  6. Feature: Practically Speaking by Jake Rothman
  7. Back Issues
  8. Feature: Max’s Cool Beans by Max the Magnificent
  9. Project: Multi-Channel Volume Control, part one by Nicholas Vinen
  10. Feature: Teach-In 2024 – Learn electronics with the ESP32 by Mike Tooley
  11. Feature: Techno Talk by Max the Magnificent
  12. Project: Coin Cell Emulator by Tim Blythman
  13. Feature: Circuit Surgery by Ian Bell
  14. Review: MG4 XPower electric vehicle by Julian Edgar
  15. Subscriptions
  16. Feature: 14-segment, 4-digit LED Display Modules by Jim Rowe
  17. PartShop
  18. Advertising Index
  19. Market Centre
  20. Back Issues

This is only a preview of the November 2024 issue of Practical Electronics.

You can view 0 of the 80 pages in the full issue.

Articles in this series:
  • The Fox Report (July 2024)
  • The Fox Report (September 2024)
  • The Fox Report (October 2024)
  • The Fox Report (November 2024)
  • The Fox Report (December 2024)
  • The Fox Report (January 2025)
  • The Fox Report (February 2025)
  • The Fox Report (March 2025)
  • The Fox Report (April 2025)
  • The Fox Report (May 2025)
Articles in this series:
  • Win a Microchip Explorer 8 Development Kit (April 2024)
  • Net Work (May 2024)
  • Net Work (June 2024)
  • Net Work (July 2024)
  • Net Work (August 2024)
  • Net Work (September 2024)
  • Net Work (October 2024)
  • Net Work (November 2024)
  • Net Work (December 2024)
  • Net Work (January 2025)
  • Net Work (February 2025)
  • Net Work (March 2025)
  • Net Work (April 2025)
Articles in this series:
  • Practically Speaking (November 2024)
  • Practically Speaking (February 2025)
Articles in this series:
  • Max’s Cool Beans (April 2024)
  • Max’s Cool Beans (May 2024)
  • Max’s Cool Beans (June 2024)
  • Max’s Cool Beans (July 2024)
  • Max’s Cool Beans (August 2024)
  • Max’s Cool Beans (September 2024)
  • Max’s Cool Beans (October 2024)
  • Max’s Cool Beans (November 2024)
  • Max’s Cool Beans (December 2024)
Items relevant to "Multi-Channel Volume Control, part one":
  • Multi-channel Volume Control volume PCB [01111221] (AUD $5.00)
  • Multi-channel Volume Control control PCB [01111222] (AUD $5.00)
  • Multi-channel Volume Control OLED PCB [01111223] (AUD $3.00)
  • PIC16F18146-I/SO programmed for the Multi-Channel Volume Control [0111122B.HEX] (Programmed Microcontroller, AUD $10.00)
  • PIC16F15224-I/SL programmed for the Multi-Channel Volume Control [0111122C.HEX] (Programmed Microcontroller, AUD $10.00)
  • Pulse-type rotary encoder with pushbutton and 18t spline shaft (Component, AUD $3.00)
  • 0.96in cyan OLED with SSD1306 controller (Component, AUD $10.00)
  • 2.8-inch TFT Touchscreen LCD module with SD card socket (Component, AUD $25.00)
  • Multi-channel Volume Control control module kit (Component, AUD $50.00)
  • Multi-channel Volume Control volume module kit (Component, AUD $55.00)
  • Multi-channel Volume Control OLED module kit (Component, AUD $25.00)
  • Firmware (C and HEX) files for the Multi-Channel Volume Control (Software, Free)
  • Multi-channel Volume Control PCB patterns (PDF download) [01111221-3] (Free)
Articles in this series:
  • Multi-Channel Volume Control, Pt1 (December 2023)
  • Multi-Channel Volume Control Part 2 (January 2024)
  • Multi-Channel Volume Control, part one (November 2024)
  • Multi-Channel Volume Control, Part 2 (December 2024)
Articles in this series:
  • Teach-In 2024 (April 2024)
  • Teach-In 2024 (May 2024)
  • Teach-In 2024 – Learn electronics with the ESP32 (June 2024)
  • Teach-In 2024 – Learn electronics with the ESP32 (July 2024)
  • Teach-In 2024 – Learn electronics with the ESP32 (August 2024)
  • Teach-In 2024 – Learn electronics with the ESP32 (September 2024)
  • Teach-In 2024 – Learn electronics with the ESP32 (October 2024)
  • Teach-In 2024 – Learn electronics with the ESP32 (November 2024)
Articles in this series:
  • (November 2020)
  • Techno Talk (December 2020)
  • Techno Talk (January 2021)
  • Techno Talk (February 2021)
  • Techno Talk (March 2021)
  • Techno Talk (April 2021)
  • Techno Talk (May 2021)
  • Techno Talk (June 2021)
  • Techno Talk (July 2021)
  • Techno Talk (August 2021)
  • Techno Talk (September 2021)
  • Techno Talk (October 2021)
  • Techno Talk (November 2021)
  • Techno Talk (December 2021)
  • Communing with nature (January 2022)
  • Should we be worried? (February 2022)
  • How resilient is your lifeline? (March 2022)
  • Go eco, get ethical! (April 2022)
  • From nano to bio (May 2022)
  • Positivity follows the gloom (June 2022)
  • Mixed menu (July 2022)
  • Time for a total rethink? (August 2022)
  • What’s in a name? (September 2022)
  • Forget leaves on the line! (October 2022)
  • Giant Boost for Batteries (December 2022)
  • Raudive Voices Revisited (January 2023)
  • A thousand words (February 2023)
  • It’s handover time (March 2023)
  • AI, Robots, Horticulture and Agriculture (April 2023)
  • Prophecy can be perplexing (May 2023)
  • Technology comes in different shapes and sizes (June 2023)
  • AI and robots – what could possibly go wrong? (July 2023)
  • How long until we’re all out of work? (August 2023)
  • We both have truths, are mine the same as yours? (September 2023)
  • Holy Spheres, Batman! (October 2023)
  • Where’s my pneumatic car? (November 2023)
  • Good grief! (December 2023)
  • Cheeky chiplets (January 2024)
  • Cheeky chiplets (February 2024)
  • The Wibbly-Wobbly World of Quantum (March 2024)
  • Techno Talk - Wait! What? Really? (April 2024)
  • Techno Talk - One step closer to a dystopian abyss? (May 2024)
  • Techno Talk - Program that! (June 2024)
  • Techno Talk (July 2024)
  • Techno Talk - That makes so much sense! (August 2024)
  • Techno Talk - I don’t want to be a Norbert... (September 2024)
  • Techno Talk - Sticking the landing (October 2024)
  • Techno Talk (November 2024)
  • Techno Talk (December 2024)
  • Techno Talk (January 2025)
  • Techno Talk (February 2025)
  • Techno Talk (March 2025)
  • Techno Talk (April 2025)
  • Techno Talk (May 2025)
  • Techno Talk (June 2025)
Articles in this series:
  • Circuit Surgery (April 2024)
  • STEWART OF READING (April 2024)
  • Circuit Surgery (May 2024)
  • Circuit Surgery (June 2024)
  • Circuit Surgery (July 2024)
  • Circuit Surgery (August 2024)
  • Circuit Surgery (September 2024)
  • Circuit Surgery (October 2024)
  • Circuit Surgery (November 2024)
  • Circuit Surgery (December 2024)
  • Circuit Surgery (January 2025)
  • Circuit Surgery (February 2025)
  • Circuit Surgery (March 2025)
  • Circuit Surgery (April 2025)
  • Circuit Surgery (May 2025)
  • Circuit Surgery (June 2025)
Articles in this series:
  • El Cheapo Modules From Asia - Part 1 (October 2016)
  • El Cheapo Modules From Asia - Part 2 (December 2016)
  • El Cheapo Modules From Asia - Part 3 (January 2017)
  • El Cheapo Modules from Asia - Part 4 (February 2017)
  • El Cheapo Modules, Part 5: LCD module with I²C (March 2017)
  • El Cheapo Modules, Part 6: Direct Digital Synthesiser (April 2017)
  • El Cheapo Modules, Part 7: LED Matrix displays (June 2017)
  • El Cheapo Modules: Li-ion & LiPo Chargers (August 2017)
  • El Cheapo modules Part 9: AD9850 DDS module (September 2017)
  • El Cheapo Modules Part 10: GPS receivers (October 2017)
  • El Cheapo Modules 11: Pressure/Temperature Sensors (December 2017)
  • El Cheapo Modules 12: 2.4GHz Wireless Data Modules (January 2018)
  • El Cheapo Modules 13: sensing motion and moisture (February 2018)
  • El Cheapo Modules 14: Logarithmic RF Detector (March 2018)
  • El Cheapo Modules 16: 35-4400MHz frequency generator (May 2018)
  • El Cheapo Modules 17: 4GHz digital attenuator (June 2018)
  • El Cheapo: 500MHz frequency counter and preamp (July 2018)
  • El Cheapo modules Part 19 – Arduino NFC Shield (September 2018)
  • El cheapo modules, part 20: two tiny compass modules (November 2018)
  • El cheapo modules, part 21: stamp-sized audio player (December 2018)
  • El Cheapo Modules 22: Stepper Motor Drivers (February 2019)
  • El Cheapo Modules 23: Galvanic Skin Response (March 2019)
  • El Cheapo Modules: Class D amplifier modules (May 2019)
  • El Cheapo Modules: Long Range (LoRa) Transceivers (June 2019)
  • El Cheapo Modules: AD584 Precision Voltage References (July 2019)
  • Three I-O Expanders to give you more control! (November 2019)
  • El Cheapo modules: “Intelligent” 8x8 RGB LED Matrix (January 2020)
  • El Cheapo modules: 8-channel USB Logic Analyser (February 2020)
  • New w-i-d-e-b-a-n-d RTL-SDR modules (May 2020)
  • New w-i-d-e-b-a-n-d RTL-SDR modules, Part 2 (June 2020)
  • El Cheapo Modules: Mini Digital Volt/Amp Panel Meters (December 2020)
  • El Cheapo Modules: Mini Digital AC Panel Meters (January 2021)
  • El Cheapo Modules: LCR-T4 Digital Multi-Tester (February 2021)
  • El Cheapo Modules: USB-PD chargers (July 2021)
  • El Cheapo Modules: USB-PD Triggers (August 2021)
  • El Cheapo Modules: 3.8GHz Digital Attenuator (October 2021)
  • El Cheapo Modules: 6GHz Digital Attenuator (November 2021)
  • El Cheapo Modules: 35MHz-4.4GHz Signal Generator (December 2021)
  • El Cheapo Modules: LTDZ Spectrum Analyser (January 2022)
  • Low-noise HF-UHF Amplifiers (February 2022)
  • A Gesture Recognition Module (March 2022)
  • Air Quality Sensors (May 2022)
  • MOS Air Quality Sensors (June 2022)
  • PAS CO2 Air Quality Sensor (July 2022)
  • Particulate Matter (PM) Sensors (November 2022)
  • Heart Rate Sensor Module (February 2023)
  • UVM-30A UV Light Sensor (May 2023)
  • VL6180X Rangefinding Module (July 2023)
  • pH Meter Module (September 2023)
  • 1.3in Monochrome OLED Display (October 2023)
  • 16-bit precision 4-input ADC (November 2023)
  • 1-24V USB Power Supply (October 2024)
  • 14-segment, 4-digit LED Display Modules (November 2024)
  • 0.91-inch OLED Screen (November 2024)
  • The Quason VL6180X laser rangefinder module (January 2025)
  • TCS230 Colour Sensor (January 2025)
  • Using Electronic Modules: 1-24V Adjustable USB Power Supply (February 2025)
Electronic Modules Using Electronic Modules with Jim Rowe 4-digit, 14-segment LED module Instead of seven segments, this LED display module has 14 segments per character, so it can display letters, digits and even a few symbols. It has a built-in I2C serial interface, allowing popular microcontrollers like the Arduino Uno or Nano to drive it easily. T he module is about the same size as a 4-digit, 7-segment display at 50mm wide by 28mm high, with a total thickness of a little over 10mm. The two side-by-side dual-character LED displays have 14 segments per character, plus the usual decimal point LED. This allows them to reasonably display numerical digits, upper-case letters, many lower-case letters and a few symbols. The module features an I2C serial interface that allows easy connection to just about any popular microcontroller unit (MCU). We will now look more deeply into the 14-segment LED displays, followed by the useful IC that drives them and provides the I2C interface. The 14-segment displays Fig.1 shows how the dual character displays used in the module have six of the seven segments used in the familiar 7-segment displays; the outer ones labelled ‘a’ to ‘f’. Instead of the single central horizontal segment, there are eight inner segments: three in the upper half labelled ‘g’, ‘h’ and ‘j’, three in the lower half labelled ‘l’, ‘m’ and ‘n’, and two in the centre replacing the original single horizontal segment, labelled ‘p’ and ‘k’. This gives 14 segments in each character, not counting the decimal point. The LEDs in these segments are connected in a common-cathode configuration, so each character (plus its decimal point LED) has a single cathode pin. The anodes are connected to the anode of the corresponding segment of the other character, eg, segment ‘1a’ to segment ‘2a’ etc. That allows the segments of both displays to share pins, as shown in the internal circuit, on the right side of Fig.1. So each dual-character display needs only 17 connection pins: 15 for the LED anodes and two for the cathodes. The displays have 18 physical pins, but one (pin 3) is not used. Two main suppliers of these dual 14-segment displays are Kingbright (PDC54-11GWA) and Lite-On (LTP3784E). The characters are 13.8mm (0.54in) high in both cases. These manufacturers also label the inner display segments differently, but the pin connections are the same. The displays used in this module have segments that emit orangeyellow light, but displays with other colours are available. Inside the HT16K33 IC Now we can look into the IC used to drive each pair of dual 14-segment displays in the module. This is the HT16K33, made by Taiwan firm Holtek Semiconductor Inc (www.holtek.com/ Fig.1: how the LEDs are arranged in each of the 2-digit, 14-segment displays. 72 Practical Electronics | November | 2024 14-Segment LED Displays page/vg/HT16K33A), which also provides the I2C interface. Holtek makes a range of microcontrollers, some of which are used in popular home appliances and various other ICs, including display drivers like the HT16K33. Holtek describes the HT16K33 as a 16×8 LED Controller Driver with RAM Mapping and an optional keypad scanning ability. It can be used for driving virtually any matrix of up to 16 × 8 LEDs, not just 14-segment alphanumeric displays, as in this module. It can also scan a matrix of 13 × 3 keys, although that feature is not used here. It can be powered from 4.5-5.5V DC. Fig.2 shows the basic block diagram of the HT16K33. The I2C interface controller is at lower left, with an internal RC clock oscillator to its right feeding a timing generator, and two random-access memories (RAMs) below them. The upper RAM is for the display control data, with a capacity of 16 × 8 bits, while the lower RAM is for storing the key scanning data, if that function is used. On the right-hand side are the two controller blocks. The upper one provides eight outputs (COM0COM7) for control of the ‘common’ LED lines (in this case, the cathodes of the 14-segment displays) and the key scanning outputs. The COM0 output is also used to sense the desired I 2C address for the HT16K33, as explained shortly. The lower controller block provides 16 outputs (ROW0-ROW15) for driving the rows of LEDs in a matrix or the segments in the 14-segment displays. It also provides inputs for sensing the desired I2C address, plus inputs for the key scanning function. The power-on reset (POR) block at upper left resets most of the other blocks when power is first applied. One of the functions of the HT16K33 not shown in Fig.2 is its ability to provide programmable 16-step dimming of the LED outputs. That is achieved by controlling the pulse width of the ROW outputs, with a range from 1/16th to 16/16th duty cycle. Another handy feature! Finally, the HT16K33 can be programmed to have any of eight different I2C addresses, from 70h to 77h, using three links on the circuit around the chip. We will see how this is done in the next section. Practical Electronics | November | 2024 The rear of the 14-segment LED module contains just a few components and the HT16K33 IC. The module’s I2C address is set by the three links labelled A0-A2 on the PCB. Note that the HT16K33 IC is now obsolete, but Holtek still sells the HT16K33A, which is pretty similar. The module circuit As you can see from the circuit in Fig.3, there’s not much in the module apart from the HT16K33 device itself (IC1) and the two dual 14-segment displays. Two pull-up resistors are connected between its SDA and SCL lines and the VHI input, while the HT16K33 chip is powered from the VIO input from CON1, with a 10μF capacitor providing filtering. 5-pin SIL header CON1 is used to make all the power and signal connections to the module. Programming the module’s I2C ad- dress is achieved using diode D1, three resistors and three PCB links A0-A2, shown above IC1 in Fig.3. The anode of D1 is connected to the COM0 output (pin 2) of IC1, while its cathode connects to the three links via three 10kW resistors. The other ends of the links are connected to the ROW0, ROW1 and ROW2 lines of IC1, which are used as inputs when IC1 detects the desired I2C address. As shown in the small table at upper right in Fig.3, when no links are connected (A0=A1=A2=0), the module has an I2C address of 70h (h = hexadecimal). If only the A0 link is connected, the address is changed to 71h; if only the A1 link is connected, this changes the address to 72h etc. Fig.2: the block diagram for the HT16K33 IC which is used to drive both 14-segment displays. 73 Electronic Modules An example of what the lowercase letters “qrst” and “abcd” look like on the LED module. The letters ‘q’ and ‘a’ are some of the more strange choices. This ability to set the module’s I2C address to eight different values means it is possible to connect up to eight of the modules to the same I2C port of an MCU. It also means that if you have another device on your I2C bus within the range of 70h to 77h, you can program the 14-segment display to one of the unused addresses to avoid a collision. Connecting it to a micro A nice feature of this module is that its I2C interface makes it easy to connect to most MCUs. This is illustrated in Fig.4, which shows how it can be connected to an Arduino Uno. The module’s VHI and VIO pins are both connected to the Arduino’s +5V pin, its GND pin to one of the Arduino’s GND pins, its SDA pin to the Arduino’s A4/SDA pin and its SCL pin to the Arduino’s A5/SCL pin. Note that with R3 and later versions of the Uno, the last two pins can be connected to the SDA and SCL pins at upper left on the Arduino, just to the left of the AREF pin. Connecting the module to an Arduino Nano is just as easy, as shown in Fig.5. The connections are very similar to those for the Uno in Fig.4. The only other thing you need to do to get the module to communicate with an MCU is to change its I2C address if necessary; it defaults to 70h when none of the links on the rear of the PCB are joined. You should find it just as easy to connect the module to most other MCUs, such as a Micromite, Maximite, Pico­Mite, WebMite and so on. All that’s left then is to come up with some suitable software to drive the display. For an Arduino, as usual, that will involve finding a software library designed to communicate with the HT16K33 module, plus one or more example Arduino sketches to show how it’s done. Arduino libraries After looking around on the web for Arduino libraries written to communicate with the HT16K33 module, the best one I could find was from US firm Adafruit, called Adafruit_LED_ Backpack. This one was listed on the main Arduino Reference website but was also available on GitHub: • pemag.au/link/abpk • https://github.com/adafruit/­ Adafruit_LED_Backpack However, to work with the 14­segment displays used in this module, two other libraries must be installed: Adafruit-GFX-library and Adafruit_ BusIO_library, see: • https://github.com/adafruit/­ Adafruit-GFX-library • https://github.com/adafruit/­ Adafruit_BusIO Fig.3: The full circuit of the 4x14-segment display module. The table at upper right shows how its I2C address can be set using the PCB links A0, A1 and A2. 74 Practical Electronics | November | 2024 14-Segment LED Displays Once the three Adafruit libraries have been downloaded (as zip files) and installed on your PC as part of the Arduino IDE or installed via the Library Manager, you will find a “quadalphanum.ino” sketch in the Examples folder. Verify and compile this sketch, then upload it to the Arduino connected to the module, and you should find the module’s displays will spring to life. First, it will show a stream of all the characters it can display (this takes a while). Then, if you have the IDE’s Serial Monitor open, it will allow you to type in any combination of four characters you want and they will be displayed immediately. You can repeat this over and over. While doing this, I took a few photos to illustrate how the module’s displays show many of the common alphabetic characters. They should give you a good idea of what can be achieved. The upper-case characters are all reasonably clear, but the lower-case characters are less so. Some are pretty unclear, like “p” and “q”, while some of the symbols are very clear, such as “+” and “-”. Unsurprisingly, the numerals are also quite clear. It was a little disappointing to find nothing in the Adafruit libraries to show how to control the light output of the module’s displays. However, if you read Holtek’s data sheet on the HT16K33 (see pemag.au/link/abpj), they provide quite a bit of information on how the PWM dimming of the displays works and can be achieved. Editor’s note: some lower-case letters could be made more clear by modifying the libraries to change which segments are used. To do this, edit the entries in the “alphafonttable” array that’s inside the “Adafruit_ LEDBackpack.­c pp” file. Examples of shapes we think would be more clear are shown in Fig.6. Where you can get it The module shown in the pictures is currently available from a few sellers on AliExpress (eg, pemag.au/link/ ac1f & pemag.au/link/ac1g) for around £2 each. It is also available from AdaFruit (ID 2158) for US$10.50. Adafruit also has versions with different display colours, such as red (1911) for US$9.95, blue (1912), white (2157) or green (2160) displays, each for US$13.95. PE Practical Electronics | November | 2024 Figs.4 & 5: connecting the LED module to an Arduino Uno (above) or Nano (below) is simple. You just need to connect the SDA & SCL pins respectively to A4 & A5 on the Arduino. VHI then goes to 5V on the Arduino and is bridged to VIO, while GND goes to GND. Fig.6 (left): you can edit the library code to output arguably better representations of different letters. An example of what segments could be enabled for the letters ‘p’ and ‘q’ are shown here. Upper case vs lower case We recently came across an interesting fact about where the terms “upper case” (capital letters) and “lower case” (smaller letters) came from. In early printing presses, the “moveable type” letters were kept in cases near the press. As the smaller letters were used more often, they were kept in a box (case) closer to the worker. The capital letters were in a case that was higher and further away, above the other. Hence, “upper case” and “lower case” refer to where the letters were found in those early presses! 75