Move hardware definitions to separate file

This commit is contained in:
John Stäck 2019-03-01 13:59:11 +01:00
parent 1d8cd1a3ef
commit 18f3131d8a
3 changed files with 115 additions and 106 deletions

107
NuEVI.ino
View file

@ -7,6 +7,7 @@
#include <Adafruit_SSD1306.h> #include <Adafruit_SSD1306.h>
#include <Filters.h> // for the breath signal LP filtering, https://github.com/edgar-bonet/Filters #include <Filters.h> // for the breath signal LP filtering, https://github.com/edgar-bonet/Filters
#include "hardware.h"
#include "midi.h" #include "midi.h"
/* /*
@ -27,99 +28,9 @@ PROGRAMME FUNCTION: EVI Wind Controller using the Freescale MP3V5004GP breath
#define FIRMWARE_VERSION "1.3.2" // FIRMWARE VERSION NUMBER HERE <<<<<<<<<<<<<<<<<<<<<<< #define FIRMWARE_VERSION "1.3.2" // FIRMWARE VERSION NUMBER HERE <<<<<<<<<<<<<<<<<<<<<<<
#define REVB
//#define CASSIDY //#define CASSIDY
//Comment out the following line if you have Teensyduino 1.4.0 or earlier, to make pitch bend over USB-MIDI work.
#define NEWTEENSYDUINO
// Pin definitions
// Teensy pins
#define specialKeyPin 0 // SK or S2
#define halfPitchBendKeyPin 1 // PD or S1
#define bitePin 17
#define extraPin 16
#define pbUpPin 23
#define pbDnPin 22
#define vibratoPin 15
#define breathSensorPin A0
#define dPin 3
#define ePin 4
#define uPin 5
#define mPin 6
#define bLedPin 10
#define pLedPin 9
#define statusLedPin 13
#define vMeterPin A11
#define PBD 12
#define UPWD 1
#define DNWD 0
#if defined(REVB)
// MPR121 pins Rev B (angled pins at top edge for main keys and rollers)
#define R1Pin 0
#define R2Pin 2
#define R3Pin 4
#define R4Pin 6
#define R5Pin 8
#define K4Pin 10
#define K1Pin 1
#define K2Pin 3
#define K3Pin 5
#define K5Pin 7
#define K6Pin 9
#define K7Pin 11
/*
* PINOUT ON PCB vs PINS ON MPR121 - Rev. B
*
* (R1) (R2) (R3/6) (R4) (R5) (K4) <-> (00) (02) (04) (06) (08) (10)
*
* (K1) (K2) (K3) (K5) (K6) (K7) <-> (01) (03) (05) (07) (09) (11)
*
*/
# else
// MPR121 pins Rev A (upright pins below MPR121 for main keys and rollers)
#define R1Pin 10
#define R2Pin 11
#define R3Pin 8
#define R4Pin 9
#define R5Pin 6
#define K4Pin 7
#define K1Pin 4
#define K2Pin 5
#define K3Pin 2
#define K5Pin 3
#define K6Pin 0
#define K7Pin 1
/*
* PINOUT ON PCB vs PINS ON MPR121 - Rev. A
*
* (R2) (R4) (K4) (K2) (K5) (K7) <-> (11) (09) (07) (05) (03) (01)
*
* (R1) (R3/6) (R5) (K1) (K3) (K6) <-> (10) (08) (06) (04) (02) (00)
*
*/
#endif
#define ON_Delay 20 // Set Delay after ON threshold before velocity is checked (wait for tounging peak) #define ON_Delay 20 // Set Delay after ON threshold before velocity is checked (wait for tounging peak)
//#define touch_Thr 1200 // sensitivity for Teensy touch sensors //#define touch_Thr 1200 // sensitivity for Teensy touch sensors
@ -820,35 +731,35 @@ void loop() {
if (exSensor >= ((extracThrVal+extracMaxVal)/2)){ // instant midi setting if (exSensor >= ((extracThrVal+extracMaxVal)/2)){ // instant midi setting
if ((fingeredNoteUntransposed >= 73) && (fingeredNoteUntransposed <= 88)) { if ((fingeredNoteUntransposed >= 73) && (fingeredNoteUntransposed <= 88)) {
MIDIchannel = fingeredNoteUntransposed - 72; // Mid C and up MIDIchannel = fingeredNoteUntransposed - 72; // Mid C and up
digitalWrite(13,LOW); digitalWrite(statusLedPin, LOW);
delay(150); delay(150);
digitalWrite(13,HIGH); digitalWrite(statusLedPin, HIGH);
} }
} else { } else {
if (!pinkyKey){ // note number to patch number if (!pinkyKey){ // note number to patch number
if (patch != fingeredNoteUntransposed){ if (patch != fingeredNoteUntransposed){
patch = fingeredNoteUntransposed; patch = fingeredNoteUntransposed;
doPatchUpdate = 1; doPatchUpdate = 1;
digitalWrite(13,LOW); digitalWrite(statusLedPin, LOW);
delay(150); delay(150);
digitalWrite(13,HIGH); digitalWrite(statusLedPin, HIGH);
} }
} else { // hi and lo patch numbers } else { // hi and lo patch numbers
if (fingeredNoteUntransposed > 75){ if (fingeredNoteUntransposed > 75){
if (patch != patchLimit(fingeredNoteUntransposed + 24)){ if (patch != patchLimit(fingeredNoteUntransposed + 24)){
patch = patchLimit(fingeredNoteUntransposed + 24); // add 24 to get high numbers 108 to 127 patch = patchLimit(fingeredNoteUntransposed + 24); // add 24 to get high numbers 108 to 127
doPatchUpdate = 1; doPatchUpdate = 1;
digitalWrite(13,LOW); digitalWrite(statusLedPin, LOW);
delay(150); delay(150);
digitalWrite(13,HIGH); digitalWrite(statusLedPin, HIGH);
} }
} else { } else {
if (patch != patchLimit(fingeredNoteUntransposed - 36)){ if (patch != patchLimit(fingeredNoteUntransposed - 36)){
patch = patchLimit(fingeredNoteUntransposed - 36); // subtract 36 to get low numbers 0 to 36 patch = patchLimit(fingeredNoteUntransposed - 36); // subtract 36 to get low numbers 0 to 36
doPatchUpdate = 1; doPatchUpdate = 1;
digitalWrite(13,LOW); digitalWrite(statusLedPin, LOW);
delay(150); delay(150);
digitalWrite(13,HIGH); digitalWrite(statusLedPin, HIGH);
} }
} }
} }

100
hardware.h Normal file
View file

@ -0,0 +1,100 @@
#ifndef __HARDWARE_H
#define __HARDWARE_H
#define REVB
//Comment out the following line if you have Teensyduino 1.4.0 or earlier, to make pitch bend over USB-MIDI work.
#define NEWTEENSYDUINO
// Pin definitions
// Teensy pins
#define specialKeyPin 0 // SK or S2
#define halfPitchBendKeyPin 1 // PD or S1
#define bitePin 17
#define extraPin 16
#define pbUpPin 23
#define pbDnPin 22
#define vibratoPin 15
#define breathSensorPin A0
#define dPin 3
#define ePin 4
#define uPin 5
#define mPin 6
#define bLedPin 10
#define pLedPin 9
#define statusLedPin 13
#define vMeterPin A11
#define PBD 12
#define UPWD 1
#define DNWD 0
//Which serial port to use for MIDI
#define MIDI_SERIAL Serial3
#if defined(REVB)
// MPR121 pins Rev B (angled pins at top edge for main keys and rollers)
#define R1Pin 0
#define R2Pin 2
#define R3Pin 4
#define R4Pin 6
#define R5Pin 8
#define K4Pin 10
#define K1Pin 1
#define K2Pin 3
#define K3Pin 5
#define K5Pin 7
#define K6Pin 9
#define K7Pin 11
/*
* PINOUT ON PCB vs PINS ON MPR121 - Rev. B
*
* (R1) (R2) (R3/6) (R4) (R5) (K4) <-> (00) (02) (04) (06) (08) (10)
*
* (K1) (K2) (K3) (K5) (K6) (K7) <-> (01) (03) (05) (07) (09) (11)
*
*/
# else
// MPR121 pins Rev A (upright pins below MPR121 for main keys and rollers)
#define R1Pin 10
#define R2Pin 11
#define R3Pin 8
#define R4Pin 9
#define R5Pin 6
#define K4Pin 7
#define K1Pin 4
#define K2Pin 5
#define K3Pin 2
#define K5Pin 3
#define K6Pin 0
#define K7Pin 1
/*
* PINOUT ON PCB vs PINS ON MPR121 - Rev. A
*
* (R2) (R4) (K4) (K2) (K5) (K7) <-> (11) (09) (07) (05) (03) (01)
*
* (R1) (R3/6) (R5) (K1) (K3) (K6) <-> (10) (08) (06) (04) (02) (00)
*
*/
#endif
#endif

View file

@ -1,7 +1,5 @@
#include "midi.h" #include "midi.h"
#include "hardware.h"
//Need this define here for now
#define NEWTEENSYDUINO
int midiChannel = 1; int midiChannel = 1;
@ -71,17 +69,17 @@ void midiPanic() { // all notes off
// Send a three byte din midi message // Send a three byte din midi message
void midiSend3B(byte midistatus, byte data1, byte data2) { void midiSend3B(byte midistatus, byte data1, byte data2) {
MidiSerial.write(midistatus); MIDI_SERIAL.write(midistatus);
MidiSerial.write(data1); MIDI_SERIAL.write(data1);
MidiSerial.write(data2); MIDI_SERIAL.write(data2);
} }
//************************************************************** //**************************************************************
// Send a two byte din midi message // Send a two byte din midi message
void midiSend2B(byte midistatus, byte data) { void midiSend2B(byte midistatus, byte data) {
MidiSerial.write(midistatus); MIDI_SERIAL.write(midistatus);
MidiSerial.write(data); MIDI_SERIAL.write(data);
} }
//************************************************************** //**************************************************************