Skip to the content
PCBKitNew board
2 layers120 × 93 mmSbc3 pcb, the printed circuit board in 3D

Sbc3 pcb

lprib/sbc3

single board computer thingy

Size
120 × 93 mm
Copper layers
2
Thickness
1.6 mm
Parts
181
Nets
164
Pads
603
Tracks, vias
1,586, 226
Pours
5
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
12 Nov 2023
Updated
2 May 2024

Overview

Sbc3 pcb is an open-source printed circuit board by lprib, from the lprib/sbc3 repository on GitHub. It is a 2-layer board of 120 × 93 mm with 181 parts on 164 nets, routed with 1,586 tracks and 226 vias.

It is built around the STM32F405VGT6, SP3485EN-L/TR and 74HC595D,118, with the PJ-342 among its other parts. Its parts include 65 resistors, 50 capacitors, 18 diodes, 11 connectors and 10 ICs. It belongs with the computers and single-board computers boards and the STM32 boards of this library.

Main components

4

README

README.md

sbc3: small computing environment

Self contained board that can be easily programmed on target for fun little games or GUIs. Inspired by the environment presented by TI calculators and TI-BASIC.

Directory structure

text
sbc3
|_ art: various images for putting on PCB and for on-screen graphics
|_ cubemx: STM32 CubeMX projects for pinmapping
|_ docs: datasheets etc
|  |_ cpu_hardware: hardware support and layout for STM32s
|  |_ hardware: various datasheets for parts used
|  \_ sofware: CPU ref manuals etc
|_ img: images for docs
|_ keyboard_v1: kicad project for keyboard
|_ main_board_v1: kicad project for main board
|_ rust_firmware: Firmware and screen driver in Rust (abandoned for now)
\_ software: (mostly c++) software and firmware
   |_ cmake: cmake scripts
   |_ firmware: firmware for main_board_v1
   |  |_ app: main application sources
   |  \_ (other dirs): supporting libraries unchanged from CubeMX/FreeRTOS upstream
   \_ vm: virtual machine
      |_ analysis: jupyter notebook for vm stat calculations
      |_ engine: main vm sources (portable)
      |_ pc_port: raylib port of VM for desktop
      |_ programs: sbc3 assembly programs
      |_ tests: vm unit tests (lol)
      |_ vscode-extension-sbcs-syntax: syntax support in VSCode for SBC3 assembly
      \_ as2.py: sbc3 vm bytecode assembler

Components

main_board_v1

System diagram

System diagram

PCB

PCB

Manufactured

PCB photo

  • PCB and assembly done by JLCPCB
  • Extended parts used:
    • TLV320DAC3101IRHBR Audio DAC
    • 475900001 Micro-USB connector
    • LD1117S33TR 3V3 Linear Regulator
      • Honestly can't remember why I went for this one instead of the JLC preferred part AMS1117-3.3. Maybe max current
    • LD1117S18TR 1V8 Linear Regulator (for DAC)
    • STM32F405VGT6 MCU
Changes and ideas for v2
  • Ability to disconnect 3v3 from rs485 connectors
  • Isolation transformers on rs485 for long connections
  • External flash or eeprom or FRAM for filesystem
  • "Cartridges" with flash
  • Label all the headers pin for pin to avoid looking on the schematic every time you're connecting the SWD
  • Fix BOOT0/BOOT1? Or just 0ohm unpopulated for de-bricking?
  • Proper enclosure
  • ESD diode protection on all inputs
  • External qspi flash (w25q128jv)
  • Wire OE on LED shift registers to a PWMable pin! So you can easily pwm the brightness
  • 18650 batteries + holder?
  • smaller form factor with parts hidden underscreen and less rs485 or more compact layout (look for resistor/cap sizing for 0402 wattage)
  • ACTUALLY WIRE UP THE BUTTONS AND ENCODER THIS TIME!
    • Of all the things to screw up on the first PCB run, I didn't expect to completely forget to connect the button and rotary nets
  • Tiny JST connectors really are shit! Hot pluggable trs circuit? Enable/disabable power chip? Need to get this right before making a bunch of peripheral boards.

keyboard_v1

System diagram

System diagram

PCB

PCB

Not yet manufactured, since still thinking about re-doing the comms (definitely not going to use the current JST connectors as theyre much too finicky).

virtual machine

Also included is a stack based virtual bytecode machine (see software/vm). The bytecode can call out to pre-defined system modules, including graphics routines. Below is an example of the main board STM32 and a Linux desktop running the same bytecode program.

STM32

target

Linux desktop

pc

As the bytecode is stack based, a thin forth layer has been built for it, which is currently assembled by a python script. See the source program for the above gifs here.

Parts

181
QtyValueFootprintReferences
36150Resistor_SMD:R_0603_1608MetricR3, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29 +20
22100nCapacitor_SMD:C_0402_1005MetricC1, C11, C12, C14, C17, C18, C20, C22, C24, C28, C29, C31, C33, C35, C40, C42 +6
1910uCapacitor_SMD:C_0603_1608MetricC10, C13, C15, C16, C19, C21, C23, C27, C30, C32, C34, C36, C39, C41, C43, C46 +3
1710kResistor_SMD:R_0402_1005MetricR1, R7, R8, R10, R11, R12, R13, R14, R47, R48, R49, R50, R51, R52, R64, R65 +1
16LEDLED_SMD:LED_0805_2012MetricD3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, D16, D17, D18
84k7Resistor_SMD:R_0805_2012MetricR53, R55, R56, R58, R59, R61, R62, R63
3120Resistor_SMD:R_1206_3216MetricR54, R57, R60
3Conn_01x04_SocketConnector_JST:JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_HorizontalJ7, J8, J9
3MountingHolesbc:MountingHole_JLCPCB_AssemblyH3, H4, H5
3SP3485EN-L/TRPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU6, U7, U8
210nCapacitor_SMD:C_0402_1005MetricC25, C26
210pCapacitor_SMD:C_0402_1005MetricC2, C3
22.2uCapacitor_SMD:C_0603_1608MetricC4, C5
247uCapacitor_SMD:C_1206_3216MetricC45, C48
274HC595D,118Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU4, U5
2CHERRY_SWITCHButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW2, SW4
2MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2
116MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
11V8sbc:MyTPTP10
11kResistor_SMD:R_0402_1005MetricR2
11uCapacitor_SMD:C_0402_1005MetricC7
1256x64 SSD1322 Modulesbc:SSD1322_oled_module_3.12inchU3
13V3sbc:MyTPTP1
1AD+sbc:MyTPTP4
1AD-sbc:MyTPTP5
1BD+sbc:MyTPTP6
1BD-sbc:MyTPTP7
1BOOT0Connector_PinHeader_1.27mm:PinHeader_1x03_P1.27mm_VerticalJ2
1BOOT1Connector_PinHeader_1.27mm:PinHeader_1x03_P1.27mm_VerticalJ11
1CBCKsbc:MyTPTP13
1CD+sbc:MyTPTP8
1CD-sbc:MyTPTP9
1CDINsbc:MyTPTP12
1CMCKsbc:MyTPTP11
1CWCKsbc:MyTPTP14
1DBGLED_SMD:LED_0805_2012MetricD1
1FerriteBeadInductor_SMD:L_0805_2012MetricFB1
1GNDsbc:MyTPTP17
1GPIOConnector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_VerticalJ3
1HPLsbc:MyTPTP16
1HPRsbc:MyTPTP15
1LD1117S18TR_SOT223Package_TO_SOT_SMD:SOT-223-3_TabPin2U9
1LD1117S33TR_SOT223Package_TO_SOT_SMD:SOT-223-3_TabPin2U2
1PJ-342sbc:PJ-342J10
1PWRLED_SMD:LED_0805_2012MetricD2
1RESETButton_Switch_SMD:SW_Push_1P1T_XKB_TS-1187ASW1
1RotaryEncoder_SwitchRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW3
1STM32F405VGT6Package_QFP:LQFP-100_14x14mm_P0.5mmU1
1SWDConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ6
1TLV320DAC3101IRHBRPackage_DFN_QFN:VQFN-32-1EP_5x5mm_P0.5mm_EP3.15x3.15mmU10
1UARTConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ5
1USB_B_MicroConnector_USB:USB_Micro-AB_Molex_47590-0001J4
1VBUSsbc:MyTPTP3
1VBUS CONConnector_PinHeader_1.27mm:PinHeader_1x03_P1.27mm_VerticalJ1

Questions

How big is the Sbc3 pcb PCB?

It measures 120 × 93 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Sbc3 pcb use?

181 parts, built around the STM32F405VGT6, SP3485EN-L/TR, 74HC595D,118 and PJ-342. 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 Sbc3 pcb KiCad files?

From the lprib/sbc3 repository on GitHub, at the commit this page was made from: the board is main_board_v1/sbc3_pcb.kicad_pcb and its schematic keyboard_v1/keyboard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Sbc3 pcb design in my own project?

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

More from lprib/sbc3

1
  • 2 layers205.5 × 64.2 mmKeyboard, the printed circuit board in 3D

    Keyboard

    lprib/sbc3

    single board computer thingy

    110 parts

Similar boards

  • 6 layers50.2 × 77.2 mmMeko, the printed circuit board in 3D

    Meko

    KOEGlike/meko

    A linux music player with ddr3, a 70hz e-paper display and a haptic touchpad

    274 parts90GPL-3.0
  • 2 layers55 × 100 mmScoutAM, the printed circuit board in 3D

    ScoutAM

    RADARC/Scout-Radio

    Si4732 and Raspberry Pi Pico Radio device for Scouts to build and use to gain badges

    92 parts6GPL-3.0
  • 2 layers50 × 40 mmTimer board, the printed circuit board in 3D

    Timer board

    Dominik-Workshop/lap-timer

    Lap timer, EKA 2 sem PWR

    70 partsGPL-3.0
  • 2 layers55 × 90 mmIPodClone, the printed circuit board in 3D

    IPodClone

    mojo626/iPodClone

    This is a clone of an iPod video based on the Allwinner V3s processor

    163 parts
  • 2 layers99.8 × 99.8 mmStmbl 5.0, the printed circuit board in 3D

    Stmbl 5.0

    freakontrol/stmbl

    THE AUTHORS OF THIS SOFTWARE ACCEPT ABSOLUTELY NO LIABILITY FOR ANY HARM OR LOSS RESULTING FROM ITS USE. IT IS EXTREMELY UNWISE TO RELY ON SOFTWARE ALONE FOR SAFETY.

    432 parts53GPL-3.0
  • 2 layers77.2 × 49.8 mmIMU, the printed circuit board in 3D

    IMU

    cuspaceflight/spalax

    10 Degree of Freedom Inertial Measurement System

    77 parts11