Skip to content

Latest commit

Β 

History

28 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OLED-FlipperZero_Tutorial

Warning

I do not take responsibility if you damage your board or property. This guide is for educational purposes only β€” proceed at your own risk.

Note

❓Do you want to use the liquid crystal display with this firmware because it has all the functions? Scroll to the very bottom.

Tip

❓ Need help or have questions about building/flashing the DIY Flipper? Join our community Q&A and troubleshooting discussion: GitHub Q&A Discussion #4

πŸ“· Hardware Showcase

4 3 6 5

πŸ” Summary

This project implements a custom target for a DIY Flipper-style board based on the WeAct STM32WB55CGU6 board. It integrates the following components:

  • Display: I2C OLED display (SH1106 / SSD1306)
  • Sensors: INA219 / INA226 power & battery monitor (I2C) with hardware Alert (PB1)
  • I/O Expander: MCP23017 (handles buttons, RGB LED, and vibration motor)
  • Storage: microSD slot (SPI)
  • Radio: CC1101 sub-GHz module (SPI)
  • NFC: ST25R3916 Elechouse module (SPI)
  • LF-RFID (125 kHz): Antenna coil driver & envelope detector (PA5 Carrier TX / PA1 Data RX)
  • Peripherals: Speaker/buzzer, IR transmitter/receiver, vibration motor

The long-awaited tutorial on Flipper Zero OLED FW SSD1306 / SH1106.

πŸš€ Flashing Process

1. First Stage β€” OTP

Caution

OTP memory can only be written ONCE. It cannot be erased or changed. Proceed at your own risk. First of all, we flash the OTP:

  1. Download the STM32CubeProgrammer.
  2. Connect the board with the BOOT pin clamped via USB.
  3. Go to the Erasing & programming tab.
  4. 1
  5. Click Browse and select the First_otp.bin file and enter the address 0x1FFF7000 (we don't check any boxes) and click Start Programming.
  6. 2
  7. Next, select the file Second_otp.bin and enter the address 0x1FFF7018.

Congratulations, you have flashed the OTP addresses onto your board!


2. Second Stage β€” Flashing qFlipper

  1. Download qFlipper.
  2. Connect the STM32 while holding down the BOOT button, click Install from file, select First.dfu and click INSTALL, then wait for it to finish.

Note

Next, you MUST connect the micro SD card according to this scheme:

  • SD CS: A10
  • SD MOSI: B5
  • SD MISO: A8
  • SD SCK: B3

As soon as you connect the SD card, plug in the STM32 without holding down the BOOT button so that it starts in normal mode. As soon as it starts, click Install from file again and select update_v2-1.tgz.

After that, your board is fully flashed!

⚑ Hardware

The best way to connect it would, of course, be to purchase my printed circuit board, which is designed to fit the original housing, but I will also fully demonstrate the correct wiring diagram. scheme

πŸ”Œ External GPIO Header Pinout (18-Pin)

The DIY Flipper Zero features a standard 18-pin expansion header fully compatible with Flipper Zero accessories. Below is the exact hardware routing and peripheral mapping:

Header Pin Flipper OS Name Physical MCU Pin Available Hardware Functions Notes & Usage
1 5V β€” +5V Power Output (from USB VBUS) Power external modules
2 A7 (PA7) PB5 GPIO, PWM (TIM1), SPI1 MOSI Shared with on-board SPI1 MOSI bus (SD / CC1101)
3 A6 (PA6) PA6 GPIO, ADC (CH11), SPI1 MISO Shared with on-board SPI1 MISO bus (SD / CC1101)
4 A4 (PA4) PA4 GPIO, ADC (CH9), PWM (LPTIM2) Dedicated free GPIO / ADC / PWM
5 B3 (PB3) PB3 GPIO, SPI1 SCK Shared with on-board SPI1 SCK clock line
6 B2 (PB2) PB2 GPIO Dedicated free GPIO
7 C3 (PC3) PA5 GPIO, ADC (CH4), TIM2_CH1 Routed to PA5 (used internally for LF-RFID 125 kHz TX carrier)
8 GND β€” Ground (GND) Common ground
9 3V3 β€” +3.3V Power Output Main regulated 3.3V power rail
10 SWCLK PA14 SWD Clock, Debug GPIO Hardware debug / ST-Link SWD clock
11 GND β€” Ground (GND) Common ground
12 SWDIO PA13 SWD Data, Debug GPIO Hardware debug / ST-Link SWD data
13 TX PB6 USART1 TX, GPIO Hardware UART Transmit (Serial CLI / external sensors)
14 RX PB7 USART1 RX, GPIO Hardware UART Receive (Serial CLI / external sensors)
15 C1 (PC1) PB4 GPIO, ADC (CH2), I2C3 SDA Shared internally with I2C3 SDA and NFC MISO
16 C0 (PC0) PA7 GPIO, ADC (CH1), I2C3 SCL Shared internally with I2C3 SCL
17 1W (iButton) PA3 1-Wire, GPIO Dallas 1-Wire key read & emulation (DS1990)
18 GND β€” Ground (GND) Common ground

Tip

  • Recommended General-Purpose Pins: Pins 4 (PA4) and 6 (PB2) are completely unshared and ideal for relays, servos, buttons, or custom sensors.
  • External SPI Modules: When connecting external SPI devices to Pins 2 (MOSI), 3 (MISO), and 5 (SCK), use Pin 4 (PA4) or Pin 6 (PB2) as a dedicated Chip Select (CS) line.

Using a Liquid Crystal Display with This Firmware

This section guides you through connecting and configuring a liquid crystal display (LCD) to work seamlessly with this firmware.

πŸ“‚ Where to Find the Code

The code is in the folder How to use liquid-crystal display


⚑ Hardware

Π‘Π½ΠΈΠΌΠΎΠΊ экрана 2026-09-10 190504

🀝 We all need to say thank you to artema0g for this firmware!