Skip to the content
PCBKitNew board
2 layers94 × 70 mmCore, the printed circuit board in 3D

Add paths to your bash/zsh rc for convenience

Size
94 × 70 mm
Copper layers
2
Thickness
1.6 mm
Parts
77
Nets
83
Pads
296
Tracks, vias
437, 28
Pours
4
Routed
Yes
KiCad
KiCad 9.0 (file 20241129)
Created
13 Aug 2024
Updated
18 Dec 2025

Overview

Core is an open-source printed circuit board by stanislavstarcha, from the stanislavstarcha/powerbox repository on GitHub. It is a 2-layer board of 94 × 70 mm with 77 parts on 83 nets, routed with 437 tracks and 28 vias.

It is built around the B0505S-1W, ESP32-S3-WROOM-1-N8 and MAX485ED, with the RS485, ADUM1200BR and LM2596S-ADJ among its other parts. Its parts include 21 capacitors, 21 resistors, 14 connectors, 13 ICs and 3 diodes. It belongs with the ESP32 boards of this library.

Main components

12

README

README.md

Install and run firmware

Add paths to your bash/zsh rc for convenience

shell
export POWERBOX_HOME=$HOME/powerbox
export LVGL_HOME=$HOME/lvgl_micropython
shell
mkdir $POWERBOX_HOME
cd $POWERBOX_HOME
git clone https://github.com/stanislavstarcha/powerbox .

Install LVGL micropython

shell
mkdir $LVGL_HOME
cd $LVGL_HOME
git clone https://github.com/lvgl-micropython/lvgl_micropython .

Copy fonts

shell
cd $POWEBOX_HOME
cp ./resources/fonts/Roboto-Black.ttf $LVGL_HOME/lib/lvgl/scripts/built_in_font
cp ./resources/fonts/Roboto-Regular.ttf $LVGL_HOME/lib/lvgl/scripts/built_in_font
cp ./resources/fonts/Material-Sharp-28.ttf $LVGL_HOME/lib/lvgl/scripts/built_in_font

Build fonts

Modify $LVGL_HOME/lib/lvgl/scripts/built_in_font/generate_all.py and add

python
print("\nGenerating 12 px Roboto Ukrainian")
os.system("lv_font_conv --no-compress --no-prefilter --bpp 2 --size 12 --font Roboto-Regular.ttf --format lvgl -o lv_font_roboto_12.c -r 0xB0,0x20-0x22,0x25,0x27-0x40,0x5B-0x5F,0x7B-0x7D,0xA0,0xA7,0xA9,0xAB,0xBB,0x2BC,0x404,0x406-0x407,0x410-0x429,0x42C,0x42E-0x449,0x44C,0x44E-0x44F,0x454,0x456-0x457,0x490-0x491,0x2011,0x2013,0x2019,0x201C,0x201E,0x2030,0x20AC,0x2116")

print("\nGenerating 24 px Glyphs")
os.system("lv_font_conv --no-compress --no-prefilter --bpp 2 --size 24 --font Material-Sharp-28.ttf --format lvgl -o lv_font_material_24.c -r 0xEAC3,0xEAC9,0xEAD0,0xEACF,0xE000,0xe1a7,0xe1a8,0xf156,0xE7EE,0xe5d3,0xe322,0xe87d")

print("\nGenerating 24 px Roboto")
os.system("lv_font_conv --no-compress --no-prefilter --bpp 2 --size 26 --font Roboto-Black.ttf --format lvgl -o lv_font_roboto_24.c -r 0x20,0x30-0x39,0x412,0x442")

print("\nGenerating 120 px Roboto")
os.system("lv_font_conv --no-compress --no-prefilter --bpp 2 --size 120 --font Roboto-Black.ttf --format lvgl -o lv_font_roboto_120.c --symbols 0123456789%")

and then build the fonts

shell
cd $LVGL_HOME/lib/lvgl/scripts/built_in_font
python generate_all.py

Modify headers

Open $LVGL_HOME/lib/lvconf.h

Set to 0 (disable) all #define LV_FONT_MONTSERRAT_* and define custom fonts built earlier.

text
#define LV_FONT_MONTSERRAT_14 0
...

#define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(lv_font_roboto_12) LV_FONT_DECLARE(lv_font_roboto_24) LV_FONT_DECLARE(lv_font_roboto_120) LV_FONT_DECLARE(lv_font_material_24)

#define LV_FONT_DEFAULT &lv_font_roboto_12

Build firmware

shell
cd $LVGL_HOME
python make.py esp32 BOARD=ESP32_GENERIC_S3 DISPLAY=ILI9488 \
FROZEN_MANIFEST=$POWERBOX_HOME/manifest.py BOARD_VARIANT=SPIRAM_OCT \
--flash-size=16 \ 
--ota

Flash firmware

Connect ESP32-S3 to USB and find the port ls /dev/tty*

A typical serial port should look like this

  • /dev/tty.usbmodem11101
  • /dev/cu.usbserial-0001
  • /dev/tty.usbmodem1234561

Note: On MacOS you may need a CH34xVCPDriver that would create a new port like /dev/tty.wchusbserial59710258441

shell
cd $LVGL_HOME

python -m esptool --chip esp32s3 -p /dev/tty.wchusbserial59710258441 \
-b 460800 --before default_reset --after hard_reset write_flash \
--flash_mode dio --flash_size 16MB --flash_freq 80m --erase-all \
0x0 /Users/stasstarcha/workspace/lvgl_micropython/build/lvgl_micropy_ESP32_GENERIC_S3-SPIRAM_OCT-16.bin

Build release

Specify the version and run the command to produce bin and json files that should be attached to a release on GitHub.

shell
cd $POWEBOX_HOME
python scripts/release.py --version=0.10.0 \
--path=$LVGL_HOME/lib/micropython/ports/esp32/build-ESP32_GENERIC_S3-SPIRAM_OCT/micropython.bin \
--output=../build

Development mode

During development, it's easier to update files one by one.

shell
python initialize.py \
--baud_rate 115200 \
--port /dev/cu.usbserial-0001

Parts

77
QtyValueFootprintReferences
910kResistor_SMD:R_1206_3216MetricR2, R4, R5, R6, R8, R10, R13, R17, R18
8100nFCapacitor_SMD:C_1206_3216MetricC3, C4, C5, C7, C9, C12, C14, C17
510uFCapacitor_SMD:C_1206_3216MetricC1, C2, C15, C16, C19
4200RResistor_SMD:R_1206_3216MetricR7, R11, R19, R20
220pFCapacitor_SMD:C_0805_2012MetricC20, C21
222RResistor_SMD:R_0805_2012MetricR21, R22
24.7kResistor_SMD:R_1206_3216MetricR15, R16
2ADuM1201BRPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU6, U12
1100nFCapacitor_SMD:C_0805_2012MetricC11
1100pFCapacitor_SMD:C_1206_3216MetricC13
1100u 16VCapacitor_Tantalum_SMD:CP_EIA-7343-31_Kemet-DC10
11N4148Diode_SMD:D_SOD-123D4
11N5822Diode_SMD:D_SMAD3
11kResistor_SMD:R_1206_3216MetricR12
13.3kResistor_SMD:R_1206_3216MetricR9
14.7uF 35VCapacitor_Tantalum_SMD:CP_EIA-6032-28_Kemet-CC18
1470uF 16VCapacitor_THT:CP_Radial_D8.0mm_P3.50mmC8
1470uF 50VCapacitor_THT:CP_Radial_D10.0mm_P3.80mmC6
147RResistor_SMD:R_0805_2012MetricR1
147uHInductor_SMD:L_12x12mm_H6mmL1
156kResistor_SMD:R_1206_3216MetricR14
174LVC1G04Package_TO_SOT_SMD:SOT-23-5U7
1ADuM1200BRPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU9
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U1
1ATSConnector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_VerticalJ3
1B0505Strypillia:B0505SU3
1BATConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ8
1BMS UARTConnector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_VerticalJ13
1BOOTButton_Switch_SMD:SW_Push_SPST_NO_Alps_SKRKSW2
1BuzzerConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ5
1DISPLAYConnector_JST:JST_PH_B8B-PH-K_1x08_P2.00mm_VerticalJ4
1EL357NPackage_SO:SO-4_4.4x4.3mm_P2.54mmU5
1ESP32-S3-WROOM-1PCM_Espressif:ESP32-S3-WROOM-1U2
1FANConnector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_VerticalJ12
1FerriteBead_SmallInductor_SMD:L_1206_3216MetricFB1
1INV BTNConnector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_VerticalJ9
1INV LOADConnector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_VerticalJ10
1L7805Package_TO_SOT_SMD:TO-252-2U10
1L7805Package_TO_SOT_SMD:SOT-89-3U11
1LM2596S-ADJPackage_TO_SOT_SMD:TO-263-5_TabPin3U4
1MAX485EPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU8
1PMOS IPD042P03L3Package_TO_SOT_SMD:TO-252-2Q1
1PSU AConnector_JST:JST_PH_B7B-PH-K_1x07_P2.00mm_VerticalJ6
1PSU BConnector_JST:JST_PH_B7B-PH-K_1x07_P2.00mm_VerticalJ7
1PSU BTNConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ1
1RS485Connector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ11
1RSTButton_Switch_SMD:SW_Push_SPST_NO_Alps_SKRKSW1
1UART0Connector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_VerticalJ14
1USBConnector_USB:USB_Micro-B_Molex-105017-0001J2
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U13
1WS2812BLED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mmD5

Questions

How big is the Core PCB?

It measures 94 × 70 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Core use?

77 parts, built around the B0505S-1W, ESP32-S3-WROOM-1-N8, MAX485ED and RS485. 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 Core KiCad files?

From the stanislavstarcha/powerbox repository on GitHub, at the commit this page was made from: the board is resources/pcba/core/core.kicad_pcb and its schematic resources/pcba/booster/booster.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Core design in my own project?

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

More from stanislavstarcha/powerbox

3
  • 2 layers40 × 70 mmUvp, the printed circuit board in 3D

    Uvp

    stanislavstarcha/powerbox

    Add paths to your bash/zsh rc for convenience

    53 parts
  • 2 layers44 × 64 mmBooster, the printed circuit board in 3D

    Booster

    stanislavstarcha/powerbox

    Add paths to your bash/zsh rc for convenience

    41 parts
  • 2 layers22 × 20.8 mmFan, the printed circuit board in 3D

    Fan

    stanislavstarcha/powerbox

    Add paths to your bash/zsh rc for convenience

    7 parts

Similar boards

  • 4 layers42.5 × 33.3 mmSR CRT, the printed circuit board in 3D

    SR CRT

    SRB2149/SR-CRT

    A HDMI-to-GT65 Adapter. Uses a USB Capture Card, Raspberry Pi, Tang Nano 9K and a custom interface PCB to bring your Amstrad GT65 40 years into the future.

    20 parts3MIT
  • 2 layers34.1 × 30.3 mmSymio, the printed circuit board in 3D

    Symio

    multigcs/riocore

    riocore

    31 parts91GPL-2.0
  • 2 layers148.3 × 69 mmPlantPartner PCB1.0, the printed circuit board in 3D

    PlantPartner PCB1.0

    aboler/plant-partner

    Plant-Partner repo. for CEN4907c

    86 parts3
  • 2 layers99.5 × 99.5 mmBalancer, the printed circuit board in 3D

    Balancer

    kwiecinski/BMS-and-offgrid-photovoltaic-management-system

    Project contains BMS for lead-acid batteries and ESP-based board used to pull information from EASUN offgrid inverter, energy meters and sensors.

    173 parts3MIT
  • 2 layers42.5 × 38.5 mmInverter board, the printed circuit board in 3D

    Inverter board

    blu006/blu_BOB_and_MISC

    My breakout boards and miscellaneous boards

    44 parts
  • 2 layers123 × 87.3 mmKiCad Projeleri, the printed circuit board in 3D

    KiCad Projeleri

    OnurBAYRAM1903/KiCad-PCB-Design

    153 parts
  • 2 layers99 × 105 mmSTM32 IOT GATEWAY, the printed circuit board in 3D

    STM32 IOT GATEWAY

    RiddheshVeling/Industrial-Flowmeter-Totalizer-with-Modbus-based-HMI-and-Data-Logging

    EXTC Final year project: Industrial flowmeter totalizer with Modbus-based HMI for real-time monitoring and data logging using STM32 and RS485.

    154 parts