Skip to the content
PCBKitNew board
4 layers92.7 × 72.5 mmProPrj IRIS, the printed circuit board in 3D

ProPrj IRIS

Eugene109/IRIS6

A PCB drone designed for swarm capabilities

Size
92.7 × 72.5 mm
Copper layers
4
Thickness
1.6 mm
Parts
259
Nets
179
Pads
935
Tracks, vias
2,282, 601
Pours
66
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
20 Mar 2026
Updated
26 May 2026

Overview

ProPrj IRIS is an open-source printed circuit board by Eugene109, from the Eugene109/IRIS repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 92.7 × 72.5 mm with 259 parts on 179 nets, routed with 2,282 tracks and 601 vias.

Its parts include 83 capacitors, 82 resistors, 34 ICs, 24 transistors and 8 inductors. It belongs with the robots and motor control boards of this library.

README

README.md
IRIS

A low-cost quadcopter platform designed for autonomous swarm operations.

License

Photorealistic render from the back-right-top side of the drone

Overview

IRIS is centered around a mass-manufacturable low-cost PCB, containing a flight controller and 4 ESCs. Designed with the idea of delivering Skittles autonomously, IRIS is built from the ground-up for autonomous operation in swarms. With a rich sensor set and high degree of customizability, IRIS represents an accessible, low-cost entry into the world of autonomous and swarm drone operations. I began this project because I found a lack of accessible drone designs that are for more than just 'fun FPV flying', and I wanted to be able to program a drone to do cool things. IRIS represents a rethinking of small drone design, believing that small drones can and should be autonomous and that everyone should be able to program a drone. Photorealistic render of the front side of the PCB

Features

  • STM32H743 MCU
  • IMU, Barometer, Magnetometer, GPS
  • Integrated 4-in-1 ESC with sensorless drive
  • OV2640 camera for computer vision
  • 2.4GHz Radio Transciever + nanoELRS header
  • 2S LiPo input, XT60 connector
  • 3D-printed frame

Table of Contents

Hack Club Magazine Page

A5 magazine page

Design Features

Flight Controller Design

Annotated render of the front of the PCB         Annotated render of the back of the PCB

Schematic

The PCB design features a 4-layer PCB stackup for lowered manufacturing costs, with a (nearly) continuous ground plane for reduced RF interference. The area under the MCU and core sensors also feature a continuous 3.3V power plane. The high voltage and current for the ESCs are routed on large copper pours on the bottom layer, with cross-layer connections connected by suture vias.

The total board dimensions are 3.650" by 2.856", a little larger than a credit card.

The main flight controller MCU is programmable over USB. The 4 ESC MCUs require a serial programmer, with ground, rx and tx exposed on header pins. All MCUs have a dedicated switch for a physical boot selector.

ESC Design

Schematic

The ESC design features an STM32F303K8T6 microcontroller, a very powerful MCU that enables accurate back-emf drive even for high kV motors.

Loosely based off of this open-source design I found, https://electronoobs.com/eng_arduino_tut91.php, the wiring diagram was very helpful to guide the general layout of my ESC. The control logic is loosely based off of the arduino code, though it had to be completely rewritten to interface with STM32 hardware (really all BLDC motor control logic is the same, but nice understandable code was helpful).

Frame Design

The frame design merges swooping curves and sharp geometric angles in a retrofuturistic visual style. Inspired by the Theme Building at LAX, the frame arms are each constructed with 3 catenary curves, with the bottom arches merging together to form the cradle for the battery.

The bottom also features a -30º camera mount, which facilitates autonomous navigation, and turns into the perfect FPV mount when flown inverted. Photorealistic render from the back-left side of the drone

At the top of the frame, a little cradle with a minimalist IRIS logo debossed reserves space for a small collection of Skittles, easily dumped out by flipping the drone.

CAD render of the integrated frame + PCB

The drone frame is constructed in two pieces and held together by 8 M2 screws. The bottom half contains a battery mount and 4 9x9mm motor mounts, while the top half clamps the PCB down. The top cover shields the bulk of the PCB while leaving the high-current ESC MOSFET sections exposed for cooling, and is bolted down using 8 10mm long M2 screws and heat set inserts on the bottom half.

Getting Started

Prerequisites

  • EasyEDA Pro (recommended)
  • KiCAD 10.0 (broken DRC rules)
  • Fusion 360
  • Blender 5.0+ (pcb2blender extension required for textures)

For KiCAD Users:

This project was made in the free software EasyEDA Pro, and the design is native to that software. The PCB design has been converted to a KiCAD project for easier access to the design, but there may be some errors that have occurred during the import process, in particular trace clearances and zone fill rules.

NOTE: The KiCAD imported project relies on 3D models and footprints from LCSC, which were imported using easyeda2kicad.py.

Repository Structure

All of the files for the flight controller + ESC board are contained in pcb/, with fabrication files in pcb/fabrication/. All fabrication files are to JLCPCB specifications. All part numbers are from LCSC.

The frame CAD files can be found in the frame/ directory, with (metric) STL and 3MF exports ready for 3D printing. The cover and bottom were designed in the same Fusion360 Part, and the IRIS_Assembly.f3z is the total assembly including parts I did not design.

All of the renders on the documentation were created using Blender 5.1, and render files can be found in docs/render/.

PCB Assembly

PCB Component Bill of Materials

PCB Component BOM

Total cost from LCSC: $103.21 LCSC Quote

Assembly

The PCB gerbers can be manufactured by JLCPCB with the simple 4-layer PCBA economical service. Two-sided automated assembly is quite expensive however, so first prototypes will be assembled manually using solder stencils. PCB components can be ordered from LCSC using the LCSC BOM.

NOTE: The large copper pours are connected directly to a lot of the pads, manual soldering will require the use of a hot air rework station and powerful soldering iron

Bill of Materials

Note: the full list of components for the PCB was not included in this BOM to save space, the component BOM can be found here

PartDescriptionLinkPrice
FC+ESC4-layer PCB A Economic, HASL(leaded) finish, 2 stencils w/ frameworkJLCPCB (Please upload ./pcb/fabrication/gerbers.zip to order the PCB)29.23
FC+ESCIRIS PCB ComponentsLCSC (Please upload ./pcb/fabrication/BOM_Board1_PCB1.xlsx to order the components)103.21
Battery1000 mAh 2S LiPo with XT60 connectorAdmiral9.99
Motors4x 8000 kV 1103 Brushless DCAliExpress23.99
PropellersGemfan 2512 2.5Inch 3-Blade 1.5mm Hole Propeller - 4CW+4CCWPyrodrone4.99
CameraOV2640 with SCCB cableAliExpress4.20
Heat-set insertsM2x2.5mm, 3.5mm OD Knurled Brass Threaded Heat Set InsertsRusty Bolt Shop1.70
Frame screwsM2x10mm screwsThe Rusty Bolt Shop2.02
Motor mount screwsM2x8mm screwsThe Rusty Bolt Shop2.56
Vibration dampening foam3M Double Coated Urethane Foam Tape 4056Newegg14.99

Total: $196.88 (minus shipping)

Drone Assembly

  1. Print the frame in two sections
  2. Attach heat-set inserts with a soldering iron on the base half of the frame.
  3. Cut 4056 foam to shape and attach to the PCB contact areas on both sides of the frame.
  4. Attach the OV2640 camera SCCB cable to the connector and attach 4056 foam to the back of the sensor.
  5. Insert the assembled PCB between the two frame sections and bolt down all 8 M2x10mm screws.
  6. Slot the camera sensor into its 30º mount and attach using 4056 foam.
  7. Insert the battery into the cradle underneath the PCB, mount it with 4056 foam and fasten down with zip ties across the horizontal beams, inside of the grooves.
  8. Attach brushless motors with M2x8mm screws.
  9. Press-fit 2CCW and 2CW propellers onto the four brushless motors' 1.5mm shafts.
  10. Flash the Betaflight firmware using a USB-C cable.
  11. Flash the Zephyrus firmware to all four ESCs using a serial programmer attached to the 4-pin headers.
  12. Fly!

Firmware

Betaflight

This flight controller is capable of running Betaflight, and the configuration header for a Betaflight target can be found in firmware/betaflight/. The compiled binaries can be found in the same directory, and the .hex file is recommended. The source code can be found at the Betaflight firmware repository, and the config.h file can be copied into the config directory to build it yourself.

The flight control software can be flashed using the USB-C port on the aft of the drone. Simply plug it in and use STMCubeProgrammer to flash it!

Zephyrus

The ESCs run custom firmware, named Zephyrus. The binaries and source code is available at its repository.

Zephyrus is currently capable of sensorless back-EMF drive, and runs on the STM32F303K8T6 MCU platform. The sensorless drive is powered by ADC zero-crossing detection synchronized with the PWM output to the MOSFET drivers. The choice to use software detection of zero-crossing over hardware comparators was for the increased flexibility as the firmware matures, enabling more interesting control systems than just zero-crossing alone.

The ESCs are a bit harder to flash, though they should require only a single flashing when the firmware is tuned. Connect a serial programmer (FTDI, hijack an Arduino, etc) to the RX, TX, and GND pins and flash the MCU using the ROM bootloader. To switch the MCU to the built-in bootloader to program, simply flip the boot selector switch and press the reset button.

Roadmap

  • PCB designed
  • Case designed
  • PCB assembled
  • Prototype assembled
  • Prototype tested
  • Firmware finalized
  • PCB mass-produced

License

Everything is GNU GPL-3.0

zephyrus firmware is licensed under MIT, check its repo for more information.

Trademark Notice: Skittles® is a registered trademark of Mars, Inc. This project is not affiliated with, or sponsored by Mars, Inc. References to Skittles and any associated imagery are for descriptive purposes only.

Attribution

1103 BLDC motor 3D model used in Fusion Assembly is from GrabCAD by Dang Ngoc Duy

2.5" propeller 3D model used in Fusion Assembly is from GrabCAD by Buddhas_Priest

rostock_laage_airport_4k.exr is CC0 from PolyHaven, credit to Greg Zaal

Inspiration was taken from [Electronoobs's ESC design], informing the framework for a standard ESC architecture.

None of the PCB 3D models are my own work, they come from LCSC's libraries.

Parts

259
QtyValueFootprintReferences
53ProPrj_IRI-easyedapro:C0402C2, C10, C11, C12, C13, C14, C15, C16, C105, C106, C107, C108, C109, C110, C114, C121 +37
51ProPrj_IRI-easyedapro:R0603R1, R2, R3, R10, R15, R16, R17, R19, R20, R21, R22, R23, R24, R28, R29, R30 +35
31ProPrj_IRI-easyedapro:R0402R11, R12, R13, R14, R18, R25, R26, R27, R31, R32, R37, R38, R39, R40, R50, R51 +15
24ProPrj_IRI-easyedapro:TO-252-3_L6.6-W6.1-P4.57-LS9.9-BR-CWQ1, Q2, Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q17, Q18, Q19, Q20, Q21, Q22, Q23 +8
13ProPrj_IRI-easyedapro:C0805C4, C5, C6, C36, C37, C38, C55, C57, C58, C59, C68, C70, C96
12ProPrj_IRI-easyedapro:C0603C1, C25, C27, C94, C97, C98, C100, C103, C112, C113, C115, C116
12ProPrj_IRI-easyedapro:SOIC-8_L4.9-W3.9-P1.27-LS6.0-BLU1, U7, U10, U13, U14, U16, U17, U19, U20, U21, U22, U24
5ProPrj_IRI-easyedapro:SW-SMD_2P-L6.2-W2.5-LS9.4U5, U6, U8, U12, U35
5ProPrj_IRI-easyedapro:L0402L1, L2, L3, L4, L5
5ProPrj_IRI-easyedapro:HDR-TH_4P-HX-PH254-01-04-Z-L11.5H1, H2, H3, H4, H5
5ProPrj_IRI-easyedapro:SW-SMD_L3.9-W3.0-LS5.0SW1, SW2, SW3, SW4, SW5
4ProPrj_IRI-easyedapro:CAP-SMD_BD6.3-L6.6-W6.6-LS7.2-FD_3C117, C118, C119, C120
4ProPrj_IRI-easyedapro:LQFP-32_L7.0-W7.0-P0.80-LS9.0-BLU9, U15, U18, U23
1ProPrj_IRI-easyedapro:LGA-14_L3.0-W2.5-P0.50-TLU2
1Pad_e3517
1ProPrj_IRI-easyedapro:TSOT-23-6_L2.9-W1.6-P0.95-LS2.8-BLU11
1Pad_e836
1ProPrj_IRI-easyedapro:SOT-223-4_L6.5-W3.5-P2.30-LS7.0-BRU25
1Pad_e3373
1Pad_e2994
1Pad_e2995
1Pad_e2996
1ProPrj_IRI-easyedapro:LGA-12_L2.0-W2.0-P0.50-BLU4
1ProPrj_IRI-easyedapro:ANT-TH_L18.0-W18.0_C9900026472L8
1ProPrj_IRI-easyedapro:LQFP-100_L14.0-W14.0-P0.50-LS16.0-BLU33
1Pad_e3376
1ProPrj_IRI-easyedapro:CRYSTAL-SMD_4P-L2.0-W1.6-BLU31
1Pad_e339
1Pad_e4442
1ProPrj_IRI-easyedapro:IND-SMD_L3.0-W3.0-1L6
1Pad_e3516
1Pad_e4444
1ProPrj_IRI-easyedapro:LED0603-FDU36
1Pad_e680
1Pad_e4443
1ProPrj_IRI-easyedapro:SOT-23-3_L3.0-W1.6-P1.90-LS2.8-BRU29
1ProPrj_IRI-easyedapro:SW-TH_SHOU-HAN_SS12D10G4U34
1Pad_e3514
1ProPrj_IRI-easyedapro:GPSM-SMD_ATGM336H-TRU27
1ProPrj_IRI-easyedapro:LGA-8_L2.5-W2.0-P0.65_AMP6127U3
1ProPrj_IRI-easyedapro:SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BRU30
1ProPrj_IRI-easyedapro:FPC-SMD_24P-P0.50_FPC-05F-24PH20FPC1
1ProPrj_IRI-easyedapro:CONN-TH_XT60PW-MCN1
1Pad_e3380
1ProPrj_IRI-easyedapro:COMM-SMD_E01C-ML01SP4U32
1ProPrj_IRI-easyedapro:IND-SMD_L1.8-W1.0L7
1ProPrj_IRI-easyedapro:CAP-SMD_L3.2-W1.6-RD-C7171C99
1ProPrj_IRI-easyedapro:USB-C-SMD_KH-TYPE-C-16PUSB3

Questions

How big is the ProPrj IRIS PCB?

It measures 92.7 × 72.5 mm and has 4 copper layers, 1.6 mm thick.

What parts does the ProPrj IRIS use?

259 parts. 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 ProPrj IRIS KiCad files?

From the Eugene109/IRIS repository on GitHub, at the commit this page was made from: the board is pcb/kicad/ProPrj_IRIS.kicad_pcb and its schematic docs/logo/logo/logo.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ProPrj IRIS design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 4 layers81.2 × 81.2 mmView base, the printed circuit board in 3D

    View base

    SeedLabs-it/smartknob-hardware

    PCB and CAD files for smartknob devkit

    259 parts47
  • 4 layers54 × 50.1 mmNigun, the printed circuit board in 3D

    Nigun

    raziele/Nigun

    1.5-3GHz RF down-converter for RTL-SDR

    259 parts40
  • 4 layersIONPAK2, the printed circuit board in 3D

    IONPAK2

    m-labs/ionpak

    A modern, low-cost universal controller for hot-cathode ionization vacuum gauges. (WIP)

    259 parts23
  • 4 layers88 × 94.5 mmFC V5e Production Rev1, the printed circuit board in 3D

    FC V5e Production Rev1

    proveskit/flight_controller_board

    The main flight computer board for the PROVES Kit.

    259 parts6CERN-OHL-W-2.0
  • 4 layers182.2 × 117.8 mmPowerDistribution, the printed circuit board in 3D

    PowerDistribution

    LHRIC/Monorepo-26-27

    Monorepo for the 26-27 Season

    259 parts4
  • 4 layers285 × 94.6 mmFlux60-HS ANSI61, the printed circuit board in 3D

    Flux60-HS ANSI61

    Sagit-chu/Flux60-HS

    Open-source 60% Hall-effect keyboard PCB targeting 32 kHz scanning and native USB 8 kHz polling

    259 parts2
  • 4 layers230 × 135 mmVancontroller, the printed circuit board in 3D

    Vancontroller

    Camperlux/vancontroller

    VanController: ESP32-S3 12 V campervan controller board (6 fused relays, 6 PWM dimmers, CAN, RS485, GPS) - KiCad 10 design, manufacturing files and enclosure. Free for non-commercial use.

    259 parts
  • 4 layers191 × 116 mmTVCS, the printed circuit board in 3D

    TVCS

    Mig-M27/Avionics-PCBs

    Este repositório é usado para gerir as versões dos projetos KiCAD do sistema de Avionics da Porto Space Team. Está dividido em 2 secções: 1.

    259 parts