Cross-platform firmware flash tool for GBSC Pro with automatic device detection.
- Automatic Detection: Automatically identifies connected devices and firmware type
- Dual Device Support:
- ADV Controller (HC32F460) via YMODEM protocol
- GBS-Control (ESP8266) via esptool
- GUI and CLI Modes: Use whichever fits your workflow
- Cross-Platform: Works on Windows, macOS, and Linux
- USB Hotplug Detection: Automatically refreshes when devices are connected/disconnected
- Drag & Drop: Drop firmware files directly into the GUI
| Device | Chip | Protocol | USB Identifier |
|---|---|---|---|
| ADV Controller | HC32F460 | YMODEM | VID: 0x2E88, PID: 0x4603 (XHSC) |
| GBS-Control | ESP8266 | esptool | CH340 (VID: 0x1A86) or CP210x |
- Python 3.8 or higher
- Operating System: Windows 10+, macOS 10.14+, or Linux
pip install -r requirements.txtOr install manually:
# Required
pip install pyserial esptool
# Optional (for GUI)
pip install PyQt6git clone https://github.com/brisma/gbsc-pro.git
cd gbsc-pro/gbsc-pro-flasher
pip install -r requirements.txt- Download
gbsc_flasher.py,requirements.txt, andgbsc-pro-logo.png - Install dependencies:
pip install -r requirements.txt
Simply run without arguments to launch the graphical interface:
python gbsc_flasher.pyThe GUI will:
- Automatically detect connected GBSC devices
- Allow you to select a firmware file (or drag & drop)
- Flash with a single click
# Just provide firmware - device is auto-detected
python gbsc_flasher.py firmware.bin
# Or specify port explicitly
python gbsc_flasher.py /dev/cu.usbmodem001 firmware.bin # macOS
python gbsc_flasher.py /dev/ttyUSB0 firmware.bin # Linux
python gbsc_flasher.py COM3 firmware.bin # Windows# Force ADV Controller mode
python gbsc_flasher.py --adv firmware.bin
# Force ESP8266 mode
python gbsc_flasher.py --esp firmware.binpython gbsc_flasher.py --list| Option | Description |
|---|---|
--gui |
Launch GUI mode (default if no firmware specified) |
--adv |
Force ADV Controller (HC32F460) mode |
--esp |
Force ESP8266 (GBS-Control) mode |
--list |
List all detected devices and exit |
--version |
Show version and exit |
--help |
Show help message |
-
Enter bootloader mode:
- Disconnect the USB cable
- Hold down the button on the device
- Connect the USB cable while holding the button
- Release the button after 2-3 seconds
-
Verify detection:
- The device should appear as "ADV Controller" in the GUI
- Or run
python gbsc_flasher.py --listto verify
-
Flash:
- Select the
.binfirmware file - Click "Flash Firmware"
- Select the
-
Connect the device:
- Simply connect the ESP8266 via USB
- No special mode required (auto-reset is handled)
-
Verify detection:
- The device should appear as "GBS-Control (ESP8266)" in the GUI
- Or run
python gbsc_flasher.py --listto verify
-
Flash:
- Select the
.binfirmware file - Click "Flash Firmware"
- Select the
- Install the CH340 driver if your ESP8266 uses this chip
- Devices appear as
COMx(e.g.,COM3,COM4) - May require running as Administrator for some USB devices
- ADV Controller appears as
/dev/cu.usbmodemXXXX - ESP8266 (CH340) appears as
/dev/cu.wchusbserialXXXX - No additional drivers needed for most devices
- ADV Controller appears as
/dev/ttyACMx - ESP8266 appears as
/dev/ttyUSBx - You may need to add your user to the
dialoutgroup:Then log out and back in.sudo usermod -a -G dialout $USER
- Check USB connection - Try a different cable or port
- Verify drivers - Install CH340/CP210x drivers if needed
- Check permissions (Linux) - Add user to
dialoutgroup - Bootloader mode (ADV only) - Ensure you're holding the button during connection
- Restart the device in bootloader mode and try again
- Verify the firmware file is correct for ADV Controller
- Check that no other application is using the serial port
- Try a lower baud rate (modify
ESP_BAUDin the script) - Hold the BOOT button on ESP8266 during connection
- Try the
--before default_resetoption manually
- Ensure PyQt6 is installed:
pip install PyQt6 - On Linux, you may need:
sudo apt install python3-pyqt6 - Use CLI mode as fallback:
python gbsc_flasher.py firmware.bin
cd adv-controller
make
# Output: build/release/adv-controller.bincd gbs-control
pio run
# Output: .pio/build/esp8266/firmware.binThis tool is part of the GBSC Pro project.
