Skip to content

32ESPecialπŸ”—

[Latest Firmware | 00.41]

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

32ESPecial Block Diagram

Bill of Materials (BoM)πŸ”—

2024A 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 00.41 was released on πŸ‡ΊπŸ‡Έ June 14th, 2025. This is a beta release, intended for testing with the new Android app.

KTag 2024A Firmware v00.41

I (1034) KTag 2024A: Version 00.41 Jun 14 2025 15:16:11
I (1034) KTag 2024A: Initializing app...
I (1054) SPIFFS: Initializing SPI flash file system (SPIFFS)...
I (1314) SPIFFS: SPIFFS partition: 170178 bytes used out of 6619121 total.
I (1324) SPIFFS: >>> Welcome to KTag!  SPIFFS version 00.41 <<<

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:

  1. If you haven't already, install Python. Follow these instructions from Microsoft.
  2. Install esptool.py. Follow these instructions from Espressif.
  3. Download the release zip file, and unzip it.
  4. Connect your 2024A to your Windows computer using the USB-C communications connector (see the instructions).
  5. Double-click FlashKTag.bat to 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 : COM10
    2 : COM3
    Select a COM port by number (1 to 2): 1
    
    Selected port: COM10
    
    Ready to flash ESP32-S3 on COM10
    
    The following files will be flashed:
    - Bootloader: bootloader.bin at 0x0
    - Application: APP_2024Av00.41.bin at 0x10000
    - Partition Table: partition-table.bin at 0x8000
    - OTA Data: ota_data_initial.bin at 0xe000
    - SPIFFS: SPIFFS_2024Av00.41.bin at 0x910000
    
    Press Enter to continue or Ctrl+C to cancel...
    
    Flashing ESP32-S3...
    
    esptool.py v4.8.1
    Serial port COM10
    Connecting...
    Chip is ESP32-S3 (QFN56) (revision v0.2)
    Features: WiFi, BLE, Embedded PSRAM 8MB (AP_3v3)
    Crystal is 40MHz
    MAC: 74:4d:bd:8a:73:1c
    Uploading stub...
    Running stub...
    Stub 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 0x0017bfff...
    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
    Compressed 22400 bytes to 14275...
    Wrote 22400 bytes (14275 compressed) at 0x00000000 in 0.6 seconds (effective 292.2 kbit/s)...
    Hash of data verified.
    Compressed 1487632 bytes to 971765...
    Wrote 1487632 bytes (971765 compressed) at 0x00010000 in 22.0 seconds (effective 541.2 kbit/s)...
    Hash of data verified.
    Compressed 3072 bytes to 146...
    Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.0 seconds (effective 530.1 kbit/s)...
    Hash of data verified.
    Compressed 8192 bytes to 31...
    Wrote 8192 bytes (31 compressed) at 0x0000e000 in 0.1 seconds (effective 775.7 kbit/s)...
    Hash of data verified.
    Compressed 7208960 bytes to 127473...
    Wrote 7208960 bytes (127473 compressed) at 0x00910000 in 33.4 seconds (effective 1724.5 kbit/s)...
    Hash of data verified.
    
    Leaving...
    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:

  1. Download the release zip file, and unzip it.
  2. Locate the application binary file (named APP_2024AvNN.NN.bin, where NN.NN is the release version number) and the SPIFFS image (named SPIFFS_2024AvNN.NN.bin), and copy them to your device's USB stick, in the ESP/firmware folder. Delete any old files from that folder.
  3. 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...