32ESPecialš

The KTag 2024A "32ESPecial" is the first ESP32-based main board. It is a drop-in replacement for the 2023B "Expediter", and is compatible with the 2020TPC.
Improvements over the 2023B:
- Lower cost.
- Adds an additional "accessory" input switch.
- Adds support for "effects" NeoPixels.
- Adds one Grove/QWIIC I²C port.
- USB console through the power cable.
- Custom sounds stored on a USB stick, not an (inaccessible) micro-SD card.
Hardwareš
The design files for the 2024A are available in the KTag git repos at https://git.ktag.clubk.club/Hardware/2024A-HW.
Block Diagramš
Block Diagram

Bills of Materials (BoMs)š
BOMs for the printed circuit board assemblies used by the 32ESPecial are listed below.
- 2024A "32ESPecial" Main Board BoM
- 2024B "Far Horizon" Barrel Board BoM
- 2024C "Light Brigade" Receiver Board BoM
Softwareš
Latest Firmwareš
The source code for the 2024A software is available in the KTag git repos at https://git.ktag.clubk.club/Software/2024A-SW.
Version 01.00 was released on December 7, 2025. This release incorporates SystemK version 01.00. Release notes are here.
I (1040) KTag 2024A: Version 01.00 Dec 7 2025 17:07:33
I (1040) KTag 2024A: Initializing app...
...
I (1340) SPIFFS: >>> Welcome to KTag! SPIFFS version 01.00 <<<
...
I (2100) KTag 2024A: Initialization complete.
I (2090) SystemK: Using SystemK version 01.00.
Programming Instructionsš
If you are programming a brand new board, or want to start afresh with an already-programmed board, follow these instructions.
To program your board from a Windows computer, follow these steps:
- If you haven't already, install Python. Follow these instructions from Microsoft.
- Install esptool.py. Follow these instructions from Espressif.
- Download the release zip file, and unzip it.
- Connect your 2024A to your Windows computer using the USB-C communications connector (see the instructions).
-
Double-click
FlashKTag.batto begin programming. You will need to select the COM port Windows assigned to your ESP32.This is what the process looks like in the Windows terminal:
Available COM ports: 1 : COM8 Select a COM port by number (1 to 1): 1 Selected port: COM8 Ready to flash ESP32-S3 on COM8 The following files will be flashed: - Bootloader: bootloader.bin at 0x0 - Application: APP_2024Av01.00.bin at 0x10000 - Partition Table: partition-table.bin at 0x8000 - OTA Data: ota_data_initial.bin at 0xe000 - SPIFFS: SPIFFS_2024Av01.00.bin at 0x910000 Press Enter to continue or Ctrl+C to cancel... Flashing ESP32-S3... esptool v5.1.0 Connected to ESP32-S3 on COM8: Chip type: ESP32-S3 (QFN56) (revision v0.2) Features: Wi-Fi, BT 5 (LE), Dual Core + LP Core, 240MHz, Embedded PSRAM 8MB (AP_3v3) Crystal frequency: 40MHz MAC: 84:fc:e6:6a:af:c4 Stub flasher running. Changing baud rate to 460800... Changed. Configuring flash size... Flash will be erased from 0x00000000 to 0x00005fff... Flash will be erased from 0x00010000 to 0x00186fff... Flash will be erased from 0x00008000 to 0x00008fff... Flash will be erased from 0x0000e000 to 0x0000ffff... Flash will be erased from 0x00910000 to 0x00feffff... SHA digest in image updated. Wrote 22432 bytes (14323 compressed) at 0x00000000 in 0.6 seconds (282.8 kbit/s). Hash of data verified. Wrote 1535424 bytes (993768 compressed) at 0x00010000 in 23.6 seconds (520.6 kbit/s). Hash of data verified. Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.0 seconds (508.3 kbit/s). Hash of data verified. Wrote 8192 bytes (31 compressed) at 0x0000e000 in 0.1 seconds (767.2 kbit/s). Hash of data verified. Wrote 7208960 bytes (152941 compressed) at 0x00910000 in 33.6 seconds (1718.7 kbit/s). Hash of data verified. Hard resetting via RTS pin... Flashing completed successfully Press any key to continue . . .
Coming soon...
We figure if you're running Linux, you can probably figure this out.
If anyone can help with these instructions, please let Joe know.
In the mean time, find a Windows machine, and follow those instructions.
Reprogramming Instructionsš
If you just want to update the firmware on an already-programmed 2024A, follow these instructions:
- Download the release zip file, and unzip it.
- Locate the application binary file (named
APP_2024AvNN.NN.bin, where NN.NN is the release version number) and the SPIFFS image (namedSPIFFS_2024AvNN.NN.bin), and copy them to your device's USB stick, in theESP/firmwarefolder. Delete any old files from that folder. -
Replace the USB stick, and power on your device. Immediately press the trigger to initiate reprogramming.
This is what the process looks like in the serial terminal:
I (3095) STATE: Entering the Reprogramming state. I (6175) I2S Audio: Attempting to play file: /usb/01/025_RE~1.MP3 I (6185) I2S Audio: Reconfiguring clock for 44100 sps, 16 bps, 2 channels. I (7785) Reprogramming: Attempting USB reprogramming... I (7785) Reprogramming: Application image found: /usb/esp/firmware/APP_20~2.BIN I (7795) Reprogramming: File size: 1487632 bytes I (7795) Reprogramming: Writing to partition subtype 16 at offset 0x10000 I (20625) esp_image: segment 0: paddr=00010020 vaddr=3c100020 size=547ech (346092) map I (20665) esp_image: segment 1: paddr=00064814 vaddr=3fca0f00 size=06878h ( 26744) I (20665) esp_image: segment 2: paddr=0006b094 vaddr=40374000 size=04f84h ( 20356) I (20675) esp_image: segment 3: paddr=00070020 vaddr=42000020 size=f3370h (996208) map I (20785) esp_image: segment 4: paddr=00163398 vaddr=40378f84 size=17f24h ( 98084) I (20795) esp_image: segment 5: paddr=0017b2c4 vaddr=600fe100 size=0001ch ( 28) I (20795) esp_image: segment 0: paddr=00010020 vaddr=3c100020 size=547ech (346092) map I (20835) esp_image: segment 1: paddr=00064814 vaddr=3fca0f00 size=06878h ( 26744) I (20845) esp_image: segment 2: paddr=0006b094 vaddr=40374000 size=04f84h ( 20356) I (20845) esp_image: segment 3: paddr=00070020 vaddr=42000020 size=f3370h (996208) map I (20955) esp_image: segment 4: paddr=00163398 vaddr=40378f84 size=17f24h ( 98084) I (20965) esp_image: segment 5: paddr=0017b2c4 vaddr=600fe100 size=0001ch ( 28) I (21015) Reprogramming: SPIFFS image found: /usb/esp/firmware/SPIFFS~1.BIN I (21025) Reprogramming: File size: 7208960 bytes I (63745) Reprogramming: Reprogramming succeeded--rebooting...