Features
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
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
- 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
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
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
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
|