Skip to the content
PCBKitNew board
2 layers97.5 × 59.5 mmChrono, the printed circuit board in 3D

Code samples and ready projects based on bare-metal STM32

Size
97.5 × 59.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
90
Nets
60
Pads
279
Tracks, vias
564, 25
Pours
2
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
21 Mar 2015
Updated
10 Oct 2026

Overview

Chrono is an open-source printed circuit board by eddyem, from the eddyem/stm32samples repository on GitHub. It is a 2-layer board of 97.5 × 59.5 mm with 90 parts on 60 nets, routed with 564 tracks and 25 vias.

It is built around the L80-R, LM2576-5.0WU and LM1117-3.3, with the USBLC6-2SC6, AO3407 and B340A among its other parts. Its parts include 24 resistors, 17 capacitors, 13 connectors, 11 diodes and 7 ICs. It belongs with the sensors and measurement and computers and single-board computers boards and the STM32 boards of this library.

Main components

9

README

Readme.md

Repository Overview

The stm32samples repository is a collection of low-level, bare-metal code examples and complete projects for various STM32 microcontroller series (F0, F1, F3, F4, G0). It uses CMSIS header files from modm-io/cmsis-header-stm32 for register definitions.

Project Structure by MCU Series

STM32F0 (F030, F042, F072)

  • 3steppersLB – Controls 3 stepper motors with encoders via USB/CAN bus
  • blink – Simple LED toggling
  • CANbus4BTA – CAN replacement for PEP-CAN
  • CANBUS_SSI – Works with BTA SSI azimuth encoder
  • Chiller – Basic chiller temperature controller
  • F0_testbrd – Tests STM32F0x2 on custom board
  • htu21d_nucleo – Reads HTU-21D sensor on Nucleo-F042K
  • morze – Echoes USART1 data as Morse code on TIM3CH1 (PA6)
  • NUCLEO_SPI – SSI over SPI on Nucleo-F042K
  • PL2303_ringbuffer – USB CDC ACM with ring buffers
  • QuadEncoder – Quadrature encoder via timer
  • Servo – Controls SG-90 style servos
  • Socket_fans – Manages multiple fans
  • TM1637 – Drives 7‑segment displays
  • tsys01_nucleo – Reads two TSYS01 sensors
  • uart_blink & uart_blink_dma – USART echo with DMA
  • usbcan_relay – Relay board over CAN bus
  • usbcan_ringbuffer – USB‑CAN adapter with ring buffers
  • USBHID – USB HID keyboard + mouse

STM32F1 (F103)

  • BMP180, BMP280 – I²C temperature/pressure sensors
  • Canon_managing_device – Controls Canon lenses
  • canUART – UART‑CAN bridge
  • DHT22_DHT11 – Humidity sensors using timer+DMA
  • DS18 – DS18x20 temperature sensors
  • F1_testbrd – Test board for LQFP48 packages
  • I2Cscan – I²C scanner with register R/W
  • LED_Screen – Drives 32×16 LED matrices (P10)
  • MAX7219_screen – Controls 8×8 LED matrices
  • RGB_LED_Screen – HUB75E RGB panel with 8.8.4 color
  • SevenCDCs – Seven USB‑CDC ACM instances on one MCU (joke project)
  • shutter – Bistable shutter via USB/external signal
  • Tetris – Tetris on HUB75E panel
  • USB_HID – USB HID mouse+keyboard
  • ws2815 – Rainbow effect on WS2815 strips

STM32F3 (F303)

  • ADC – Works with ADC peripheral
  • blink – Toggles LEDs on PB0/PB1
  • CANusb – USB‑CAN adapter
  • floatPrintf – Converts floats to strings
  • Multistepper – Controls up to 64 multiplexed steppers
  • NitrogenFlooding – Automatic nitrogen flooding
  • PL2303 – PL2303 emulator (old)
  • Seven_CDCs – Seven USB CDC ACM interfaces
  • usart1fullDMA – USART1 Rx/Tx DMA with match detection
  • USB_template_CDC – USB‑CDC template

STM32F4 (F401)

  • blink – Simple LED toggling

STM32G0 (G070, G0B1)

  • blink – Basic LED blink
  • RTC – Real‑time clock
  • flash – Flash memory operations
  • g0b1 – USB‑CDC working on G0B1
  • i2c – I²C operations
  • usart – USART communication

Other Directories

  • deprecated – Archive of older, no‑longer‑maintained code
  • snippets – Small reusable code fragments
  • testboard – KiCad 8 design files

Development Environment

  • Toolchain: arm-none-eabi‑gcc with -flto optimisations
  • Build: Structured Makefiles per series
  • Debug: OpenOCD configuration files provided
  • Libraries: No third‑party libraries; only CMSIS‑SVD headers

Project Maturity

  • Alpha: USB template for F303, MLX90640 all‑sky camera
  • Stable: LED blink, UART echo, sensor interfaces, USB‑CDC
  • Draft: CANbus4BTA, MLX90640multi
  • Deprecated: Older code in deprecated/

Summary

This repository is a valuable resource for learning low‑level STM32 programming without vendor libraries. It covers practical applications:

  • Industrial control: Stepper motors, CAN bus, relay boards
  • Sensor interfacing: Temperature, pressure, humidity, encoders
  • Human‑machine interfaces: LED matrices, 7‑segment displays, USB HID
  • Communication: UART, SPI, I²C, USB‑CDC, USB‑HID, CAN
  • Prototyping: Test boards for F0, F1, F3, G0

For the latest updates, check the repository on GitHub.

License

This repository is provided under the GNU General Public License v3 or later. Full text of the GPLv3 is available at https://www.gnu.org/licenses/gpl-3.0.html.

Parts

90
QtyValueFootprintReferences
110.1Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolderC3, C5, C6, C8, C9, C11, C12, C14, C15, C16, C17
71N5819Diode_SMD:D_SOD-323_HandSolderingD2, D3, D4, D5, D6, D10, D11
510kResistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR1, R5, R8, R19, R23
51kResistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR6, R10, R11, R12, R20
4JumperConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP1, JP2, JP3, JP4
3220Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR15, R16, R17
2100Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR13, R21
210uCapacitor_SMD:C_1206_3216Metric_Pad1.42x1.75mm_HandSolderC4, C10
212Capacitor_SMD:C_0603_1608Metric_Pad1.05x0.95mm_HandSolderC1, C2
222Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR3, R4
247kResistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR14, R24
2510Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR7, R18
1100kResistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR22
1100uInductor_SMD:L_12x12mm_H4.5mmL1
1100uCapacitor_THT:CP_Radial_D8.0mm_P3.50mmC7
11k5Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR9
12k2Resistor_SMD:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR2
147uCapacitor_Tantalum_SMD:CP_EIA-3216-18_Kemet-A_Pad1.58x1.35mm_HandSolderC13
14N25Package_DIP:DIP-6_W7.62mmU3
18MHzCrystal:Crystal_HC49-U_VerticalY1
1AO3407Package_TO_SOT_SMD:SOT-23_HandsolderingQ2
1B340ADiode_SMD:D_SMA_HandsolderingD7
1BluetoothConnector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalJ11
1Buzzer 3v3Buzzer_Beeper:Buzzer_12x9.5RM7.6BZ1
1Ext_trig0TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ5
1Ext_trig1TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ4
1Ext_trig2TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ7
1GPS_extConnector_JST:JST_PH_B5B-PH-K_1x05_P2.00mm_VerticalJ2
1I2C1Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ9
1IRML2502Package_TO_SOT_SMD:SOT-23_HandsolderingQ4
1L80-Rchrono:L80-RU5
1LED0LED_THT:LED_D5.0mmD8
1LED1LED_THT:LED_D5.0mmD9
1LIDARConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ10
1LM1117-3.3TO_SOT_Packages_SMD:SOT-223U4
1LM2576-5.0TO_SOT_Packages_THT:TO-220-5_P3.4x3.7mm_StaggerEven_Lead3.8mm_VerticalU2
1MM3Z7V5Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolderD1
1MMBTA42Package_TO_SOT_SMD:SOT-23_HandsolderingQ1
1PC817Package_DIP:DIP-4_W7.62mmU7
1PPSConnector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalJ3
1Power 12VTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ1
1SI2305Package_TO_SOT_SMD:SOT-23_HandsolderingQ3
1SPIConnector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_VerticalJ8
1STM32F103C6TxPackage_QFP:LQFP-48_7x7mm_P0.5mmU6
1SWDConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ12
1USBLC6-2SC6TO_SOT_Packages_SMD:SOT-23-6_HandsolderingU1
1USB_BConnectors_USB:USB_B_OST_USB-B1HSxx_HorizontalP1
1USB_B_MiniConnector_USB:USB_Mini-B_Lumberg_2486_01_HorizontalJ6

The 83 most common of 90 parts.

Questions

How big is the Chrono PCB?

It measures 97.5 × 59.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Chrono use?

90 parts, built around the L80-R, LM2576-5.0WU, LM1117-3.3 and USBLC6-2SC6. 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 Chrono KiCad files?

From the eddyem/stm32samples repository on GitHub, at the commit this page was made from: the board is F1:F103/deprecated/chronometer_v2/kicad/chrono.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Chrono design in my own project?

Its repository states no licence, so its author keeps all rights: ask eddyem before reusing the design.

More from eddyem/stm32samples

12
  • 4 layers113.5 × 105.5 mmMultistepper, the printed circuit board in 3D

    Multistepper

    eddyem/stm32samples

    Code samples and ready projects based on bare-metal STM32

    243 parts208
  • 2 layers121.5 × 136.5 mmStm32, the printed circuit board in 3D

    Stm32

    eddyem/stm32samples

    Code samples and ready projects based on bare-metal STM32

    192 parts208
  • 2 layers121.5 × 136.5 mmStm32, the printed circuit board in 3D

    Stm32

    eddyem/stm32samples

    Code samples and ready projects based on bare-metal STM32

    155 parts208
  • 4 layers80 × 80 mmNitrogen, the printed circuit board in 3D

    Nitrogen

    eddyem/stm32samples

    Code samples and ready projects based on bare-metal STM32

    140 parts208
  • 2 layers80 × 84 mmMany485, the printed circuit board in 3D

    Many485

    eddyem/stm32samples

    Code samples and ready projects based on bare-metal STM32

    117 parts208
  • 2 layers97 × 69.5 mmStm32, the printed circuit board in 3D

    Stm32

    eddyem/stm32samples

    Code samples and ready projects based on bare-metal STM32

    103 parts208
  • 2 layers98 × 63.5 mmStm32, the printed circuit board in 3D

    Stm32

    eddyem/stm32samples

    Code samples and ready projects based on bare-metal STM32

    98 parts208
  • 2 layers58 × 71 mmMLX90640-allsky, the printed circuit board in 3D

    MLX90640-allsky

    eddyem/stm32samples

    Code samples and ready projects based on bare-metal STM32

    94 parts208
  • 2 layers75.5 × 52.5 mmStm32, the printed circuit board in 3D

    Stm32

    eddyem/stm32samples

    Code samples and ready projects based on bare-metal STM32

    89 parts208
  • 2 layers66 × 54 mmWindshield, the printed circuit board in 3D

    Windshield

    eddyem/stm32samples

    Code samples and ready projects based on bare-metal STM32

    86 parts208
  • 2 layers65.5 × 41 mmLamps, the printed circuit board in 3D

    Lamps

    eddyem/stm32samples

    Code samples and ready projects based on bare-metal STM32

    78 parts208
  • 2 layers62 × 60.5 mmChiller control, the printed circuit board in 3D

    Chiller control

    eddyem/stm32samples

    Code samples and ready projects based on bare-metal STM32

    73 parts208

Similar boards

  • 2 layers109 × 74 mmStm32, the printed circuit board in 3D

    Stm32

    eddyem/tsys01

    BTA primary mirror thermal monitoring using STM32 and TSYS01

    92 parts4GPL-3.0
  • 2 layers56.9 × 63.9 mmOpi hat, the printed circuit board in 3D

    Opi hat

    eddyem/ARMsingleboard

    Something for singleboard PC (Orange Pi Zero1/2 etc): I2C, SPI etc.

    53 parts2GPL-3.0
  • 4 layers68.6 × 53.3 mmSFduino UNO S2, the printed circuit board in 3D

    SFduino UNO S2

    HalfSweet/SFduino-UNO-S2

    SF32LB52 Devkit

    133 parts2
  • 2 layers45 × 45 mmAkaLinkPro, the printed circuit board in 3D

    AkaLinkPro

    akkako/akaLinkPro

    akaLinkPro 是一个基于 HPM5300 的高性能 CMSIS-DAP 调试器。

    95 parts11Apache-2.0
  • 2 layers115 × 80 mmNixie Clock, the printed circuit board in 3D

    Nixie Clock

    PennyLekas/Nixie-Clock

    v1 is broken and required some bodge wires to work. I have not updated the schematic and PCB to correct my mistakes. It also has some deficencies in the dimming circuit resulint in a quiet, but audible whine.

    102 parts
  • 4 layers330.2 × 215.9 mmRetroii, the printed circuit board in 3D

    Retroii

    jonthomasson/retroii

    Retro ][ is a 6502 based computer based off of the Apple ][.

    302 parts33
  • 2 layers208.3 × 146.1 mmDream 6800, the printed circuit board in 3D

    Dream 6800

    SteveJustin1963/BOOKS

    121 parts2