Matt Morrison

Cass Logger

A general purpose data logger

The Cass Logger is a built-from-scratch data acquisition system that I made for my consulting company, Cass Labs. The goal of this project was to make a highly capable, highly customizable data logging system for engineering research and development. I mainly use it with clients in the bike industry, instrumenting road and mountain bikes (analog and electric) for in-field testing. I also use it as a general purpose logger for all my data acquisition needs.

Image 1
The Cass Logger ready for action
Image 1
Another glamor shot

The system is built around the Teensy 4.1. It has 18 channels (which can be configured to be analog, digital, I2C, SPI, and CAN), a built-in 9 DoF IMU, an RTC (for global time management even when the device is powered off, helpful for syncing with external devices like Garmins and GoPros), and an integrated charging circuit. I designed the PCB from the ground up and also programmed the firmware from scratch (in C++). The logger can hit sampling frequencies above 5 kHz with the IMU disabled, and 2 kHz with it enabled. I typically run 500 Hz to be mindful of data storage costs.

Image 1
The PCB
Image 1
Fully instrumented bike with logger, f/r potentiometers, f/r wheel speed, and feedback button

On top of the logger, I’ve developed a suite of custom sensors (potentiometers, accelerometers, feedback buttons, infrared receivers, wheel speed sensors, quadrature encoders, and more) for various applications. The nice thing about the logger is I can design application-specific sensors super quickly that easily integrate with the system.

Image 1
Shock potentiometer close up

In terms of software, I’ve developed a CLI for extremely fast data transfer and an extensive python library for data ingestion and analysis. I developed a database architecture leveraging MondoDB and Cloudflare R2 services in order to store field test datasets over time for long-term comparison and trend analysis. With this entire ecosystem, I have solved the perpetual issue plaguing the bike industry of field test data becoming obsolete after mere days of testing due to improper metadata and data documentation, storage, and formatting.

Image 1
The Cass Database schema, I use R2 now instead of S3, which is free and still uses Boto3