Difference between revisions of "ER-STIX"

From Land Boards Wiki
Jump to navigation Jump to search
 
(38 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[FILE:ER-STIX_P1080921_720PX.jpg]]
+
[[FILE:ER-STIX_Front-Rear_720PX.jpg]]
  
 
== Features ==
 
== Features ==
Line 8: Line 8:
 
** Only has 1 GATE input
 
** Only has 1 GATE input
 
** No push buttons
 
** No push buttons
 +
*** Uses Pots to control mode - more modes than Branches
 
** 0-5V input/outputs
 
** 0-5V input/outputs
 
* Built on [[ER-PROTO-02]]
 
* Built on [[ER-PROTO-02]]
Line 20: Line 21:
 
* RV1 controls OUT 1
 
* RV1 controls OUT 1
 
* RV2 controls OUT 2
 
* RV2 controls OUT 2
* RV3 is mode for OUT 1
+
* RV3 is mode control 1
* RV4 is mode for OUT 2
+
* RV4 is mode control 2
  
 
=== Arduino Pro Mini ===
 
=== Arduino Pro Mini ===
Line 55: Line 56:
 
* 0.6V threshold GATE input
 
* 0.6V threshold GATE input
  
=== J2 - Random % ===
+
=== J2 - OUT1 Random % ===
  
 
* 0-5V control input
 
* 0-5V control input
Line 80: Line 81:
 
* Gate output 2
 
* Gate output 2
 
* 0-5V digital output
 
* 0-5V digital output
 +
 +
== Schematic ==
 +
 +
* [https://github.com/land-boards/lb-boards/blob/master/SYNTHS/ER-PROTO-02_SET/ER-PROTO-02_STIX/STIX_Schematic.pdf Schematic]
  
 
== Software ==
 
== Software ==
  
 
* 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]
+
 
** Used for testing the hardware works
+
=== Pot/GATEs Test ===
** 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_POTS_CHECK/ERSTIX_POTS_CHECK.ino Pot/GATEs Test code GitHub]
** Tests RV1/J2 loopback
+
* 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
** 2 pots, one for OUT1A/B, other for OUT2A/2B
+
* 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
** Adds (2) mode control knobs
+
 
** 7 o-clock = 12 o'clock = Normal mode
+
=== Simplest Version 1 ===
** 12 o-clock - 5 o=clock = Send Outputs on both OUTxA and OUTxB
+
 
 +
* [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
 +
* 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 [https://docs.arduino.cc/hacking/software/PortManipulation accessing the ports directly]
 +
** Measured at 2 uS
 
<pre>
 
<pre>
 
Sketch uses 1990 bytes (13%) of program storage space. Maximum is 14336 bytes.
 
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.
 
Global variables use 13 bytes (1%) of dynamic memory, leaving 1011 bytes for local variables. Maximum is 1024 bytes.
 +
</pre>
 +
 +
=== More modes - Version 3 ===
 +
 +
* [https://github.com/land-boards/lb-Arduino-Code/blob/master/LBCards/SYNTHS/ER_STIX/ERSTIX_V3/ERSTIX_V3.ino 8 modes - Version 3 code GitHub]
 +
* Modes set by RV3, RV4
 +
 +
{| class="wikitable"
 +
! Mode
 +
! RV3
 +
! Dependency
 +
! RV4
 +
! Operation
 +
|-
 +
| 0
 +
| 7-12
 +
| OUT1/OUT2 independent
 +
| 7-9
 +
| Normal, coin toss output one of OUTxA, OUTxB
 +
RV1 controls p() getting OUT1A vs OUT1B
 +
RV2 controls p() getting OUT2A vs OUT2B
 +
|-
 +
| 1
 +
| 7-12
 +
| OUT1/OUT2 independent
 +
| 9-12
 +
| Coin toss determines OUTxA, OUTxB independently
 +
Toss the coin for each output independetly
 +
RV1 controls p() OUT1A and p() OUT1B independently
 +
RV2 controls p() OUT2A and p() OUT2B independently
 +
|-
 +
| 2
 +
| 7-12
 +
| OUT1/OUT2 independent
 +
| 12-3
 +
| Ping pong A/B
 +
RV! controls p() of switching to OUT1A > OUT1B, etc
 +
RV2 controls p() of switching to OUT2A > OUT2B, etc
 +
|-
 +
| 3
 +
| 7-12
 +
| OUT1/OUT2 independent
 +
| 3-5
 +
| Coin toss both on
 +
RV1 controls p() of driving OUT1A and OUT1B
 +
RV2 controls p() of driving OUT2A and OUT2B
 +
|-
 +
| 4
 +
| 12-5
 +
| OUT1/OUT2 dependent
 +
| 7-9
 +
| Normal, coin toss one of OUT1A, OUT1B, OUT2A, OUT2B
 +
OUT is randomly selected
 +
RV1 controls p() sending OUTxY
 +
RV2 is not used
 +
|-
 +
| 5
 +
| 12-5
 +
| OUT1/OUT2 dependent
 +
| 9-12
 +
| Coin toss determines OUTxA, OUTxB dependently, drives both OUTxA/OUTxB
 +
RV1 is p() of whether any gate goes out
 +
RV2 us p() or selecting OUT1 vs OUT2
 +
|-
 +
| 6
 +
| 12-5
 +
| OUT1/OUT2 dependent
 +
| 12-3
 +
| Sequential OUT1A, OUT1B, OUT2A, OUT2B
 +
RV!, RV2 control whether to step or not
 +
CW on both stops stepping
 +
CCW always step
 +
|-
 +
| 7
 +
| 12-5
 +
| OUT1/OUT2 dependent
 +
| 3-5
 +
| All on
 +
RV1 controls p() of driving OUT1A/OUT1B
 +
RV2 controls p() of driving OUT2A/OUT2B
 +
|-
 +
|}
 +
 +
== Build ==
 +
 +
* Built on [[ER-PROTO-02]]
 +
 +
[[FILE:ER-PROTO-02-DB_REAR_PWR.png]]
 +
 +
=== Build Pictures ===
 +
 +
[[file:ER-STIX_P1080922-720px.jpg]]
 +
 +
[[file:ER-STIX_P1080921_720PX.jpg]]
 +
 +
* Covered RV5, RV6 holes with black duct tape
 +
* Labels are White on Black P-Touch labels
 +
 +
=== Nets ===
 +
 +
<pre>
 +
  (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")))
 
</pre>
 
</pre>
  
 
== Parts List ==
 
== Parts List ==
  
[[FILE:ER-PROTO-02-DB_REAR_PWR.png]]
+
 
 +
== Daughtercard ===
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 150: Line 440:
 
| ARDUINO PRO MINI
 
| ARDUINO PRO MINI
 
|-
 
|-
|  
+
|}
|  
+
 
|
+
=== Controls Card ===
|
+
 
 +
{| class="wikitable"
 +
! Find
 +
! Qty
 +
! Ref Des
 +
! Part Number
 
|-
 
|-
 
| 11
 
| 11
| 6
+
| 8
| RX2, RX7, RX9, RX15, RX17
+
| RX2-4, RX7, RX9, RX15, RX17
 
| 1K
 
| 1K
 
|-
 
|-
 
| 12
 
| 12
| 2
+
| 4
| RVX1, RVX2
+
| RVX1-RVX4
 
| 100K
 
| 100K
 
|-
 
|-

Latest revision as of 23:43, 9 March 2023

ER-STIX Front-Rear 720PX.jpg

Features

  • Similar to Mutable Instruments Branches
    • Dual Bernoulli Gate
  • Differences vs Branches
    • Only has 1 GATE input
    • No push buttons
      • Uses Pots to control mode - more modes than Branches
    • 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 control 1
  • RV4 is mode control 2

Arduino Pro Mini

  • Works with ATMega168 (or 328)
  • Program from FTDI

ArdruinoProMini-EBAY PART-720px.png

Arduino Pins

ER-STIX-Arduino.PNG

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

Still pretty simple - Version 2

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

Mode RV3 Dependency RV4 Operation
0 7-12 OUT1/OUT2 independent 7-9 Normal, coin toss output one of OUTxA, OUTxB
RV1 controls p() getting OUT1A vs OUT1B
RV2 controls p() getting OUT2A vs OUT2B
1 7-12 OUT1/OUT2 independent 9-12 Coin toss determines OUTxA, OUTxB independently
Toss the coin for each output independetly
RV1 controls p() OUT1A and p() OUT1B independently
RV2 controls p() OUT2A and p() OUT2B independently
2 7-12 OUT1/OUT2 independent 12-3 Ping pong A/B
RV! controls p() of switching to OUT1A > OUT1B, etc
RV2 controls p() of switching to OUT2A > OUT2B, etc
3 7-12 OUT1/OUT2 independent 3-5 Coin toss both on
RV1 controls p() of driving OUT1A and OUT1B
RV2 controls p() of driving OUT2A and OUT2B
4 12-5 OUT1/OUT2 dependent 7-9 Normal, coin toss one of OUT1A, OUT1B, OUT2A, OUT2B
OUT is randomly selected
RV1 controls p() sending OUTxY
RV2 is not used
5 12-5 OUT1/OUT2 dependent 9-12 Coin toss determines OUTxA, OUTxB dependently, drives both OUTxA/OUTxB
RV1 is p() of whether any gate goes out
RV2 us p() or selecting OUT1 vs OUT2
6 12-5 OUT1/OUT2 dependent 12-3 Sequential OUT1A, OUT1B, OUT2A, OUT2B
RV!, RV2 control whether to step or not
CW on both stops stepping
CCW always step
7 12-5 OUT1/OUT2 dependent 3-5 All on
RV1 controls p() of driving OUT1A/OUT1B
RV2 controls p() of driving OUT2A/OUT2B

Build

ER-PROTO-02-DB REAR PWR.png

Build Pictures

ER-STIX P1080922-720px.jpg

ER-STIX P1080921 720PX.jpg

  • 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

Daughtercard =

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

Controls Card

Find Qty Ref Des Part Number
11 8 RX2-4, RX7, RX9, RX15, RX17 1K
12 4 RVX1-RVX4 100K
13 2 RX3, RX4 220
14 2 RX11, RX13 100K
7 6 JX1-JX6 Jack