Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions HardwarePlatform_Waveshare3.5B.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ https://www.waveshare.com/product/esp32-s3-touch-lcd-3.5b.htm?sku=31334
<br>
<img width="657" height="445" alt="image" src="https://github.com/user-attachments/assets/2c875e18-cdaa-4ca8-b7e3-bf95c980b89c" />
<br><br>
**Important note:** Waveshare have two very similar boards:
- ESP32-S3-3.5: This board is **NOT COMPATIBLE**
- ESP32-S3-3.5**B**: This is the supported version
<br>
This module provides the microcontroller, power input suitable for 5v DC pedal board use, and LCD screen with capacitive touch.

## Connections <a name="connections"></a>
Expand Down
1 change: 1 addition & 0 deletions MidiCommands.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,4 +118,5 @@ This project uses a low-cost embedded controller (Espressif ESP32-S3) to form a
| Global Tuning Reference | 119 | 0-127 |
| Load Preset to Slot A | 120 | 0-19 |
| Load Preset to Slot B | 121 | 0-19 |
| Global Volume | 122 | 0-127 |
| Select Preset | 127 | 0-19 |
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,12 @@ For more information about the firmware development and customisation, refer to
- https://github.com/vit3k/tonex_controller for great work on reverse engineering the Tonex One USB protocol

## Firmware Release Notes <a name="release_notes"></a>
V2.0.1.2
- Minor bug fix release. No features
- Fixed issues with wired Midi on Waveshare 4.3B
- Fixed issue with Internal/External footwitch FX config, where the "Set Preset" option didn't toggle between the two selected presets. Only preset 1 was set active.


V2.0.0.2
- Caution: due to structural changes, amp/pedal skins and user preset text is not maintained and will need to be entered again. And if rolling back to an older version, all config will be lost
- Upgraded to ESP-IDF 5.5.1
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
66 changes: 66 additions & 0 deletions Releases/V2.0.1.2/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<br>
V2.0.1.2 released 20 October 2025.
<br><br>
CAUTION: due to differences in the configuration storage, it is recommended to perform an Erase before updating from older V1.x versions. This can be done with the programming software or web page method.
<br>Erase the memory, then program the release as normal.
<br><br>
Files for each platform:
- Espressif DevKit-C with 2 MB PSRAM (Quad SPI):<br>
TonexController_V2.0.1.2_DevKitC_N8R2.zip
<br><br>
- Espressif DevKit-C with 8 MB PSRAM (Octal SPI):<br>
TonexController_V2.0.1.2_DevKitC_N16R8.zip
<br><br>
- JC3248W 3.5" Amp Skins<br>
TonexController_V2.0.1.2_JC3248W_Display_Amp_Skins.zip
<br><br>
- JC3248W 3.5" Pedal Skins<br>
TonexController_V2.0.1.2_JC3248W_Display_Pedal_Skins.zip
<br><br>
- M5Stack Atom S3R:<br>
TonexController_V2.0.1.2_M5AtomS3R.zip
<br><br>
- Pirate Midi Polar Max:<br>
TonexController_V2.0.1.2_PirateMidi_PolarMax_Amp_Skins.zip
<br><br>
- Pirate Midi Polar Mini:<br>
TonexController_V2.0.1.2_PirateMidi_PolarMini.zip
<br><br>
- Pirate Midi Polar Pico:<br>
TonexController_V2.0.1.2_PirateMidi_PolarPico.zip
<br><br>
- Pirate Midi Polar Plus:<br>
TonexController_V2.0.1.2_PirateMidi_PolarPlus.zip
<br><br>
- Waveshare 1.9" LCD board:<br>
TonexController_V2.0.1.2_Waveshare_1_9.zip
<br><br>
- Waveshare 1.69" LCD board (no Touch):<br>
TonexController_V2.0.1.2_Waveshare_1_69.zip
<br><br>
- Waveshare 1.69" Touch LCD board:<br>
TonexController_V2.0.1.2_Waveshare_1_69_Touch.zip
<br><br>
- Waveshare 1.69" Touch LCD board Landscape mode:<br>
TonexController_V2.0.1.2_Waveshare_1_69_Touch_land.zip
<br><br>
- Waveshare 1.69" LCD board (no Touch) Landscape mode:<br>
TonexController_V2.0.1.2_Waveshare_1_69land.zip
<br><br>
- Waveshare 3.5B board, Amplifier skin images:<br>
TonexController_V2.0.1.2_Waveshare_3_5B_Display_Amp_Skins.zip
<br><br>
- Waveshare 3.5B board, Pedal skin images:<br>
TonexController_V2.0.1.2_Waveshare_3_5B_Display_Pedal_Skins.zip
<br><br>
- Waveshare 4.3B board, Amplifier skin images:<br>
TonexController_V2.0.1.2_Waveshare_4_3B_Display_Amp_Skins.zip
<br><br>
- Waveshare 4.3B board, Pedal skin images:<br>
TonexController_V2.0.1.2_Waveshare_4_3B_Display_Pedal_Skins.zip
<br><br>
- Waveshare Zero board:<br>
TonexController_V2.0.1.2_Waveshare_Zero.zip



Binary file not shown.
2 changes: 1 addition & 1 deletion build_distrib/build_distrib.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
dirname = Path.cwd()

# set version
version = '2.0.0.2'
version = '2.0.1.2'

def delete_files_in_folder(directory):
for filename in os.listdir(directory):
Expand Down
12 changes: 12 additions & 0 deletions source/main/control.c
Original file line number Diff line number Diff line change
Expand Up @@ -1206,6 +1206,18 @@ void control_trigger_tap_tempo(void)
}
}

/****************************************************************************
* NAME:
* DESCRIPTION:
* PARAMETERS:
* RETURN:
* NOTES:
*****************************************************************************/
uint32_t control_get_current_preset_index(void)
{
return ControlData.ConfigData.PresetOrderMappingConfig.PresetOrder[ControlData.PresetIndex];
}

/****************************************************************************
* NAME:
* DESCRIPTION:
Expand Down
1 change: 1 addition & 0 deletions source/main/control.h
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,7 @@ void control_set_preset_order(uint8_t* order);
uint8_t* control_get_preset_order(void);
void control_set_sync_complete(void);
uint8_t control_get_sync_complete(void);
uint32_t control_get_current_preset_index(void);

// config API
void control_set_default_config(void);
Expand Down
2 changes: 1 addition & 1 deletion source/main/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3120,7 +3120,7 @@
<label class="home-label">Tonex One and Tonex Pedal Controller</label>
</div>
<div class="container" style="text-align: center;">
<label class="home-label">Version V2.0.0.2</label>
<label class="home-label">Version V2.0.1.2</label>
</div>
<br>
<div class="container" style="text-align: center; color:#FB9230;">
Expand Down
4 changes: 2 additions & 2 deletions source/main/main.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ limitations under the License.
extern "C" {
#endif

#define APP_VERSION "2.0.0.2"
#define APP_VERSION "2.0.1.2"

#define I2C_MASTER_NUM_1 0
#define I2C_MASTER_NUM_2 1
Expand Down Expand Up @@ -58,7 +58,7 @@ extern SemaphoreHandle_t I2CMutex_2;
// Micro pins
#define TOUCH_INT GPIO_NUM_4 // touch panel interrupt

// Midi: RS485 port
// Midi: RS485 port
#define UART_RX_PIN GPIO_NUM_43
#define UART_TX_PIN GPIO_NUM_44

Expand Down
21 changes: 17 additions & 4 deletions source/main/midi_helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -1980,14 +1980,27 @@ uint16_t midi_helper_get_param_for_change_num(uint8_t change_num, uint8_t midi_v

case 127:
{
// Custom case: use CC to change params.
if (midi_value_1 >= (usb_get_max_presets_for_connected_modeller()))
uint32_t new_preset;
uint32_t current_preset = control_get_current_preset_index();

if (current_preset == midi_value_1)
{
// select midi value 2
new_preset = midi_value_2;
}
else
{
// select midi value 1
new_preset = midi_value_1;
}

if (new_preset >= (usb_get_max_presets_for_connected_modeller()))
{
ESP_LOGW(TAG, "Unsupported Midi CC 127 value %d", midi_value_1);
ESP_LOGW(TAG, "Unsupported Midi CC 127 value %d", new_preset);
}
else
{
control_request_preset_index(midi_value_1);
control_request_preset_index(new_preset);
}

// don't set any return param, as this one is already handled and its not a parameter
Expand Down
6 changes: 6 additions & 0 deletions source/main/midi_serial.c
Original file line number Diff line number Diff line change
Expand Up @@ -93,9 +93,15 @@ static void midi_serial_task(void *arg)
.source_clk = UART_SCLK_DEFAULT,
};

#if CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_43B
// 4.3B log UART shared with RS485 port, needs to be disabled
esp_log_level_set("*", ESP_LOG_NONE);
#endif

int intr_alloc_flags = 0;
ESP_ERROR_CHECK(uart_driver_install(UART_PORT_NUM, MIDI_SERIAL_BUFFER_SIZE * 2, 0, 0, NULL, intr_alloc_flags));
ESP_ERROR_CHECK(uart_param_config(UART_PORT_NUM, &uart_config));

ESP_ERROR_CHECK(uart_set_pin(UART_PORT_NUM, UART_TX_PIN, UART_RX_PIN, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE));

// enable pullup on RX line, to help if pin is floating and Midi serial is enabled
Expand Down
11 changes: 10 additions & 1 deletion source/sdkconfig.pirate43B_as
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,13 @@ CONFIG_TONEX_CONTROLLER_DEFAULT_MIDI_ENABLE=y
CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI=y
CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y
CONFIG_TONEX_CONTROLLER_SHOW_BPM_INDICATOR=y
CONFIG_TONEX_CONTROLLER_ENABLE_MIDI_THRU=n
CONFIG_ESP_CONSOLE_UART_CUSTOM=y
CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG=y
CONFIG_ESP_CONSOLE_UART=y
CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_1=y
CONFIG_ESP_CONSOLE_UART_NUM=1
CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=1
CONFIG_ESP_CONSOLE_UART_TX_GPIO=44
CONFIG_ESP_CONSOLE_UART_RX_GPIO=43
CONFIG_ESP_CONSOLE_UART_BAUDRATE=31250

10 changes: 10 additions & 0 deletions source/sdkconfig.ws43B_as
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,13 @@ CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI=y
CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y
CONFIG_TONEX_CONTROLLER_SHOW_BPM_INDICATOR=y
CONFIG_TONEX_CONTROLLER_ENABLE_MIDI_THRU=n
CONFIG_ESP_CONSOLE_UART_CUSTOM=y
CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG=y
CONFIG_ESP_CONSOLE_UART=y
CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_1=y
CONFIG_ESP_CONSOLE_UART_NUM=1
CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=1
CONFIG_ESP_CONSOLE_UART_TX_GPIO=44
CONFIG_ESP_CONSOLE_UART_RX_GPIO=43
CONFIG_ESP_CONSOLE_UART_BAUDRATE=31250

10 changes: 10 additions & 0 deletions source/sdkconfig.ws43B_ps
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,13 @@ CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI=y
CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y
CONFIG_TONEX_CONTROLLER_SHOW_BPM_INDICATOR=y
CONFIG_TONEX_CONTROLLER_ENABLE_MIDI_THRU=n
CONFIG_ESP_CONSOLE_UART_CUSTOM=y
CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG=y
CONFIG_ESP_CONSOLE_UART=y
CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_1=y
CONFIG_ESP_CONSOLE_UART_NUM=1
CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=1
CONFIG_ESP_CONSOLE_UART_TX_GPIO=44
CONFIG_ESP_CONSOLE_UART_RX_GPIO=43
CONFIG_ESP_CONSOLE_UART_BAUDRATE=31250

4 changes: 4 additions & 0 deletions ui_design_1.69_land/TonexOneController_1.69land_pj_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,7 @@
def PreviousClicked(event_struct):
return


def NextClicked(event_struct):
return