Commit Graph

81 Commits

Author SHA1 Message Date
Brian S. Stephan 416157663d
STORAGE_BOOTSEL_ADDRESS is a better name than _MEMORY_
this is also just a different addressing mode with the same binary
offset from the start, so derive it from the binary location
2024-01-03 12:24:05 -06:00
Brian S. Stephan f2ed281053
test parsing config as JSON into a message
this also bumps the proto files in the test directory as a matter of
convenience, so some tests got updated accordingly

Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2024-01-03 12:20:54 -06:00
Brian S. Stephan 23cb5c9e5a
add SPDX-FileCopyrightText
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2024-01-02 15:15:55 -06:00
Brian S. Stephan 39cd3754f3
correct the LICENSE copyright to my name
as the Open Stick Community is not a legal entity, and I have not
transferred copyright to anyone/thing else, and because I am to date the
only author in this repository, I believe it is clearer to all and
stronger to just be explicit here and put my name in the license
document. this will be followed up by a SPDX update to the files
accordingly.

Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2024-01-02 15:09:13 -06:00
Brian S. Stephan 39b80f4c8b
Add DCO/signoff docs and sign off on MAINTAINERS entry
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2023-12-18 10:44:04 -06:00
Brian S. Stephan b2bf7984b0
add SPDX-License-Identifier: MIT to all source
Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
2023-12-18 10:17:35 -06:00
Brian S. Stephan 6aa3ea6f84
update README; had the right memory alignment but not the size 2023-11-07 08:59:15 -06:00
Brian S. Stephan f8cf57d37c
changelog updates 2023-11-07 00:27:26 -06:00
Brian S. Stephan fc022452f5
replace most references to pico with RP2040 2023-11-07 00:26:51 -06:00
Brian S. Stephan a8156f5e89
add version compatibility information to README 2023-11-07 00:06:03 -06:00
Brian S. Stephan 9aef8aae7c
correct config dump example for new start address 2023-11-06 23:59:48 -06:00
Brian S. Stephan fcb1297139
test with 0.7.5 files, which has an expanded config section 2023-11-06 23:55:01 -06:00
Brian S. Stephan a681a8e6a0
version bumps for the requirements files 2023-11-06 15:31:01 -06:00
Brian S. Stephan 1a7672b826
link to changelog in the package metadata 2023-07-12 19:21:06 -05:00
Brian S. Stephan b4d55e102b
start maintaining a changelog 2023-07-12 19:19:31 -05:00
Brian S. Stephan d2ef3efa3b
trivial reordering of command line flags 2023-07-12 18:32:05 -05:00
Brian S. Stephan cce165f012
add flag to have concatenate write direct to USB 2023-07-12 17:50:43 -05:00
Brian S. Stephan fb1729a957
write in 4096 byte chunks 2023-07-12 17:33:12 -05:00
Brian S. Stephan 8c5bd4397f
allow edit-config to fallback to new config if old doesn't exist 2023-07-12 00:08:55 -05:00
Brian S. Stephan 6a147aa1d8
attempt to address USB corruption by padding more 2023-07-11 23:28:34 -05:00
Brian S. Stephan a7b8309b33
--replace-extra to overwrite config area when concatenating 2023-07-11 18:36:17 -05:00
Brian S. Stephan baa3959e8a
dump-config's filename argument is not optional 2023-07-11 16:32:46 -05:00
Brian S. Stephan b7bb437ae8
command to dump whole GP2040-CE image from USB 2023-07-11 16:27:01 -05:00
Brian S. Stephan ef842032f1
add textual-dev to dev dependencies 2023-07-11 11:44:47 -05:00
Brian S. Stephan 2f5a99b695
use proper field descriptor when checking missing children 2023-07-10 16:00:26 -05:00
Brian S. Stephan 63295eeb21
small README update 2023-07-09 10:55:16 -05:00
Brian S. Stephan 853283e69c
edit-config over USB 2023-07-09 10:47:27 -05:00
Brian S. Stephan 2c446f595a
a bit more coverage around USB interactions (aka lots of mocks) 2023-07-09 10:41:40 -05:00
Brian S. Stephan 5bcb3dba3f
method to write the config over USB at the proper alignment 2023-07-09 10:03:44 -05:00
Brian S. Stephan 2d024c5b34
pico.write must happen at 256 byte boundaries
there's no good way to tell if the payload should be padded or if it
should just be realigned, so raise an exception and make the caller
figure it out
2023-07-09 09:16:55 -05:00
Brian S. Stephan c25f6f4fd3
add command for writing to the BOOTSEL Pico 2023-07-08 23:48:47 -05:00
Brian S. Stephan a1e3955a1f
add command to erase a section of flash
used by picotool as part of the write, so we'll do the same
2023-07-08 23:25:38 -05:00
Brian S. Stephan fcb68a1b24
it's not possible to mock a run() invocation, bss, you silly man 2023-07-08 23:23:00 -05:00
Brian S. Stephan 654bebdeb6
test an invocation of dump-config 2023-07-07 20:21:58 -05:00
Brian S. Stephan 7a9d5ad1d1
dump-config tool to easily backup a board's config section
doesn't require picotool, doesn't include padding, does include the
footer
2023-07-07 20:09:00 -05:00
Brian S. Stephan e2ad75371e
DRY: convenience method to get config from USB 2023-07-07 20:03:41 -05:00
Brian S. Stephan 61aadae2ca
tiny README organization change 2023-07-07 19:00:12 -05:00
Brian S. Stephan 0378269a00
--usb flag to edit-config direct off the board 2023-07-07 18:58:25 -05:00
Brian S. Stephan 70d3ce8be0
--usb flag to visualize-storage direct off the board 2023-07-07 18:31:13 -05:00
Brian S. Stephan 10dcd149cc
add methods to read directly off the board over USB 2023-07-07 16:45:07 -05:00
Brian S. Stephan 772ae953f0
add method to reboot a pico (in BOOTSEL) 2023-07-06 16:07:06 -05:00
Brian S. Stephan 188976474a
update installation instructions 2023-07-06 00:06:38 -05:00
Brian S. Stephan 6580990380
pyproject.toml tweaks for publishing as a package 2023-07-05 23:56:59 -05:00
Brian S. Stephan 221f45557e
support the adding of new repeated elements
take for instance:
repeated AlternativePinMappings alternativePinMappings = 1 [(nanopb).max_count = 3];

this, in C, creates a three-struct-sized array alternativePinMappings[].
in python, this is the same idea, where profileOptions' field is a
special container to which AlternativePinMappings can be added. this
allows adding elements via the UI. it does *NOT* implement limits (yet?)
so you can add more (and I think the board will just ignore them and
drop them on write)
2023-07-01 17:05:19 -05:00
Brian S. Stephan 91db1b169c
update test .protos with main + repeated example 2023-07-01 14:45:32 -05:00
Brian S. Stephan c60a5e784d
refactor to retain field_value in case it is a message
we can save some config lookups in this case (in particular in the case
where we are working with repeateds and the lookup against an iterable
won't work)
2023-07-01 13:00:48 -05:00
Brian S. Stephan 71f6af624e
refactor to add a node outside of the main tree builder 2023-07-01 12:24:31 -05:00
Brian S. Stephan 7aee99ef4f
allow for "opening" an empty config from file 2023-06-30 23:12:53 -05:00
Brian S. Stephan 7d5052e811
add edit-config, a Textual TUI for editing a configuration
this tree UI allows for viewing and basic editing of a configuration
section from a board. it does a decent job of displaying most of the
settings, and editing is equally convenient, as in it tries to handle
enums correctly, but doesn't validate pins or handle long binary strings
well.

saving is done in place --- if a config/storage section was opened, a
config section (no padding) is what results. if a whole board was
opened, the whole binary is rewritten with the new offset config
section. this way, a whole board dump can be changed in place, or a new
config can be made for use in e.g. concatenate to build an image

many enhancements to come over time
2023-06-30 02:01:01 -05:00
Brian S. Stephan 9b43ac824d
add more methods for writing a config to file
these allow for adding a config to the proper section of an existing
binary file, or writing a config to a new config-only binary file
2023-06-29 14:43:46 -05:00