Line 1:
Line 1:
−
The All-In-One circuit can be tweaked for having 4 extra switches that can be used for a sustain pedal, MIDI switches (very useful for SooperLooper!), or for sending some specific MIDI message (program change, etc.).
+
==Using All-In-One module or Zynscreen display (MCP23017)==
+
+
The All-In-One circuit (or the Zynscreen display) can easily be modified by adding up to 4 extra switches which can be used for a panic button, a sustain pedal, or other MIDI-CC switches (very useful for SooperLooper!).
The unused pins in the MCP23017 are:
The unused pins in the MCP23017 are:
−
pin 27 (GPA6)
+
* pin 27 (GPA6)
−
pin 28 (GPA7)
+
* pin 28 (GPA7)
−
pin 7 (GPB6)
+
* pin 7 (GPB6)
−
pin 8 (GPB7)
+
* pin 8 (GPB7)
−
The first 2 are bound to INTA and the other 2 to INTB.
+
+
The first 2 are bound to INTA and the other 2 to INTB
+
+
If you have a recent version of the All-In-One circuit (or a Zynscreen display), it includes an extra row-pin connector (SW1) that allows to easily use these extra GPIO ports. If you don't, you have to solder your wires directly to the MCP23107 pins.
+
This is the pin assignment for the row-pin connector (SW1):
+
+
* pin 1 => GND
+
* pin 2 => WiringPi GPIO 106
+
* pin 3 => WiringPi GPIO 107
+
* pin 4 => WiringPi GPIO 114
+
* pin 5 => WiringPi GPIO 115
+
+
You can check the All-In-One schematic [http://wiki.zynthian.org/images/4/44/Zynthian_allinone.sch.svg here]
+
+
[[File:pcb_all-in-one_v2.1.jpg|700px]]
+
+
[[File:module_all-in-one_v2.1.jpg|700px]]
+
+
You can check the Zynscreen schematic [http://wiki.zynthian.org/images/4/40/ZynScreen_v1.3.svg here]
+
+
[[File:Zynscreen sw1.jpg|700px]]
+
+
So, if you have a recent version of All-In-One circuit (or a Zynscreen display), you can follow these simple steps to add your custom switches:
+
+
* Update your zynthian
+
* Solder the 5 row-pin connector to your All-In-One circuit (or Zynscreen display) (SW1)
+
* Connect some kind of switch between pins 2-5 and pin 1 (GND). The switches are normally open, closing to pin 1 (GND).
+
* From the webconf tool go to the hardware menu => wiring section:
+
** Select MCP23017_EXTRA as wiring layout (MCP23017_ZYNSCREEN if you have the Zynscreen display). This will set your ZYNTHIAN_WIRING_SWITCHES to “100,103,108,111,106,107,114,115”
+
** Configure the desired actions (advanced options). The UI active layer’s MIDI channel will be used for MIDI actions.
+
+
You can read more about this subject here:
+
+
* https://discourse.zynthian.org/t/extra-switches-sw1-sustain-pedal-panic-button-etc/1843
+
* https://discourse.zynthian.org/t/extra-switches-now-customizable-from-webconf/2765
+
+
===Example 1: Adding a "Panic Button" to an official v2 zynthian===
+
+
You could add a panic button to your zynthian box. Simply make a hole, install the switch-button, and connect it to SW-1's pins 1 & 2.
+
+
[[File:Zynthian v2 panic switch.jpeg|700px]]
+
+
Next, configure the actions in the webconf tool as follow:
+
+
* Type: Ui Action
+
* Short push: All Note Off
+
* Bold push: All Off (All Notes Off + All Sounds Off)
+
* Long push: Reboot
+
+
===Example 2: External 3 switches pedal + sustain pedal===
+
+
Our dear friend, @wolfpaw98, has developed this amazing pedal set. He uses a MIDI connector (DIN-5) to make the 5 pins from the case accessible. The main pedal is connected to the DIN-5, and a Jack-mono connector is used to connect the sustain to the main pedal.
−
You can check the schematic:
+
[[File:Zynthian pedals 01.jpeg|700px]]
−
http://wiki.zynthian.org/images/4/44/Zynthian_allinone.sch.svg 8
+
[[File:Zynthian pedals 02.jpeg|700px]]
−
the UI active layer’s MIDI channel will be used.
+
[[File:Zynthian pedals 03.jpeg|700px]]
−
So, the only things you have to do is:
+
[[File:Zynthian pedals 04.jpeg|700px]]
−
* update your zynthian
+
You can read more about this subject here:
−
* solder a 5 row-pin connector to your AllInOne circuit
+
* https://discourse.zynthian.org/t/funny-pedalboxes-for-zynthian-using-extra-switches/3331
−
* connect some kind of switch between pin1-4 and pin5 (GND)
+
==Zynthian without encoders using legacy 2in1 module for Extra Switches==
−
* from the webconf tool, configure your wiring layout accordingly to the used pins: ZYNTHIAN_WIRING_SWITCHES’: “100,103,108,111,106,107,114”
+
You can configure a zynthian without controllers (encoders+switches) for using an ancient 2in1 module to get up to 4 extra switches that you can bind to CUIA or MIDI actions.
−
==Here are the default pin assignments:==
+
This is the wiring layout configuration you have to setup in the webconf tool:
−
pin 1 => GND
+
[[File:Webconf_noencoders_2in1_extra_switches.png|700px]]
−
pin 2 => WiringPi GPIO 106
−
pin 3 => WiringPi GPIO 107
−
pin 4 => WiringPi GPIO 114
−
pin 5 => WiringPi GPIO 115
−
And the current hardcoded configuration is like this:
+
{{NoteBox|As the 2in1 module doesn't use the MCP23008's INTA pin, switches are detected by polling, so i strongly recommend to only configure the pins you are actually using.}}
−
PANIC switch (6th zynswitch) => pin 2 (106)
+
==Using free RBPi GPIO pins as Extra Switches==
−
short press => All Notes Off
−
bold (long) press => All Sounds Off
−
Unused (6th zynswitch) => pin 3 (107)
−
Unused (7th zynswitch) => pin 4 (114)
−
MIDI CC64 (Sustain Pedal) (8th zynswitch) => pin 5 (115)
−
Switches are normally open, closing to pin 1 (GND).
+
In the same way, you can configure any free GPIO pins in the Raspberry Pi as extra switches. You only have to configure the "Switches Pins" in the webconf tool.