Skip to the content
2 layers58 × 71 mmMLX90640-allsky, the printed circuit board in 3D

MLX90640-allsky

eddyem/stm32samples208

Code samples and ready projects based on bare-metal STM32

Size
58 × 71 mm
Copper layers
2
Thickness
1.6 mm
Parts
94
Nets
103
Pads
319
Tracks, vias
728, 75
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
21 Mar 2015
Updated
10 Oct 2026

Overview

MLX90640-allsky is an open-source printed circuit board by eddyem, from the eddyem/stm32samples repository on GitHub. It is a 2-layer board of 58 × 71 mm with 94 parts on 103 nets, routed with 728 tracks and 75 vias.

It is built around the B1203S-1W, B1212S-1W and IP4220CZ6, with the USBLC6-2SC6, CESD3V3D5 and SP0504BAHTG among its other parts. Its parts include 33 resistors, 23 connectors, 18 capacitors, 6 diodes and 5 ICs. It belongs with the sensors and measurement and computers and single-board computers boards and the STM32 boards of this library.

Main components

10

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

94
QtyValueFootprintReferences
80.1Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC7, C8, C9, C10, C12, C15, C17, C18
8Conn_01x04_SocketConnector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_VerticalJ7, J8, J9, J10, J11, J12, J13, J14
8holeMountingHole:MountingHole_3.2mm_M3_ISO14580_Pad_TopBottomJ16, J17, J18, J19, J20, J21, J22, J23
61kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR13, R14, R24, R25, R26, R27
61uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2, C3, C4, C11, C14
6xResistor_SMD:R_2010_5025Metric_Pad1.40x2.65mm_HandSolderR1, R2, R3, R4, R5, R6
41k 0.1%Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR19, R20, R22, R23
3110Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR15, R16, R17
322Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR28, R29, R33
3330Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR11, R12, R18
2100kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR9, R10
210uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC5, C6
220kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR7, R8
2330Resistor_SMD:R_Array_Convex_4x0603RN1, RN2
26Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC13, C16
2CESD3V3Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolderD4, D5
2PC817Package_DIP:DIP-4_W7.62mmU1, U2
2SP0504BAHTPackage_TO_SOT_SMD:SOT-23-5D2, D3
2~Connector_JST:JST_PH_B6B-PH-K_1x06_P2.00mm_VerticalJ5, J6
110kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR31
11k5Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR30
1270Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR21
12uHInductor_THT:L_CommonMode_Wuerth_WE-CMB-SL1
130Vmy_footprints:S10K30RV1
1470Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR32
1B1203S-1Wmy_footprints:B0x0xSQ1
1B1212S-1Wmy_footprints:B0x0xSQ2
1Conn_01x03_PinTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-3_1x03_P5.00mm_HorizontalJ1
1Conn_01x03_PinTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-4_1x04_P5.00mm_HorizontalJ2
1Conn_01x04_PinConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ3
1Conn_01x04_SocketConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ4
1IP4220CZ6Package_TO_SOT_SMD:SOT-23-6U3
1MM3Z3V6Diode_SMD:D_SOD-323FD6
1NX5032GA-8MHzCrystal:Crystal_SMD_5032-2Pin_5.0x3.2mmY1
1ProgConnector_PinSocket_1.27mm:PinSocket_1x06_P1.27mm_VerticalJ15
1SE83-75Xmy_footprints:SE83-GDSGD1
1SI2300Package_TO_SOT_SMD:SOT-23_HandsolderingQ3
1SMAJ15CADiode_SMD:D_SMAD1
1STM32F303CBTxPackage_QFP:LQFP-48_7x7mm_P0.5mmU5
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U4

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 layers97.5 × 59.5 mmChrono, the printed circuit board in 3D

    Chrono

    eddyem/stm32samples

    Code samples and ready projects based on bare-metal STM32

    90 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 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
  • 2 layers54 × 54 mmSteppers, the printed circuit board in 3D

    Steppers

    eddyem/mmpp

    MMPP (Multimode photometer-polarimeter) for the telescope Zeiss-1000 of SAO RAS.

    55 partsGPL-3.0
  • 4 layers30 × 30 mmReCamera 2002 POE Board, the printed circuit board in 3D

    ReCamera 2002 POE Board

    Seeed-Studio/OSHW-reCamera-Series

    reCamera is a series of open-source AI cameras.

    75 parts495Apache-2.0
  • 2 layers52.9 × 30.6 mmPower meter v3 1, the printed circuit board in 3D

    Power meter v3 1

    KrystianD/avr-power-meter

    AVR-based, galvanically isolated, bidirectional DC energy meter with Modbus RTU interface.

    50 parts4MIT
  • 2 layers100.7 × 85.9 mmEmbarcados, the printed circuit board in 3D

    Embarcados

    LuisMartignago/Conversor-Buck-Microcontrolado

    Materiais e codigos usados no Conversor Buck Microcontrolado

    53 partsMIT
  • 2 layers143.5 × 113.3 mmAcionamento BLDC, the printed circuit board in 3D

    Acionamento BLDC

    RicardoKers/AcionamentoBLDCSimples

    74 parts
  • 2 layers85.1 × 30.5 mmSwitch, the printed circuit board in 3D

    Switch

    gongminmin/ImpulseDrive

    A preliminary design of a plasma engine for spacecraft propulsion

    40 parts4MIT
  • 2 layers83.7 × 53.7 mmNode Analog, the printed circuit board in 3D

    Node Analog

    maivananh111/DoAnTotNghiep

    LoRaWAN wireless sensor network

    131 parts

Questions

How big is the MLX90640-allsky PCB?

It measures 58 × 71 mm and has 2 copper layers, 1.6 mm thick.

What parts does the MLX90640-allsky use?

94 parts, built around the B1203S-1W, B1212S-1W, IP4220CZ6 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 MLX90640-allsky KiCad files?

From the eddyem/stm32samples repository on GitHub, at the commit this page was made from: the board is F3:F303/MLX90640-allsky/kicad/mainboard.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the MLX90640-allsky design in my own project?

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