wintertools icon indicating copy to clipboard operation
wintertools copied to clipboard

Python tools for managing and testing Winterbloom projects

Wintertools

Wintertools is a set of Python utilities used by Winterbloom projects.

What's in here?

This is an incomplete list!

Tools for firmware development:

  • wintertools.buildgen is a flexible set of utilities for writing configure.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 latest uf2-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 with git.
  • wintertools.midi provides a high-level MIDIDevice 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.

Contributing

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. :)

License

Wintertools is published under the MIT License