Skip to content

Commit 3318aa7

Browse files
committed
Intro clarifications on purpose and function of SDK
1 parent 18a8c0b commit 3318aa7

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

README.md

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,20 @@
33
© 2024 Pat Deegan, [psychogenic.com](https://psychogenic.com)
44

55
This library provides the DemoBoard class, which is the primary
6-
entry point to all the TinyTapeout demo pcb's RP2040 functionality, including
6+
entry point to all the Tiny Tapeout demo pcb's RP2040 functionality.
7+
8+
What the RP2040 and this SDK provides, in addition to a base micropython environment (from crucial to nice-to-have):
9+
10+
* It handles the ASIC project mux, and gives you a way to forget the json config and do `tt.shuttle.tt_um_myproject.enable()` to select between projects on the chip
11+
12+
* Interfaces with all the project I/O, clocking and reset, lets you control those completely programatically, or clock+reset only (say, if you're connecting a PMOD like the Simon), or to be in full don't-touch mode while still being able to switch between projects
13+
14+
* Provides abstractions related to the ASIC, so you don't *have* to use individual pins but can think in terms of *ports* (in/out/bidir) and transparently deals with the demoboard-level MUX we had to put on there because we didn't have as many I/O as needed for all the things we wanted to do
15+
16+
* Gives a system to allow for configuration using a simple config.ini: options for default project loaded on boot, clock speed (both RP2040 and project), settings for bidir pin directions on a per-project level, project load input pin state, etc
17+
18+
* Provides a REPL to muck about easily, with objects that are for the most part well behaved (dynamic attributes for each project in the shuttle, say, nice `__repr__` and `__str__` for things you'd want to look at etc)
719

8-
* pins (named, transparently muxed)
9-
* projects (all shuttle projects and means to enable)
10-
* basic utilities (auto clocking projects etc)
11-
* default and per-project configuration with ini file
12-
1320

1421
# Installation
1522

0 commit comments

Comments
 (0)