4 Commits

Author SHA1 Message Date
William Henderson 2f6a5b7104 V1.1.1 2025-10-08 10:51:10 +01:00
Hende 4dbfdbc9ac 1.1.1 2025-10-08 10:43:59 +01:00
William Henderson e1e80e2cbe Typo 2025-10-06 13:46:28 +01:00
William Henderson 0359342777 V1.1.0 2025-10-06 13:39:41 +01:00
21 changed files with 102 additions and 49 deletions
Binary file not shown.
@@ -1,14 +1,18 @@
{ {
"Version": 1, "Version": 1,
"WorkspaceRootPath": "C:\\Users\\william\\Documents\\Git\\RP2040_UPS_Loader\\", "WorkspaceRootPath": "C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\",
"Documents": [ "Documents": [
{ {
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\william\\Documents\\Git\\RP2040_UPS_Loader\\rp2040_Loader.py||{8B382828-6202-11D1-8870-0000F87579D2}", "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\rp2040_Loader.py||{8B382828-6202-11D1-8870-0000F87579D2}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:rp2040_Loader.py||{8B382828-6202-11D1-8870-0000F87579D2}" "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:rp2040_Loader.py||{8B382828-6202-11D1-8870-0000F87579D2}"
}, },
{ {
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\william\\Documents\\Git\\RP2040_UPS_Loader\\Resources\\RP2040\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}", "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\Resources\\RP2040\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Resources\\RP2040\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}" "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Resources\\RP2040\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\Releases\\CHANGE LOG.txt||{8B382828-6202-11D1-8870-0000F87579D2}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Releases\\CHANGE LOG.txt||{8B382828-6202-11D1-8870-0000F87579D2}"
} }
], ],
"DocumentGroupContainers": [ "DocumentGroupContainers": [
@@ -18,22 +22,35 @@
"DocumentGroups": [ "DocumentGroups": [
{ {
"DockedWidth": 209, "DockedWidth": 209,
"SelectedChildIndex": 1, "SelectedChildIndex": 2,
"Children": [ "Children": [
{ {
"$type": "Bookmark", "$type": "Bookmark",
"Name": "ST:0:0:{e506b91c-c606-466a-90a9-123d1d1e12b3}" "Name": "ST:0:0:{e506b91c-c606-466a-90a9-123d1d1e12b3}"
}, },
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "CHANGE LOG.txt",
"DocumentMoniker": "C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\Releases\\CHANGE LOG.txt",
"RelativeDocumentMoniker": "Releases\\CHANGE LOG.txt",
"ToolTip": "C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\Releases\\CHANGE LOG.txt",
"RelativeToolTip": "Releases\\CHANGE LOG.txt",
"ViewState": "AgIAAAYAAAAAAAAAAAAAACUAAAA+AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003109|",
"WhenOpened": "2025-10-06T12:33:48.161Z",
"EditorCaption": ""
},
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 0, "DocumentIndex": 0,
"Title": "rp2040_Loader.py", "Title": "rp2040_Loader.py",
"DocumentMoniker": "C:\\Users\\william\\Documents\\Git\\RP2040_UPS_Loader\\rp2040_Loader.py", "DocumentMoniker": "C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\rp2040_Loader.py",
"RelativeDocumentMoniker": "rp2040_Loader.py", "RelativeDocumentMoniker": "rp2040_Loader.py",
"ToolTip": "C:\\Users\\william\\Documents\\Git\\RP2040_UPS_Loader\\rp2040_Loader.py", "ToolTip": "C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\rp2040_Loader.py",
"RelativeToolTip": "rp2040_Loader.py", "RelativeToolTip": "rp2040_Loader.py",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAG4AAAA8AAAAAAAAAA==", "ViewState": "AgIAAAMAAAAAAAAAAAAAAJEAAABAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", "Icon": "00000000-0000-0000-0000-000000000000.000000|iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAANASURBVEhLtZVPaBxlGMZ/s7uTNazZMW3Y/BGxRFOkWsQU3VAPxoJ6KiKIItJDwTnkomhhK\u002BRg7En3losHFwlBRDx5KGgPHhQruhKaUChaiCbWuNrGtttunN3Z\u002Bb7v9TCb7GTI6HrwgZf55nln3ud9n\u002B9jBv5PiIgV51zXlTj3L3i0Uqksxclt7CkwPz8fp/fE7Oxs4Pv\u002BlSAIXq5UKtV4HiAVJ/4LHMexS6XSPtu2P3JdtxjP808C1Wo1MaIoFAqDEZEju5J7wXVd8Tyvp5ibm9tZr62t3ZiZmVl1Xfe\u002BaL3ECXpFuVymXC6zuLg4mE6nR4DD0XwmehNF3IooisXQ7lKptItfWFhYWllZ2cUlTlAsFveMqakpbNvG0xYb9TbrN1rcbBoymQyO42TjdRInSMJtz\u002Bedcz\u002Bwvnkbr\u002BmjlUKrgOF8ljMvPP3I8vKyHX0\u002BcYL4ydmO9bpif86m/OJkp3gYv27e4uzSL9np6emD0TqJAnFrtsMY4Zsff\u002BfUh99itMZoFV6VYstrMTAwcGe0TqIAgNYarTVWKsXSlS0\u002B/r7GhbU/efLQCEcPFnjq8Bh2GrRWaK0xxvDEZP1NaXwuElw7LyL7Evcgeorq\u002BQk\u002B\u002BHJ1x\u002B\u002BuNeHadO6NGPC\u002BDl9qXXqcoVNvJU4QteXcxVqny7DT7rrLGa2YGAYQ0C1oXQZ19dlEgSg2NhuYTqdGKdJiODCUY3w4z/hInvtHHZ47Os5LR34C5YFugvagXbs38WsatejdaoAKArQKuHuwn/dP\u002BPTLatgthNegBmoLjA\u002BmDdqHkdPJmxy1aCyfxXSsmDmWoz/4CtRvoGoQbID/MwS3Op03u1P03XMzUSCKYw\u002BN7mymc4fqJkwQWqE6haPr7ATYo5/2ZBFAM3\u002BA2vUGxx9uUpBPQgtMG/oOgZUFUeGHIZUD0nDXM9fIDD2WKBBHKpXCsiz6zGW4/l5Y3Pig2yAajECuCGOn3wbOA1XLsho9WQRgjEFrjZCWrtcdW/a/AkMnIdUPgGVZX1iW1SDpnxznonjj9dcuPVD47kHqn4Ui21PkJglGz7TtrPO8ZVln4\u002B/1DBFJi8irohor8tdFJVsXRNp/rItIVUROiMjx6PN/A\u002BOzH72MzdOgAAAAAElFTkSuQmCC",
"WhenOpened": "2025-07-10T14:11:57.024Z", "WhenOpened": "2025-07-10T14:11:57.024Z",
"EditorCaption": "" "EditorCaption": ""
}, },
@@ -41,13 +58,14 @@
"$type": "Document", "$type": "Document",
"DocumentIndex": 1, "DocumentIndex": 1,
"Title": "main.py", "Title": "main.py",
"DocumentMoniker": "C:\\Users\\william\\Documents\\Git\\RP2040_UPS_Loader\\Resources\\RP2040\\main.py", "DocumentMoniker": "C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\Resources\\RP2040\\main.py",
"RelativeDocumentMoniker": "Resources\\RP2040\\main.py", "RelativeDocumentMoniker": "Resources\\RP2040\\main.py",
"ToolTip": "C:\\Users\\william\\Documents\\Git\\RP2040_UPS_Loader\\Resources\\RP2040\\main.py", "ToolTip": "C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\Resources\\RP2040\\main.py",
"RelativeToolTip": "Resources\\RP2040\\main.py", "RelativeToolTip": "Resources\\RP2040\\main.py",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", "ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAABqAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", "Icon": "00000000-0000-0000-0000-000000000000.000000|iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAANASURBVEhLtZVPaBxlGMZ/s7uTNazZMW3Y/BGxRFOkWsQU3VAPxoJ6KiKIItJDwTnkomhhK\u002BRg7En3losHFwlBRDx5KGgPHhQruhKaUChaiCbWuNrGtttunN3Z\u002Bb7v9TCb7GTI6HrwgZf55nln3ud9n\u002B9jBv5PiIgV51zXlTj3L3i0Uqksxclt7CkwPz8fp/fE7Oxs4Pv\u002BlSAIXq5UKtV4HiAVJ/4LHMexS6XSPtu2P3JdtxjP808C1Wo1MaIoFAqDEZEju5J7wXVd8Tyvp5ibm9tZr62t3ZiZmVl1Xfe\u002BaL3ECXpFuVymXC6zuLg4mE6nR4DD0XwmehNF3IooisXQ7lKptItfWFhYWllZ2cUlTlAsFveMqakpbNvG0xYb9TbrN1rcbBoymQyO42TjdRInSMJtz\u002Bedcz\u002Bwvnkbr\u002BmjlUKrgOF8ljMvPP3I8vKyHX0\u002BcYL4ydmO9bpif86m/OJkp3gYv27e4uzSL9np6emD0TqJAnFrtsMY4Zsff\u002BfUh99itMZoFV6VYstrMTAwcGe0TqIAgNYarTVWKsXSlS0\u002B/r7GhbU/efLQCEcPFnjq8Bh2GrRWaK0xxvDEZP1NaXwuElw7LyL7Evcgeorq\u002BQk\u002B\u002BHJ1x\u002B\u002BuNeHadO6NGPC\u002BDl9qXXqcoVNvJU4QteXcxVqny7DT7rrLGa2YGAYQ0C1oXQZ19dlEgSg2NhuYTqdGKdJiODCUY3w4z/hInvtHHZ47Os5LR34C5YFugvagXbs38WsatejdaoAKArQKuHuwn/dP\u002BPTLatgthNegBmoLjA\u002BmDdqHkdPJmxy1aCyfxXSsmDmWoz/4CtRvoGoQbID/MwS3Op03u1P03XMzUSCKYw\u002BN7mymc4fqJkwQWqE6haPr7ATYo5/2ZBFAM3\u002BA2vUGxx9uUpBPQgtMG/oOgZUFUeGHIZUD0nDXM9fIDD2WKBBHKpXCsiz6zGW4/l5Y3Pig2yAajECuCGOn3wbOA1XLsho9WQRgjEFrjZCWrtcdW/a/AkMnIdUPgGVZX1iW1SDpnxznonjj9dcuPVD47kHqn4Ui21PkJglGz7TtrPO8ZVln4\u002B/1DBFJi8irohor8tdFJVsXRNp/rItIVUROiMjx6PN/A\u002BOzH72MzdOgAAAAAElFTkSuQmCC",
"WhenOpened": "2025-07-23T11:07:29.706Z" "WhenOpened": "2025-07-23T11:07:29.706Z",
"EditorCaption": ""
} }
] ]
} }
+31 -13
View File
@@ -1,14 +1,18 @@
{ {
"Version": 1, "Version": 1,
"WorkspaceRootPath": "C:\\Users\\william\\Documents\\Git\\RP2040_UPS_Loader\\", "WorkspaceRootPath": "C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\",
"Documents": [ "Documents": [
{ {
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\william\\Documents\\Git\\RP2040_UPS_Loader\\rp2040_Loader.py||{8B382828-6202-11D1-8870-0000F87579D2}", "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\rp2040_Loader.py||{8B382828-6202-11D1-8870-0000F87579D2}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:rp2040_Loader.py||{8B382828-6202-11D1-8870-0000F87579D2}" "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:rp2040_Loader.py||{8B382828-6202-11D1-8870-0000F87579D2}"
}, },
{ {
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\william\\Documents\\Git\\RP2040_UPS_Loader\\Resources\\RP2040\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}", "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\Resources\\RP2040\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Resources\\RP2040\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}" "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Resources\\RP2040\\main.py||{8B382828-6202-11D1-8870-0000F87579D2}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\Releases\\CHANGE LOG.txt||{8B382828-6202-11D1-8870-0000F87579D2}",
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:Releases\\CHANGE LOG.txt||{8B382828-6202-11D1-8870-0000F87579D2}"
} }
], ],
"DocumentGroupContainers": [ "DocumentGroupContainers": [
@@ -18,22 +22,35 @@
"DocumentGroups": [ "DocumentGroups": [
{ {
"DockedWidth": 209, "DockedWidth": 209,
"SelectedChildIndex": 1, "SelectedChildIndex": 2,
"Children": [ "Children": [
{ {
"$type": "Bookmark", "$type": "Bookmark",
"Name": "ST:0:0:{e506b91c-c606-466a-90a9-123d1d1e12b3}" "Name": "ST:0:0:{e506b91c-c606-466a-90a9-123d1d1e12b3}"
}, },
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "CHANGE LOG.txt",
"DocumentMoniker": "C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\Releases\\CHANGE LOG.txt",
"RelativeDocumentMoniker": "Releases\\CHANGE LOG.txt",
"ToolTip": "C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\Releases\\CHANGE LOG.txt",
"RelativeToolTip": "Releases\\CHANGE LOG.txt",
"ViewState": "AgIAAAYAAAAAAAAAAAAAACUAAAA+AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003109|",
"WhenOpened": "2025-10-06T12:33:48.161Z",
"EditorCaption": ""
},
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 0, "DocumentIndex": 0,
"Title": "rp2040_Loader.py", "Title": "rp2040_Loader.py",
"DocumentMoniker": "C:\\Users\\william\\Documents\\Git\\RP2040_UPS_Loader\\rp2040_Loader.py", "DocumentMoniker": "C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\rp2040_Loader.py",
"RelativeDocumentMoniker": "rp2040_Loader.py", "RelativeDocumentMoniker": "rp2040_Loader.py",
"ToolTip": "C:\\Users\\william\\Documents\\Git\\RP2040_UPS_Loader\\rp2040_Loader.py", "ToolTip": "C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\rp2040_Loader.py",
"RelativeToolTip": "rp2040_Loader.py", "RelativeToolTip": "rp2040_Loader.py",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAHoAAAAkAAAAAAAAAA==", "ViewState": "AgIAAAMAAAAAAAAAAAAAAB0AAABAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", "Icon": "00000000-0000-0000-0000-000000000000.000000|iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAANASURBVEhLtZVPaBxlGMZ/s7uTNazZMW3Y/BGxRFOkWsQU3VAPxoJ6KiKIItJDwTnkomhhK\u002BRg7En3losHFwlBRDx5KGgPHhQruhKaUChaiCbWuNrGtttunN3Z\u002Bb7v9TCb7GTI6HrwgZf55nln3ud9n\u002B9jBv5PiIgV51zXlTj3L3i0Uqksxclt7CkwPz8fp/fE7Oxs4Pv\u002BlSAIXq5UKtV4HiAVJ/4LHMexS6XSPtu2P3JdtxjP808C1Wo1MaIoFAqDEZEju5J7wXVd8Tyvp5ibm9tZr62t3ZiZmVl1Xfe\u002BaL3ECXpFuVymXC6zuLg4mE6nR4DD0XwmehNF3IooisXQ7lKptItfWFhYWllZ2cUlTlAsFveMqakpbNvG0xYb9TbrN1rcbBoymQyO42TjdRInSMJtz\u002Bedcz\u002Bwvnkbr\u002BmjlUKrgOF8ljMvPP3I8vKyHX0\u002BcYL4ydmO9bpif86m/OJkp3gYv27e4uzSL9np6emD0TqJAnFrtsMY4Zsff\u002BfUh99itMZoFV6VYstrMTAwcGe0TqIAgNYarTVWKsXSlS0\u002B/r7GhbU/efLQCEcPFnjq8Bh2GrRWaK0xxvDEZP1NaXwuElw7LyL7Evcgeorq\u002BQk\u002B\u002BHJ1x\u002B\u002BuNeHadO6NGPC\u002BDl9qXXqcoVNvJU4QteXcxVqny7DT7rrLGa2YGAYQ0C1oXQZ19dlEgSg2NhuYTqdGKdJiODCUY3w4z/hInvtHHZ47Os5LR34C5YFugvagXbs38WsatejdaoAKArQKuHuwn/dP\u002BPTLatgthNegBmoLjA\u002BmDdqHkdPJmxy1aCyfxXSsmDmWoz/4CtRvoGoQbID/MwS3Op03u1P03XMzUSCKYw\u002BN7mymc4fqJkwQWqE6haPr7ATYo5/2ZBFAM3\u002BA2vUGxx9uUpBPQgtMG/oOgZUFUeGHIZUD0nDXM9fIDD2WKBBHKpXCsiz6zGW4/l5Y3Pig2yAajECuCGOn3wbOA1XLsho9WQRgjEFrjZCWrtcdW/a/AkMnIdUPgGVZX1iW1SDpnxznonjj9dcuPVD47kHqn4Ui21PkJglGz7TtrPO8ZVln4\u002B/1DBFJi8irohor8tdFJVsXRNp/rItIVUROiMjx6PN/A\u002BOzH72MzdOgAAAAAElFTkSuQmCC",
"WhenOpened": "2025-07-10T14:11:57.024Z", "WhenOpened": "2025-07-10T14:11:57.024Z",
"EditorCaption": "" "EditorCaption": ""
}, },
@@ -41,13 +58,14 @@
"$type": "Document", "$type": "Document",
"DocumentIndex": 1, "DocumentIndex": 1,
"Title": "main.py", "Title": "main.py",
"DocumentMoniker": "C:\\Users\\william\\Documents\\Git\\RP2040_UPS_Loader\\Resources\\RP2040\\main.py", "DocumentMoniker": "C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\Resources\\RP2040\\main.py",
"RelativeDocumentMoniker": "Resources\\RP2040\\main.py", "RelativeDocumentMoniker": "Resources\\RP2040\\main.py",
"ToolTip": "C:\\Users\\william\\Documents\\Git\\RP2040_UPS_Loader\\Resources\\RP2040\\main.py", "ToolTip": "C:\\Users\\William\\Documents\\Git\\RP2040_UPS_Loader\\Resources\\RP2040\\main.py",
"RelativeToolTip": "Resources\\RP2040\\main.py", "RelativeToolTip": "Resources\\RP2040\\main.py",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", "ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAABqAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", "Icon": "00000000-0000-0000-0000-000000000000.000000|iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAANASURBVEhLtZVPaBxlGMZ/s7uTNazZMW3Y/BGxRFOkWsQU3VAPxoJ6KiKIItJDwTnkomhhK\u002BRg7En3losHFwlBRDx5KGgPHhQruhKaUChaiCbWuNrGtttunN3Z\u002Bb7v9TCb7GTI6HrwgZf55nln3ud9n\u002B9jBv5PiIgV51zXlTj3L3i0Uqksxclt7CkwPz8fp/fE7Oxs4Pv\u002BlSAIXq5UKtV4HiAVJ/4LHMexS6XSPtu2P3JdtxjP808C1Wo1MaIoFAqDEZEju5J7wXVd8Tyvp5ibm9tZr62t3ZiZmVl1Xfe\u002BaL3ECXpFuVymXC6zuLg4mE6nR4DD0XwmehNF3IooisXQ7lKptItfWFhYWllZ2cUlTlAsFveMqakpbNvG0xYb9TbrN1rcbBoymQyO42TjdRInSMJtz\u002Bedcz\u002Bwvnkbr\u002BmjlUKrgOF8ljMvPP3I8vKyHX0\u002BcYL4ydmO9bpif86m/OJkp3gYv27e4uzSL9np6emD0TqJAnFrtsMY4Zsff\u002BfUh99itMZoFV6VYstrMTAwcGe0TqIAgNYarTVWKsXSlS0\u002B/r7GhbU/efLQCEcPFnjq8Bh2GrRWaK0xxvDEZP1NaXwuElw7LyL7Evcgeorq\u002BQk\u002B\u002BHJ1x\u002B\u002BuNeHadO6NGPC\u002BDl9qXXqcoVNvJU4QteXcxVqny7DT7rrLGa2YGAYQ0C1oXQZ19dlEgSg2NhuYTqdGKdJiODCUY3w4z/hInvtHHZ47Os5LR34C5YFugvagXbs38WsatejdaoAKArQKuHuwn/dP\u002BPTLatgthNegBmoLjA\u002BmDdqHkdPJmxy1aCyfxXSsmDmWoz/4CtRvoGoQbID/MwS3Op03u1P03XMzUSCKYw\u002BN7mymc4fqJkwQWqE6haPr7ATYo5/2ZBFAM3\u002BA2vUGxx9uUpBPQgtMG/oOgZUFUeGHIZUD0nDXM9fIDD2WKBBHKpXCsiz6zGW4/l5Y3Pig2yAajECuCGOn3wbOA1XLsho9WQRgjEFrjZCWrtcdW/a/AkMnIdUPgGVZX1iW1SDpnxznonjj9dcuPVD47kHqn4Ui21PkJglGz7TtrPO8ZVln4\u002B/1DBFJi8irohor8tdFJVsXRNp/rItIVUROiMjx6PN/A\u002BOzH72MzdOgAAAAAElFTkSuQmCC",
"WhenOpened": "2025-07-23T11:07:29.706Z" "WhenOpened": "2025-07-23T11:07:29.706Z",
"EditorCaption": ""
} }
] ]
} }
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
+17 -1
View File
@@ -24,4 +24,20 @@ Improvements:
- Added logging to see which files get uploaded or skipped (if unchanged) - Added logging to see which files get uploaded or skipped (if unchanged)
Bug Fixes: Bug Fixes:
- Fixed `mpremote` - Fixed `mpremote`
RP Loader V1.1.0 - 06/10/2025
Improvements:
- Added support for the RP2350-ETH (Pico 2 platform)
RP Loader V1.1.1 - 08/10/2025
Improvements:
- Included the firmware for the RP2350-ETH (Pico 2 platform) in the Firmware folder
- Updated firmwares to latest version of MicroPython (V1.26.1)
- Removed various unessasary parts of the program to make it even faster to run :)
Bug Fixes:
- Fixed support for the RP2350-ETH (Pico 2 platform)
Binary file not shown.
Binary file not shown.
-7
View File
@@ -5,7 +5,6 @@ from ch9120 import CH9120
import ujson import ujson
import math import math
start_time = time.time()
# --- CH9120 Network Configuration --- # --- CH9120 Network Configuration ---
MODE = 0 MODE = 0
@@ -135,12 +134,6 @@ def update_ip_configuration(ip, gateway, subnet):
save_network_config(ip, gateway, subnet) save_network_config(ip, gateway, subnet)
def get_uptime():
seconds = int(time.time() - start_time)
hrs = seconds // 3600
mins = (seconds % 3600) // 60
secs = seconds % 60
return f"{hrs:02d}:{mins:02d}:{secs:02d}"
def main(): def main():
ch9120_configure() ch9120_configure()
+23 -15
View File
@@ -17,15 +17,14 @@ class RP2040UploaderApp:
self.folder_path = os.path.join(os.getcwd(), "Resources/RP2040") self.folder_path = os.path.join(os.getcwd(), "Resources/RP2040")
self.config_path = os.path.join(self.folder_path, "config.json") self.config_path = os.path.join(self.folder_path, "config.json")
self.label = tk.Label(master, text="Searching for board...")
self.label = tk.Label(master, text="Searching for RP2040...")
self.label.pack(pady=10) self.label.pack(pady=10)
self.port = self.find_rp2040_port() self.port, self.board_name = self.find_supported_port()
if self.port: if self.port:
self.label.config(text=f"RP2040 detected on {self.port}") self.label.config(text=f"{self.board_name} detected on {self.port}")
else: else:
self.label.config(text="RP2040 not found.") self.label.config(text="No supported board found.")
# Config entry fields # Config entry fields
self.ip_entry = self.create_labeled_entry("IP Address:") self.ip_entry = self.create_labeled_entry("IP Address:")
@@ -34,7 +33,13 @@ class RP2040UploaderApp:
self.load_config() self.load_config()
self.upload_button = ttk.Button(master, text="Upload Files", style="Accent.TButton", command=self.upload_files, state=tk.NORMAL if self.port else tk.DISABLED) self.upload_button = ttk.Button(
master,
text="Upload Files",
style="Accent.TButton",
command=self.upload_files,
state=tk.NORMAL if self.port else tk.DISABLED
)
self.upload_button.pack(pady=10) self.upload_button.pack(pady=10)
def create_labeled_entry(self, label_text): def create_labeled_entry(self, label_text):
@@ -46,17 +51,20 @@ class RP2040UploaderApp:
entry.pack(side=tk.RIGHT) entry.pack(side=tk.RIGHT)
return entry return entry
def find_rp2040_port(self): def find_supported_port(self):
target_vid = 0x239A # List of supported boards (VID, PID, Name)
target_pid = 0x80F2 supported_boards = [
(0x239A, 0x80F2, "RP2040"),
(0x2E8A, 0x0009, "RP2350"),
]
ports = serial.tools.list_ports.comports() ports = serial.tools.list_ports.comports()
for port in ports: for port in ports:
if port.vid == target_vid and port.pid == target_pid: for vid, pid, name in supported_boards:
return port.device if port.vid == vid and port.pid == pid:
return port.device, name
return None
return None, None
def load_config(self): def load_config(self):
if os.path.isfile(self.config_path): if os.path.isfile(self.config_path):
@@ -120,7 +128,7 @@ class RP2040UploaderApp:
if __name__ == "__main__": if __name__ == "__main__":
root = tk.Tk() root = tk.Tk()
app = RP2040UploaderApp(root) app = RP2040UploaderApp(root)
root.title("RP2040 Loader V1.0.2") root.title("RP Loader V1.1.1")
root.iconbitmap(r'Resources/icon1.ico') root.iconbitmap(r'Resources/icon1.ico')
@@ -135,7 +143,7 @@ if __name__ == "__main__":
# Footer label in bottom right # Footer label in bottom right
footer_frame = tk.Frame(root) footer_frame = tk.Frame(root)
footer_frame.pack(side=tk.BOTTOM, fill=tk.X) footer_frame.pack(side=tk.BOTTOM, fill=tk.X)
footer_label = tk.Label(footer_frame, text="Made by Hendo 23/07/2025", anchor="e", justify="right", font=("TkDefaultFont", 7, "bold")) footer_label = tk.Label(footer_frame, text="Made by Hendo 08/10/2025", anchor="e", justify="right", font=("TkDefaultFont", 7, "bold"))
footer_label.pack(side=tk.RIGHT, padx=10, pady=5) footer_label.pack(side=tk.RIGHT, padx=10, pady=5)
root.mainloop() root.mainloop()