

Custom fc rat
Custom flight controller PCB designed in KiCad with STM32F7, multiple sensors, CAN, USB, telemetry, PWM and IO interfaces.
- Size
- 51 × 53.5 mm
- Copper layers
- 6
- Thickness
- 1.6 mm
- Parts
- 122
- Nets
- 158
- Pads
- 564
- Tracks, vias
- 2,513, 312
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 29 Aug 2026
- Updated
- 29 Aug 2026
Overview
Custom fc rat is an open-source printed circuit board by Ekta-Gupta27, from the Ekta-Gupta27/custom-flight-controller-pcb repository on GitHub. It is a 6-layer board of 51 × 53.5 mm with 122 parts on 158 nets, routed with 2,513 tracks and 312 vias.
It is built around the SN65HVD230D, BMM150 and ICP-20100, with the W25Q128JVSIQ, BMI270 and ICM-42688-P among its other parts. Its parts include 47 capacitors, 31 resistors, 17 connectors, 11 ICs and 9 diodes. It belongs with the sensors and measurement and robots and motor control boards and the STM32 boards of this library.
Main components
12SN65HVD230D
SOIC-8-40℃~+85℃ 1 17mA 1Mbps 370uA 3V~3.6V CAN Transceiver Low-power mode、Wake-up function、ESD protection、Thermal shutdown protection、Bus fault protection、Hot-swap protection SOIC-8 CAN Transceivers ROHSTexas InstrumentsCAN TransceiversBMM150
WLCSP-12(1.6x1.6)-40℃~+85℃ 1.62V~3.6V I2C、SPI ±1.3mT ±2.5mT WLCSP-12(1.6x1.6) 3D Magnetic Sensors ROHSBosch3D Magnetic SensorsICP-20100
LGA-10L-40℃~+85℃ 1.8V、3.3V 1pa 2.65uA 20pa 30Kpa~1.1bar I2C、SPI、I3C Temperature Sensor LGA-10L Pressure Sensors ROHSTDK InvenSensePressure SensorsW25Q128JVSIQ
SOIC-8-208mil-40℃~+85℃ 100,000 cycles 120ms@(32KB) 128Mbit 133MHz 1uA 2.7V~3.6V 20 Years 3ms Power-on reset、Hardware write protection、Software write protection、Write enable latch、Absolute write protection SPI SOIC-8-208mil NOR FLASH ROHSWinbondNOR FLASHBMI270
LGA-14(2.5x3)-40℃~+85℃ 1.71V~3.6V 16bit 2KB 3.5uA Accelerometer Gyroscope SPI、I2C X,Y,Z X,Y,Z ±16g ±2000dps LGA-14(2.5x3) Accelerometers ROHSBosch SensortecAccelerometersICM-42688-P
LGA-14(2.5x3)-40℃~+85℃ 1.71V~3.6V 16bit 2KB 7.5uA IMU (accelerometer + gyroscope) SPI、I2C X,Y,Z X,Y,Z ±16g ±2000dps Motion Event Detection, Synchronization, Timestamp Support LGA-14(2.5x3) Accelerometers ROHSTDK InvenSenseAccelerometersLM1117DT-3.3
TO-2520℃~+125℃@(Tj) 1 1.2V@(800mA) 15V 3.3V 5mA 75dB@(120Hz) 800mA Fixed Over Current Protection、Over Temperature Protection、Short Circuit Protection Positive TO-252 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTexas InstrumentsVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsTLV75733PDBVR-MS
SOT-23-5SOT-23-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSMSKSEMIUncategorisedUSBLC6-2P6
SOT-666-6-40℃~+125℃ 150nA 17V 2 3.5pF 5.25V 5A@8/20us 6V ESD IEC 61000-4-2 Unidirectional SOT-666-6 ESD and Surge Protection (TVS/ESD) ROHSSTMicroelectronicsESD And Surge Protection (TVS/ESD)BC547
TO-92Bipolar (BJT)Jiangsu Changjing Electronics Technology (CJ)SS34
SMA(DO-214AC)-55℃~+125℃ 3A 40V 500uA@40V 550mV@3A Independent SMA(DO-214AC) Schottky Diodes ROHSMDDSchottky DiodesESD2CANFD24DBZRQ1
SOT-23ESD And Surge Protection (TVS/ESD)Texas Instruments
README
README.mdCustom Flight Controller PCB
A custom-designed flight controller PCB developed for embedded flight-control applications, integrating a high-performance STM32 MCU, multiple inertial and pressure sensors, CAN communication, external flash memory, power management, and dedicated FMU/IO interfaces.
The PCB and schematic were designed using KiCad 9.0.7.
📌 Project Overview
This project focuses on the design and development of a custom flight controller PCB with dedicated interfaces for sensors, communication peripherals, power, debugging, telemetry, PWM outputs, and RC input/output.
The design is divided into multiple functional sections:
- Main Flight Management Unit (FMU)
- IO controller
- IMU and pressure sensing
- CAN communication
- USB connectivity
- External SPI flash memory
- Power regulation
- Telemetry interfaces
- PWM and RC interfaces
- Debug/programming interfaces
✨ Key Features
- Custom PCB designed from schematic to board layout
- STM32F765VITx main flight controller MCU
- STM32F103CBTx dedicated IO controller
- Multiple onboard sensors
- CAN communication interface
- USB OTG interface
- External SPI flash memory
- Multiple UART interfaces
- I2C and SPI interfaces
- PWM output interface
- SBUS and PPM interfaces
- Debug/programming interface
- Dedicated GPS and telemetry connectors
- Onboard status/safety LEDs
- 3.3 V and 5 V power domains
- Multi-layer PCB layout
- Manufacturing-ready Gerber and drill files
🧠 Hardware Architecture
Main Flight Controller
The primary processing unit is an STM32F765VITx.
The MCU provides the main processing and peripheral interfaces for the flight-control system, including:
- SPI
- I2C
- UART
- CAN
- Timer/PWM channels
- SWD debugging
- External GPIO
IO Controller
A dedicated STM32F103CBTx is used for the IO section of the design.
The IO controller provides interfaces for:
- SBUS
- PPM
- PWM
- RC input/output
- Safety signals
- Status LEDs
- Debugging
- Additional UART interfaces
📡 Sensors
The design incorporates multiple sensors:
ICM-42688-P
6-axis inertial measurement sensor connected through SPI.
BMI270
6-axis inertial sensor with dedicated interrupt and SPI connections.
ICP-20100
Pressure sensor connected through the I2C interface.
BMM150
Magnetic sensor connected through the I2C interface.
🔌 Communication Interfaces
CAN
CAN communication is implemented using the SN65HVD230 transceiver with dedicated CANH and CANL connections and protection circuitry.
USB
A USB OTG interface is provided along with USB ESD protection using USBLC6-2P6.
UART / Telemetry
Dedicated connectors are provided for:
- TELEM1
- TELEM2
- TELEM3
- UART/I2C interface
- GPS
- FMU communication
I2C
Multiple I2C buses are available for sensor and peripheral communication.
SPI
Multiple SPI buses are routed to sensors, flash memory, and external interfaces.
💾 External Flash Memory
The board includes external SPI flash memory:
W25Q128JVS
The flash device is connected to the main MCU through SPI with a dedicated chip-select signal.
⚡ Power Management
The PCB contains dedicated power regulation and filtering circuitry for the different system power domains.
The design includes:
- 5 V input
- 3.3 V regulation
- USB 5 V input
- External 3.3 V supply
- Decoupling capacitors
- Ferrite filtering
- Power indication circuitry
The schematic includes regulators such as:
- LM1117DT-3.3
- TLV75733PDBVR
🎛️ Interfaces & Connectors
| Interface | Purpose |
|---|---|
| GPS_PORT | GPS connectivity |
| POWER | Power input |
| TELEM1 | Telemetry |
| TELEM2 | Telemetry |
| TELEM3 | Telemetry |
| CAN_CONN | CAN communication |
| USB_OTG | USB connectivity |
| DEBUG | Debug/programming |
| SPI_PORT | External SPI interface |
| I2C_PORT | External I2C interface |
| UART_I2CB | UART/I2C interface |
| FMU_PWM | PWM outputs |
| IO_PWM | IO PWM interface |
| SBUS_PORT | SBUS interface |
| SBUS_IN | SBUS input |
| PPM_PORT | PPM input |
| IO_DEBUG | IO debugging |
🖥️ PCB Design
3D View – Top

3D View – Bottom

PCB Layout

📐 Schematic
The complete schematic is provided as a multi-page KiCad schematic covering:
- FMU / MCU power and peripherals
- USB and CAN
- IMU and sensor interfaces
- IO controller
- Safety, RC and PWM interfaces
The PDF version is available in:
docs/schematic.pdf
🏭 Manufacturing Files
The gerbers/ directory contains the manufacturing outputs generated from KiCad, including:
- Front and back copper
- Inner copper layers
- Front and back solder mask
- Front and back silkscreen
- Paste layers
- Board outline
- Drill files
- Gerber job file
These files can be supplied to a PCB manufacturer for fabrication.
📦 Bill of Materials
A Bill of Materials generated from the KiCad schematic is included in:
manufacturing/BOM.csv
The BOM contains information such as:
- Reference designators
- Component quantity
- Component value
- PCB footprint
- Datasheet information
- BOM exclusion fields
📁 Repository Structure
Custom-FC-RAT/
│
├── README.md
├── custom_fc_rat.kicad_pro
│
├── schematic/
│ └── custom_fc_rat.kicad_sch
│
├── pcb/
│ └── custom_fc_rat.kicad_pcb
│
├── gerbers/
│ ├── *.gbl
│ ├── *.gtl
│ ├── *.gbs
│ ├── *.gts
│ ├── *.gbo
│ ├── *.gto
│ ├── *.gm1
│ ├── *.g1
│ ├── *.g2
│ ├── *.g3
│ ├── *.g4
│ ├── *.drl🛠️ Design Tools
| Tool | Purpose |
|---|---|
| KiCad 9.0.7 | Schematic & PCB design |
| KiCad 3D Viewer | PCB visualization |
| KiCad Gerber Generator | Manufacturing file generation |
🚀 Future Improvements
Possible future development includes:
- Hardware validation and bring-up documentation
- Flight-controller firmware integration
- Sensor calibration and validation
- Power integrity testing
- Communication interface testing
- EMI/EMC validation
- Flight testing
- PCB revisions based on hardware testing
📄 Documentation
The editable KiCad design files and schematic PDF are included so that the hardware design can be inspected and further developed.
👩💻 Author
Ekta Gupta
Custom PCB / Flight Controller Design Project
⭐ Project Status
Hardware Design Completed
Schematic, PCB layout, 3D visualization, BOM, and manufacturing files are included in this repository.
Parts
122| Qty | Value | Footprint | References |
|---|---|---|---|
| 27 | 0.1u | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C1, C12, C14, C15, C16, C17, C18, C19, C20, C23, C24, C27, C29, C30, C31, C32 +11 |
| 8 | 4K7 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R2, R3, R4, R7, R8, R16, R39, R40 |
| 6 | LED | LED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolder | D2, D4, D5, D7, D8, D9 |
| 5 | 10K | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R11, R14, R17, R25, R27 |
| 5 | 220R | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R32, R33, R35, R36, R37 |
| 4 | 10u | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C22, C35, C45, C46 |
| 4 | 1u | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C13, C33, C34, C41 |
| 4 | 5K1 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R19, R20, R21, R22 |
| 3 | 2.2u | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C2, C10, C11 |
| 2 | 10k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R9, R30 |
| 2 | 18pF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C37, C38 |
| 2 | 2u2 | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C25, C28 |
| 2 | 60R | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R1, R5 |
| 2 | 8pF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C21, C26 |
| 2 | BC547 | Package_TO_SOT_THT:TO-92_Inline | Q1, Q2 |
| 2 | SS34 | Diode_SMD:D_SMA | D1, D3 |
| 2 | SW_Push | Button_Switch_SMD:SW_SPST_TL3342 | SW3, SW4 |
| 1 | 10n | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C3 |
| 1 | 150R | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R29 |
| 1 | 1k5 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R6 |
| 1 | 1u | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C47 |
| 1 | 22R | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R12 |
| 1 | 4.7k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R31 |
| 1 | 4.7n | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C8 |
| 1 | 47R | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R15 |
| 1 | BMI270 | My_Footprints:XDCR_BMI270 | U7 |
| 1 | BMM150 | Package_CSP:WLCSP-12_1.56x1.56mm_P0.4mm | U5 |
| 1 | CAN_CONN | Connector_JST:JST_GH_BM04B-GHS-TBT_1x04-1MP_P1.25mm_Vertical | J7 |
| 1 | Crystal_GND24 | My_Footprints:OSC_X322516MLB4SI | Y2 |
| 1 | Crystal_GND24 | My_Footprints:YSX321SL_YXC | Y1 |
| 1 | DEBUG | Connector_JST:JST_GH_SM06B-GHS-TB_1x06-1MP_P1.25mm_Horizontal | J6 |
| 1 | ESD2CANFD24DBZRQ1 | My_Footprints:SOT95P237X112-3N | D11 |
| 1 | FMU_PWM | Connector_JST:JST_GH_BM10B-GHS-TBT_1x10-1MP_P1.25mm_Vertical | J5 |
| 1 | FerriteBead | My_Footprints:BEADC1608X95N | FB2 |
| 1 | GPS_PORT | Connector_JST:JST_GH_BM10B-GHS-TBT_1x10-1MP_P1.25mm_Vertical | J8 |
| 1 | I2C_PORT | Connector_JST:JST_GH_BM04B-GHS-TBT_1x04-1MP_P1.25mm_Vertical | J11 |
| 1 | ICM-42688-P | My_Footprints:PQFN50P300X250X97-14N | U1 |
| 1 | ICP-20100 | My_Footprints:PQFN50P200X200X85-10N | U3 |
| 1 | IO_DEBUG | Connector_JST:JST_GH_SM06B-GHS-TB_1x06-1MP_P1.25mm_Horizontal | J15 |
| 1 | IO_PWM | Connector_JST:JST_GH_BM10B-GHS-TBT_1x10-1MP_P1.25mm_Vertical | J13 |
| 1 | LM1117DT-3.3 | Package_TO_SOT_SMD:TO-252-3_TabPin2 | U6 |
| 1 | POWER | Connector_JST:JST_GH_BM06B-GHS-TBT_1x06-1MP_P1.25mm_Vertical | J9 |
| 1 | PPM_PORT | Connector_JST:JST_GH_BM03B-GHS-TBT_1x03-1MP_P1.25mm_Vertical | J17 |
| 1 | SBUS_IN | Connector_JST:JST_GH_BM03B-GHS-TBT_1x03-1MP_P1.25mm_Vertical | J16 |
| 1 | SBUS_PORT | Connector_JST:JST_GH_BM03B-GHS-TBT_1x03-1MP_P1.25mm_Vertical | J14 |
| 1 | SN65HVD230 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U9 |
| 1 | SPI_PORT | Connector_JST:JST_GH_BM07B-GHS-TBT_1x07-1MP_P1.25mm_Vertical | J3 |
| 1 | STM32F103CBTx | Package_QFP:LQFP-48_7x7mm_P0.5mm | U4 |
| 1 | STM32F765VITx | Package_QFP:LQFP-100_14x14mm_P0.5mm | U2 |
| 1 | TELEM1 | Connector_JST:JST_GH_BM06B-GHS-TBT_1x06-1MP_P1.25mm_Vertical | J1 |
| 1 | TELEM2 | Connector_JST:JST_GH_BM06B-GHS-TBT_1x06-1MP_P1.25mm_Vertical | J2 |
| 1 | TELEM3 | Connector_JST:JST_GH_BM04B-GHS-TBT_1x04-1MP_P1.25mm_Vertical | J10 |
| 1 | TLV75733PDBVR | My_Footprints:SOT95P280X145-5N | U8 |
| 1 | UART_I2CB | Connector_JST:JST_GH_BM06B-GHS-TBT_1x06-1MP_P1.25mm_Vertical | J12 |
| 1 | USBLC6-2P6 | Package_TO_SOT_SMD:SOT-666 | U11 |
| 1 | USB_OTG | Connector_JST:JST_GH_BM04B-GHS-TBT_1x04-1MP_P1.25mm_Vertical | J4 |
| 1 | W25Q128JVS | Package_SO:SOIC-8_5.3x5.3mm_P1.27mm | U10 |
Similar boards
- 2 layers102.7 × 40 mm

- 4 layers40 × 65 mm

- 2 layers60 × 60 mm

- 2 layers71.5 × 66 mm

Dashbox
FinnKrieger/dashbox-pcb
A two-layer dashboard controller board for the USC Formula Electric car. It sits on the vehicle CAN bus, drives the driver-facing dash, and takes its power from the car's 12 V rail.
38 partsMIT - 2 layers106.7 × 36 mm

- 4 layers50 × 70 mm

- 6 layers40.6 × 40.5 mm

Flight Controller
desanv01/Flight-Controller-V2
STM32H743 controller: regulated power, signal-only ESC, neutral ArduPilot firmware, manufacturing data and engineering history.
169 partsCERN-OHL-S-2.0 - 4 layers89.9 × 88.8 mm

Questions
How big is the Custom fc rat PCB?
It measures 51 × 53.5 mm and has 6 copper layers, 1.6 mm thick.
What parts does the Custom fc rat use?
122 parts, built around the SN65HVD230D, BMM150, ICP-20100 and W25Q128JVSIQ. 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 Custom fc rat KiCad files?
From the Ekta-Gupta27/custom-flight-controller-pcb repository on GitHub, at the commit this page was made from: the board is pcb/custom_fc_rat.kicad_pcb and its schematic schematic/custom_fc_rat.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Custom fc rat design in my own project?
Its repository states no licence, so its author keeps all rights: ask Ekta-Gupta27 before reusing the design.