Jumperless/JumperlessNano/README.md

356 lines
20 KiB
Markdown
Raw Normal View History

2023-05-29 03:34:31 +02:00
The code is still a work in progress, but you can upload it to a Raspberry Pi Pico and mess with it.
Currently the part that's nearly finished is the logic for loading nets from a file, combining, deleting, adding nodes and bridges while respecting the Do Not Intersect rules (so you can't connect power to gnd and stuff)
If you don't feel like loading this onto a Pico to see the output, here is what it currently outputs with a tester nodeFile.txt
```
opened nodeFile.txt
loading bridges from file
raw input file
bridges
{
1-2,
3-4,
5-6,
7-8,
9-10,
11-12,
12-13,
2-3,
10-11,
1-11,
0-7,
}
special functions
{
1-GND,
11-SUPPLY_5V,
6-I_P,
I_P-I_N,
}
splitting and cleaning up string
_
1-2,
3-4,
5-6,
7-8,
9-10,
11-12,
12-13,
2-3,
10-11,
1-11,
0-7,
^
_
1-GND,
11-SUPPLY_5V,
6-I_P,
I_P-I_N,
^
replacing special function names with defined ints
1-100,
11-105,
6-108,
108-109,
parsing bridges into array
[1-100],[11-105],[6-108],[108-109],[1-2],[3-4],[5-6],[7-8],[9-10],[11-12],[12-13],[2-3],[10-11],[1-11],[0-7],
bridge pairs = 15
connecting nodes into nets
1-GND
adding Node 1 to Net 1
Index Name Number Nodes Bridges Do Not Intersects
0 Empty Net 127 EMPTY_NET {0-0} EMPTY_NET
1 GND 1 GND,1 {1-GND} 3V3,5V,DAC_0,DAC_1
2 +5V 2 5V {0-0} GND,3V3,DAC_0,DAC_1
3 +3.3V 3 3V3 {0-0} GND,5V,DAC_0,DAC_1
4 DAC 0 4 DAC_0 {0-0} GND,5V,3V3,DAC_1
5 DAC 1 5 DAC_1 {0-0} GND,5V,3V3,DAC_0
6 I Sense + 6 I_POS {0-0} I_NEG
7 I Sense - 7 I_NEG {0-0} I_POS
11-5V
adding Node 11 to Net 2
Index Name Number Nodes Bridges Do Not Intersects
0 Empty Net 127 EMPTY_NET {0-0} EMPTY_NET
1 GND 1 GND,1 {1-GND} 3V3,5V,DAC_0,DAC_1
2 +5V 2 5V,11 {11-5V} GND,3V3,DAC_0,DAC_1
3 +3.3V 3 3V3 {0-0} GND,5V,DAC_0,DAC_1
4 DAC 0 4 DAC_0 {0-0} GND,5V,3V3,DAC_1
5 DAC 1 5 DAC_1 {0-0} GND,5V,3V3,DAC_0
6 I Sense + 6 I_POS {0-0} I_NEG
7 I Sense - 7 I_NEG {0-0} I_POS
6-I_POS
adding Node 6 to Net 6
Index Name Number Nodes Bridges Do Not Intersects
0 Empty Net 127 EMPTY_NET {0-0} EMPTY_NET
1 GND 1 GND,1 {1-GND} 3V3,5V,DAC_0,DAC_1
2 +5V 2 5V,11 {11-5V} GND,3V3,DAC_0,DAC_1
3 +3.3V 3 3V3 {0-0} GND,5V,DAC_0,DAC_1
4 DAC 0 4 DAC_0 {0-0} GND,5V,3V3,DAC_1
5 DAC 1 5 DAC_1 {0-0} GND,5V,3V3,DAC_0
6 I Sense + 6 I_POS,6 {6-I_POS} I_NEG
7 I Sense - 7 I_NEG {0-0} I_POS
I_POS-I_NEG
Net 7 can't be combined with Net 6 due to Do Not Intersect rules, skipping (first net DNI to second net nodes)
Index Name Number Nodes Bridges Do Not Intersects
0 Empty Net 127 EMPTY_NET {0-0} EMPTY_NET
1 GND 1 GND,1 {1-GND} 3V3,5V,DAC_0,DAC_1
2 +5V 2 5V,11 {11-5V} GND,3V3,DAC_0,DAC_1
3 +3.3V 3 3V3 {0-0} GND,5V,DAC_0,DAC_1
4 DAC 0 4 DAC_0 {0-0} GND,5V,3V3,DAC_1
5 DAC 1 5 DAC_1 {0-0} GND,5V,3V3,DAC_0
6 I Sense + 6 I_POS,6 {6-I_POS} I_NEG
7 I Sense - 7 I_NEG {0-0} I_POS
1-2
adding Node 2 to Net 1
Index Name Number Nodes Bridges Do Not Intersects
0 Empty Net 127 EMPTY_NET {0-0} EMPTY_NET
1 GND 1 GND,1,2 {1-GND,1-2} 3V3,5V,DAC_0,DAC_1
2 +5V 2 5V,11 {11-5V} GND,3V3,DAC_0,DAC_1
3 +3.3V 3 3V3 {0-0} GND,5V,DAC_0,DAC_1
4 DAC 0 4 DAC_0 {0-0} GND,5V,3V3,DAC_1
5 DAC 1 5 DAC_1 {0-0} GND,5V,3V3,DAC_0
6 I Sense + 6 I_POS,6 {6-I_POS} I_NEG
7 I Sense - 7 I_NEG {0-0} I_POS
3-4
found unused Net 8
Index Name Number Nodes Bridges Do Not Intersects
0 Empty Net 127 EMPTY_NET {0-0} EMPTY_NET
1 GND 1 GND,1,2 {1-GND,1-2} 3V3,5V,DAC_0,DAC_1
2 +5V 2 5V,11 {11-5V} GND,3V3,DAC_0,DAC_1
3 +3.3V 3 3V3 {0-0} GND,5V,DAC_0,DAC_1
4 DAC 0 4 DAC_0 {0-0} GND,5V,3V3,DAC_1
5 DAC 1 5 DAC_1 {0-0} GND,5V,3V3,DAC_0
6 I Sense + 6 I_POS,6 {6-I_POS} I_NEG
7 I Sense - 7 I_NEG {0-0} I_POS
Index Name Number Nodes Bridges Do Not Intersects
8 Net 8 8 3,4 {3-4} 0
5-6
adding Node 5 to Net 6
Index Name Number Nodes Bridges Do Not Intersects
0 Empty Net 127 EMPTY_NET {0-0} EMPTY_NET
1 GND 1 GND,1,2 {1-GND,1-2} 3V3,5V,DAC_0,DAC_1
2 +5V 2 5V,11 {11-5V} GND,3V3,DAC_0,DAC_1
3 +3.3V 3 3V3 {0-0} GND,5V,DAC_0,DAC_1
4 DAC 0 4 DAC_0 {0-0} GND,5V,3V3,DAC_1
5 DAC 1 5 DAC_1 {0-0} GND,5V,3V3,DAC_0
6 I Sense + 6 I_POS,6,5 {6-I_POS,5-6} I_NEG
7 I Sense - 7 I_NEG {0-0} I_POS
Index Name Number Nodes Bridges Do Not Intersects
8 Net 8 8 3,4 {3-4} 0
7-8
found unused Net 9
Index Name Number Nodes Bridges Do Not Intersects
0 Empty Net 127 EMPTY_NET {0-0} EMPTY_NET
1 GND 1 GND,1,2 {1-GND,1-2} 3V3,5V,DAC_0,DAC_1
2 +5V 2 5V,11 {11-5V} GND,3V3,DAC_0,DAC_1
3 +3.3V 3 3V3 {0-0} GND,5V,DAC_0,DAC_1
4 DAC 0 4 DAC_0 {0-0} GND,5V,3V3,DAC_1
5 DAC 1 5 DAC_1 {0-0} GND,5V,3V3,DAC_0
6 I Sense + 6 I_POS,6,5 {6-I_POS,5-6} I_NEG
7 I Sense - 7 I_NEG {0-0} I_POS
Index Name Number Nodes Bridges Do Not Intersects
8 Net 8 8 3,4 {3-4} 0
9 Net 9 9 7,8 {7-8} 0
9-10
found unused Net 10
Index Name Number Nodes Bridges Do Not Intersects
0 Empty Net 127 EMPTY_NET {0-0} EMPTY_NET
1 GND 1 GND,1,2 {1-GND,1-2} 3V3,5V,DAC_0,DAC_1
2 +5V 2 5V,11 {11-5V} GND,3V3,DAC_0,DAC_1
3 +3.3V 3 3V3 {0-0} GND,5V,DAC_0,DAC_1
4 DAC 0 4 DAC_0 {0-0} GND,5V,3V3,DAC_1
5 DAC 1 5 DAC_1 {0-0} GND,5V,3V3,DAC_0
6 I Sense + 6 I_POS,6,5 {6-I_POS,5-6} I_NEG
7 I Sense - 7 I_NEG {0-0} I_POS
Index Name Number Nodes Bridges Do Not Intersects
8 Net 8 8 3,4 {3-4} 0
9 Net 9 9 7,8 {7-8} 0
10 Net 10 10 9,10 {9-10} 0
11-12
adding Node 12 to Net 2
Index Name Number Nodes Bridges Do Not Intersects
0 Empty Net 127 EMPTY_NET {0-0} EMPTY_NET
1 GND 1 GND,1,2 {1-GND,1-2} 3V3,5V,DAC_0,DAC_1
2 +5V 2 5V,11,12 {11-5V,11-12} GND,3V3,DAC_0,DAC_1
3 +3.3V 3 3V3 {0-0} GND,5V,DAC_0,DAC_1
4 DAC 0 4 DAC_0 {0-0} GND,5V,3V3,DAC_1
5 DAC 1 5 DAC_1 {0-0} GND,5V,3V3,DAC_0
6 I Sense + 6 I_POS,6,5 {6-I_POS,5-6} I_NEG
7 I Sense - 7 I_NEG {0-0} I_POS
Index Name Number Nodes Bridges Do Not Intersects
8 Net 8 8 3,4 {3-4} 0
9 Net 9 9 7,8 {7-8} 0
10 Net 10 10 9,10 {9-10} 0
12-13
adding Node 13 to Net 2
Index Name Number Nodes Bridges Do Not Intersects
0 Empty Net 127 EMPTY_NET {0-0} EMPTY_NET
1 GND 1 GND,1,2 {1-GND,1-2} 3V3,5V,DAC_0,DAC_1
2 +5V 2 5V,11,12,13 {11-5V,11-12,12-13} GND,3V3,DAC_0,DAC_1
3 +3.3V 3 3V3 {0-0} GND,5V,DAC_0,DAC_1
4 DAC 0 4 DAC_0 {0-0} GND,5V,3V3,DAC_1
5 DAC 1 5 DAC_1 {0-0} GND,5V,3V3,DAC_0
6 I Sense + 6 I_POS,6,5 {6-I_POS,5-6} I_NEG
7 I Sense - 7 I_NEG {0-0} I_POS
Index Name Number Nodes Bridges Do Not Intersects
8 Net 8 8 3,4 {3-4} 0
9 Net 9 9 7,8 {7-8} 0
10 Net 10 10 9,10 {9-10} 0
2-3
found Node 3 in Net 8
combining Nets 1 and 8
deleted Net 8
Index Name Number Nodes Bridges Do Not Intersects
0 Empty Net 127 EMPTY_NET {0-0} EMPTY_NET
1 GND 1 GND,1,2,3,4 {1-GND,1-2,3-4} 3V3,5V,DAC_0,DAC_1
2 +5V 2 5V,11,12,13 {11-5V,11-12,12-13} GND,3V3,DAC_0,DAC_1
3 +3.3V 3 3V3 {0-0} GND,5V,DAC_0,DAC_1
4 DAC 0 4 DAC_0 {0-0} GND,5V,3V3,DAC_1
5 DAC 1 5 DAC_1 {0-0} GND,5V,3V3,DAC_0
6 I Sense + 6 I_POS,6,5 {6-I_POS,5-6} I_NEG
7 I Sense - 7 I_NEG {0-0} I_POS
Index Name Number Nodes Bridges Do Not Intersects
8 Net 8 8 7,8 {7-8} 0
9 Net 9 9 9,10 {9-10} 0
10-11
found Node 10 in Net 9
combining Nets 2 and 9
deleted Net 9
Index Name Number Nodes Bridges Do Not Intersects
0 Empty Net 127 EMPTY_NET {0-0} EMPTY_NET
1 GND 1 GND,1,2,3,4 {1-GND,1-2,3-4} 3V3,5V,DAC_0,DAC_1
2 +5V 2 5V,11,12,13,9,10 {11-5V,11-12,12-13,9-10} GND,3V3,DAC_0,DAC_1
3 +3.3V 3 3V3 {0-0} GND,5V,DAC_0,DAC_1
4 DAC 0 4 DAC_0 {0-0} GND,5V,3V3,DAC_1
5 DAC 1 5 DAC_1 {0-0} GND,5V,3V3,DAC_0
6 I Sense + 6 I_POS,6,5 {6-I_POS,5-6} I_NEG
7 I Sense - 7 I_NEG {0-0} I_POS
Index Name Number Nodes Bridges Do Not Intersects
8 Net 8 8 7,8 {7-8} 0
1-11
Net 2 can't be combined with Net 1 due to Do Not Intersect rules, skipping (first net DNI to second net nodes)
Index Name Number Nodes Bridges Do Not Intersects
0 Empty Net 127 EMPTY_NET {0-0} EMPTY_NET
1 GND 1 GND,1,2,3,4 {1-GND,1-2,3-4} 3V3,5V,DAC_0,DAC_1
2 +5V 2 5V,11,12,13,9,10 {11-5V,11-12,12-13,9-10} GND,3V3,DAC_0,DAC_1
3 +3.3V 3 3V3 {0-0} GND,5V,DAC_0,DAC_1
4 DAC 0 4 DAC_0 {0-0} GND,5V,3V3,DAC_1
5 DAC 1 5 DAC_1 {0-0} GND,5V,3V3,DAC_0
6 I Sense + 6 I_POS,6,5 {6-I_POS,5-6} I_NEG
7 I Sense - 7 I_NEG {0-0} I_POS
Index Name Number Nodes Bridges Do Not Intersects
8 Net 8 8 7,8 {7-8} 0
0-7
Index Name Number Nodes Bridges Do Not Intersects
0 Empty Net 127 EMPTY_NET {0-0} EMPTY_NET
1 GND 1 GND,1,2,3,4 {1-GND,1-2,3-4} 3V3,5V,DAC_0,DAC_1
2 +5V 2 5V,11,12,13,9,10 {11-5V,11-12,12-13,9-10} GND,3V3,DAC_0,DAC_1
3 +3.3V 3 3V3 {0-0} GND,5V,DAC_0,DAC_1
4 DAC 0 4 DAC_0 {0-0} GND,5V,3V3,DAC_1
5 DAC 1 5 DAC_1 {0-0} GND,5V,3V3,DAC_0
6 I Sense + 6 I_POS,6,5 {6-I_POS,5-6} I_NEG
7 I Sense - 7 I_NEG {0-0} I_POS
Index Name Number Nodes Bridges Do Not Intersects
8 Net 8 8 7,8 {7-8} 0
done
final netlist
Index Name Number Nodes Bridges Do Not Intersects
0 Empty Net 127 EMPTY_NET {0-0} EMPTY_NET
1 GND 1 GND,1,2,3,4 {1-GND,1-2,3-4} 3V3,5V,DAC_0,DAC_1
2 +5V 2 5V,11,12,13,9,10 {11-5V,11-12,12-13,9-10} GND,3V3,DAC_0,DAC_1
3 +3.3V 3 3V3 {0-0} GND,5V,DAC_0,DAC_1
4 DAC 0 4 DAC_0 {0-0} GND,5V,3V3,DAC_1
5 DAC 1 5 DAC_1 {0-0} GND,5V,3V3,DAC_0
6 I Sense + 6 I_POS,6,5 {6-I_POS,5-6} I_NEG
7 I Sense - 7 I_NEG {0-0} I_POS
Index Name Number Nodes Bridges Do Not Intersects
8 Net 8 8 7,8 {7-8} 0
```