HARDWARIO TOWER Firmware Flashing Tool

This multi-platform Python tool can flash Radio Dongle and Core Module with local binary or latest released firmwares from GitHub.

The installation and usage instructions are in the Quick Tutorial and Projects section.

Install & Upgrade

You can install tools with pip3 python tool. Always make sure that you are using the latest version.

sudo pip3 install --upgrade --no-cache-dir bcf


For Ubuntu/Linux you can enable autocomplete. Add this line to ~/.bashrc

eval "$(_BCF_COMPLETE=source bcf)"

Then run this command to reload .bashrc

source ~/.bashrc

Now you can for example write bcf --de, press TAB key and --device text is automatically completed.

Usage examples

Update and dowload list of all firmwares from GitHub

bcf update

List all firmwares

bcf list

Search for firmware

bcf search button

Flash Core Module R2

bcf flash hardwario/bcf-radio-push-button:latest


You can use optional --device parameter to choose the right serial port. This way the bcf won’t ask you every time.

Flash Core Module R1

bcf flash --device dfu hardwario/bcf-radio-push-button:latest

Flash Radio Dongle with latest firmware

bcf flash --device /dev/ttyUSB0 hardwario/bcf-gateway-usb-dongle:latest

bcf logging

It is possible to use bcf as a serial console to see log messages which are printed with twr_log_ APIs. It is using serial port in the parameter and 115200 baud speed with 8N1 uart format.

bcf log --device [device]

Flash firmware and immediatelly start logging after upload

bcf flash --device [device] [firmware]:[version] --log

Reset Core Module and immediatelly start logging after upload

bcf reset --device [device] --log

bcf –help

 1$ bcf --help
 2Usage: bcf [OPTIONS] COMMAND [ARGS]...
 4HARDWARIO Firmware Tool.
 7-d, --device TEXT  Device path.
 8--version          Show the version and exit.
 9--help             Show this message and exit.
12clean    Clean cache.
13create   Create new firmware.
14devices  Print available devices.
15eeprom   Work with EEPROM.
16flash    Flash firmware.
17help     Show help.
18list     List firmware.
19log      Show log.
20pull     Pull firmware to cache.
21read     Download firmware to file.
22reset    Reset core module.
23search   Search in firmware names and descriptions.
24source   Firmware source.
25test     Test firmware source.
26update   Update list of available firmware.