Flipper Zero Firmware
|
The Wi-Fi Developer Board serves as a tool to debug the Flipper Zero firmware. To debug the firmware, the initial step involves compiling the firmware from its source code. This process enables the debugging functionality within the firmware and generates all the necessary files required for debugging purposes.
NOTE: Building and debugging the Flipper Zero firmware is fully supported on MacOS and Linux. Support for Windows is in beta test.
Update the firmware of your Developer Board before using it. For more information, visit Firmware update on Developer Board.
You'll need Git installed on your computer to clone the firmware repository. If you don't have Git, install it by doing the following:
MacOS
On MacOS, install the Xcode Command Line Tools package, which includes Git as one of the pre-installed command-line utilities, by running in the Terminal the following command:
Linux
On Linux, you can install Git using your package manager. For example, on Ubuntu, run in the Terminal the following command:
For other distributions, refer to your package manager documentation.
First, clone the firmware repository:
Then, run the Flipper Build Tool (FBT) to build the firmware:
The Developer Board can work in the Wired mode and two Wireless modes: Wi-Fi access point (AP) mode and Wi-Fi client (STA) mode. The Wired mode is the simplest to set up, but requires a USB Type-C cable. The Wireless modes are more complex to set up, but they allow you to debug your Flipper Zero wirelessly.
NOTE: Use the following credentials when connecting to the Developer Board in Wi-Fi access point mode:
Name: blackmagic
Password: iamwitcher
To connect the Developer Board in Wired mode, do the following:
On your computer, open the Terminal and run the following:
MacOS
Linux
text ls /dev/tty*
Note the list of devices.
NOTE: If the Developer Board doesn't appear in the list of devices, try using a different cable, USB port, or computer.
NOTE: Flipper Zero logs can only be viewed when the Developer Board is connected via USB. The option to view logs over Wi-Fi will be added in future updates. For more information, visit Reading logs via the Dev Board.
Out of the box, the Developer Board is configured to work as a Wi-Fi access point. This means it'll create its own Wi-Fi network to which you can connect. If your Developer Board doesn't create a Wi-Fi network, it is probably configured to work in Wi-Fi client mode. To reset your Developer Board back to Wi-Fi access point mode, press and hold the BOOT button for 10 seconds, then wait for the module to reboot.
To connect the Developer Board in Wi-Fi access point mode, do the following:
http://192.168.4.1
.To connect the Developer Board in Wi-Fi client mode, you need to configure it to connect to your Wi-Fi network by doing the following:
http://192.168.4.1
.After rebooting, the Developer Board connects to your Wi-Fi network. You can connect to the device using the mDNS name blackmagic.local or the IP address it got from your router (you'll have to figure this out yourself, every router is different).
After connecting to your debugger via http://blackmagic.local, you can find its IP address in the SYS tab. You can also change the debugger's mode to AP or STA there.
Open the Terminal in the flipperzero-firmware directory that you cloned earlier and run the following command:
This will upload the firmware you've just built to your Flipper Zero via the Developer Board. After that, you can start debugging the firmware using the GDB debugger. We recommend using VSCode with the recommended extensions, and we have pre-made configurations for it.
To debug in VSCode, do the following:
You should see a notification about recommended extensions. Install them.
If there were no notifications, open the Extensions tab, enter @recommended
in the search bar, and install the workspace recommendations.
./fbt vscode_dist
command. This will generate the VSCode configuration files needed for debugging../fbt flash
command, then click the Play button in the debug sidebar to start the debugging session.To learn about debugging, visit the following pages: