@@ -80,6 +80,8 @@ tt.shuttle.<TAB><TAB>
8080
8181will show you all the projects that might be enabled, etc.
8282
83+
84+
8385Here's a sample REPL interaction with an overview of things to do
8486
8587```
@@ -211,21 +213,53 @@ tt.shuttle.tt_um_gatecat_fpga_top.enable()
211213
212214This does all the control signal twiddling needed to select and enable the project using the snazzy TinyTapeout MUX.
213215
216+
217+
218+
219+ If you know the specific project's official name, great, you can use that
220+ ```
221+ tt.shuttle.tt_um_urish_usb_cdc.enable()
222+ ```
223+
224+ If you don't, you can get a list of matching projects using ` find() ` , and call enable on any of the returned elements:
225+
226+ ```
227+ >>> tt.shuttle.find('traffic')
228+ [<Design 71: wokwi_german_traffic_light>, <Design 180: wokwi_traffic_light>, <Design 115: wokwi_traffic_light_1>]
229+ >>>
230+ >>> tt.shuttle.find('traffic')[0].enable()
231+ ttboard.project_mux: Enable design wokwi_german_traffic_light
232+
233+ ```
234+
235+ Wokwi projects have horrible names like * tt_um_wokwi_375288605206694913* by default, which makes it pretty tough to peruse. Instead, they get aliases based on their name in the shuttle, prefixed by wokwi:
236+
237+ ```
238+ >>> tt.shuttle.wokwi_<TAB>
239+ wokwi_uart_character_tx
240+ wokwi_customizable_uart_string_tx
241+ wokwi_padlock
242+ wokwi_7seg_tiny_tapeout_display
243+ wokwi_test_4x4_memory
244+ wokwi_8_bit_4_data_sorting_network
245+ wokwi_multichannel_pulse_counter_with_serial_output_v01a
246+ wokwi_traffic_light
247+ # etc...
248+ ```
249+
250+
251+
214252The currently enabled project, if any, is accessible in
215253
216254```
217- >>> tt .shuttle.tt_um_test .enable()
255+ >>> ttt .shuttle.tt_um_factory_test .enable()
218256
219257>>> tt.shuttle.enabled
220- <Design 54: tt_um_test>
221-
222- >>> tt
223- <DemoBoard as ASIC_RP_CONTROL, auto-clocking @ 10, project 'tt_um_test' (in RESET)>
258+ <Design 1: tt_um_factory_test>
224259
225- >>> tt.reset_project(False)
226260
227261>>> tt
228- <DemoBoard as ASIC_RP_CONTROL, auto-clocking @ 10, project 'tt_um_test '>
262+ <DemoBoard in ASIC_RP_CONTROL tt04 project 'tt_um_factory_test (1) @ https://github.com/TinyTapeout/tt04-factory-test '>
229263
230264```
231265
@@ -449,11 +483,20 @@ Just note that the MUX stuff needs to be handled for those pins.
449483### Available pins
450484The pins available on the tt object include
451485
452- * out0 - out7
453- * in0 - in7
454- * uio0 - uio7
455- * project_clk
456- * project_nrst
486+ * out0 - out7 # outputs, available as output_byte as well
487+ * in0 - in7 # inputs, available as input_byte
488+ * uio0 - uio7 # bidirectional pins, available as bidir_byte
489+ * project_clk # the clock for synch projects
490+ * project_nrst # the reset pin
491+
492+
493+ Though you can play with these two last to your heart's content, the easiest way to interact with these functions is through the utility methods:
494+
495+ * clock_project_PWM(FREQHz) / clock_project_stop()
496+ * clock_project_once()
497+ * tt.reset_project(BOOL) (True puts project in reset)
498+
499+
457500
458501
459502
0 commit comments