Tonex One Controller: An open-source controller and display interface for the IK Multimedia Tonex One guitar pedal
- Hardware Platform 1 Waveshare 4.3B
- Hardware Platform 2 Waveshare Zero
- Hardware Platform 3 Waveshare 1.69
- Hardware Platform 4 Espressif DevKit-C
- Hardware Platform 5 M5Stack Atom S3R
- Wired Footswitches - onboard
- Wired Footswitches - external
- Wired Midi
- Cases
- 9 volt Power for 5 volt models
Four hardware platforms are supported. Other ESP32-S3 platforms could be supported but would require code changes.
They would need to meet the minimum requirements:
- Minimum SPI Flash size: 8 MB with display, 4 MB without
- Minimum PSRAM size: 2 MB
- USB OTG port
This hardware platform uses this Waveshare 4.3" B LCD board. https://www.waveshare.com/product/esp32-s3-touch-lcd-4.3b.htm?sku=28141
Important note: Waveshare have two very similar boards:
- ESP32-S3-4.3: 2 USB-C ports. 5 volt power input. This board is NOT RECOMMENDED but can be made to work with a board modification (remove R19)
- ESP32-S3-4.3B: 1 USB-C port and a terminal block for 9v power input. This is the recommended board and works without modification
This module provides the microcontroller, power input suitable for 9v DC pedal board use, LCD screen, capacitive touch screen, and dual isolated inputs suitable for momentary foot switches.
Note: the controller code relies on the Tonex One pedal being set to Stomp mode. Code is in place to do this automatically.
- Connect the USB-C port on the Waveshare board to the ToneX One USB-C port
- Optional: connect dual footswitches to the isolated inputs on the Waveshare board. GND to ground. DI0 for footswitch 1. DI1 for footwitch 2. Exact wiring depends on the footswitch but is usually a 6.5mm stereo jack
- Connect 9V DC power supply to the terminals on the Waveshare board. The terminals are screw terminals, so most likely a DC jack to wires will be needed.
- Switch on the power supply
- The Waveshare board USB port will power the Tonex One. Do not connect 9 volts to it!
- Optional: for the Bluetooth Client version of code, switch on a M-Vave Chocolate Midi pedal (https://www.cuvave.com/productinfo/724103.html). After a few seconds it should connect and the Bluetooth icon should change from gray to blue
- Optional: for the Bluetooth Server version of code, the controller will be available as a peripheral for you to connect to via a Bluetooth Midi device. The Bluetooth icon should change from gray to blue when connected.
This hardware platform uses this Waveshare Zero board. https://www.waveshare.com/product/esp32-s3-zero.htm
Ensure its the ESP32-S3FH4R2 with USB-C port. There are some similar boards with no USB-C or slightly different processor
This module is very low cost (around US$6) and does not support an LCD display. It requires a 5 volt DC power supply.
Caution: do not directly connect a pedalboard 9v! If you do, you will probably blow up both the PCB and your Tonex One!
If you do wish to use 9v power, refer to 9 volt Power for Zero and 1.69
Note: the controller code relies on the Tonex One pedal being set to Stomp mode. Code is in place to do this automatically.
- Solder a DC jack to the PCB, as shown below. Note the positive and negative polarity must match your power supply
- Connect the USB-C port on the Waveshare board to the ToneX One USB-C port
- Connect 5 volts DC to the power input jack that you soldered in the first step
- Switch on the power supply
- The Waveshare board USB port will power the Tonex One. Do not connect 9 volts to it!
- Optional: for the Bluetooth Client version of code, switch on a M-Vave Chocolate Midi pedal (https://www.cuvave.com/productinfo/724103.html). After a few seconds it should connect and the Bluetooth icon should change from gray to blue
- Optional: for the Bluetooth Server version of code, the controller will be available as a peripheral for you to connect to via a Bluetooth Midi device. The Bluetooth icon should change from gray to blue when connected.
This hardware platform uses this Waveshare ESP32-S3 1.69" LCD board. https://www.waveshare.com/esp32-s3-lcd-1.69.htm
Important note: Waveshare have a V1 and a V2 PCB. The V2 has a small sticker on the USB-C port.
The V2 works very well, but on the V1, due to an error in Waveshare's design, the onboard Buzzer will make some noise.
It is recommended to check with your supplier if the board has the V2 sticker, and try to only purchase this V2 version.
If you have already purchased and received a V1 (no V2 sticker on the USB-C port) then there are two options to address the buzzer noise:
- Cover the small hole on the buzzer. It is square plastic component next to the USB-C port. Cover the hole with tape, or a small amount of glue or similar. This should reduce the noise, but may still be audible
- Using the below diagram, remove the resistor shown using a soldering iron. Note that this will void the PCB warranty, but being so cheap the return postage cost for a warranty claim would probably cost more than the PCB anyway. This modification will completely disable the buzzer permanently and eliminate all noise from it
This module is low cost (around US$16) and supports an LCD display, about the same size as an Apple Watch. It requires a 5 volt DC power supply.
Caution: do not directly connect a pedalboard 9v! If you do, you will probably blow up both the PCB and your Tonex One!
If you do wish to use 9v power, refer to 9 volt Power for Zero and 1.69
Waveshare makes this board both with and without a touch screen. They are almost the same, except that the Touch version doesn't support footswitch four.
Note: the controller code relies on the Tonex One pedal being set to Stomp mode. Code is in place to do this automatically.
- Solder a DC jack to the PCB, as shown below. Note the positive and negative polarity must match your power supply
- Connect the USB-C port on the Waveshare board to the ToneX One USB-C port
- Connect 5 volts DC to the power input jack that you soldered in the first step
- Switch on the power supply
- The Waveshare board USB port will power the Tonex One. Do not connect 9 volts to it!
This hardware platform uses the Espressif ESP32-S3 Devkit-C board (8MB flash, 2 MB PSRAM version.)
This module is low cost and does not support an LCD display. It requires a 5 volt DC power supply.
Caution: do not directly connect a pedalboard 9v! If you do, you will probably blow up both the PCB and your Tonex One!
If you do wish to use 9v power, refer to 9 volt Power for Zero, 1.69 and Devkit-C
Note: the controller code relies on the Tonex One pedal being set to Stomp mode. Code is in place to do this automatically.
- Solder a DC jack to the PCB, as shown below. Note the positive and negative polarity must match your power supply
- Connect the OTG USB-C port on the board to the ToneX One USB-C port
- Connect 5 volts DC to the power input jack that you soldered in the first step
- Switch on the power supply
- The board USB port will power the Tonex One. Do not connect 9 volts to it!
- Optional: for the Bluetooth Client version of code, switch on a M-Vave Chocolate Midi pedal (https://www.cuvave.com/productinfo/724103.html). After a few seconds it should connect and the Bluetooth icon should change from gray to blue
- Optional: for the Bluetooth Server version of code, the controller will be available as a peripheral for you to connect to via a Bluetooth Midi device. The Bluetooth icon should change from gray to blue when connected.
This hardware platform uses the M5Stack Atom S3R board (8MB flash, 8 MB PSRAM version.)
This module is low cost, supports a tiny LCD display, and comes in a case. It requires a 5 volt DC power supply.
Caution: do not directly connect a pedalboard 9v! If you do, you will probably blow up both the PCB and your Tonex One!
If you do wish to use 9v power, refer to 9 volt Power for Zero, 1.69 and Devkit-C
Note: the controller code relies on the Tonex One pedal being set to Stomp mode. Code is in place to do this automatically.
- Connect a DC jack to the PCB via the 4 pin connector, as shown below. Note the positive and negative polarity must match your power supply
- Connect the OTG USB-C port on the board to the ToneX One USB-C port
- Connect 5 volts DC to the power input jack that you connected in the first step
- Switch on the power supply
- The board USB port will power the Tonex One. Do not connect 9 volts to it!
- Optional: for the Bluetooth Client version of code, switch on a M-Vave Chocolate Midi pedal (https://www.cuvave.com/productinfo/724103.html). After a few seconds it should connect and the Bluetooth icon should change from gray to blue
- Optional: for the Bluetooth Server version of code, the controller will be available as a peripheral for you to connect to via a Bluetooth Midi device. The Bluetooth icon should change from gray to blue when connected.
Wired footswitches can optionally be used. These "onboard" switches connect directly to the controller with out needing any additional circuitry.
The footswitch must be a "momentary" type that is only has its contacts closed when it is pressed.
The common pin of the footswitch must connect to the Controller ground pin, and the other wires connected as shown.
For the Waveshare 4.3B, a maximum of 2 footswitches are supported, always in next/previous preset mode.
For the Waveshare 1.69" Touch, a maximum of 3 footswitches are supported.
For the other platforms, with firmware version 1.0.5.2 or above, three modes are supported, set using the web configuration, to one of:
- 2 switches, doing Next/Previous preset
- 4 switches, doing banked switching (just like the M-vave Chocolate pedal does)
- 4 switches, doing direct preset selection via binary (intended for relay control)
Starting from firmware version 1.0.8.2, with the use of an additional PCB, up to 16 footswitches can be connected.
The footswitch must be a "momentary" type that is only has its contacts closed when it is pressed.
The additional PCB must use the "SX1509" chip. The recommeded one is the Sparkfun SX1509 breakout board:
https://www.sparkfun.com/sparkfun-16-output-i-o-expander-breakout-sx1509.html
NOTE: other types of IO expander boards that use different chips are not supported and will not function. It must contain the SX1509 chip.
The SX1509 PCB has a selectable address system. This must be set correctly in order for the board to function with the controller.
- Using a sharp knife, carefully cut the thin tracks between the pads as shown below
- Use solder to bridge the pads as shown below
- This sets the SX1509 adress to "11" which avoids conflicting with other parts on the controller boards
The common pin of each footswitch must connect to the SX1509 ground pins. The labels "0", "1" etc are the individual switch inputs. Footswitch 1 connected to input 0. Footswitch 2 to input 1 etc.
Multiple modes are supported, configured using the web configuration.
Note: Wired Midi is disabled by default. If it is enabled without the proper hardware (detailed below) being fitted, you may get "phantom" preset changes, due to the serial input "floating".
Only enable wired Midi when hardware is connected!
Refer here for details on how to enable it, and set the Midi channel:
https://github.com/Builty/TonexOneController/blob/main/WebConfiguration.md
Wired Midi is supported on all platforms. A extra PCB is required for all platforms, an "Adafruit Midi FeatherWing kit", for US$7.
https://www.adafruit.com/product/4740
This Midi board supports both 5-pin DIN sockets (included in kit) and 3.5mm jacks (not included in kit.)
The Waveshare Zero, 1.69" LCD, and Atom S3R boards can directly connect to the Midi Featherwing PCB.
The Waveshare 4.3B, due to hardware limitations, requires another small interface. This a common, low cost "TTL to RS485" adaptor.
Typical examples of this PCB:
https://www.amazon.com/HiLetgo-Reciprocal-Hardware-Automatic-Converter/dp/B082Y19KV9
https://www.amazon.com.au/dp/B0DDLBYFJB
Midi Featherwing:
Waveshare Zero to Midi Featherwing:
Waveshare 1.69" to Midi Featherwing:
Espressif Devkit-C to Midi Featherwing:
Waveshare 4.3B to Midi Featherwing via the TTL to RS485 adaptor:
M5Stack Atom S3R to Midi Featherwing:
With the Zero and 1.69" boards being bare PCBs, a case of some type is useful to protect it. Here are some links to 3D printed options.
Community member "AlmaMaterFL" designed this one:
https://www.printables.com/model/1110479-esp32-s3-zero-m-case-pin-version
Community member "AlmaMaterFL" designed this one:
https://www.printables.com/model/1114384-esp32-s3-169inch-case
Community member "bauerbyter" designed this one:
https://www.tinkercad.com/things/28eY73uKDzx-copy-of-tonex-one-controller?sharecode=IBZcHWdWU0IU3KJacFaUorztHQgdARKkLArXdZe-xvc
It fits together with this part:
https://www.thingiverse.com/thing:6715828
The 4.3B model can accept the standard 9 volt pedalboard power, however the Zero, the 1.69", the Devkit-C, and the Atom S3R boards are a maximum of 5 volts input.
It is still possible however to run them from a 9 volt power supply, with the additional of another low cost off-the-shelf PCB.
Caution: This section requires some more advanced skills, such as using a multimeter to measure voltage. Incorrect voltage setting or polarity could cause damage to the PCB and/or your Tonex pedal.
Various electronic shops, and also suppliers like Amazon, often have low cost "switching regulators." These are a compact circuit that can convert the 9 volt pedalboard power down to the 5 volts required by the Zero and the 1.69. Sample photos are shown below.
Some of these may be a fixed voltage, in which case you must select one with a 5 volt output. Most models however are adjustable, using a small "trimpot."
For the adjustable types, it is necessary to set it to 5 volts output before connecting to the controller PCB.
- Connect the 9 volt input to the input terminals on the voltage regulator PCB. Ensure the positive and negative the right way around. The standard for pedal boards is usually negative to the centre pin of the DC jack, but this should be checked
- Set the multimeter to measure DC voltage, then connect the multimeter probes to the voltage regulator output terminals
- Adjust the trimpot on the voltage regulator PCB to achieve close to 5 volts. I doesn't have to be exactly 5 volts, but should be in the range of 4.95v to 5.05v
- Once this has been achieved, connect the voltage regulator output terminals to the Waveshare Zero, 1.69", Devkit-C, or Atom S3R board, in the same locations as shown in the prior wiring diagrams
- Keep the Tonex pedal disconnected, and power on the board. Check that it boots up and runs normally
- Once this test has passed, then you can connect the Tonex pedal