Skip to the content
2 layers72.1 × 78.5 mmPcb9segCounter, the printed circuit board in 3D

SAO 9 Segment 2 Digit Counter

Size
72.1 × 78.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
57
Nets
33
Pads
162
Tracks, vias
335, 8
Pours
2
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
26 Sep 2024
Updated
31 Oct 2025

Overview

Pcb9segCounter is an open-source printed circuit board by martinbros, from the martinbros/9SegCounter repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 72.1 × 78.5 mm with 57 parts on 33 nets, routed with 335 tracks and 8 vias.

It is built around the ATTINY84-20SSU, SK6805-EC10-000 and 10129381-906002BLF. Its parts include 19 capacitors, 18 diodes, 7 resistors, 6 switches and 2 connectors. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

3

README

README.md

Nine Segment Counter SAO

Description

Use this handy little SAO to count whatever your heart desires: how many conversations you have at Supercon, how many times someone asks what SAO stands for, how many times someone asks "What are you working on?". By using the onboard buttons, I2C interface, or clocking the GP2 pin, the Nine Segment Counter SAO will indicate to the world whatever quantity you are keeping track of.

Operation

Store a 2 digit number and display the number using an atypical 9 segment display instead of the typical 7

Using the buttons, a user can store 49 unique numbers in non-volatile memory. Each unique number is identified by the color of the digits.

Using the I2C bus, the user has full read and write access to the ATTiny 84's 512 byte EEPROM and has full command of the display (displayed number and digit color).

Button Interface

  • Pressing a button above a digit increases that digit by 1
  • Pressing a button below a digit decreases that digit by 1
  • The displayed digit is stored as a decimal 2 digit number (0-99)
  • Pressing the buttons above and below a digit simultaneously changes the color of that digit
    • Each unique two digit color combination corresponds to a unique number saved in non-volatile memory
    • 7 unique colors per "ones" digit x 7 unique colors per "tens" digit = 49 unique values stored in non-volatile memory
    • EEPROM Address location is built by taking the "ones" position color index (0-6) and adding it to the "tens" position color index which has been multipled by 10 (0-6 x 10) [e.g. 00, 02, 03 ... 07, 10, 11 ... 17, 20 ... 27 ... 77]

I2C Interface

  • I2C Address: 4

Display Functions

  • 1 8-bit message: the display will update to show the sent number (Displayed number is not stored in memory)
  • 3 8-bit messages: set the RGB values of the digits to be displayed (Digit must be refreshed to update color)
  • 6 8-bit messages: set the RGB values of the tens place digit and then ones place digit (Digit must be refreshed to update color)

Memory Functions

  • 2 8-bit message: The sent number is converted to a 16-bit EEPROM address pointer, the display will update to display the value stored in memory.
  • 4 8-bit messages: first 2 bytes are combined to a 16-bit EEPROM address pointer, third byte is the data to be stored in the EEPROM, the last byte is a throwaway
  • 5 8-bit messages: The entire EEPROM is filled with the contents of the first message, the remaining 4 messages are discarded

GP1 Interface

  • GP1 is normally pulled high. By driving GP1 low, the displayed number will be incremented by 1
  • Max clock speed is ~150Hz
  • Displayed number is not stored in memory

GP2 Interface

  • GP2 is connected directly to the first Neopixel and is terminated with a 470 ohm resistor. If you desire, feel free to implement the Neopixel protocol and set the segments however you like! Use the reference photo below for the sequence of the neopixels.

Parts

57
QtyValueFootprintReferences
190.1uCapacitor_SMD:C_0805_2012MetricC1, C2, C3, C4, C5, C6, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 +3
18~customParts:1x1mm SMD RGB LEDD1, D2, D3, D4, D5, D6, D7, D10, D11, D12, D13, D14, D15, D16, D17, D18 +2
51kResistor_SMD:R_0805_2012MetricR2, R3, R5, R6, R7
4~MountingHole:MountingHole_2.2mm_M2_ISO7380H1, H2, H3, H4
4~customParts:PTS636 SK43 LFSSW1, SW2, SW3, SW4
2~customParts:9 Segment 38x19x3S1, S2
11kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR4
1500Resistor_SMD:R_0805_2012MetricR1
1ATtiny84A-SSPackage_SO:SOIC-14_3.9x8.7mm_P1.27mmU1
1AVR-ISP-6Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ1
1SAOConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ2

Similar boards

  • 2 layers57.7 × 25.1 mmAIRs, the printed circuit board in 3D

    AIRs

    olin-electric-motorsports/olin-electric-motorsports

    OEM Monorepo

    70 parts14
  • 4 layers109.5 × 60.7 mmPGS Main Board, the printed circuit board in 3D

    PGS Main Board

    HandHeldLegend/progcc-4-hw

    120 parts15
  • 4 layers110.9 × 59.7 mmProgcc 3.2 main, the printed circuit board in 3D

    Progcc 3.2 main

    HandHeldLegend/ProGCC-V3-Plus

    139 parts6
  • 4 layers109.4 × 54.3 mmProcon button board, the printed circuit board in 3D

    Procon button board

    HandHeldLegend/HHL-ProCon-Parts

    Replica parts for Switch Pro Controller

    35 parts2GPL-3.0
  • 4 layers140 × 51.5 mmLatteJr Main Board, the printed circuit board in 3D

    LatteJr Main Board

    HandHeldLegend/Latte-Jr-HW

    The 3D shell, buttons, and other associated models are licensed under a Creative Commons Attribution 4.0 International License .

    129 parts
  • 4 layers125.7 × 76.5 mmUGC Main R5, the printed circuit board in 3D

    UGC Main R5

    HandHeldLegend/GC-Ultimate

    The 3D shell, buttons, and other associated models are licensed under a Creative Commons Attribution 4.0 International License .

    159 parts62
  • 2 layers57.6 × 17.5 mmITPMS, the printed circuit board in 3D

    ITPMS

    LeicesterEnjoyer/ITPMS

    Enhanced TPMS with integrated tire wear assistant

    15 parts1MIT

Questions

How big is the Pcb9segCounter PCB?

It measures 72.1 × 78.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Pcb9segCounter use?

57 parts, built around the ATTINY84-20SSU, SK6805-EC10-000 and 10129381-906002BLF. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Pcb9segCounter KiCad files?

From the martinbros/9SegCounter repository on GitHub, at the commit this page was made from: the board is pcb9segCounter/pcb9segCounter.kicad_pcb and its schematic pcb9segCounter/9SegDigit.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Pcb9segCounter design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).