Difference between revisions of "ER-STIX"
Jump to navigation
Jump to search
Blwikiadmin (talk | contribs) |
Blwikiadmin (talk | contribs) |
||
Line 88: | Line 88: | ||
* Arduino IDE | * Arduino IDE | ||
− | * [https://github.com/land-boards/lb-Arduino-Code/blob/master/LBCards/SYNTHS/ER_STIX/ERSTIX_POTS_CHECK/ERSTIX_POTS_CHECK.ino Pot/GATEs Test] | + | |
− | + | === Pot/GATEs Test === | |
− | + | ||
− | + | * [https://github.com/land-boards/lb-Arduino-Code/blob/master/LBCards/SYNTHS/ER_STIX/ERSTIX_POTS_CHECK/ERSTIX_POTS_CHECK.ino Pot/GATEs Test code GitHub] | |
− | + | * Used for testing the hardware works | |
− | * [https://github.com/land-boards/lb-Arduino-Code/blob/master/LBCards/SYNTHS/ER_STIX/ERSTIX_V1/ERSTIX_V1.ino Simplest Version 1] | + | * Reads (4) pots and prints values to monitor, write values to serial |
− | + | * Toggles GATE outs - one at a time | |
− | * [https://github.com/land-boards/lb-Arduino-Code/blob/master/LBCards/SYNTHS/ER_STIX/ERSTIX_V2/ERSTIX_V2.ino Still pretty simple - Version 2] | + | * Tests RV1/J2 loopback |
+ | |||
+ | === Simplest Version 1 === | ||
+ | |||
+ | * [https://github.com/land-boards/lb-Arduino-Code/blob/master/LBCards/SYNTHS/ER_STIX/ERSTIX_V1/ERSTIX_V1.ino Simplest Version 1 code GitHub] | ||
+ | * 2 pots, one for OUT1A/B, other for OUT2A/2B | ||
+ | |||
+ | === Still pretty simple - Version 2 === | ||
+ | |||
+ | * [https://github.com/land-boards/lb-Arduino-Code/blob/master/LBCards/SYNTHS/ER_STIX/ERSTIX_V2/ERSTIX_V2.ino Still pretty simple - Version 2 code GitHub] | ||
** Adds (2) mode control knobs | ** Adds (2) mode control knobs | ||
** 7 o-clock = 12 o'clock = Normal mode | ** 7 o-clock = 12 o'clock = Normal mode | ||
Line 106: | Line 115: | ||
Global variables use 13 bytes (1%) of dynamic memory, leaving 1011 bytes for local variables. Maximum is 1024 bytes. | Global variables use 13 bytes (1%) of dynamic memory, leaving 1011 bytes for local variables. Maximum is 1024 bytes. | ||
</pre> | </pre> | ||
− | * [https://github.com/land-boards/lb-Arduino-Code/blob/master/LBCards/SYNTHS/ER_STIX/ERSTIX_V3/ERSTIX_V3.ino More modes - Version 3] | + | |
+ | === More modes - Version 3 === | ||
+ | |||
+ | * [https://github.com/land-boards/lb-Arduino-Code/blob/master/LBCards/SYNTHS/ER_STIX/ERSTIX_V3/ERSTIX_V3.ino More modes - Version 3 code GitHub] | ||
** Modes set by RV3, RV4 | ** Modes set by RV3, RV4 | ||
Revision as of 17:51, 29 December 2022
Features
- Similar to Mutable Instruments Branches
- Dual Bernoulli Gate
- Differences vs Branches
- Only has 1 GATE input
- No push buttons
- 0-5V input/outputs
- Built on ER-PROTO-02
- Arduino Pro Mini
- Protection on all external jacks with Schottky diode clamps
- 10-pin Eurorack power
- Uses +12V only
Operation
- Receives single Gate on J1
- RV1 controls OUT 1
- RV2 controls OUT 2
- RV3 is mode for OUT 1
- RV4 is mode for OUT 2
Arduino Pro Mini
- Works with ATMega168 (or 328)
- Program from FTDI
Arduino Pins
Controls
- RV1 - Probabilistic ratio for Output 1
- Center = 50-50, CCW = Out1A on 100%, CW = 0% on OUT1B
- Inserting J3 jack disables RV1
- RV2 - Probabilistic ratio for Output 2
- Center = 50-50, CCW = Out1A on 100%, CW = 0% on OUT1B
- Inserting J3 jack disables RV1
- RV3 - OUT 1 Mode
- 7-12 o'clock = Normal Mode drives only OUT1A or OUT1B
- 12-5 o'clock = Drives both OUT1A and OUT1B
- RV4 - OUT 2 Mode
- 7-12 o'clock = Normal Mode drives only OU21A or OUT2B
- 12-5 o'clock = Drives both OUT2A and OUT2B
Jacks
J1 - Gate
- 0.6V threshold GATE input
J2 - OUT1 Random %
- 0-5V control input
- Inserting jack disables RV1
- 0V = 100% on OUT1A, 2.5V = 50% on OUT1A/OUT1B, 5V = 100% on OUT1B
J3 - Out1A
- Gate output 1
- 0-5V digital output
J4 - Out1B
- Gate output 1
- 0-5V digital output
J5 - Out2A
- Gate output 2
- 0-5V digital output
J6 - Out2B
- Gate output 2
- 0-5V digital output
Schematic
Software
- Arduino IDE
Pot/GATEs Test
- Pot/GATEs Test code GitHub
- Used for testing the hardware works
- Reads (4) pots and prints values to monitor, write values to serial
- Toggles GATE outs - one at a time
- Tests RV1/J2 loopback
Simplest Version 1
- Simplest Version 1 code GitHub
- 2 pots, one for OUT1A/B, other for OUT2A/2B
Still pretty simple - Version 2
- Still pretty simple - Version 2 code GitHub
- Adds (2) mode control knobs
- 7 o-clock = 12 o'clock = Normal mode
- 12 o-clock - 5 o=clock = Send Outputs on both OUTxA and OUTxB
- Measured GATE in to OUT latency < 20uS using digitalRead and digitalWrite
- Improved by accessing the ports directly
- Measured at 2 uS
- Improved by accessing the ports directly
Sketch uses 1990 bytes (13%) of program storage space. Maximum is 14336 bytes. Global variables use 13 bytes (1%) of dynamic memory, leaving 1011 bytes for local variables. Maximum is 1024 bytes.
More modes - Version 3
- More modes - Version 3 code GitHub
- Modes set by RV3, RV4
Modes | RV3 | Dependency | RV4 | Dependency | Operation |
---|---|---|---|---|---|
000 | 7-12 | OUT1/OUT2 independent | 7-9 | OUT1/OUT2 independent | Normal, coin toss one of OUTxA, OUTxB |
001 | 7-12 | OUT1/OUT2 independent | 9-12 | OUT1/OUT2 independent | Coin toss determines OUTxA, OUTxB independently |
010 | 7-12 | OUT1/OUT2 independent | 12-3 | OUT1/OUT2 independent | Ping pong A/B |
011 | 7-12 | OUT1/OUT2 independent | 3-5 | OUT1/OUT2 independent | Coin toss both on |
100 | 12-5 | OUT1/OUT2 dependent | 7-9 | OUT1/OUT2 dependent | Normal, coin toss one of OUT1A, OUT1B, OUT2A, OUT2B |
101 | 12-5 | OUT1/OUT2 dependent | 9-12 | OUT1/OUT2 dependent | Coin toss determines OUTxA, OUTxB dependently |
110 | 12-5 | OUT1/OUT2 dependent | 12-3 | OUT1/OUT2 dependent | Sequential OUT1A, OUT1B, OUT2A, OUT2B |
111 | 12-5 | OUT1/OUT2 dependent | 3-5 | OUT1/OUT2 dependent | All on |
Build
- Built on ER-PROTO-02
Build Pictures
- Covered RV5, RV6 holes with black duct tape
- Labels are White on Black P-Touch labels
Nets
(nets (net (code "1") (name "+5V") (node (ref "D3") (pin "1") (pinfunction "K") (pintype "passive")) (node (ref "D5") (pin "1") (pinfunction "K") (pintype "passive")) (node (ref "J28") (pin "1") (pinfunction "VCC") (pintype "power_in")) (node (ref "RVX1") (pin "1") (pinfunction "1") (pintype "passive")) (node (ref "RVX2") (pin "1") (pinfunction "1") (pintype "passive")) (node (ref "RVX3") (pin "1") (pinfunction "1") (pintype "passive")) (node (ref "RVX4") (pin "1") (pinfunction "1") (pintype "passive")) (node (ref "U1") (pin "22") (pinfunction "Vcc2") (pintype "unspecified"))) (net (code "2") (name "+12V") (node (ref "C1") (pin "1") (pintype "passive")) (node (ref "D1") (pin "1") (pinfunction "K") (pintype "passive")) (node (ref "U1") (pin "19") (pinfunction "RAW") (pintype "unspecified"))) (net (code "3") (name "GATE") (node (ref "D2") (pin "1") (pinfunction "K") (pintype "passive")) (node (ref "D5") (pin "2") (pinfunction "A") (pintype "passive")) (node (ref "J29") (pin "10") (pinfunction "J1_T") (pintype "passive")) (node (ref "Q1") (pin "2") (pinfunction "B") (pintype "passive")) (node (ref "RX11") (pin "1") (pintype "passive"))) (net (code "4") (name "GND") (node (ref "C1") (pin "2") (pintype "passive")) (node (ref "D11") (pin "2") (pinfunction "A") (pintype "passive")) (node (ref "D13") (pin "2") (pinfunction "A") (pintype "passive")) (node (ref "D2") (pin "2") (pinfunction "A") (pintype "passive")) (node (ref "D4") (pin "2") (pinfunction "A") (pintype "passive")) (node (ref "D7") (pin "2") (pinfunction "A") (pintype "passive")) (node (ref "D9") (pin "2") (pinfunction "A") (pintype "passive")) (node (ref "J28") (pin "20") (pinfunction "GND") (pintype "power_in")) (node (ref "J29") (pin "1") (pinfunction "GND") (pintype "power_in")) (node (ref "J29") (pin "15") (pinfunction "GND") (pintype "power_in")) (node (ref "J29") (pin "16") (pinfunction "GND") (pintype "power_in")) (node (ref "J29") (pin "2") (pinfunction "GND") (pintype "power_in")) (node (ref "J9") (pin "3") (pinfunction "Pin_3") (pintype "passive")) (node (ref "J9") (pin "4") (pinfunction "Pin_4") (pintype "passive")) (node (ref "J9") (pin "5") (pinfunction "Pin_5") (pintype "passive")) (node (ref "J9") (pin "6") (pinfunction "Pin_6") (pintype "passive")) (node (ref "J9") (pin "7") (pinfunction "Pin_7") (pintype "passive")) (node (ref "J9") (pin "8") (pinfunction "Pin_8") (pintype "passive")) (node (ref "JX1") (pin "S") (pintype "passive")) (node (ref "JX2") (pin "S") (pintype "passive")) (node (ref "JX3") (pin "S") (pintype "passive")) (node (ref "JX4") (pin "S") (pintype "passive")) (node (ref "JX5") (pin "S") (pintype "passive")) (node (ref "JX6") (pin "S") (pintype "passive")) (node (ref "Q1") (pin "1") (pinfunction "E") (pintype "passive")) (node (ref "RVX1") (pin "3") (pinfunction "3") (pintype "passive")) (node (ref "RVX2") (pin "3") (pinfunction "3") (pintype "passive")) (node (ref "RVX3") (pin "3") (pinfunction "3") (pintype "passive")) (node (ref "RVX4") (pin "3") (pinfunction "3") (pintype "passive")) (node (ref "U1") (pin "10") (pinfunction "GND") (pintype "unspecified")) (node (ref "U1") (pin "20") (pinfunction "GND3") (pintype "unspecified"))) (net (code "5") (name "IN1") (node (ref "Q1") (pin "3") (pinfunction "C") (pintype "passive")) (node (ref "U1") (pin "12") (pinfunction "D3") (pintype "bidirectional"))) (net (code "6") (name "LED1A") (node (ref "J28") (pin "12") (pinfunction "POT5_2_W") (pintype "passive")) (node (ref "LED1") (pin "1") (pinfunction "KA") (pintype "input")) (node (ref "U1") (pin "30") (pinfunction "D10") (pintype "bidirectional"))) (net (code "7") (name "LED1B") (node (ref "J28") (pin "11") (pinfunction "POT5_1_CW") (pintype "passive")) (node (ref "RX5") (pin "1") (pintype "passive")) (node (ref "U1") (pin "18") (pinfunction "D9") (pintype "bidirectional"))) (net (code "8") (name "LED2A") (node (ref "J28") (pin "3") (pinfunction "POT6_2_W") (pintype "passive")) (node (ref "LED2") (pin "1") (pinfunction "KA") (pintype "input")) (node (ref "U1") (pin "13") (pinfunction "D4") (pintype "bidirectional"))) (net (code "9") (name "LED2B") (node (ref "J28") (pin "2") (pinfunction "POT6_1_CW") (pintype "passive")) (node (ref "RX6") (pin "1") (pintype "passive")) (node (ref "U1") (pin "14") (pinfunction "D5") (pintype "bidirectional"))) (net (code "10") (name "MODE1") (node (ref "J28") (pin "15") (pinfunction "POT3_2_W") (pintype "passive")) (node (ref "RX3") (pin "1") (pintype "passive")) (node (ref "U1") (pin "26") (pinfunction "A0") (pintype "bidirectional"))) (net (code "11") (name "MODE2") (node (ref "J28") (pin "6") (pinfunction "POT4_2_W") (pintype "passive")) (node (ref "RX4") (pin "1") (pintype "passive")) (node (ref "U1") (pin "23") (pinfunction "A3") (pintype "bidirectional"))) (net (code "12") (name "NORM") (node (ref "J29") (pin "9") (pinfunction "J1_R_N") (pintype "passive")) (node (ref "RX12") (pin "1") (pintype "passive")) (node (ref "U1") (pin "16") (pinfunction "D7") (pintype "bidirectional"))) (net (code "13") (name "Net-(D1-Pad2)") (node (ref "D1") (pin "2") (pinfunction "A") (pintype "passive")) (node (ref "R1") (pin "1") (pintype "passive"))) (net (code "14") (name "Net-(D10-Pad1)") (node (ref "D10") (pin "1") (pinfunction "K") (pintype "passive")) (node (ref "D12") (pin "1") (pinfunction "K") (pintype "passive")) (node (ref "D6") (pin "1") (pinfunction "K") (pintype "passive")) (node (ref "D8") (pin "1") (pinfunction "K") (pintype "passive"))) (net (code "15") (name "Net-(J9-Pad9)") (node (ref "J9") (pin "9") (pinfunction "Pin_9") (pintype "passive")) (node (ref "R1") (pin "2") (pintype "passive"))) (net (code "16") (name "Net-(JX1-PadT)") (node (ref "JX1") (pin "T") (pintype "passive")) (node (ref "RX11") (pin "2") (pintype "passive"))) (net (code "17") (name "Net-(JX1-PadTN)") (node (ref "JX1") (pin "TN") (pintype "passive")) (node (ref "RX12") (pin "2") (pintype "passive"))) (net (code "18") (name "Net-(JX2-PadT)") (node (ref "JX2") (pin "T") (pintype "passive")) (node (ref "RX13") (pin "2") (pintype "passive"))) (net (code "19") (name "Net-(JX2-PadTN)") (node (ref "JX2") (pin "TN") (pintype "passive")) (node (ref "RX14") (pin "2") (pintype "passive"))) (net (code "20") (name "Net-(JX3-PadT)") (node (ref "JX3") (pin "T") (pintype "passive")) (node (ref "RX9") (pin "1") (pintype "passive"))) (net (code "21") (name "Net-(JX4-PadT)") (node (ref "JX4") (pin "T") (pintype "passive")) (node (ref "RX15") (pin "1") (pintype "passive"))) (net (code "22") (name "Net-(JX5-PadT)") (node (ref "JX5") (pin "T") (pintype "passive")) (node (ref "RX7") (pin "1") (pintype "passive"))) (net (code "23") (name "Net-(JX6-PadT)") (node (ref "JX6") (pin "T") (pintype "passive")) (node (ref "RX17") (pin "1") (pintype "passive"))) (net (code "24") (name "Net-(LED1-Pad2)") (node (ref "LED1") (pin "2") (pinfunction "AK") (pintype "input")) (node (ref "RX5") (pin "2") (pintype "passive"))) (net (code "25") (name "Net-(LED2-Pad2)") (node (ref "LED2") (pin "2") (pinfunction "AK") (pintype "input")) (node (ref "RX6") (pin "2") (pintype "passive"))) (net (code "26") (name "Net-(RVX1-Pad2)") (node (ref "RVX1") (pin "2") (pinfunction "2") (pintype "passive")) (node (ref "RX14") (pin "1") (pintype "passive"))) (net (code "27") (name "Net-(RVX2-Pad2)") (node (ref "RVX2") (pin "2") (pinfunction "2") (pintype "passive")) (node (ref "RX2") (pin "2") (pintype "passive"))) (net (code "28") (name "Net-(RVX3-Pad2)") (node (ref "RVX3") (pin "2") (pinfunction "2") (pintype "passive")) (node (ref "RX3") (pin "2") (pintype "passive"))) (net (code "29") (name "Net-(RVX4-Pad2)") (node (ref "RVX4") (pin "2") (pinfunction "2") (pintype "passive")) (node (ref "RX4") (pin "2") (pintype "passive"))) (net (code "30") (name "OUT1A") (node (ref "D6") (pin "2") (pinfunction "A") (pintype "passive")) (node (ref "D7") (pin "1") (pinfunction "K") (pintype "passive")) (node (ref "J29") (pin "12") (pinfunction "J3_T") (pintype "passive")) (node (ref "RX9") (pin "2") (pintype "passive")) (node (ref "U1") (pin "29") (pinfunction "D11") (pintype "bidirectional"))) (net (code "31") (name "OUT1B") (node (ref "D8") (pin "2") (pinfunction "A") (pintype "passive")) (node (ref "D9") (pin "1") (pinfunction "K") (pintype "passive")) (node (ref "J29") (pin "6") (pinfunction "J4_T") (pintype "passive")) (node (ref "RX15") (pin "2") (pintype "passive")) (node (ref "U1") (pin "17") (pinfunction "D8") (pintype "bidirectional"))) (net (code "32") (name "OUT2A") (node (ref "D10") (pin "2") (pinfunction "A") (pintype "passive")) (node (ref "D11") (pin "1") (pinfunction "K") (pintype "passive")) (node (ref "J29") (pin "14") (pinfunction "J5_T") (pintype "passive")) (node (ref "RX7") (pin "2") (pintype "passive")) (node (ref "U1") (pin "28") (pinfunction "D12") (pintype "input"))) (net (code "33") (name "OUT2B") (node (ref "D12") (pin "2") (pinfunction "A") (pintype "passive")) (node (ref "D13") (pin "1") (pinfunction "K") (pintype "passive")) (node (ref "J29") (pin "8") (pinfunction "J6_T") (pintype "passive")) (node (ref "RX17") (pin "2") (pintype "passive")) (node (ref "U1") (pin "15") (pinfunction "D6") (pintype "bidirectional"))) (net (code "34") (name "R1") (node (ref "D3") (pin "2") (pinfunction "A") (pintype "passive")) (node (ref "D4") (pin "1") (pinfunction "K") (pintype "passive")) (node (ref "J28") (pin "18") (pinfunction "POT1_2_W") (pintype "passive")) (node (ref "J29") (pin "4") (pinfunction "J2_T") (pintype "passive")) (node (ref "RX13") (pin "1") (pintype "passive")) (node (ref "U1") (pin "25") (pinfunction "A1") (pintype "bidirectional"))) (net (code "35") (name "R2") (node (ref "J28") (pin "9") (pinfunction "POT2_2_W") (pintype "passive")) (node (ref "RX2") (pin "1") (pintype "passive")) (node (ref "U1") (pin "24") (pinfunction "A2") (pintype "bidirectional")))
Parts List
Find | Qty | Ref Des | Part Number |
---|---|---|---|
1 | 1 | R35 | 1K |
2 | 1 | C1 | 10uF |
3 | 5 | D1-D5 | BAT41 |
4 | 1 | J9 | Conn, IDC, Box, 2x5 |
5 | 2 | LED1, LED2 | LED_Dual_2pin |
6 | 1 | Q1 | 2N3904 |
7 | 1 | R1 | 10 |
8 | 1 | U1 | ARDUINO PRO MINI |
11 | 6 | RX2, RX7, RX9, RX15, RX17 | 1K |
12 | 2 | RVX1, RVX2 | 100K |
13 | 2 | RX3, RX4 | 220 |
14 | 2 | RX11, RX13 | 100K |
7 | 6 | JX1-JX6 | Jack |