Michael Fogleman

Projects AboutResumeMoreShop!

Projects tagged "hardware"

This page highlights several of my personal software projects.

Table of Contents

AxiDraw January 2017

249 Python Vector Hardware

Unofficial Python library for working with the AxiDraw pen plotter.

The AxiDraw is a very nice modern pen plotter. It ships with Inkscape-based software for controlling it, but I was more interested in programmatically controlling it myself. So I wrote this library that controls the plotter directly over the USB serial port.

The most interesting part of this project, for me, was writing my own motion planning algorithm. I stuck with constant-acceleration for simplicity, and the code for the planner came out to just a couple hundred lines of Python!

See the motion planning algorithm in action in this web-based visualization.


  • control the AxiDraw directly from Python with a simple API
  • convenient command-line utility
  • constant acceleration (trapezoidal velocity) motion planning
  • path drawing order optimization
  • drawing transformations
  • preview drawing (render to png)
  • turtle graphics
  • lindenmayer systems

GPS September 2014

62 Python OpenGL 3D Hardware

Real-time 3D visualization of actual GPS satellite locations.

This code interfaces with a USB GPS receiver and produces a 3D visualization of GPS satellite positions for all of the satellites that are currently in view.