mirror of
https://github.com/Architeuthis-Flux/Jumperless.git
synced 2024-12-24 13:14:51 +01:00
356 lines
20 KiB
Markdown
356 lines
20 KiB
Markdown
|
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
|
||
|
```
|