Build the "REMI" - mk2
Recorder-like Electronic Musical Instrument

A DIY Project by M.J. Bauer

This post describes the design and construction of the "second generation" REMI (mk2).
For a general introduction to the project, see the original REMI post here.
Refresh this page in your browser to be sure you are viewing the latest update!

Synth mk2
REMI 'mk2' Synth Module prototype

What has changed in the revised design?

The new PIC32 synth module is greatly simplified. It is based on a PIC32-MX340 proto board from Olimex (pictured below), priced at 19.95 (US$22 approx). The board has parts added for the MIDI IN and MIDI OUT interface circuits, plus PWM audio output circuitry, 5V regulator for the MIDI interface and LCD panel, and an IIC EEPROM to store synth configuration and preset parameters. A separate prototyping board may be added to carry a headphone amplifier with volume control.

The complete module incorporates a front-panel user interface (GUI) consisting of a low-cost monochrome graphic LCD panel and 6 push-buttons. The LCD module and key-switches are wired directly to I/O pads on the Olimex PIC32 board.

PIC32 synth proto
Olimex PIC32MX prototype board with REMI add-ons (without LCD panel wired)

The firmware supports most LCD modules using the KS0107/KS0108 controller chipset. This is the preferred option, because the KS0108 MCU interface is much faster than the ST7920. Moreover, the KS0108 MCU interface signals are compatible with 3.3V logic, which means that the LCD module can be powered directly from the 5V supply rail. 

If using a display with the ST7920 chip, the VDD supply voltage must be dropped to about 4.5V (via a Schottky diode) to ensure logic-level compatibility with the PIC32 I/O signals (3.3V outputs, 5V tolerant inputs on Port-E). A firmware variant can be compiled to support the ST7920 LCD controller chip.

A suitable LCD panel is available from Sparkfun. Alternative modules are available at low cost from online suppliers, e.g. Ali-Express. This type of LCD module is also available with smaller overall dimensions and a smaller dot pitch (~0.4mm). There are many variants of the connector pinout, chip-select polarity, etc, so be sure to observe the datasheet of the display module you choose. It's probably best to use a module which has the signal names screen-printed on the PCB connector pads.

... to be continued ...

Revised Fingering Scheme

REMI fingering is based on a traditional woodwind instrument, i.e. the recorder, with simplifications. The  scheme uses eight touch-pads on the upper surface. Four pads are operated by fingers on the left hand and four pads are operated by the right hand. The fourth pad on the left hand (LH4), which doesn't exist on the recorder, serves to sharpen certain notes (e.g. to produce C# and F#). This arrangement, in keeping with other EWI designs, is simpler and more logical than the fingering on acoustic wind instruments.

Two pads on the underside of the handset operated by the left-hand thumb select one of three ranges of notes, each range being up to two octaves. The octave pads are located so that one or other or both pads together can be activated. When both octave pads are activated (by thumb on centre indent), the "middle" note range is selected (normally C4 to C6). By moving the thumb to the upper or lower pad (indent), the range of notes is shifted up or down by one octave, respectively. The octave pads extend the overall range to four octaves.

Referring to the “Bauer EWI Fingering Chart” (mk2) below, it can be seen that the fingering combinations cover up to two octaves without changing octave selection by the LH thumb. Selection of notes in the first octave of the range follows quite closely the fingering patterns of the recorder, or flute, including C" (Alt.) above the low C'. Contrary to the recorder, however, the second octave simply repeats the fingering pattern of the lower octave, with the top pad (LH1) released, right up to G". Above high G", the fingering gets a bit weird, but not as weird as a real recorder. Notes above G" can be avoided, if preferred, simply by changing octaves using the LH thumb (except when already in the highest octave range).

Alternative fingering schemes may be implemented by modifying the firmware, of course.

Bauer EWI Fingering (mk2)

Handset mk2 Design & Construction

In the mk1 handset, the 10 touch-pads were wired to a NXP MPR121 capacitive touch sensor breakout board from SparkFun, interfaced to the MCU via an I2C serial bus. The handset was connected to the PIC32 MCU in the synth module via a 6-wire cable (including +5V DC power, 2-wire I2C bus and 2 analog sensor signals). 

Unfortunately, NXP has stopped making the MPR121 chip and Sparkfun has discontinued the breakout board. However, I was never happy with the design having I2C comm's (unbufferred) through a 2-metre long cable. 

A planned re-design of the wired handset will incorporate a low-cost micro-controller with direct touch-sense inputs for the touch-pads. Instead of I2C, the new handset will have a classic MIDI output connection, so it can be plugged into the 'MIDI IN' socket on the mk2 synth module. The MIDI connector will also supply 5V DC power to the handset.

The new handset will be able to connect to other MIDI sound modules, or to a computer via a MIDI-USB adapter*, allowing it to operate without a REMI controller/synth module. There is a mountain of software synth app's available for Windows, Mac, iOS and Android - many free to download - just Google "VST synth".

[ *MIDI-USB adapters are available for less than $10 from online suppliers. ]

In 2017, another electronics engineer, David Ardouin (in France) took on the task to develop a battery-powered wireless handset to be paired with the REMI (mk2) controller. For details, see David's post on Elektor Labs. Since David's professional career and other commitments have taken higher priority, there is some uncertainty about completion of his wireless handset project. However, I plan to take over development of a wireless REMI prototype, but without a custom PCB. 

... to be continued ...


Planned to be implemented in version 2:
  • More patches, wave-tables, modulation effects, etc, for the synth 
  • Support front panel GUI using 6 push-buttons instead of 4x4 keypad
  • Support LCD modules using KS0107/KS0108 controller chipset 
  • Support MIDI IN messages (UART RX data) to control and play the synth
  • Support REMI mk2 handset, either wired (MIDI) or wireless

Programming Tools

A PIC programming tool, e.g. Microchip PICkit-3, is required to install the REMI application firmware.
Low-cost PICkit-3 clones are available from online suppliers via AliExpress, eBay, etc.

REMI firmware is built using Microchip PIC development tools - MPLAB.X IDE with XC32 and XC8 compilers - free to download from Microchip's website. If you intend to modify or extend the firmware, you will need these tools. Otherwise, you just need to install the PIC programmer application (IPE) on your computer.

Downloads & Links - mk2

PIC32 Synth Module schematic

Firmware Development Kit
for PIC32 Sound Synth Module
(Source code, MPLAB.X project files, etc)

A message from the author: The rate of progress on the REMI project is dependent on expressions of interest from readers of this post. So, if you might be interested in building a REMI - synth module and/or EWI handset - or if you just enjoy following the developments here, kindly send me an email. Support is offerred to readers who wish to build a REMI or some other electronic music device. [Mike]

link to email address

Last update: 29-OCT-2018

MJB Resources for Embedded Firmware Development