![]() |
NEMUS Harpsichord Interface Firmware
|
This documentation contain information for developing and deploying the firmware for the Haptic Harpsichord MIDI Controller
Pin layout adheres to the Arduino nano form factor
| Connection | Pin Left | Pin Right | Connection |
|---|---|---|---|
| EEPROM SPI CLK | D13 | D12 | Rotary CLK |
| EEPROM VCC | 3.3v | D11 | Rotary DATA |
| NC | AREF | D10 | Rotary Switch |
| PCB 0 | A0 | D9 | LED Data |
| PCB 1 | A1 | D8 | Mux C |
| PCB 2 | A2 | D7 | Mux B |
| PCB 3 | A3 | D6 | Mux A |
| PCB 4 | A4 | D5 | Mux Interrupt |
| PCB 5 | A5 | D4 | EEPROM SPI MISO |
| PCB 6 | A6 | D3 | EEPROM SPI MOSI |
| NC | A7 | D2 | EEPROM SPI CS |
| NC | 5v | GND | GND |
| NC | RESET | RST | Reset Switch |
| GND | GND | RX / D1 | NC |
PSU + | VIN | TX / D0 | NC |
Standard MIDI protocol is used. Changes in behaviour should be directed at the midi_functions.h
The system currently uses a 5V 1A power supply.
Thresholds can be calibrated using the the Rotary encoder port. A 5-pin rotary encoder can be attached / dettached at any time.
First open the Serial Plotter in the Arduino IDE. Send a 'p' character over serial and the sensor and threshold data for the current key will begin streaming.
Press down on the dial to cycle through the 3 modes: Key select, Pluck Threshold and Release Threshold.
| Mode | LED Colour |
|---|---|
| Key Select | Blue |
| Pluck Threshold | Green |
| Release Threshold | Purple |
The dial can then be used to adjust which key is being calibrated. Thresholds can be monitored through the data streamed over the Serial connection.
Double-click the dial to save all current thresholds to memory. All LEDs will briefly flash blue to confirm data has been saved.
If there are any problems with individual components, check the tests/ directory for a set siagnostic tests.
If the sensors seem to return random noise and do not respond to an IR LED it is possible the interrupt for the multiplexers is not connected or is at a positive voltage. Ground the INT pin of the multiplexer.