Last active
March 24, 2023 02:27
-
-
Save mattytrentini/76c666f271e9a5c1742e1cbfc25480d4 to your computer and use it in GitHub Desktop.
TinyPICO Pinout
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import re | |
tpp = """ | |
┌────┐ | |
╭───┤ ├───╮ | |
│ │ │ │ | |
[MO] [23] │ ⌾ └────┘ ⌾ │ [BAT] | |
[MI] [19] │ ⌾ ▣ │ ⏚ | |
[SCK] [18] │ ⌾ ⌾ │ [5V] | |
[SS] [ 5] │ ⌾ ⌾ │ [3V3] | |
[SCL] [22] │ ⌾ ⌾ │ [ 4] [TCH0] [ADC2-0] [RTC10] | |
[SDA] [21] │ ⌾ ⌾ │ [14] [TCH6] [ADC2-6] [RTC16] | |
[RTC9] [ADC1-4] [TCH9] [32] │ ⌾ ⌾ │ [15] [TCH3] [ADC2-3] [RTC13] | |
[RTC9] [ADC1-4] [TCH9] [33] │ ⌾ ⌾ │ [27] [TCH7] [ADC2-7] [RTC17] | |
↺ │ ⌾ ⌾ │ [26] [DAC2] [ADC2-9] [RTC7] | |
⏚ │ ▣ ⌾ │ [25] [DAC1] [ADC2-8] [RTC6] | |
│ ↺ ▩ │ | |
╰────────────╯ | |
\u001b[1mTinyPICO\u001b[0m | |
""" | |
# McGugan Boxes: https://www.willmcgugan.com/blog/tech/post/ceo-just-wants-to-draw-boxes/ | |
tpp4 = """ | |
\u2581\u2581\u2581\u2581\u2581\u2581 | |
\u2581\u2581\u2581\u258F \u2595\u2581\u2581\u2581 | |
\u258F \u2595 | |
\u2594\u2594\u2594\u2594\u2594\u2594 | |
""" | |
tpp5 = """ | |
┌────┐ | |
╭───┤ ├───╮ | |
│ │ │ │ | |
\u001b[38;5;15m\u001b[48;5;198m MO \u001b[0m \u001b[38;5;15m\u001b[48;5;32m 23 \u001b[0m │ \u001b[38;5;220m⌾\u001b[0m └────┘ \u001b[38;5;220m⌾\u001b[0m │ \u001b[38;5;15m\u001b[48;5;1m BAT \u001b[0m | |
\u001b[38;5;15m\u001b[48;5;198m MI \u001b[0m \u001b[38;5;15m\u001b[48;5;32m 19 \u001b[0m │ \u001b[38;5;220m⌾\u001b[0m \u001b[38;5;220m▣\u001b[0m │ \u001b[38;5;15m⏚\u001b[0m | |
\u001b[38;5;15m\u001b[48;5;198m SCK \u001b[0m \u001b[38;5;15m\u001b[48;5;32m 18 \u001b[0m │ \u001b[38;5;220m⌾\u001b[0m \u001b[38;5;220m⌾\u001b[0m │ \u001b[38;5;15m\u001b[48;5;1m 5V \u001b[0m | |
\u001b[38;5;15m\u001b[48;5;198m SS \u001b[0m \u001b[38;5;15m\u001b[48;5;32m 5 \u001b[0m │ \u001b[38;5;220m⌾\u001b[0m \u001b[38;5;220m⌾\u001b[0m │ \u001b[38;5;15m\u001b[48;5;1m 3V3 \u001b[0m | |
\u001b[38;5;15m\u001b[48;5;200m SCL \u001b[0m \u001b[38;5;15m\u001b[48;5;32m 22 \u001b[0m │ \u001b[38;5;220m⌾\u001b[0m \u001b[38;5;220m⌾\u001b[0m │ \u001b[38;5;15m\u001b[48;5;32m 4 \u001b[0m \u001b[38;5;15m\u001b[48;5;34m TCH0 \u001b[0m \u001b[38;5;15m\u001b[48;5;208m ADC2-0 \u001b[0m \u001b[38;5;15m\u001b[48;5;202m RTC10 \u001b[0m | |
\u001b[38;5;15m\u001b[48;5;200m SDA \u001b[0m \u001b[38;5;15m\u001b[48;5;32m 21 \u001b[0m │ \u001b[38;5;220m⌾\u001b[0m \u001b[38;5;220m⌾\u001b[0m │ \u001b[38;5;15m\u001b[48;5;32m 14 \u001b[0m \u001b[38;5;15m\u001b[48;5;34m TCH6 \u001b[0m \u001b[38;5;15m\u001b[48;5;208m ADC2-6 \u001b[0m \u001b[38;5;15m\u001b[48;5;202m RTC16 \u001b[0m | |
\u001b[38;5;15m\u001b[48;5;202m RTC9 \u001b[0m \u001b[38;5;15m\u001b[48;5;208m ADC1-4 \u001b[0m \u001b[38;5;15m\u001b[48;5;34m TCH9 \u001b[0m \u001b[38;5;15m\u001b[48;5;32m 32 \u001b[0m │ \u001b[38;5;220m⌾\u001b[0m \u001b[38;5;220m⌾\u001b[0m │ \u001b[38;5;15m\u001b[48;5;32m 15 \u001b[0m \u001b[38;5;15m\u001b[48;5;34m TCH3 \u001b[0m \u001b[38;5;15m\u001b[48;5;208m ADC2-3 \u001b[0m \u001b[38;5;15m\u001b[48;5;202m RTC13 \u001b[0m | |
\u001b[38;5;15m\u001b[48;5;202m RTC9 \u001b[0m \u001b[38;5;15m\u001b[48;5;208m ADC1-4 \u001b[0m \u001b[38;5;15m\u001b[48;5;34m TCH9 \u001b[0m \u001b[38;5;15m\u001b[48;5;32m 33 \u001b[0m │ \u001b[38;5;220m⌾\u001b[0m \u001b[38;5;220m⌾\u001b[0m │ \u001b[38;5;15m\u001b[48;5;32m 27 \u001b[0m \u001b[38;5;15m\u001b[48;5;34m TCH7 \u001b[0m \u001b[38;5;15m\u001b[48;5;208m ADC2-7 \u001b[0m \u001b[38;5;15m\u001b[48;5;202m RTC17 \u001b[0m | |
\u001b[38;5;15m↺\u001b[0m │ \u001b[38;5;220m⌾\u001b[0m \u001b[38;5;220m⌾\u001b[0m │ \u001b[38;5;15m\u001b[48;5;32m 26 \u001b[0m \u001b[38;5;15m\u001b[48;5;126m DAC2 \u001b[0m \u001b[38;5;15m\u001b[48;5;208m ADC2-9 \u001b[0m \u001b[38;5;15m\u001b[48;5;202m RTC7 \u001b[0m | |
\u001b[38;5;15m⏚\u001b[0m │ \u001b[38;5;220m▣\u001b[0m \u001b[38;5;220m⌾\u001b[0m │ \u001b[38;5;15m\u001b[48;5;32m 25 \u001b[0m \u001b[38;5;15m\u001b[48;5;126m DAC1 \u001b[0m \u001b[38;5;15m\u001b[48;5;208m ADC2-8 \u001b[0m \u001b[38;5;15m\u001b[48;5;202m RTC6 \u001b[0m | |
│ \u001b[38;5;15m↺\u001b[0m \u001b[38;5;5m▩\u001b[0m │ | |
╰────────────╯ | |
\u001b[1mTinyPICO\u001b[0m | |
""" | |
def add_colour(pinout_str): | |
symbol_colours = { | |
"⌾": (220, None), # Pin | |
"▣": (220, None), # Ground pin | |
"↺": (15, None), # Reset | |
"⏚": (15, None), # Ground symbol | |
"▩": (5, None) # LED | |
} | |
for s in symbol_colours.items(): | |
symbol = s[0] | |
colours = s[1] | |
replace_str = "" | |
if fore := colours[0]: | |
replace_str += "\u001b[38;5;" + str(fore) + "m" | |
if back := colours[1]: | |
replace_str += "\u001b[48;5;" + str(back) + "m" | |
pinout_str = pinout_str.replace(symbol, replace_str + symbol + "\u001b[0m") | |
return pinout_str | |
def replace_tags(pinout_str): | |
tag_colours = { | |
"BAT": (15, 1), | |
"5V": (15, 1), | |
"3V3": (15, 1), | |
"MO": (15, 198), | |
"MI": (15, 198), | |
"SCK": (15, 198), | |
"SS": (15, 198), | |
"SCL": (15, 200), | |
"SDA": (15, 200), | |
"TCH": (15, 34), | |
"ADC": (15, 208), | |
"RTC": (15, 202), | |
"DAC": (15, 126) | |
} | |
for tag, colour in tag_colours.items(): | |
replace = "" | |
if colour[0]: | |
replace += "\u001b[38;5;" + str(colour[0]) + "m" | |
if colour[1]: | |
replace += u"\u001b[48;5;" + str(colour[1]) + "m" | |
replace += r"\1" | |
replace += u"\u001b[0m" if colour[0] or colour[1] else "" | |
pinout_str = re.sub(f"(\[{tag}[^\s]?\])", replace, pinout_str) | |
return pinout_str | |
def replace_gpio(pinout_str): | |
gpio_colours = (15, 32) | |
replace = "" | |
if gpio_colours[0]: | |
replace += "\u001b[38;5;" + str(gpio_colours[0]) + "m" | |
if gpio_colours[1]: | |
replace += u"\u001b[48;5;" + str(gpio_colours[1]) + "m" | |
replace += r"\1" | |
replace += u"\u001b[0m" if gpio_colours[0] or gpio_colours[1] else "" | |
return re.sub("(\[[\s*\d]+\])", replace, pinout_str) | |
tp = replace_gpio(replace_tags(add_colour(tpp))) | |
tp = tp.replace("\u001b[", "~") # Colours include a square bracket; temporarily change them! | |
tp = tp.replace("[", " ").replace("]", " ") | |
tp = tp.replace("~", "\u001b[") # Put them back | |
print(tp) | |
#print(tpp5) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The output:
