Wintertools is a set of Python utilities used by Winterbloom projects.
This is an incomplete list!
Tools for firmware development:
wintertools.buildgenis a flexible set of utilities for writingconfigure.pyscripts for building with Ninja. Here's an example.wintertools.build_infogenerates a C file containing information about the firmware's build context - git commit, date, compiler version, etc.wintertools.fw_sizeanalyzes the flash and RAM usage of a firmware build.
Tools for building hardware program & test scripts:
wintertools.circuitpythonprovides basic interaction with devices running CircuitPython.wintertools.fw_fetchcan fetch the latestuf2-samdx1bootloader and CircuitPython for a given board.wintertools.jlinkprovides a simple high-level way of invoking the J-Link Commander.wintertools.keyboardprovides 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.multimeterprovides an interface to the Keithley DMM6500 precision multimeter.wintertools.oscilloscopeprovides an interface to the Siglent SDS1104X-E oscilloscope.wintertools.solprovides a means of controlling Sol via scripts to produce accurate voltage references during testing and calibration.
Other tools:
wintertools.fsprovides helpers for interacting with the filesystem, including finding external drives by name and copying over complex sets of files.wintertools.gitgives some basic interaction withgit.wintertools.midiprovides a high-levelMIDIDeviceclass for interacting with Winterbloom's devices over MIDI SysEx.wintertools.teethimplements an 8-bit to 7-bit binary encoding scheme.wintertools.tuiprovides 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