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 => All Notes Off
| |
− | bold => 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. |