The Wi-Fi module can only work in one of the Wi-Fi modes at a time. If it does not connect to a known network, you can enable Access Point mode by performing a factory reset.The Wi-Fi Debugger Module is used for debugging the Flipper Zero's firmware. To begin working with the Wi-Fi Debugger Module you'll need to install building and debugging tools on your PC, for example GDB, GCC etc. After that you can build the device's firmware, connect your device to your computer using one of the methods below and run GDB.
Installing tools to build the firmware
For the debugger to work correctly, the firmware version on the device and in the files used by the debugger should be the same. If you plan on debugging your custom firmware, you'll need to install the tools needed to build it. This option is recommended for those who don't have any experience with debugging. If you already have debug tools installed, you can get the needed debugger files from our server.
%linux%Linux
%mac%macOS
In this example Ubuntu 22.04 %linux% is used.
Commands prefixed with # should be run as root, while the ones prefixed with $ can be run as your user.
Install build-essential and make:
# apt install build-essential make libpython2.7-dev
Install arm-none-eabi-gcc 10.3.
# toolchain="gcc-arm-none-eabi-10.3-2021.10"
# toolchain_package="$toolchain-$(uname -m)-linux"
# wget -P /opt "https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/$toolchain_package.tar.bz2"
# tar xjf /opt/$toolchain_package.tar.bz2 -C /opt
# rm /opt/$toolchain_package.tar.bz2
# for file in /opt/$toolchain/bin/* ; do ln -s "${file}" "/usr/bin/$(basename ${file})" ; done
Install Python 2.7.
$ sudo apt install libpython2.7-dev
Install the libncurses5 package
$ sudo apt-get install libncurses5
For the debugger to work using USB you'll need to set up Udev deivce access rules. To do this, create the rule file:
# udevadm control --reload-rules && udevadm trigger
All the needed tools for building the firmware can be installed on macOS with the Brew package manager. Our repository already has a list of all the needed components in a Brewfile. Among them are GDB, gcc-arm-embedded and others.
<divclass="dead flipper-callout"><divclass="callout-header"></div>
There is no GDB version with Python support for Apple Silicon CPUs (M1, M1 Pro, etc). </br>
It still functions as a debugger, but you'll have to write console commands yourself.</br></div>
Make sure you have Brew installed. Clone the Flipper Zero repository and run the toolchain installation.
If you plan on debugging the official firmware and don't want to install the build tools, you can download all the needed files from our update server. Among them you'll find binary firmware files and an elf-file used by the debugger. Download the files:
Place them into you local firmware repository folder/flipperzero-firmware/dist/f7.
Building the firmware
Clone the repository to your computer and build the Flipper Zero firmware:
$ git clone https://github.com/flipperdevices/flipperzero-firmware.git
$ cd flipperzero-firmware
$ ./fbt
Connecting to the PC
Before launching GDB, you need to choose one of the two connection methods:
%usb%USB connection
%wifi%Wi-Fi connection
Connect the module to your computer with a USB cable.
When you connect the module to your computer, two Serial ports will be detected in the system:
The first port that appears is used for communicating with the GDB server
The second port that appears is used for UART
%linux%Linux
%mac%macOS
Run ls /dev/ttyACM* in terminal to watch device list:
$ ls /dev/ttyACM*
/dev/ttyACM0
/dev/ttyACM1
Port /dev/ttyACM0 is used to connect to the GDB server.
Run ls /dev/cu.* in terminal to watch device list:
% ls /dev/cu.*
/dev/cu.usbmodemblackmagic1
/dev/cu.usbmodemblackmagic3
Port /dev/cu.usbmodemblackmagic1 is used to connect to the GDB server.
Wi-Fi connection has two operation modes:
AP — the module creates its own Wi-Fi network to which you can connect from your PC
STA — the module connects to an existing Wi-Fi access point
Access Point (AP)
To connect to a Wi-Fi network broadcasted by the module:
Power on the module by connecting it to a power source using the USB port or by plugging it into Flipper Zero
Connect to blackmagic Wi-Fi network using password iamwitcher
Use the IP address 192.168.4.1 to connect
Connect to existing network (STA)
To connect to an existing Wi-Fi network, follow these steps:
Power on the module by connecting it to a power source using the USB port or by plugging it into Flipper Zero
Connect to blackmagic Wi-Fi network using password iamwitcher
Navigate to 192.168.4.1 in your browser
Input your Wi-Fi network credentials. Choose the STA mode and set the correct SSID and password in the STA section of the settings menu. You can press the + button to quickly select an SSID of a nearby network
Save the settings and reboot the module
Now the device should be accessible in your network with the address blackmagic.local if your OS supports the mDNS protocol. If it doesn't, you'll have to figure out the module's IP address on your own.
Example settings for connecting the debugger to an existing network home_net
To find your module's IP address, navigate to the SYS on the module's webpage.
Launching the debugger
Open the terminal and run the command according to your connection method:
via Wi-Fi
$ ./fbt blackmagic
via USB
$ ./fbt blackmagic
You can learn more on working with GDB on the Working with GDB page.
Factory reset
The Wi-Fi module can only work in one of the Wi-Fi modes at a time. If it does not connect to a known network, you can enable Access Point mode by performing a factory reset.
To reset the Wi-Fi Debugger Module settings:
Power the module via a USB cable or by connecting it to the Flipper Zero's GPIO
Press and hold the Boot button until the LED changes its color to red.
<videoautoplaymutedloopplaysinlinestyle="width: 100%;margin: auto !important;"src="https://cdn.flipperzero.one/flipper_wifi_reset_compressed.mp4"></video><divclass="text-center mt-2.5 text-gray-400 pb-5"></div>
After resetting the Wi-Fi settings, the module will switch to Access Point mode and will be available by the standard network name and IP address.