First: Big thanks for the Jumperless, what a great project!
I may be doing something wrong here, but using pyserial to make vertical connections from pin 1 to 31, 2 to 32 … etc (on a Jumperless with firmware v1.1.1.1.5 from 2023-12-31), it seems that nodes are not always being bridged.
Here’s the code I use:
#!/usr/bin/env python3
from serial import Serial
with Serial(port="/dev/ttyACM1", baudrate=57_600, timeout=1.0) as jumperless:
jumperless.write(b"::bridgelist[1-31,2-32,3-33]\n")
while line := jumperless.readline():
print(line.decode().strip())
Here’s the output of this script:
❯ ./jltest.py
opened nodeFile.txt
loading bridges from file
opened nodeFile.txt
loading bridges from file
raw input file
[1-31,2-32,3-33,]
splitting and cleaning up string
_
[1-31,2-32,3-33,]
^
replacing special function names with defined ints
[1-31,2-32,3-33,]
replacing special function names with defined ints
[1-31,2-32,3-33,]
parsing bridges into array
node1 = 1
node2 = 31
readLength = 5
specialFunctionsString.length() = 17
1-0
node1 = 2
node2 = 32
readLength = 10
specialFunctionsString.length() = 17
2-0
node1 = 3
node2 = 33
readLength = 15
specialFunctionsString.length() = 17
3-0
node1 = 0
node2 = 0
[1-31],[2-32],[3-33],
bridge pairs = 3
::ok
Menu
n = show netlist
b = show bridge array
w = waveGen
v = toggle show current/voltage
f = load formatted nodeFile
u = set baud rate for USB-Serial
l = LED brightness / test
d = toggle debug flags
r = reset Arduino
After running the script, the Jumperless reports the following netlist:
Index Name Number Color Nodes
0 Empty Net 127 0x0 EMPTY_NET {0-0}
1 GND 1 0x1C04 GND {0-0}
2 +5V 2 0x1C0702 5V {0-0}
3 +3.3V 3 0x1C0107 3V3 {0-0}
4 DAC 0 4 0x231111 DAC_0 {0-0}
5 DAC 1 5 0x230913 DAC_1 {0-0}
6 I Sense + 6 0x232323 I_POS {0-0}
7 I Sense - 7 0x232323 I_NEG {0-0}
Index Name Number Color Nodes
8 Net 8 8 0x1F2000 1,31 {1-31}
9 Net 9 9 0x200C 2,32 {2-32}
10 Net 10 10 0x1720 3,33 {3-33}
LEDs light up as I assume is intended: 3 different colors, one for each of the pairs (1,31), (2,32) and (3,33)
But: Using a DMM shows that only (1,31) and (2,32) are connected; (3,33) remains open.
If i send ::bridgelist[3-33,4-34,5-35]
, LEDs & netlist reflect the bridges I sent:
Index Name Number Color Nodes
8 Net 8 8 0x1F2000 3,33 {3-33}
9 Net 9 9 0x200C 4,34 {4-34}
10 Net 10 10 0x1720 5,35 {5-35}
while this time I measure only (3,33) as being connected, the other two remain open.
Sending all 30 vertical connections lights up all the LEDs, netlist looks OK, but only the vertical connections featuring pins
1, 2, 9, 16, 23 are actually being made.
I haven’t done any other tests, but based on what I wrote, maybe someone can point me into the right direction to figure this out …