Skip to the content
2 layers80 × 46 mmIMU PLACEMENT STUDY, the printed circuit board in 3D

An embedded-systems project spanning STM32 firmware, LoRa communication, PCB reconstruction and a documented V2 redesign.

Size
80 × 46 mm
Copper layers
2
Thickness
1.6 mm
Parts
130
Nets
71
Pads
411
Tracks, vias
1,077, 166
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
1 Apr 2026
Updated
6 Nov 2026

Overview

IMU PLACEMENT STUDY is an open-source printed circuit board by SpaceCadetJ, from the SpaceCadetJ/LoRa-Autonomous-Boat repository on GitHub. It is a 2-layer board of 80 × 46 mm with 130 parts on 71 nets, routed with 1,077 tracks and 166 vias.

It is built around the STM32F446RET6, 74AHCT1G125SE and R1240N001B-TR-FE, with the TPS54202DDC, ICM-20948 and PCA9306DCTR among its other parts. Its parts include 42 capacitors, 38 resistors, 11 ICs, 11 diodes and 7 connectors. It belongs with the sensors and measurement boards and the STM32 boards of this library.

Main components

11

README

README.md

LoRa Autonomous Boat Controller

An embedded-systems project spanning STM32 firmware, LoRa communication, PCB reconstruction and a documented V2 redesign. The original university boat controller is preserved as V1; the next vehicle node and a voice/text/location handheld are under development.

Current milestone: engineering review edition. The schematics, source code, parts and build procedures are available for inspection. V2 is not fabrication-ready, and the preserved V1 firmware build is not hardware-qualified.

Portfolio case study · Application handbook · Build and assembly guide · Latest verification · Project history

Existing controllerDeveloping controller
V1 controller reconstructed in KiCadV2 vehicle-node CAD draft
V1: 44 physical components, reconstructed from original fabrication evidenceV2: 118 physical references, 80 × 46 mm board draft

These are CAD renders. They do not establish that the V2 board has been manufactured or tested.

Explore the project

Clone or download the repository, then open pm/index.html locally. For the complete interactive workspace with searchable BOMs, datasheets, drawings, connector evidence and assembly/programming guides:

sh
node pm/tools/serve.mjs

Open http://127.0.0.1:8765/pm/. The viewer runs locally and requires no account or package installation. GitHub displays the HTML source; it does not run the viewer from a repository file link. See viewer instructions.

The portfolio handoff and structured project data provide captions, asset paths, result evidence and claim boundaries for a portfolio site.

Architecture and implementation

mermaid
flowchart LR
  Handset[External handset] <-->|LoRa radio link| Radio[Reyax UART radio]
  Radio <-->|UART| MCU[STM32F446 vehicle controller]
  GPS[GNSS receiver] -->|NMEA UART| MCU
  MCU -->|PWM| ESC[Propulsion ESC]
  MCU -->|PWM| Servo[Steering servo]
  Battery[Battery and regulation] --> MCU

V1 firmware is bare-metal C using STM32 HAL/CMSIS, with UART radio commands, GPS parsing and two PWM outputs. The original handset source is not included. The current code has known failsafe, parsing and pin-role issues documented in the firmware audit.

Hardware originated in Cadence OrCAD/Allegro and has been reconstructed in KiCad 9. Python tools generate and inspect schematics, compare complete pin groups and prepare assembly evidence. The viewer uses HTML, CSS and JavaScript with embedded project data; Node.js builds and validates it. GitHub Actions separates portable repository checks from optional native CAD and firmware jobs.

V2 adds draft provisions for protected power, a separate actuator rail, sensing and USB/debug access. The separate Stage A diagnostic now builds for board identity and inactive actuator outputs. Corrected control firmware, autonomous navigation and the proposed voice/text/location handheld remain development targets. Voice airtime and RC coexistence must be validated before choosing handheld hardware.

What has been demonstrated

DeliverableRecorded resultEvidence
Readable schematic set15 annotated pages, visually inspectedV1 PDF, V2 PDF, visual review
Electrical preservationAll 172 V1 and 361 V2 pins preserved through the presentation changesIndependent quality evidence
V1 firmware reconstructionTwo same-host builds produced identical ELF/HEX/BIN hashes; 36,528-byte BINBuild record
Ordering and assemblyBOM reconciliation, held-part decisions, one-board/five-board candidate lists and assembly mapsOrdering guide
Navigation and documentationSearchable parts, selected datasheets, V1 connector atlas, source evidence and version-specific programming guidesWorkspace, build guide
Reproducible reviewRegression tests, source hashes, native reports and preserved before/after evidenceReview workflow

The integrated V2 ground repair reduces three unconnected PCB items to zero, with zero ordinary DRC errors and unchanged warning/parity counts. The fresh native review preserves all 533 electrical pins. One V2 ERC warning remains; the strict review also flags the intentional PCB change against its older preservation baseline. Six component-limit blockers require circuit corrections before fabrication. No range, voice or autonomous-navigation performance is claimed by these software/CAD results.

Build, review and contribute

Do not run full PCB generation or routing merely to refresh drawings. The schematic-only command preserves the existing PCB, project and BOM. Native KiCad checks require KiCad 9; the V1 build requires the recorded GNU Arm toolchain. No CI job flashes real hardware.

The IMU interface candidate now implements the proposed 1.8 V supply and I2C/interrupt translation in a separately checked schematic. It is available in the V2 viewer; live PCB integration is the next layout task.

Next milestones

  1. Correct the IMU's 1.8 V interface and the five remaining power/signal-limit findings; reconcile schematic-to-PCB differences.
  2. Build on the separate Stage A diagnostic: freeze the operational protocol, implement supervised outputs and measure failsafe behavior.
  3. Complete part/footprint qualification, the V2 connector atlas and staged physical bring-up.
  4. Validate voice quality, radio airtime and RC scheduling before developing the handheld.

Provenance and attribution

The original controller was a University of Arkansas EECS senior-design team project; the repository identifies May 2025 fabrication evidence. The current reconstruction, documentation and review tooling include AI-agent-assisted development. Individual original team contributions should be confirmed before using first-person portfolio claims.

Allegro/ preserves original source evidence. Read provenance and conversion limits before interpreting the reconstructed geometry or inferred drill data. Third-party firmware and tools retain their existing notices; no new project-wide license is granted by this documentation.

Parts

130
QtyValueFootprintReferences
18100nFCapacitor_SMD:C_0603_1608MetricC13, C14, C15, C16, C17, C18, C22, C23, C24, C31, C33, C34, C36, C37, C40, C41 +2
8100RResistor_SMD:R_0603_1608MetricR10, R12, R17, R18, R19, R20, R21, R22
6100kResistor_SMD:R_0603_1608MetricR1, R6, R8, R14, R15, R39
410uF 10VCapacitor_SMD:C_0805_2012MetricC19, C29, C30, C35
41kResistor_SMD:R_0603_1608MetricR29, R30, R34, R35
4M3MountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
310kResistor_SMD:R_0603_1608MetricR11, R13, R16
34.7kResistor_SMD:R_0603_1608MetricR5, R36, R37
35.1kResistor_SMD:R_0603_1608MetricR2, R25, R26
210pF C0GCapacitor_SMD:C_0603_1608MetricC27, C28
210uF 25VCapacitor_SMD:C_1206_3216MetricC5, C6
210uF 50VCapacitor_SMD:C_1210_3225MetricC2, C10
215pF C0GCapacitor_SMD:C_0603_1608MetricC25, C26
22.2kResistor_SMD:R_0603_1608MetricR23, R24
22.2uFCapacitor_SMD:C_0805_2012MetricC38, C39
222uF 16VCapacitor_SMD:C_1210_3225MetricC8, C9
24.7uH 3AInductor_SMD:L_Bourns_SRN6045TAL1, L2
247kResistor_SMD:R_0603_1608MetricR27, R31
2600RInductor_SMD:L_0402_1005MetricFB2, FB3
274AHCT1G125Package_TO_SOT_SMD:SOT-23-5U4, U5
2PESD5V0S1BADiode_SMD:D_SOD-323D10, D11
2SS34Diode_SMD:D_SMAD4, D9
1+3V3TestPoint:TestPoint_Pad_D1.5mmTP3
10.02R 1WResistor_SMD:R_2512_6332MetricR33
1100nF 50VCapacitor_SMD:C_0603_1608MetricC3
1100uF 10VCapacitor_SMD:CP_Elec_6.3x7.7C11
110uF 16VCapacitor_SMD:C_0805_2012MetricC12
112VDiode_SMD:D_SOD-123D2
113.3kResistor_SMD:R_0603_1608MetricR9
115kResistor_SMD:R_0603_1608MetricR4
11uFCapacitor_SMD:C_0603_1608MetricC21
1200kResistor_SMD:R_0603_1608MetricR38
122kResistor_SMD:R_0603_1608MetricR28
132.768kHzCrystal:Crystal_SMD_3215-2Pin_3.2x1.5mmY2
13AFuse:Fuse_1812_4532MetricF1
14.7uF 10VCapacitor_SMD:C_0603_1608MetricC20
1470pFCapacitor_SMD:C_0603_1608MetricC4
147pFCapacitor_SMD:C_0402_1005MetricC32
147uF 50VCapacitor_SMD:CP_Elec_6.3x7.7C1
151RResistor_SMD:R_0603_1608MetricR3
16.8kResistor_SMD:R_0603_1608MetricR32
1600RInductor_SMD:L_0603_1608MetricFB1
18MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
1AO3401APackage_TO_SOT_SMD:SOT-23Q1
1BATTERY XT30Connector_AMASS:AMASS_XT30PW-M_1x02_P2.50mm_HorizontalJ1
1CMS06LoRa_Boat_Controller:M-FLAT_TOS-LD3
1ESCConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ2
1ESC_PWMTestPoint:TestPoint_Pad_D1.5mmTP1
1FAULT redLED_SMD:LED_0603_1608MetricD8
1FIX yellowLED_SMD:LED_0603_1608MetricD7
1GNDTestPoint:TestPoint_Pad_D1.5mmTP6
1GNSSConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ5
1ICM-20948LoRa_Boat_Controller_V2:QFN-24_3x3mm_P0.4mm_NoEPU6
1INA180A1Package_TO_SOT_SMD:SOT-23-5U8
1LINK blueLED_SMD:LED_0603_1608MetricD6
1LoRa RYLR998LoRa_Boat_Controller:CONN5_1LFBN-RC_SULJ4
1PCA9306DCTRLoRa_Boat_Controller_V2:TI_DCT0008A_PCA9306_3x3mm_P0.65mmU10
1PPSTestPoint:TestPoint_Pad_D1.5mmTP7
1PWR greenLED_SMD:LED_0603_1608MetricD5
1R1240N001B-TR-FELoRa_Boat_Controller:SOT-23-6W_PE-SOT23-6W-0512_NMDU2
1RESETButton_Switch_SMD:SW_Push_1P1T_NO_CK_KMR2SW1
1SERVOConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ3
1SERVO_PWMTestPoint:TestPoint_Pad_D1.5mmTP2
1SMAJ33ADiode_SMD:D_SMAD1
1SN74AXC1T45DBVRPackage_TO_SOT_SMD:SOT-23-6U11
1STM32F446RET6Package_QFP:LQFP-64_10x10mm_P0.5mmU1
1SWDConnector_PinHeader_1.27mm:PinHeader_2x05_P1.27mm_Vertical_SMDJ7
1TLV75518PDBVRPackage_TO_SOT_SMD:SOT-23-5U9
1TPS54202Package_TO_SOT_SMD:TSOT-23-6U3
1USB-CConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ6
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U7
1VIN_RAWTestPoint:TestPoint_Pad_D1.5mmTP5
1VSERVOTestPoint:TestPoint_Pad_D1.5mmTP4

More from SpaceCadetJ/LoRa-Autonomous-Boat

1
  • 2 layers66.5 × 37.3 mmLoRa Boat Controller, the printed circuit board in 3D

    LoRa Boat Controller

    SpaceCadetJ/LoRa-Autonomous-Boat

    An embedded-systems project spanning STM32 firmware, LoRa communication, PCB reconstruction and a documented V2 redesign.

    44 parts

Similar boards

  • 2 layers99.9 × 86 mmVULED, the printed circuit board in 3D

    VULED

    hansenkw/Vu-LED-Meter

    This is a decorative LED that shines based on the audio input through the 3.5mm audio jack connector. The design is a 2-layer printed circuit board based on Great Scott Vu LED Meter with few modifications as noted in…

    128 parts
  • 4 layers140 × 70 mmRcm, the printed circuit board in 3D

    Rcm

    Twistiee/rcm

    A CAN-controlled relay driver for a car. 21 universal channels, each of which is simultaneously a low-side output and an input — so the same board builds as a relay controller or as a switch panel, decided in firmware…

    159 parts
  • 2 layers35 × 35 mmFlight module, the printed circuit board in 3D

    Flight module

    FluYVy/Modular-Electronics-Toolkit

    This project is a diploma thesis done at the HTL Rankweil. It aims to provide future students with a better way to understand and work with different sensors and actuators.

    31 parts1
  • 2 layers94.9 × 69 mmECU, the printed circuit board in 3D

    ECU

    rivotmotors-rnd/ECU_Firmware_V3

    RIVOT ECU V3.0 Repo containing STM32F446RE firmware and KiCad PCB hardware designs.

    115 parts
  • 4 layers76 × 50 mmWigglecam, the printed circuit board in 3D

    Wigglecam

    jadenrhee/wigglecam-controller

    RP2040 co-processor board for a 4-lens wigglegram camera: constant-current flash, controls, battery telemetry, Pi 5 I2C interface. 4-layer, DRC-clean, fab-ready.

    105 parts
  • 4 layers39.6 × 66.8 mmFan controller, the printed circuit board in 3D

    Fan controller

    xanderhendriks/pcb-fan-controller

    67 parts
  • 2 layers40 × 40 mmDronedrivers, the printed circuit board in 3D

    Dronedrivers

    CARS-Carleton-Robotics/driver-pcbs

    64 parts
  • 2 layers84 × 78 mmFabricate Wireless Macropad, the printed circuit board in 3D

    Fabricate Wireless Macropad

    Catsarepro21/hackpad_v2

    Wireless ESP32-S3 macropad: KiCad PCB, case STEP models, and Gerber/drill fabrication files.

    78 parts

Questions

How big is the IMU PLACEMENT STUDY PCB?

It measures 80 × 46 mm and has 2 copper layers, 1.6 mm thick.

What parts does the IMU PLACEMENT STUDY use?

130 parts, built around the STM32F446RET6, 74AHCT1G125SE, R1240N001B-TR-FE and TPS54202DDC. 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 IMU PLACEMENT STUDY KiCad files?

From the SpaceCadetJ/LoRa-Autonomous-Boat repository on GitHub, at the commit this page was made from: the board is reviews/codex/imu_placement/study/IMU_PLACEMENT_STUDY.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the IMU PLACEMENT STUDY design in my own project?

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