Jumperless/JumperlessNano
2023-06-03 20:23:38 -07:00
..
.vscode started pathfinding logic 2023-05-31 16:00:30 -07:00
data chippin' away at shit 2023-06-03 20:22:29 -07:00
include Added a bunch of stuff, mainly dealing with nets 2023-05-27 11:35:22 -07:00
lib New Hardware revision 2023-05-25 09:37:55 -07:00
src thinking about talking to the DACS 2023-06-03 20:23:38 -07:00
.gitignore seriously 2023-05-25 10:34:38 -07:00
platformio.ini started pathfinding logic 2023-05-31 16:00:30 -07:00
README.md Create README.md for code 2023-05-28 18:34:31 -07: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