BCD-0o27 BalCCon2k23 Firmware

BCD-0o27 BalCCon2k23 Firmware

This post describes how to flash the firmware used at the 2023 BalCCon conference to the BalCCon Cyberdeck 0o27 (BCD-0o27).

Setting up the Toolchain

To flash the BCD-0o27 you need the esptools.py. The esptools.py is a python based, open source, platform independent uitilty to communicate with the ROM bootloader of ESP32-S3 chip which is at the heart of the BCD-0o27. If you haven't yet set esptools up, you can install it with pip:

pip install esptool

This will provide the esptool.py script to flash (or read the ESP32-S3 chip), the espfuse.py script to read or burn efuses (which can absolutely brick your cyberdeck) and the espsecure.py script to manipulate secure boot and flash encryption.

For flashing the firmware, we will only need the esptool.py. If you need further information or run into trouble, check the espressif homepage on esptool.py.

Flashing the firmware

First, you need to determine the serial port your BCD-0o27 uses. To determine the serial port plug in your cyberdeck using a USB-C cable. On Linux, you can use dmesg after plugging in the cyberdeck and look for the /dev/... assigned to it, or you can use lsusb to list all usb devices and search for your cyberdeck. On a mac, the device will be listed as usbserial with some number. You can just ls /dev/vu.usbserial* to find the right device. On Windows, open the Device Manager (by choosing start, then start to type device manager until the program is shown and the clicking on it). In the Ports tab you find the right COM port.

To flash the firmware, download the firmware image attached to this post. In the folder where you stored the firmware issue the following command (replace "/dev/cu.usbserial-110" with your device serial port):

esptool.py --chip esp32s3 --port "/dev/cu.usbserial-110" --baud 460800 --before default_reset --after hard_reset write_flash -z 0x0 balccon_2k23.bin

That's it. You have now a fresh install of the firmware you received at BalCCon2k23. Have fun.