OAT Lab (Olin Assistive Technology), Olin College of Engineering, Needham, MA
Low-cost e-braille learning device, not a plain e-reader: it teaches braille as well as displaying it. Commercial braille displays run into the thousands of dollars, which prices out most of the people who need them. Repos, all public: github.com/Olin-Assistive-Tech-Lab/e-braille-learning-device, plus the -firmware, -software, -hardware and -ui repos beside it
- Lead the firmware and software team across storage, speech-to-braille conversion, cell actuation, haptics, and power
- Target hardware is an ESP32-S3, with the board built around it
- Building a PCB main board from scratch for the device
- Writing C++ firmware that converts Braille Ready Format (
.brf) files into actuated braille cells, across a planned 8 jumbo cells - Storage, two tiers. Specifying and building an internal and an external SD card that hold different things: how each is addressed and how the two differ, the on-card file structure, the lesson data format and its metadata, how lessons move from external to internal storage, and how to read the speech model off the internal card instead of holding all of it in flash
- Speech to braille. Helping lead the speech-to-text path that drives braille output. Currently evaluating quantized on-device STT models for the ESP32-S3
- Cell actuation. Leading part of the effort on a shift-register-style driver for an array of small electromagnet coils switched on and off. An energised coil repels a magnet fixed to a cam, and the cam pushes a single braille cell up
- Haptic feedback. Leading part of the team's work on it
- Power. Selecting a battery-management IC and charging over USB-C
- Wrote the concept firmware that proved the actuation method works: a bit-banged shift register driver over serial data, shift clock, register clock and output enable, latching once all bits are pushed, with the whole path running end to end from mounting the card and reading the
.brfthrough to pushing the cells - Migrated the codebase from C to C++, replacing
#definepin macros withconstexpr gpio_num_t, bare 1/0 levels with a typed enum, and the free functions with aShiftRegisterclass - Drew the shift register logic schematic and a logic board prototype in KiCad, through to fabrication-ready gerbers
- Lead the firmware subteam, four people last year and a new intake this year: set individual member goals and deadlines, run weekly subteam meetings and one-to-one check-ins, and prepare the team for periodic design reviews
- Run SMT soldering practice sessions for the subteam
- Teach the subteam the stack they need to contribute: C and C++, Git and GitHub, Linux basics, C on the ESP-IDF toolchain, hardware fundamentals, and communication protocols
- Part of the lab's leadership coordination team, working on succession planning, member recruitment, and onboarding structure for the following year
- Team conducted extensive user research with the Carroll Center for the Blind and Perkins School for the Blind, across two rounds of interviews, and the device's feature set came out of those rather than out of the team's own assumptions