Custom handwired keyboard of the grandMA2 programming section, that sends MIDI notes to control the console.
- Keyboard Maintainer: Jonas Hartmann
- Used controller: Raspberry Pi Pico
- Used switches: Cherry MX Black
Electronics
Amount | Part | Where to buy |
---|---|---|
70 | Cherry MX Black (For the same feeling as on the console) | Reichelt.de (Germany) |
70 | Diodes 1N 914 | Reichelt.de (Germany) |
1 | Raspberry Pi Pico | Reichelt.de (Germany) |
1 | Insulated copper wire | Reichelt.de (Germany) |
Lasercut parts
Amount | Part | File |
---|---|---|
1 | Top Plate | top-plate.dxf |
1 | Switch Plate | switch-plate.dxf |
1 | Bottom Plate | bottom-plate.dxf |
1 | Cable Plate | cable-plate.dxf |
5 | Wall Plate | wall-plate.dxf |
All the parts as well as the plates are required
Place all the switches in the switch plate
Solder the switches and diodes, according to the wiring matrix. Don't solder the rows and columns to the pico yet!
Do not go too hot with the temperature on the soldering iron. 300°C worked fine for me.
-
You need to install KMK on the microcontroller by following this guide.
-
After installing KMK you need to replace the contents of your code.py or main.py file with this file.
-
If you run into errors when trying to send MIDI notes you might need to install the adafruit_midi library on the microcontroller.
Now solder the rows and columns to the pico
Row | Pico | Column | Pico |
---|---|---|---|
Row 0 | GP 5 | Column 0 | GP 4 |
Row 1 | GP 8 | Column 1 | GP 3 |
Row 2 | GP 6 | Column 2 | GP 2 |
Row 3 | GP 7 | Column 3 | GP 1 |
Row 4 | GP 9 | Column 4 | GP 0 |
Row 5 | GP 10 | Column 5 | GP 19 |
Row 6 | GP 11 | Column 6 | GP 18 |
Row 7 | GP 12 | Column 7 | GP 17 |
Row 8 | GP 13 | Column 8 | GP 16 |
Row 9 | GP 14 | ||
Row 10 | GP 15 |
- Select the keyboard in the GrandMA2 onPC's Midi In settings
- Map the midi notes to the midi remote in GrandMA2 onPC
The firmware is written using KMK.
The midi notes need to be mapped new in every different showfile!
To import the midi mappings into your showfile, copy the MA2_Keyboard.xml into your importexport
folder of your GrandMA2 install and run the import command
import "MA2_Keyboard" at remote 2
NOTE: If you already have midi mapping setup in your showfile, make sure there are no collisions of midi note numbers.
You need to set the "Note" value in GrandMA2's Remote Input Setting to the following table
Midi Number | Key |
---|---|
0 | Encoder Key |
1 | Tools |
2 | Setup |
3 | Backup |
4 | Help |
5 | Blind |
6 | Freeze |
7 | Preview |
8 | Assign |
9 | Align |
10 | Fix |
11 | Select |
12 | Off |
13 | View |
14 | Effect |
15 | Goto |
16 | Del |
17 | Temp |
18 | Top |
19 | On |
20 | Page |
21 | Macro |
22 | Preset |
23 | Copy |
24 | <<< |
25 | Learn |
26 | >>> |
27 | Sequ |
28 | Cue |
29 | Exec |
30 | Go - |
31 | Pause |
32 | Go + |
33 | Channel |
34 | Fixture |
35 | Group |
36 | Move |
37 | Time |
38 | Esc |
39 | 7 |
40 | 8 |
41 | 9 |
42 | + |
43 | Full |
44 | Highlight |
45 | Solo |
46 | Edit |
47 | Oops |
48 | 4 |
49 | 5 |
50 | 6 |
51 | Thru |
52 | 1 |
53 | 2 |
54 | 3 |
55 | - |
56 | Up |
57 | Update |
58 | Clear |
59 | 0 |
60 | . (Dot) |
61 | If |
62 | At |
63 | Previous |
64 | Set |
65 | Next |
66 | Store |
67 | MA |
68 | Please |
69 | Down |