Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
d74b8be
More work on GP5 support.
Nov 4, 2025
4fcdf33
Merge branch 'GP5' of https://github.com/Builty/TonexOneController in…
Nov 4, 2025
edb653a
- Big progress on GP5 support. Parameters mapped and synced. Effect s…
Nov 8, 2025
67095e7
More work on GP5 support:
Nov 9, 2025
29c11ac
More work on GP5 UI
Nov 9, 2025
4181c83
More work on GP5 parameter interface
Nov 9, 2025
27e3168
More GP5 UI work,
Nov 10, 2025
82c96e5
More work on GP5. Now able to set block effects.
Nov 10, 2025
13a0f03
- Implemented Valeton settings UI on 3.5"
Nov 14, 2025
4fdb06d
Updated git ignore files for new platforms and EEZ studio
Nov 14, 2025
4dfc4b0
- changed led control to be more generic, and configured by menu config
Nov 14, 2025
c1fad24
Working on GP5 globals
Nov 15, 2025
cadb826
Working on GP5 globals
Nov 15, 2025
c97f7c0
- added GP5 patch volume
Nov 16, 2025
b040994
- implemented effect block order for GP5
Nov 16, 2025
9428f14
- implemented tap tempo for GP5 to control delay
Nov 16, 2025
32a561f
- finished off GP5 UI
Nov 16, 2025
ca2b834
- working on GP5 Midi
Nov 16, 2025
68d482f
- Changed Valeton parameter range setting to be outside of display mo…
Nov 17, 2025
1eaa65a
- Fixed some GP5 param init bugs
Nov 17, 2025
d3f48de
- implemented amp/cab crossed out for when when Snaptones are active
Nov 17, 2025
f292682
- new method of handling web page. Images are no longer embedded in t…
Nov 18, 2025
ca980a3
Starting on web page changes for GP5 support
Nov 18, 2025
fe0732b
More work on web revamp:
Nov 19, 2025
1339af3
- Split css out of index and into separate files.
Nov 21, 2025
51d77d7
- split javascript into separate file
Nov 22, 2025
bd8bf84
- Implemented GP5 effect block ordering.
Nov 22, 2025
11eddcb
- fixed issue with sending GP5 global values
Nov 23, 2025
e0d4132
- implemented GP5 effect footswitch Midi mapping
Nov 23, 2025
b94fda7
- fixed nasty GP5 pedal crash
Nov 26, 2025
21c7f38
- fixed a few build warnings from unused vars/functions
Nov 27, 2025
642e87d
- reworking on web UI
Nov 28, 2025
3b72f0d
Fixing minor bugs as part of full platform regression testing:
Nov 29, 2025
4fd8ce6
Last few bugs before beta testing:
Nov 29, 2025
5f1ba35
- fixed issue where Tonex One global volume changes didn't update the…
Nov 30, 2025
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
23 changes: 2 additions & 21 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,5 @@

build_distrib/temp

# ignore SquareLine Studio files
ui_design/backup
ui_design/cache
ui_design/autosave
ui_design_0.85/backup
ui_design_0.85/cache
ui_design_0.85/autosave
ui_design_1.69/backup
ui_design_1.69/cache
ui_design_1.69/autosave
ui_design_1.69_land/backup
ui_design_1.69_land/cache
ui_design_1.69_land/autosave
ui_design_1.9/backup
ui_design_1.9/cache
ui_design_1.9/autosave
ui_design_480x320land/backup
ui_design_480x320land/cache
ui_design_480x320land/autosave


# ignore EEZ Studio state files
**/*.eez-project-ui-state
2 changes: 2 additions & 0 deletions source/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ build_lgtdisps3/
build_ws19t/
build_ws35b/
build_jc3248w/
build_piratemax35/
build_piratepro/

# ignore everything in managed components directory. Will be generated by the build system
managed_components/
Expand Down
2 changes: 1 addition & 1 deletion source/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ if(CONFIG_TONEX_CONTROLLER_DISPLAY_FULL_UI)
set(image_file ${project_dir}/skin_images/16bit/skins_minimal.bin)
endif()

if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_35B OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_JC3248W535)
if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_35B OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_JC3248W535 OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2)
set(image_file ${project_dir}/skin_images/16bitswapped/skins.bin)
endif()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ static esp_err_t esp_lcd_touch_ft6336_del(esp_lcd_touch_handle_t tp)
}


static esp_err_t touch_ft6336_i2c_write(esp_lcd_touch_handle_t tp, uint8_t reg, uint8_t data)
static esp_err_t __attribute__((unused)) touch_ft6336_i2c_write(esp_lcd_touch_handle_t tp, uint8_t reg, uint8_t data)
{
assert(tp != NULL);

Expand Down
10 changes: 5 additions & 5 deletions source/components/lvgl__lvgl/src/lv_conf_internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -160,30 +160,30 @@
#else /*LV_MEM_CUSTOM*/
#ifndef LV_MEM_CUSTOM_INCLUDE
#ifdef CONFIG_LV_MEM_CUSTOM_INCLUDE
#define LV_MEM_CUSTOM_INCLUDE CONFIG_LV_MEM_CUSTOM_INCLUDE
#define LV_MEM_CUSTOM_INCLUDE "esp_heap_caps.h" //CONFIG_LV_MEM_CUSTOM_INCLUDE
#else
#define LV_MEM_CUSTOM_INCLUDE <stdlib.h> /*Header for the dynamic memory function*/
#define LV_MEM_CUSTOM_INCLUDE "esp_heap_caps.h" /*Header for the dynamic memory function*/
#endif
#endif
#ifndef LV_MEM_CUSTOM_ALLOC
#ifdef CONFIG_LV_MEM_CUSTOM_ALLOC
#define LV_MEM_CUSTOM_ALLOC CONFIG_LV_MEM_CUSTOM_ALLOC
#else
#define LV_MEM_CUSTOM_ALLOC malloc
#define LV_MEM_CUSTOM_ALLOC(size) heap_caps_malloc((size), MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT)
#endif
#endif
#ifndef LV_MEM_CUSTOM_FREE
#ifdef CONFIG_LV_MEM_CUSTOM_FREE
#define LV_MEM_CUSTOM_FREE CONFIG_LV_MEM_CUSTOM_FREE
#else
#define LV_MEM_CUSTOM_FREE free
#define LV_MEM_CUSTOM_FREE(ptr) heap_caps_free(ptr)
#endif
#endif
#ifndef LV_MEM_CUSTOM_REALLOC
#ifdef CONFIG_LV_MEM_CUSTOM_REALLOC
#define LV_MEM_CUSTOM_REALLOC CONFIG_LV_MEM_CUSTOM_REALLOC
#else
#define LV_MEM_CUSTOM_REALLOC realloc
#define LV_MEM_CUSTOM_REALLOC(ptr, new_size) heap_caps_realloc((ptr), (new_size), MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT)
#endif
#endif
#endif /*LV_MEM_CUSTOM*/
Expand Down
52 changes: 52 additions & 0 deletions source/esp_idf_project_configuration.json
Original file line number Diff line number Diff line change
Expand Up @@ -466,5 +466,57 @@
"postBuild": "",
"postFlash": ""
}
},
"PiratePro": {
"build": {
"compileArgs": [],
"ninjaArgs": [],
"buildDirectoryPath": "${workspaceFolder}/build_piratepro",
"sdkconfigDefaults": [
"sdkconfig.defaults",
"sdkconfig.piratepro"
],
"sdkconfigFilePath": "${workspaceFolder}/build_piratepro"
},
"env": {},
"flashBaudRate": "",
"monitorBaudRate": "",
"openOCD": {
"debugLevel": 0,
"configs": [],
"args": []
},
"tasks": {
"preBuild": "",
"preFlash": "",
"postBuild": "",
"postFlash": ""
}
},
"PirateMaxV2": {
"build": {
"compileArgs": [],
"ninjaArgs": [],
"buildDirectoryPath": "${workspaceFolder}/build_piratemax35",
"sdkconfigDefaults": [
"sdkconfig.defaults",
"sdkconfig.piratemax35"
],
"sdkconfigFilePath": "${workspaceFolder}/build_piratemax35"
},
"env": {},
"flashBaudRate": "",
"monitorBaudRate": "",
"openOCD": {
"debugLevel": 0,
"configs": [],
"args": []
},
"tasks": {
"preBuild": "",
"preFlash": "",
"postBuild": "",
"postFlash": ""
}
}
}
35 changes: 23 additions & 12 deletions source/main/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,22 @@

idf_component_register(SRCS "valeton_params.c" "midi_control.c" "control.c" "footswitches.c" "CH422G.c" "display.c" "main.c" "tonex_params.c" "SX1509.c"
"usb_comms.c" "usb_tonex_one.c" "usb_tonex_common.c" "usb_tonex.c" "usb_valeton_gp5.c" "CH422G.c" "midi_serial.c" "wifi_config.c" "leds.c" "midi_helper.c" "LP5562.c"
idf_component_register(SRCS "platform_pirate_pro_169.c" "platform_pirate_max35.c" "valeton_params.c" "midi_control.c" "control.c" "footswitches.c" "CH422G.c" "display.c" "main.c" "tonex_params.c" "SX1509.c" "display_tonex.c" "display_valeton.c"
"usb_comms.c" "usb_tonex_one.c" "usb_tonex_common.c" "usb_tonex.c" "usb_valeton_gp5.c" "CH422G.c" "midi_serial.c" "wifi_config.c" "leds.c" "midi_helper.c" "midi_helper_tonex.c" "midi_helper_valeton.c" "LP5562.c"
"platform_devkitc.c" "platform_lgtdisps3.c" "platform_m5atoms3r.c" "platform_ws19t.c" "platform_ws43.c" "platform_wszero.c" "platform_ws169.c"
"platform_ws35b.c" "platform_jc3248w.c"
INCLUDE_DIRS "." "./"
EMBED_TXTFILES index.html)

INCLUDE_DIRS "." "./"
EMBED_FILES
"web/index.html" "web/amp_disabled.png" "web/amp_off.png" "web/amp_on.png" "web/cab_disabled.png" "web/cab_off.png" "web/cab_on.png"
"web/dly_off.png" "web/dly_on.png" "web/dst_off.png" "web/dst_on.png" "web/effect_icon_amp_off.png" "web/effect_icon_amp_on.png"
"web/effect_icon_cab_off.png" "web/effect_icon_cab_on.png" "web/effect_icon_comp_off.png" "web/effect_icon_comp_on.png"
"web/effect_icon_delay_off.png" "web/effect_icon_delay_on_d.png" "web/effect_icon_delay_on_t.png" "web/effect_icon_eq.png"
"web/effect_icon_gate_on.png" "web/effect_icon_gate_off.png" "web/effect_icon_mod_off.png" "web/effect_icon_mod_on_chorus.png"
"web/effect_icon_mod_on_flanger.png" "web/effect_icon_mod_on_phaser.png" "web/effect_icon_mod_on_rotary.png" "web/effect_icon_mod_on_tremolo.png"
"web/effect_icon_reverb_off.png" "web/effect_icon_reverb_on.png" "web/effect_icon_reverb_on_p.png" "web/effect_icon_reverb_on_r.png"
"web/effect_icon_reverb_on_s1.png" "web/effect_icon_reverb_on_s2.png" "web/effect_icon_reverb_on_s3.png" "web/effect_icon_reverb_on_s4.png"
"web/eq_off.png" "web/eq_on.png" "web/mod_off.png" "web/mod_on.png" "web/nr_off.png" "web/nr_on.png" "web/pre_off.png" "web/pre_on.png"
"web/rvb_off.png" "web/rvb_on.png" "web/tc_off.png" "web/tc_on.png"
"web/favicon.ico" "web/bootstrap.js" "web/jquery.js" "web/index.css" "web/bootstrap.css" "web/script.js"
)

if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_43B OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_43DEVONLY)
target_include_directories(${COMPONENT_LIB} PRIVATE include "ui_generated_800x480land")

Expand Down Expand Up @@ -38,14 +49,14 @@ if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_43B OR CONFIG_TONEX_CONTR
"ui_generated_800x480land/ui_image_nr_off.c" "ui_generated_800x480land/ui_image_nr_on.c"
"ui_generated_800x480land/ui_image_rvb_off.c" "ui_generated_800x480land/ui_image_rvb_on.c"
"ui_generated_800x480land/ui_image_tc_off.c" "ui_generated_800x480land/ui_image_tc_on.c"
"ui_generated_800x480land/ui_image_amp_off.c" "ui_generated_800x480land/ui_image_amp_on.c"
"ui_generated_800x480land/ui_image_amp_off.c" "ui_generated_800x480land/ui_image_amp_on.c" "ui_generated_800x480land/ui_image_amp_disabled.c"
"ui_generated_800x480land/ui_image_dly_off.c" "ui_generated_800x480land/ui_image_dly_on.c"
"ui_generated_800x480land/ui_image_dst_off.c" "ui_generated_800x480land/ui_image_dst_on.c"
"ui_generated_800x480land/ui_image_cab_off.c" "ui_generated_800x480land/ui_image_cab_on.c"
"ui_generated_800x480land/ui_image_cab_off.c" "ui_generated_800x480land/ui_image_cab_on.c" "ui_generated_800x480land/ui_image_cab_disabled.c"
"ui_generated_800x480land/ui_image_skin_jcm.c")
endif()

if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_35B OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_JC3248W535)
if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_35B OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_JC3248W535 OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2)
target_include_directories(${COMPONENT_LIB} PRIVATE include "ui_generated_480x320land")

target_sources(${COMPONENT_LIB} PRIVATE "ui_generated_480x320land/ui.c" "ui_generated_480x320land/styles.c"
Expand All @@ -54,8 +65,8 @@ if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_35B OR CONFIG_TONEX_CONTR
"ui_generated_480x320land/ui_image_usb_fail.c" "ui_generated_480x320land/ui_image_next.c" "ui_generated_480x320land/ui_image_previous.c"
"ui_generated_480x320land/ui_image_usb_ok.c" "ui_generated_480x320land/ui_image_next_down.c" "ui_generated_480x320land/ui_image_previous_down.c" "ui_generated_480x320land/ui_image_settings.c"
"ui_generated_480x320land/ui_image_wifi_conn.c" "ui_generated_480x320land/ui_image_wifi_disconn.c"
"ui_generated_480x320land/ui_image_effect_icon_amp_off.c" "ui_generated_480x320land/ui_image_effect_icon_amp_on.c"
"ui_generated_480x320land/ui_image_effect_icon_cab_off.c" "ui_generated_480x320land/ui_image_effect_icon_cab_on.c"
"ui_generated_480x320land/ui_image_effect_icon_amp_off.c" "ui_generated_480x320land/ui_image_effect_icon_amp_on.c" "ui_generated_480x320land/ui_image_amp_disabled.c"
"ui_generated_480x320land/ui_image_effect_icon_cab_off.c" "ui_generated_480x320land/ui_image_effect_icon_cab_on.c" "ui_generated_480x320land/ui_image_cab_disabled.c"
"ui_generated_480x320land/ui_image_effect_icon_comp_off.c" "ui_generated_480x320land/ui_image_effect_icon_comp_on.c"
"ui_generated_480x320land/ui_image_effect_icon_delay_off.c"
"ui_generated_480x320land/ui_image_effect_icon_gate_off.c" "ui_generated_480x320land/ui_image_effect_icon_gate_on.c"
Expand Down Expand Up @@ -84,7 +95,7 @@ if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_35B OR CONFIG_TONEX_CONTR
"ui_generated_480x320land/ui_image_skin_jcm.c")
endif()

if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169 OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169TOUCH)
if(CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169 OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_169TOUCH OR CONFIG_TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_PRO)
if(CONFIG_TONEX_CONTROLLER_WAVESHARE_169_LANDSCAPE)
target_include_directories(${COMPONENT_LIB} PRIVATE include "ui_generated_280x240land")

Expand Down
40 changes: 38 additions & 2 deletions source/main/Kconfig.projbuild
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ menu "Tonex Controller Configuration"

config TONEX_CONTROLLER_HARDWARE_PLATFORM_WAVESHARE_19TOUCH
bool "Waveshare 1.9 Touch"

config TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_PRO
bool "Pirate Midi Polar Pro 1.69"

config TONEX_CONTROLLER_HARDWARE_PLATFORM_PIRATE_MIDI_POLAR_MAX_V2
bool "Pirate Midi Polar Max V2 3.5 touch"

endchoice

Expand Down Expand Up @@ -94,11 +100,41 @@ menu "Tonex Controller Configuration"
Enable this option to show BPM indicator

config TONEX_CONTROLLER_ENABLE_MIDI_THRU
bool "Enable Midi Thru"
bool "Enable Midi Thru"
default "y"
help
Enable this option if the platform can support Midi Transmit


choice TONEX_CONTROLLER_LED_CONTROL_MODE
prompt "Led control mode"
default TONEX_CONTROLLER_LED_CONTROL_DISABLED

config TONEX_CONTROLLER_LED_CONTROL_DISABLED
bool "Disabled"

config TONEX_CONTROLLER_LED_CONTROL_BOOT_FLASH
bool "Boot flash"
endchoice

choice TONEX_CONTROLLER_LED_COLOUR_ORDER
prompt "Led colour order"
default TONEX_CONTROLLER_LED_COLOUR_ORDER_RGB

config TONEX_CONTROLLER_LED_COLOUR_ORDER_RGB
bool "RGB"

config TONEX_CONTROLLER_LED_COLOUR_ORDER_GBR
bool "GBR"

endchoice

config TONEX_CONTROLLER_LED_NUMBER
int "Number of Leds"
range 0 16
default 0
help
Set the number of leds the platform has

config EXAMPLE_DOUBLE_FB
bool "Use double Frame Buffer"
default "n"
Expand Down
16 changes: 15 additions & 1 deletion source/main/control.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ limitations under the License.
#include "wifi_config.h"
#include "task_priorities.h"
#include "tonex_params.h"
#include "valeton_params.h"

#define CTRL_TASK_STACK_SIZE (3 * 1024)

Expand Down Expand Up @@ -892,7 +893,20 @@ static uint8_t process_control_command(tControlMessage* message)
ESP_LOGI(TAG, "Tap Tempo BPM = %d", (int)bpm);

// update pedal
usb_modify_parameter(TONEX_GLOBAL_BPM, ControlData.TapTempo.BPM);
switch (usb_get_connected_modeller_type())
{
case AMP_MODELLER_TONEX_ONE: // fallthrough
case AMP_MODELLER_TONEX: // fallthrough
default:
{
usb_modify_parameter(TONEX_GLOBAL_BPM, ControlData.TapTempo.BPM);
} break;

case AMP_MODELLER_VALETON_GP5:
{
usb_modify_parameter(VALETON_GLOBAL_BPM, ControlData.TapTempo.BPM);
} break;
}

// save time for next trigger
ControlData.TapTempo.LastTime = current_time;
Expand Down
23 changes: 22 additions & 1 deletion source/main/control.h
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ enum WiFiTxPower
WIFI_TX_POWER_100
};

enum ConfigTabs43B
enum ConfigTabs43BTonex
{
CONFIG_TAB_GATE,
CONFIG_TAB_COMPRESSOR,
Expand All @@ -203,6 +203,21 @@ enum ConfigTabs43B
CONFIG_TAB_GLOBAL,
};

enum ConfigTabs43BValeton
{
CONFIG_TAB_VAL_NR,
CONFIG_TAB_VAL_PRE,
CONFIG_TAB_VAL_DST,
CONFIG_TAB_VAL_AMP,
CONFIG_TAB_VAL_CAB,
CONFIG_TAB_VAL_EQ,
CONFIG_TAB_VAL_MOD,
CONFIG_TAB_VAL_DLY,
CONFIG_TAB_VAL_RVB,
CONFIG_TAB_VAL_NS,
CONFIG_TAB_VAL_GLOBAL,
};

enum FootswitchLayouts
{
FOOTSWITCH_LAYOUT_1X2, // next/previous
Expand Down Expand Up @@ -254,13 +269,19 @@ enum ParamTypes

#define MAX_PARAM_NAME 12

// special cases for handling effect switches that use Midi but don't change a parameter
#define TONEX_UNKNOWN 0xFFFF

typedef struct
{
float Value;
float Min;
float Max;
char Name[MAX_PARAM_NAME];
uint8_t Type;
uint8_t Data1; // usage depends on connected modeller
uint8_t Data2; // usage depends on connected modeller
uint8_t Data3; // usage depends on connected modeller
} tModellerParameter;

typedef struct __attribute__ ((packed))
Expand Down
Loading