New badge.team ESP32 Firmware
This repository contains the reworked firmware platform for generic ESP32-based hardware devices.
badge.team firmware has been used by many event badges, such as:
- HackerHotel 2019
- Disobey 2019
- CampZone 2019
sudo apt-get install make unzip git libncurses5-dev flex bison gperf python-serial libffi-dev libsdl2-dev libmbedtls-dev perl
Preparing your setup
First, make sure you pull the submodules in the project:
git submodule update --init --recursive
Next, copy the xtensa build toolchain for your OS (currently supporting Linux and Mac OS) from /toolchains/, and unpack and save it as /xtensa-esp32-elf/ in the project root folder:
unzip -p toolchain/xtensa-esp32-elf-linux64.zip xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar | tar xv
Building for a specific existing badge
Copy the relevant config file from
cp firmware/configs/sha2017_defconfig firmware/sdkconfig
Set the path to esp32-toolchain (you have to repeat that on every new terminal) (usually it is located in your ESP32-platform-firmware directory):
To build and flash the basic generic firmware:
Make sure you have downloaded the appropriate driver for the USB UART chip on your device. Below are some from popular badges.
If you have this issue with flashing:
serial.serialutil.SerialException: [Errno 2] could not open port : [Errno 2] No such file or directory: ''
Then you need to copy the
python2 command that
./build.sh suggests, and make sure the
--port argument has the right value.
Interacting via serial
By default, the badge.team firmware activates a simple python shell or serial menu after booting. You can interact with it by running:
Creating new hardware
You can use badge.team firmware for your own-designed badge or device. The workflow for this is described below.
./config.sh, configure the
Firmware & device configurationsubmenu (for the folder option in the
Hardware descriptionsection, think of any name. We will use it later.), and set up the drivers that your hardware will use in the
- If you need to write drivers of your own, take a look at the driver documentation.
- Create a directory with the folder name you configured in the first step in
/firmware/python_modules, and copy
- In this directory, you can write Python code that will be built into the firmware image. The files
boot.pyare executed after each other on boot, and from there you can launch your own things.
- Build and flash, and you're done!
License and information
Copyright (C) 2017-2019 BADGE.TEAM
Uses ESP-IDF by Espressif