

My personal embedded systems learning journey projects.
- Size
- 40 × 40 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 48
- Nets
- 48
- Pads
- 209
- Tracks, vias
- 322, 53
- Pours
- 4
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 12 Sep 2026
- Updated
- 2 Nov 2026
Overview
Project2 is an open-source printed circuit board by Parwaz-Dynamics, from the Parwaz-Dynamics/Embedded-In-Bones repository on GitHub. It is a 2-layer board of 40 × 40 mm with 48 parts on 48 nets, routed with 322 tracks and 53 vias.
It is built around the ESP32-C3-WROOM-02-H4, AP2112K-3.3 and BQ24074RGTR, with the LSM6DS3TR-C, USBLC6-2SC6 and AO3400A among its other parts. Its parts include 19 resistors, 12 capacitors, 5 ICs, 4 diodes and 4 connectors. It belongs with the ESP32 and RISC-V boards of this library.
Main components
8ESP32-C3-WROOM-02-H4
SMD,20x18mm-105dBm -40℃~+105℃ 2.4GHz 20.5dBm 345mA 3V~3.6V 82mA Bluetooth5.0 ESP32-C3 On-board PCB Antenna UART、SPI、I2C、I2S、USB SMD,20x18mm WiFi Modules ROHSEspressif SystemsWiFi ModulesAP2112K-3.3
SOT253.3V 600mA CMOS Low Dropout Linear Regulator with EnableDiodes IncorporatedUncategorisedBQ24074RGTR
QFN-16-EP(3x3)-40℃~+125℃ 1 1.5A 4.2V 4.35V~10.2V 6.5uA Charging IC Lithium Battery Not supported Support QFN-16-EP(3x3) Battery Management ROHSTexas InstrumentsBattery ManagementLSM6DS3TR-C
LGA-14(2.5x3)-40℃~+85℃ 1.71V~3.6V 16bit 3uA 4KB IMU (accelerometer + gyroscope) SPI、I2C X,Y,Z X,Y,Z ±16g ±2000dps 运动事件检测、同步与时间戳 LGA-14(2.5x3) Accelerometers ROHSSTMicroelectronicsAccelerometersUSBLC6-2SC6
SOT-23-60.35pF、0.8pF 100nA 150W@8/20us 15V 2 5V 6A@8/20us 6V ESD SOT-23-6 ESD and Surge Protection (TVS/ESD) ROHSUMWESD And Surge Protection (TVS/ESD)AO3400A
SOT-23-55℃~+150℃ 1 N-channel 1.45V 1.4W 30V 48mΩ@2.5V 5.7A 50pF 630pF 75pF 7nC@10V N-Channel SOT-23 MOSFETs ROHSAlpha & Omega SemiconductorMOSFETsSS14
SMA(DO-214AC)-55℃~+150℃ 1A 25A 300uA@40V 40V 550mV@1A Independent SMA(DO-214AC) Schottky Diodes ROHSMDDSchottky DiodesTYPE-C-31-M-12A
SMD-30℃~+85℃ 1 10,000 cycles 16P 20V 6A 7.35mm Female Surface Mount, Right Angle Type-C SMD USB Connectors ROHSHRO ElectronicsUSB Connectors
README
README.mdEmbedded-In-Bones 🦴
My personal journey into embedded systems, from bare-metal programming to real-time operating systems.
This repository documents my hands-on learning journey in embedded systems. It contains experiments, exercises, and projects as I work toward understanding what happens inside a microcontroller — from executing individual instructions to building real-time, event-driven applications.
🎯 Why This Repository?
I've worked with Arduino, ESP32, and Teensy platforms, along with STM32 microcontrollers such as the STM32F103, STM32F411, and STM32H723. Although I had some practical experience, I realized there was still a lot I wanted to understand at a deeper level.
Instead of relying entirely on frameworks and libraries, I decided to go back to the fundamentals: learning how processors execute instructions, how memory works, how interrupts are handled, and how embedded software can be designed to operate reliably in real time.
This repository is a record of that journey — including the concepts I've learned, the challenges I've faced, and the things I still need to explore.
📂 Learning Journey
1. Bare-Metal STM32F446
Learning resource: Embedded Systems with ARM Cortex-M Microcontrollers in Assembly Language and C by Dr. Yifeng Zhu.
I started by learning how to program a microcontroller close to the hardware, using ARM assembly language and C.
Topics covered include:
- ARM Cortex-M instruction set and processor registers
- Arithmetic, logical, shifting, and branching instructions
- Subroutines, structured programming, and mixing assembly with C
- Stack and heap fundamentals
- Static and volatile variables
- GPIO configuration and digital I/O
- Interrupts and timers
- Basic communication protocols
- Memory organization, including Flash and RAM
- Debugging and the software build process
This book helped me develop a clearer understanding of what happens inside a microcontroller when a program runs, rather than treating the hardware as a black box.
Along the way, I also gained practical experience with Keil µVision, ARM Compiler 6, and the GNU toolchain. I explored debugging, ELF files, linker scripts, and how code and data are organized in memory.
The final DSP chapter is still on my list to revisit.
📁 Folder: Bare-Metal STM32F446/
2. Real-Time Operating Systems — Quantum Leaps
Learning resource: Quantum Leaps — YouTube lectures
After completing most of the bare-metal material, I wanted to understand how embedded applications manage multiple concurrent activities and respond to events in real time.
I started following the Modern Embedded Systems programming lectures by Quantum Leaps. The early material reinforced some concepts I had already studied, but things became more challenging as the lectures progressed into interrupt handling, concurrency, and real-time operating systems.
During this stage, I worked through MiROS, a small real-time operating system, and then moved on to QPC (QP/C).
Building and studying MiROS helped me explore concepts such as:
- Tasks and cooperative scheduling
- Preemptive scheduling and context switching
- Interrupt handling and synchronization
- Semaphores and blocking
- Communication and synchronization between concurrent tasks
My journey with QPC is ongoing. Next, I plan to explore state machines and event-driven programming to better understand how embedded applications can be structured without relying entirely on traditional blocking task-based designs.
📁 Folder: Quantum Leap/
🛠️ Tools & Technologies
- Microcontrollers: STM32F446 and other STM32 platforms
- Programming languages: C and ARM Assembly
- IDE: Keil µVision
- Toolchains: ARM Compiler 6 and GNU toolchain
- Core topics: Bare-metal programming, interrupts, timers, memory management, debugging, and RTOS fundamentals
- RTOS / frameworks: MiROS and QP/C
🚧 What's Next?
This journey is far from over.
This list will evolve as I learn and discover new areas worth exploring.
📌 A Note to Myself
Keep it up
🔄 A Change in Direction: PCB Design & Embedded Systems Engineering
For now, I'm taking a slight detour from RTOS development to explore another important side of embedded systems: PCB design and hardware development.
I want to move beyond working with development boards and start understanding how to design and build my own PCBs. My plan is to learn the fundamentals of PCB design and manufacture one or two boards of my own.
Alongside this, I'll be reading Making Embedded Systems by Elecia White. I see this book as an opportunity to learn more about the broader engineering side of embedded systems, including how embedded projects are designed, developed, debugged, and managed.
My current plan is to:
- Learn the fundamentals of PCB design.
- Design and build one or two PCBs to gain practical experience.
- Read Making Embedded Systems by Elecia White.
- Return to Miro Samek's Modern Embedded Systems lectures after establishing a basic understanding of PCB design and completing my first boards.
- Meanwhile work on another project where I can practice the already learned techniques.
I'll resume the lectures from Lecture #29 — Object-Oriented Programming, where I paused.
Parts
48| Qty | Value | Footprint | References |
|---|---|---|---|
| 7 | 5k1 | Resistor_SMD:R_0402_1005Metric | R1, R2, R3, R10, R11, R15, R18 |
| 6 | 100n | Capacitor_SMD:C_0402_1005Metric | C4, C5, C6, C8, C9, C12 |
| 4 | 10k | Resistor_SMD:R_0402_1005Metric | R9, R14, R16, R17 |
| 3 | 1k | Resistor_SMD:R_0402_1005Metric | R12, R13, R19 |
| 3 | 1u | Capacitor_SMD:C_0603_1608Metric | C1, C10, C11 |
| 3 | LED | LED_SMD:LED_0402_1005Metric | D2, D3, D4 |
| 2 | 4u7 | Capacitor_SMD:C_0603_1608Metric | C2, C3 |
| 1 | 100 | Resistor_SMD:R_0402_1005Metric | R8 |
| 1 | 10u | Capacitor_SMD:C_0603_1608Metric | C7 |
| 1 | 1k2 | Resistor_SMD:R_0402_1005Metric | R6 |
| 1 | 3k3 | Resistor_SMD:R_0402_1005Metric | R7 |
| 1 | 4k7 | Resistor_SMD:R_0402_1005Metric | R4 |
| 1 | 72k | Resistor_SMD:R_0402_1005Metric | R5 |
| 1 | AO3400A | Package_TO_SOT_SMD:SOT-23_Handsoldering | Q1 |
| 1 | AP2112K-3.3 | Package_TO_SOT_SMD:SOT-23-5 | U4 |
| 1 | BATT | Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_Vertical | J3 |
| 1 | BOOT | Button_Switch_SMD:SW_SPST_PTS810 | SW1 |
| 1 | BQ24074RGT | Package_DFN_QFN:VQFN-16-1EP_3x3mm_P0.5mm_EP1.6x1.6mm | U1 |
| 1 | Buzzer | Buzzer_Beeper:MagneticBuzzer_CUI_CMT-8504-100-SMT | BZ1 |
| 1 | Conn_02x06_Counter_Clockwise | Connector_PinHeader_1.00mm:PinHeader_2x06_P1.00mm_Vertical_SMD | J8 |
| 1 | ESP32-C3-WROOM-02 | RF_Module:ESP32-C3-WROOM-02 | U5 |
| 1 | LSM6DS3TR-C | Package_LGA:LGA-14_3x2.5mm_P0.5mm_LayoutBorder3x4y | U2 |
| 1 | NRST | Button_Switch_SMD:SW_SPST_PTS810 | SW2 |
| 1 | PLAY_BUTTON | Connector_PinHeader_1.00mm:PinHeader_1x02_P1.00mm_Vertical_SMD_Pin1Left | J2 |
| 1 | SS14 | Diode_SMD:D_SMA | D1 |
| 1 | TYPE_C_31_M_12 | Connector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12 | J1 |
| 1 | USBLC6-2SC6 | Package_TO_SOT_SMD:SOT-23-6 | U3 |
Questions
How big is the Project2 PCB?
It measures 40 × 40 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Project2 use?
48 parts, built around the ESP32-C3-WROOM-02-H4, AP2112K-3.3, BQ24074RGTR and LSM6DS3TR-C. 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 Project2 KiCad files?
From the Parwaz-Dynamics/Embedded-In-Bones repository on GitHub, at the commit this page was made from: the board is PCB Designing/KiCAD/STM32F103Based/project2/project2.kicad_pcb and its schematic PCB Designing/KiCAD/STM32F103Based/project1/project1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Project2 design in my own project?
Its repository states no licence, so its author keeps all rights: ask Parwaz-Dynamics before reusing the design.
Similar boards
- 2 layers25.4 × 25.4 mm

- 2 layers76.2 × 119.7 mm

- 4 layers52.9 × 79.1 mm

RealFCV1
bapsenpai-blip/STM32F405-4-layer-flight-controller
My first PCB revision, not fabricated yet, looking for design review
94 parts1 - 6 layers26 × 56.8 mm

Bluebuzz rm2
sequoia-hope/bluebuzz
A Bluetooth vibrator controller: RP2350A + Raspberry Pi Radio Module 2 (the first board, an nRF52840 module, is abandoned and kept in archive/nrf52840/): Wi-Fi 4 and Bluetooth 5.2 Classic + LE (CYW43439), so the toy can…
109 parts - 4 layers60 × 85 mm

Esp32s3-camera
LCQIANN/esp32s3-camera
ESP32-S3 camera board v1.2: OV2640 DVP camera, microSD, USB-C, LiPo, KiCad 10 project for JLCPCB PCBA
64 parts - 4 layers130 × 100 mm

Atlas carrier ctrl
md-sazzad-eee/ATLAS
Modular multi-robot system: a carrier robot that docks, transports, charges and redeploys two small agent robots. KiCad, FreeCAD, MATLAB/Simulink, COMSOL and ESP32 firmware.
157 parts - 2 layers66.5 × 35.8 mm

- 4 layers92 × 62 mm

Routed final
misko/prompt2device
The separate vNext PCB skill and orchestrator package is available alongside the reference workflow below; existing projects keep their accepted toolchain until an explicit migration.
51 parts3MIT