This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Software Development

Introduction …

The Badge is basically an ESP32C6 development platform and features the following methods for developing software:

  • Stock firmware build-IDF : native EPS apps using the IDF (IoT Development Framework)
  • ESP-IDF with Platformio : Use the HH2024 badge as a generic dev board.
  • EspHome: The easy way to program devices for Home-Assistant.

The badge also has a coprossor for extra IO.

See more information below.

Linux permissions

Regardless of the way you’re going to program the badge, to connect to the badge over USB from Linux, do the following.

Create /etc/udev/rules.d/99-mch2022.rules with the following contents:

SUBSYSTEM=="usb", ATTR{idVendor}=="16d0", ATTR{idProduct}=="0f9a", MODE="0666"

Then run the following commands to apply the new rule:

sudo udevadm control --reload-rules
sudo udevadm trigger

Windows installation

Not tested.

Software Platforms

Badge Team default firmware

You can find the official firmware here: You can build and upload the original firmware by cloning the archive and using the following commands:

make prepare
make build
make install

If you want to make some modifications check out this page on modifying the standard firmware. To try as a first hack.

ESP-IDF with Platformio

Jhaand ported the Hello World application for ESP-IDF to Platformio and made it easy to put your own program on the HH2024 badge with ESP-IDF.

This will only put some information on the UART /dev/ttyACM0 at 115200 and restart.


SqyD started integrating the HH2024 badge into ESPhome. Which makes things easy to integrate with Home-Assistant domotics.

You can find the yaml file for the HH2024 badge here:

It displays a Hello Badge Team! on the display.

HH2024 badge showing text

More information on install EspHome you can find here:

CH32V003 co-processor

Follow the instructions on the CH32V003 repo, the J5 contains all the pins necessary to connect to a WCH link.

1 - Modify Standard Firmware

Ready, set, hack!

Hack your badge and build cool applications on the ESP32-C6! Here are some basic instructions to get you started:

Main firmware/ESP32-C6

Follow the instructions on the ESP32-C6, we recommand VScode as an IDE.

CH32V003 co-processor

Follow the instructions on the CH32V003 repo, the J5 contains all the pins necessary to connect to a WCH link.

Add and display an image

First the convert your image (input.png) by running convert using the mascot.png in the ressource folder as a reference, example:

convert input.png -map mascot.png output.png

Then open main/CMakeLists.txt and add your new file:

EMBED_FILES ${project_dir}/resources/output.png

Add in your file:

extern const uint8_t output_png_start[] asm("_binary_output_png_start");
extern const uint8_t output_png_end[] asm("_binary_output_png_end");

And use pax_insert_png_buf in your code to add the image to the screen buffer:

pax_insert_png_buf(&gfx, output_png_start, output_png_end - output_png_start, 0, 0, 0);