Wintertools is a set of Python utilities used by Winterbloom projects.
This is an incomplete list!
Tools for firmware development:
wintertools.buildgen
is a flexible set of utilities for writingconfigure.py
scripts for building with Ninja. Here's an example.wintertools.build_info
generates a C file containing information about the firmware's build context - git commit, date, compiler version, etc.wintertools.fw_size
analyzes the flash and RAM usage of a firmware build.
Tools for building hardware program & test scripts:
wintertools.circuitpython
provides basic interaction with devices running CircuitPython.wintertools.fw_fetch
can fetch the latestuf2-samdx1
bootloader and CircuitPython for a given board.wintertools.jlink
provides a simple high-level way of invoking the J-Link Commander.wintertools.keyboard
provides a means for listening to key input in terminal-based programs, useful for factory setup scripts that allow adjusting some value using the arrow keys.wintertools.multimeter
provides an interface to the Keithley DMM6500 precision multimeter.wintertools.oscilloscope
provides an interface to the Siglent SDS1104X-E oscilloscope.wintertools.sol
provides a means of controlling Sol via scripts to produce accurate voltage references during testing and calibration.
Other tools:
wintertools.fs
provides helpers for interacting with the filesystem, including finding external drives by name and copying over complex sets of files.wintertools.git
gives some basic interaction withgit
.wintertools.midi
provides a high-levelMIDIDevice
class for interacting with Winterbloom's devices over MIDI SysEx.wintertools.teeth
implements an 8-bit to 7-bit binary encoding scheme.wintertools.tui
provides helpers for creating terminal-based programs.
While I don't really expect anyone outside of Winterbloom to use these, by all means, contributions are welcome. File an issue or reach out to us before you write code, so we can make sure it's something that'll be beneficial for all of us. :)
Wintertools is published under the MIT License