EWI-Plus
Building a better EWI-USB
13 September 2025
EWI-USB Limitations
I’ve had an EWI-USB MIDI wind controller since 2015, and it’s a great instrument. It does, however, have a few limitations for me:
- It has no ability to adjust its settings without using a computer, e.g. for changing transposition
- It has no Bluetooth, and so needs to either be connected by cable to the synth, or you have to build a battery-and-BLE-adapter arrangement to transmit the MIDI signals
- It has no fine calibration of the breath – only gain
- The top and bottom octave rollers are connected together, meaning that under certain circumstances you don’t get the octave you want. If you’re in the centre octave and you want to go to the highest octave, you have to actually play a note on the intermediate octave on the way through.
- The Bis key is too big, and is easily touched accidentally
- It has no ability to send non-note commands to the synth, e.g. for program change
None of these limitations is a major problem on its own, but there are more sophisticated processors and hardware available now which could overcome all the limitations. So, I decided to replace the internals of the EWI-USB with more modern components.
Credits
I want to thank Andrew from Mowry Stringed Instruments (maker of the Warbl2) for his assistance in this project.
Choice of Processors
I’ve previously used Teensy processors, as they have built-in native USB-MIDI capacity. However, they don’t have any BLE capability, so I would have had to use a separate BLE module.
I chose to use a Adafruit nRF52840 Express which has both the USB and BLE MIDI capability and is easily programmed using the Arduino IDE. In addition, it has the capacity to charge a LiPo battery. Further to the main processor, capacitive sensing chips are required to run the EWI’s touch-sensitive keys. I chose the MPR121 chips that I have had great success with previously. I used the Qwiic connectors to daisy-chain to the main processor. I also decided to install an EEPROM for storage of the instrument configuration.
Component | Description | Comments |
---|---|---|
Main processor | Adafruit nRF52840 Express | Has USB, BLE MIDI, and battery charging capability |
Capacitive sensing | MPR 121 x 2 | With Qwiic connectors |
Qwiic Connector | Adafruit Qwiic / Stemma QT Breakout Board | To enable easy connection to the other boards |
EEPROM | SparkFun Qwiic EEPROM Breakout – 512Kbit | |
Battery | Polymer Lithium Ion Battery (LiPo) 3.7V 1100mAh | Has connector for main processor board |
Display | PiicoDev OLED Display Module (128×64) SSD1306 | Mounted on the side of the instrument, just below the mouthpiece |
Breath sensor | Honeywell ABPLLND060MGAA3 | 3V3 60 millibar |
Installing the Hardware
I pulled the EWI-USB apart and removed all the internal circuit boards.
I made 3-D printed mounting plates for the octave rollers, the adjustable pinky keys, the main processor, the capacitive sensing boards, and the battery. These were all installed inside the EWI shell.
The use of Qwiic connectors made linking the various boards really easy.
These photos are of the thumb roller assembly:


This shows the stripped-down keyboard and wiring:

The cap sensing boards mounted inside the casing. I used the MPR121s with the larger soldering pads:

The battery and Qwiic connector. The battery is held in with double-sided-tape:

I made a screw-on 3-D printed housing for the display and the control buttons. It is mounted on the side of the instrument, as it would have been very difficult to mount the display and buttons inside the EWI shell. This works, but is not very pretty – maybe I’ll make a nicer-looking one:

I replaced the Bis key with a much smaller screw. It’s easy to touch with the tip of my index finger:

I mounted a USB-C socket on the LH outside of the shell to connect with the processor inside. I don’t intend to play this instrument with a cable -I need it only for programming and charging, so the location of the socket was only determined by the ease of running the cable internally:

I mounted a sliding power switch on the RH side:

In the above photo you can also see the “Program Select” button on the left. Clicking that, in combination with the front keys changes the selected program.
And this is what it looked like before I screwed it back together:

The Programming
I re-used the program from my e-WB, so most of the debugging was minimal. Changes were needed to handle the USB MIDI and BLE MIDI. The Adafruit libraries for these were easy to use (Thanks to Andrew Mowry’s Warbl2 code), and were up and running quickly. The capacitive sensing boards worked really well on the EWI’s touch sensitive keys, and also on the UP/DOWN bend keys and the bite sensor (which are all capacitive).
The Results
The ability to configure the instrument without using a computer is great – I’d used the method before, so it wasn’t revolutionary. The BLE-MIDI works beautifully – I’m using a Widi-Bud Pro to receive the MIDI, and it is really fast. The battery capacity was a surprise – I’ve had it running for over 6 hours, and there was still plenty left. I haven’t attempted to do any power-saving programming! I chose the 1100mAh unit because it fitted easily in the space. I’ll do some tests to see what the real-life usage is like. Watch this space.
The library for the MPR121 cap sensing boards has improved – previously I’d had to use the slow “filtered data” approach to get the touch key info. Now, the touch keys work much faster, and I have to use the slower method only for reading the bend/bite keys. The processor is about the same speed as the previous Teensy one I was using, but with the improved cap-sensing speed the overall package runs faster. It is certainly easily capable of meeting the demands of the instrument.
Another surprise was that the instrument is 100g lighter than it was originally.
Update History:
- 13/9/2025 – Original post