Projects Ross Glashan

Kip Biped (SW, HW, C, Python, ARM, Robot, 3d-printing) 2021 —

A (work in progress) small, low-cost, 6-DOF, dynamically-stable biped. The primary goal (besides learning), is for the robot to be buildable using only off-the-shelf parts and a hobbyist 3D printer. Drone brushless motors with 9:1 belt reducers, Raspberry Pi, and CAN-FD bus for internal comms.

Wuffle 2 (SW, HW, C, Erlang, ARM, Robot, 3D-printing) 2020 —

A small (60mm tall) two-wheeled balancing robot based around an STM32H7, running a custom Erlang-like language.

STM32 Game Console (SW, HW, C, ARM, SDL, 3D-printing) 2019 —

The STM32 Game Console is a GBA-like retro console built around an STM32F7. The hardware includes a 160x120px LCD, 10 buttons, speaker and SD for game storage. It also includes a small 2D game engine written in C. The game engine runs on PCs as well as the STM32 to simplify development. I worked on a couple of game jam games (indiviually and with friends) for the console.

Brushless DC Motor Test Platform (SW, HW, C, ARM, Julia) 2017 — 2019

A series of smaller projects to explore BLDC motor control, quadcopter motors, magnetic encoders, Ethercat, and Julia with the eventual goal of a low cost real-time motion control platform for robot experiments.

Quadbot (SW, HW, C, Python, Logo) 2017 — 2018

The Quadbot is a cheap 8 degree of freedom quadruped walker. Built around an STM32F042 and HXT900 micro servos, it includes a bytecode based Logo-esque language with REPL via USB.

Razen (SW, Python) 2012 — 2016

Razen is a collaborative, scriptable schematic and PCB layout tool. The schematic and layout editor is backed by a JSON and Mercurial file store, providing a version-controlled design (with a visual-diff tool to show changes). All functionality is scriptable via a Python API, from simple scripted part generation to implementing entirely new design tools.

Awesomebus (HW, SW, C, Ethernet, XMOS, ARM) 2011 — 2014

Awesomebus is a high-speed (100Mbit), low-latency (1KHz cycle time with ~5us per-node delay) network for robot actuator control. Awesomebus uses the Ethernet physical/link layer with a custom XMOS-based MAC for on-the-fly packet processing. An ARM microcontroller (programmed in Pindakaas) handles the IO (motor and encoder interfacing).

Erwt / Noot (HW, SW, C, Forth, AVR, ARM, Robot) 2011 — 2013

The Erwt and Noot are two small (75mm across) hobby robots based around the same phsyical layout and motor / wheel combo. The Erwt is a mostly through-hole design (for construction as a kit) with an AVR running a Forth. The Noot is a full SMT design with an STM32 microntroller running Pindakaas. I'm keeping notes of the design process.

Pindakaas (SW, ARM, Python, ASM) 2011 — 2012

Pindakaas is a modern language for small embedded devices. It is type-inferred, garbage collected, and compiles to ARMv7-M. The Pindakaas prompt communicates with the target via JTAG allowing interactive development and debugging.

Foxtalk (SW, ARM, AVR, Python, C, Smalltalk) 2009 — 2011

Foxtalk is a Smalltalk implementation for the Foxbot robots. The environment runs on Mac/Windows/Linux and provides a virtual robot that simulates most of the functionality of the real hardware. The base libraries include basic motion control, shape drawing primitives, and a 2-channel music synthesizer.

Foxbots (HW, Robot, ARM) 2008 — 2011

The Foxbot is a small, cheap educational robot designed to be programmed in Foxtalk. The robot is built around a single PCB frame with an ARM microcontroller and includes 2 encodered wheels, 2 IR bump sensors, 3 line-following sensors and a beeper. A stackable expansion bus carries I2C and SPI signals to "Expansion Hats" which provide further functionality.

Happyboard (HW, AVR, FPGA, C) 2005 — 2007

The Happyboard is a robot controller board developed for the MIT 6.270 LEGO robot competition. An Atmel AVR runs user code (C), and a Xilinx FPGA is used to offload IO-handling, driving 6 DC motors, 6 RC servos, 28 analog/digital IOs, and an 2.4Ghz RF interface.