Skip to the content
PCBKitNew board
4 layers126 × 70 mmFipper Zero, the printed circuit board in 3D

At the cost of a flipper zero, I thought that I may never own one. Then I found a hackster.io page that went through a full DIY and cheap Flipper Zero and I thought I'd try it myself with some changes.

Size
126 × 70 mm
Copper layers
4
Thickness
1.6 mm
Parts
72
Nets
138
Pads
336
Tracks, vias
1,207, 197
Pours
4
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
19 Dec 2025
Updated
30 Jan 2026

Overview

Fipper Zero is an open-source printed circuit board by aaakum4, from the aaakum4/Sorta-Flipper-Zero repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 126 × 70 mm with 72 parts on 138 nets, routed with 1,207 tracks and 197 vias.

It is built around the AP2112K-3.3. Its parts include 28 resistors, 16 connectors, 8 capacitors, 7 switches and 1 IC. It belongs with the STM32 boards of this library.

Main components

1

README

README.md

Flipper Image

Sorta-Flipper-Zero by aaakum4 (Jake)

At the cost of a flipper zero, I thought that I may never own one. Then I found a hackster.io page that went through a full DIY and cheap Flipper Zero and I thought I'd try it myself with some changes. With this project, I should also learn a ton about PCB's and how electronics work.

V1 is a modular based project to ensure that it will work as planned, then, , I will completely custom make it for V2.

Features:

  • Bluetooth Low Energy (BLE)
  • Sub-GHz RF support (433 MHz)
  • NFC / RFID functionality
  • Infrared (IR) transmit and receive
  • On-device display
  • Physical navigation and action buttons
  • Audible feedback via buzzer
  • MicroSD card storage
  • USB-C connectivity
  • External antenna support

Not included (compared to a standard Flipper):

  • iButton / 1-Wire support - Capacitive touch input
  • Internal battery charging and management
  • Integrated antennas
  • Fully enclosed, consumer-ready housing (I will make one for v2)

Step 1 - Looking at the Flipper Zero Hardware

Before starting this project, I went through the Flipper Zero hardware documentation to understand how the device is built and what components it uses.

https://docs.flipper.net/zero/development/hardware/tech-specs https://docs.flipper.net/zero/development/hardware/schematic

image

From this, I created the table below listing the main hardware blocks used in the Flipper Zero. This table is used as a reference to understand the system, not something to copy directly.

Flipper Zero – Hardware Component Overview

Screenshot 2025-12-19 at 7 44 55 pm

Simplifying the Design (v1)

To keep the first version realistic and achievable, a few things were intentionally simplified.

USB Power Only

The device is powered only through USB, with no internal rechargeable battery. This removes a lot of complexity around battery charging and safety, and makes early testing much easier. Portability isn’t the focus for the first version.

BLE Using a Module or Dev Board

Instead of designing a full BLE RF circuit, this project uses either an STM32WB5MMG module or a NUCLEO-WB55RG during early development. This avoids antenna tuning issues and lets me focus more on firmware and overall system behaviour.

Simpler Sub-1 GHz Antenna

The Flipper Zero uses an antenna multiplexer to optimise different Sub-1 GHz bands. For this project, that part is left out. A single antenna is used instead, which means reduced range, but much simpler hardware and easier bring-up.

Physical Reset Button

Rather than copying the Flipper Zero’s reset button combination logic, this design uses a dedicated reset button. This keeps the schematic simpler and is more practical while debugging.

Step 2 - v1 Hardware Selection (Module Based)

Based on the Flipper Zero reference design and the simplifications outlined above, the following components were chosen for the v1 module-based prototype. This list reflects what will actually be used in the first working version of the project.

V1 - Selected Components:

Screenshot 2025-12-19 at 8 00 04 pm

Step 3 – Schematic Design

With the overall architecture defined, I moved on to creating the full schematic in KiCad. The goal at this stage was to produce a complete, electrically correct design that could realistically be turned into a PCB, while still keeping the project modular and easy to iterate on.

I started by placing the STM32WB5MMGH6TR module and wiring all required power pins according to ST’s reference designs. This included separating the digital and analog supplies, tying VREF+ to VDDA, and correctly handling VBAT and VDDUSB. Decoupling capacitors were added close to each supply pin to ensure stable operation.

Next, the power system was designed around USB-C input. A main 3.3 V rail powers the MCU and core logic, while a second 3.3 V rail is used for external peripherals.

Peripheral interfaces were then added. Instead of hard-coding specific modules, generic headers were used for NFC, Sub-1 GHz RF, display, IR, vibration, and expansion. These headers are labeled to match common module pinouts, allowing different breakout boards to be tested without changing the core design. Shared buses like SPI were carefully routed with separate chip-select signals.

Finally, the schematic was cleaned up and checked for electrical correctness. ERC warnings were addressed, unused pins were left intentionally for future use, and the design was reviewed to ensure it matched the original goals of being practical, modular, and suitable for a first hardware revision.

Screenshot 2025-12-20 at 10 05 20 pm

This step, to be honest, was kinda cooked. I went in a bit over my head with this and it took wayyyy longer than I had hoped and probably needed.

Step 4 - Schematic fixes and cleanup

After the initial schematic was complete, I spent time going back through it to fix a number of electrical and structural issues flagged by ERC. This step was mainly about correcting mistakes rather than adding new features.

Most of the changes were around power domains, making sure VDD, VDDA, VREF+, VBAT, and VDDUSB were connected correctly and matched the STM32WB module datasheet. I cleaned up grounding, added and adjusted local decoupling capacitors, and removed a few incorrect connections that were previously masking ERC errors instead of solving them properly.

I also fixed the Bluetooth RF path, reworking the RF_OUT pin so it is routed through a DC-blocking capacitor to a u.FL connector. This replaces earlier incorrect handling of the RF pin and makes the onboard BLE functionality usable while keeping the design clean and standards-compliant.

Screenshot 2025-12-22 at 11 09 07 pm

Screenshot 2025-12-22 at 11 08 50 pm

This is an amazing sight, no ERC errors 🙏🏻

Step 5 - Sorting and routing the board

I am now a new man...

This was my third time routing a PCB, and it was a mix of improvement… and pain. The Xiao MCU I used for the Macropad and the ESP32-S3-WROOM-1u for the development board don’t come close to the challenge I just faced. The STM32WB5MMG is tiny but packed with pins, making it a real test of patience. That said, I’m finally done, and I couldn’t be happier.

There were multiple reroutes along the way, mostly caused by pin congestion around the MCU and the sheer number of external connectors. Some compromises were necessary, like tighter clearances and smaller vias, but in the end, the board reached a fully routable and manufacturable state.

While it’s not perfect, this routing pass made me really proud of how far I’ve come since the Macropad project. It was a clear reminder that schematics are the easy part—routing is where designs are truly made or broken.

For this project, I worked with a 4-layer board (my first board over 2 layers) to manage density and RF performance, especially around the RF/Bluetooth section. I created a dedicated antenna keep-out zone to avoid copper interference, routed USB D+ and D− as a matched, parallel pair to maintain signal integrity, and widened power traces to 0.5 mm to reduce voltage drop.

Given the tight board size, I had to selectively use smaller vias and reduced trace widths in congested areas to complete the routing without violating design rules. To make assembly easier, I also added silkscreen boxes around each functional module, improving clarity and helping with placement. Looking back, having dedicated GND and +3.3 V layers definitely made this step much more manageable compared to what it would’ve been without them.

The board

Size: 125mm x 70mm (quite alot bulkier than a normal flipper, I have no clue how they do it) Vias:

  1. Defult: 0.6 x 0.3
  2. Smaller (Due to cramped space): 0.45 x 0.2 Routes:
  3. Defult: Clearance = 0.2, Width = 0.2
  4. Power: Clearance = 0.2, Width = 0.5
  5. Smaller: Clearance = 0.2, Width = 0.15

image

Layer 1:

image

Layer 2: GND

image

Layer 3: +3V3

image

Layer 4:

image

3D:

image

image

Estimated Time: ~2 hours of planning & component placement ~6 to 8 hours of routing + rerouting ~2 to 3 hours of cleanup, checks, and second-guessing everything

(Plus bonus time staring at the screen being stupid)

Step ??? - Spontaneous Micro Project

For v2 of the Sorta Flipper Zero, I’ll most likely need to make a copper trace antenna for the NFC. For V1, I’m using a module, but I didn’t want to jump into V2 blindly. I decided to spend some time understanding how the module works, what I can bridge across, and even built my own small NFC card as an introduction to what I’ll need to do in V2.

Here’s the datasheet for the NFC module I hope to use: ST X-NUCLEO-NFC08A1

One thing I quickly noticed is that the antenna matters a lot. The orientation, size, and shape of the coil strongly affect the read range, and even small changes in trace layout or nearby copper can weaken the signal. This made it clear that designing a custom antenna will require careful attention.

I also learned that matching the antenna to the module is critical. The module expects the antenna to have roughly the right inductance; otherwise, communication becomes unreliable. Experimenting with the card showed me how adding or removing a turn in the coil noticeably changes performance.

Using the module is convenient because it handles much of the tuning internally. But seeing it in action made it obvious that if I want a custom copper trace for V2, I’ll need to account for these details myself.

This is the PCB I made from a simple schematic. I originally included an LED, but removed it in the PCB for the sake of readability and clarity. The file is in its own folder.

PCB:

image

3D:

image

image

This step is not nesassary at all, but I truly found it really helpful with general understanding of this concept and I think it will be even more helpful when I make v2.

Parts

Since alot of this iteration will be using modules there isn't that much soldering. Here is the parts list from JLCPCB PCBA.

image

Firmware

Generating OTP Data (Flipper Zero)

This project uses the Flipper Zero firmware OTP generation script (scripts/otp.py) derived from the official Flipper Zero firmware repository (licensed under GPL-3.0) to generate device-specific OTP data.

Example:

text
cd flipperzero-firmware/scripts

./otp.py generate \
  --version $((0x0c)) \
  --firmware $((0x07)) \
  --body $((0x09)) \
  --connect $((0x06)) \
  --display "mgg" \
  --color "transparent" \
  --region "world" \
  --name "Greg" \
  myotp

Warning: OTP memory is one-time programmable. Flashing incorrect data may permanently affect the device.

Installing Firmware via qFlipper

https://github.com/flipperdevices/qFlipper.git Firmware installation is performed using qFlipper, the official Flipper Zero desktop application.

  1. Install qFlipper from the official Flipper Zero website
  2. Connect the device via USB
  3. Select the appropriate firmware package
  4. Follow on-screen flashing instructions

This project may reference prebuilt firmware or OTP data derived from the Flipper Zero firmware repository. All such components remain licensed under GPL-3.0, and source code is provided in accordance with that license.

⚠️ Problem solving

The NFC chip used on the X‑NUCLEO expansion board is the ST25R3916B, which has a different IC identity value to the ST25R3916 used in the Flipper Zero. Although the two chips share the same register map and functionality, the firmware performs an identity check during initialisation, causing the driver to fail when the B variant is detected.

To resolve this, I forked the official Flipper Zero firmware repository (https://github.com/flipperdevices/flipperzero-firmware) and modified the NFC driver to accept the ST25R3916B IC identity. This allows the existing firmware to operate correctly with the alternative NFC hardware without affecting functionality.

The modified source code is available here: https://github.com/aaakum4/flipperzero-firmware.git

License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0).

This project includes and is derived from code from:

  • flipperzero-firmware by skotopes (Top contributor) Licensed under GPL-3.0

Parts

72
QtyValueFootprintReferences
2247Resistor_SMD:R_0603_1608MetricR1, R2, R3, R4, R5, R10, R11, R12, R13, R14, R15, R16, R17, R19, R20, R21 +6
7SW_PushButton_Switch_THT:SW_PUSH_6mmSW1, SW2, SW3, SW4, SW5, SW6, SW7
6100nFCapacitor_SMD:C_0603_1608MetricC1, C3, C4, C5, C6, C7
45.1kResistor_SMD:R_0603_1608MetricR18, RP1, RU1, RU2
310uCapacitor_SMD:C_0805_2012MetricCP1, CP2, CP3
2AP2112K-3.3Package_TO_SOT_SMD:SOT-23-5UP1, UP2
2Conn_01x05Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ10, J13
10Resistor_SMD:R_0402_1005MetricR23
110Resistor_SMD:R_0603_1608MetricR22
11uFCapacitor_SMD:C_0603_1608MetricC2
14.7uFCapacitor_SMD:C_0805_2012MetricC8
1Buzzerlcsc:BUZ-TH_BD9.0-P4.00-D0.6-FDBZ1
1CN5Connector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_VerticalJ1
1CN6Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ2
1CN8Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ4
1CN9Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ3
1Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ11
1Conn_01x03Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ12
1Conn_01x13Connector_PinHeader_2.54mm:PinHeader_1x13_P2.54mm_VerticalJ14
1Conn_01x18Module:Flipper_Zero_StraightJ15
1Conn_02x04_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ5
1Conn_CoaxialConnector_Coaxial:U.FL_Hirose_U.FL-R-SMT-1_VerticalJ16
1D_SchottkyDiode_SMD:D_SOD-123D1
1IR ReceiverConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalIR2
1IR TransmitterConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalIR1
1LOGOGraphics:larger baby gojoG***
1LOGOGraphics:Gojo midG***
1MicroSD CardConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ7
1STM32WB5MMGH6TRlcsc:LCC-LGA-86_L11.0-W7.3_STM32WB5MMGH6TRU1
1SwitchConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ8
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12USB1
1Vibration moduleConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ9
1iButton ConnectorConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ6

Questions

How big is the Fipper Zero PCB?

It measures 126 × 70 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Fipper Zero use?

72 parts, built around the AP2112K-3.3. 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 Fipper Zero KiCad files?

From the aaakum4/Sorta-Flipper-Zero repository on GitHub, at the commit this page was made from: the board is PCB/Fipper Zero.kicad_pcb and its schematic NFC Micro-project/NFC Card.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Fipper Zero 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).

More from aaakum4/Sorta-Flipper-Zero

1
  • 2 layers37 × 51.6 mmNFC Card, the printed circuit board in 3D

    NFC Card

    aaakum4/Sorta-Flipper-Zero

    At the cost of a flipper zero, I thought that I may never own one. Then I found a hackster.io page that went through a full DIY and cheap Flipper Zero and I thought I'd try it myself with some changes.

    4 parts9GPL-3.0

Similar boards

  • 2 layers26 × 30 mmMicrocontroller, the printed circuit board in 3D

    Microcontroller

    FrameworkComputer/ExpansionCards

    Reference designs and documentation to create Expansion Cards for the Framework Laptop

    34 parts1.1kCC-BY-4.0
  • 2 layers53.2 × 24.8 mmPicoLink, the printed circuit board in 3D

    PicoLink

    ErichStyger/mcuoneclipse

    McuOnEclipse projects and examples

    46 parts765
  • 2 layers36 × 20 mmCombined, the printed circuit board in 3D

    Combined

    adamb314/ServoProject

    Getting the most out of your hobby servo

    24 parts545
  • 2 layers25 × 25 mmSmallEncoder, the printed circuit board in 3D

    SmallEncoder

    DDeGonge/OS-ARM

    This arm is not industrial and it will not be fast, but that is not my goal. But it will hopefully be a very nice looking arm fully capable of 6dof motion, cheap enough to keep it accessable but capable enough to…

    17 parts498MIT
  • 4 layers70 × 72 mmSPINC AA Charger, the printed circuit board in 3D

    SPINC AA Charger

    CoretechR/SPINC

    DIY Automatic Battery Charger Using RP2040

    101 parts467GPL-3.0
  • 4 layers60.8 × 61.3 mmOS3M Mouse, the printed circuit board in 3D

    OS3M Mouse

    spoter368/os3m-hardware

    All the hardware needed to build your own OS3M Mouse!

    51 parts399
  • 4 layers74 × 104 mmBeepy, the printed circuit board in 3D

    Beepy

    sqfmi/beepy-hardware

    Beepy Hardware

    160 parts348MIT