PrettyPins is designed to create lovely pinout diagrams.
The following is a list of required software and files necessary to run PrettyPins:
* A local clone of the PrettyPins repository
* The Fritzing object file for the board for which you are generating a diagram (available here)
* An SVG editor, such as InkScape (free and available for all major OS's) or Illustrator (not free, and not available for all major OS's)
* Python 3 installed on your machine
* A local clone of the CircuitPython repository (for boards that support CircuitPython)
* The latest Arduino core for the board-type you're working with installed on your machine (for boards that support Arduino)
* pip install
the following libraries (in a virtual environment or otherwise):
* click
* lxml
* svgutils
* svgwrite
* xmltodict
output.svg
and pinlabels.svg
files into your SVG editor.output.svg
file as something else, such as the name of the board you're diagramming.pinlabels.svg
into your working board file, and arrange them properly.Once you have an SVG, PDF and PNG, you need to upload them to the following locations, and link to them where indicated.
These are some examples of what the PrettyPins commandline command looks like, based on board chip type. More to be added soon!
ATMega328 does not support CircuitPython.
python3 parser.py "Adafruit Metro Mini.fzpz" None atmega328pins.csv -s "^IO([0-9])" "D\1"
ATtiny8x does not support CircuitPython.
python parser.py "Adafruit Trinket 3V.fzpz" None attiny8xpins.csv
RP2040 does not have official Arduino support (yet).
python3 parser.py "Adafruit Feather RP2040.fzpz" path/to/circuitpython/ports/raspberrypi/boards/adafruit_feather_rp2040/pins.c rp2040pins.csv
python3 parser.py "Adafruit ItsyBitsy RP2040.fzpz" path/to/circuitpython/ports/raspberrypi/boards/adafruit_itsybitsy_rp2040/pins.c rp2040pins.csv
python3 parser.py "Adafruit QT Py RP2040.fzpz" path/to/circuitpython/ports/raspberrypi/boards/adafruit_qtpy_rp2040/pins.c rp2040pins.csv
python3 parser.py "Adafruit Feather ESP32-S2.fzpz" path/to/circuitpython/ports/espressif/boards/adafruit_feather_esp32s2/pins.c esp32s2pins.csv
python3 parser.py "Adafruit Metro ESP32-S2.fzpz" path/to/circuitpython/ports/espressif/boards/adafruit_metro_esp32s2/pins.c esp32s2pins.csv -s "^D([0-9])" "IO\1"
python3 parser.py "Adafruit MagTag 2.9in.fzpz" path/to/circuitpython/ports/espressif/boards/adafruit_magtag_2.9_grayscale/pins.c esp32s2pins.csv -s "^D([0-9])" "IO\1"
python3 parser.py "Adafruit FunHouse.fzpz" path/to/circuitpython/ports/espressif/boards/adafruit_funhouse/pins.c esp32s2pins.csv -s "^D([0-9])" "IO\1"
python3 parser.py "Adafruit QT Py ESP32 Pico.fzpz" None -a ../../ArduinoSketches/hardware/espressif/esp32/variants/adafruit_qtpy_esp32 esp32pins.csv
python3 parser.py "Adafruit ESP32 Feather V2.fzpz" None -a ../../ArduinoSketches/hardware/espressif/esp32/variants/adafruit_feather_esp32_v2 esp32pins.csv
python3 parser.py "Adafruit HUZZAH32 ESP32 Feather.fzpz" None -a ../../ArduinoSketches/hardware/espressif/esp32/variants/feather_esp32 esp32pins.csv
python3 parser.py "Adafruit Feather nRF52840.fzpz" path/to/circuitpython/ports/nrf/boards/feather_nrf52840_express/pins.c nrf52840pins.csv -a ~/Library/Arduino15/packages/adafruit/hardware/nrf52/0.20.5/variants/feather_nrf52840_express
python3 parser.py "Adafruit ItsyBitsy nRF52840.fzpz" path/to/circuitpython/ports/nrf/boards/itsybitsy_nrf52840_express/pins.c nrf52840pins.csv -a ~/Library/Arduino15/packages/adafruit/hardware/nrf52/0.20.5/variants/itsybitsy_nrf52840_express
python3 parser.py "Adafruit nRF52840 CLUE.fzpz" path/to/circuitpython/ports/nrf/boards/clue_nrf52840_express/pins.c nrf52840pins.csv -a ~/Library/Arduino15/packages/adafruit/hardware/nrf52/0.20.5/variants/clue_nrf52840
python3 parser.py "Adafruit Feather M0 Express.fzpz" path/to/circuitpython/ports/atmel-samd/boards/feather_m0_express/pins.c samd21pins.csv -a ~/Library/Arduino15/packages/adafruit/hardware/samd/variants/feather_m0
Adding a draft iMX CSV with columns for ARMDEBUG and ADC1 for checking
The PA09 Sercom2 entry says it is Pad0, but it is actually pad 1. See https://forums.adafruit.com/viewtopic.php?t=198017 This apparently also causes the "pretty" pinout diagram to be wrong.