MCPcopy Index your code
hub / github.com/Magnowz/Flipper-Diy

github.com/Magnowz/Flipper-Diy @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
6 symbols 12 edges 23 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Guide: STM32WB55CGU6 as "Flipper Zero" from Nucleus Dark

This was created to help people with F*ckingCheapFlipperZero project build, and it is based on the experiences of its early adaptors community.

Project github: https://github.com/GthiN89/FuckingCheapFlipperZero

Flipper Diy

This repository documents, in a straightforward way, how to configure an STM32WB55CGU6 board to function similarly to the Flipper Zero. The focus is: generating OTP data, writing it safely, and installing a modified firmware compatible with the pinout.


What you'll need

Hardware

Software


Before you start

  • This process involves writing to OTP (One-Time Programmable) memory. Proceed with caution.
  • Keep your laptop/PC connected to power and avoid USB cable disconnections.
  • Have the correct drivers ready (on some PCs, you'll need to use Zadig to select USB Serial or WinUSB).

Step 1 — Create the OTP file

OTP records unique device information (name, color, region, etc.).

  1. Open the OTP utility (for example, qFlipper OTP.exe).
  2. Fill in the fields as needed:
  3. Version: 12 | Firmware: 7 | Body: 9 | Connection: 6
  4. Display (显示屏型号): mgg
  5. Color: black, white, or transparent
  6. Region: en_ru, us_ca_au, jp, or world
  7. Name: up to 8 characters (latin and numbers only)
  8. Define a name for the generated file and click Generate file.

Step 2 — Write OTP to the microcontroller

Warning: writing OTP is a sensitive action; proceed at your own risk.

  1. Connect the board to PC while holding the BOOT0 button pressed.
  2. Open STM32CubeProgrammer and select USB as connection type.
  3. Update the device list, choose the detected port, and click Connect.
  4. Select the OTP file generated in the previous step.
  5. In "Start Address", enter:

0x1FFF7000

  1. Click Start Programming and wait for completion.

If the process freezes or the device "disappears": close everything, reinstall drivers/STM32CubeProgrammer, change USB port, and try again.


Step 3 — Upload custom firmware (qFlipper)

Recommendation: remove the microSD card from this step to avoid error messages.

  1. Open qFlipper with the board connected.
  2. If the device doesn't appear, install via Zadig the USB Serial or WinUSB driver.
  3. If the maintenance screen appears, click Repair and wait. Repeat 1-3 times if necessary.
  4. Choose Install from file and select the modified firmware (.dfu).
  5. Wait for the installation to complete.

Diagrams

SDCard Diagram 5258121340446175632

Buttons Diagram 5262800230573799919

Optional Buttons without SN74HC165N

WARNING: this option may cause heavy lag and slow performance!
For this feature use firmware flipper-z-f7-full-mntm-momentum-75bfde09.dfu

Diagram 5262800230573799919

Display 8 Pins Diagram 5285134240901625405

CC1101 Diagram 5285134240901625406

Display 14pins Diagram 5285134240901625407

Step 4 — Prepare the microSD

With the firmware active, copy to the microSD the recommended databases and folders (default content to avoid errors when using protocols/functions).


Quick troubleshooting

  • Device doesn't appear in qFlipper: check cables/USB port and reinstall drivers with Zadig.
  • OTP programming failure: confirm address 0x1FFF7000, restart STM32CubeProgrammer, and try again.
  • "Repair" loop: repeat the process up to 3 times; if it persists, reinstall qFlipper.

Final notes

  • Ensure the modified firmware matches your hardware pinout.
  • Review OTP information before writing—it's a one-time write.
  • Backup microSD files and the firmware used.

Credits

Nucleus Dark,Just Enotik,den4ik

And the entire FuckingCheapFlipperZero discord community that is always helping, sorry if I forgot to mention anyone's name.

More information

More information precompiled firmwares , schematics and instructions to build your own firmware, released as open-source by Nucleus Dark.

Core symbols most depended-on inside this repo

addText
called by 14
SDCard/apps/Scripts/Examples/spi.js
printRXline
called by 2
SDCard/apps/Scripts/Examples/subghz.js
changeFrequency
called by 2
SDCard/apps/Scripts/Examples/subghz.js
i2c_find_first_device
called by 1
SDCard/apps/Scripts/Examples/i2c.js
generateRandomMac
called by 1
SDCard/apps/Scripts/Examples/blebeacon.js
sendRandomModelAdvertisement
called by 1
SDCard/apps/Scripts/Examples/blebeacon.js

Shape

Function 6

Languages

TypeScript100%

Modules by API surface

SDCard/apps/Scripts/Examples/subghz.js2 symbols
SDCard/apps/Scripts/Examples/blebeacon.js2 symbols
SDCard/apps/Scripts/Examples/spi.js1 symbols
SDCard/apps/Scripts/Examples/i2c.js1 symbols

For agents

$ claude mcp add Flipper-Diy \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact