Experience

Embedded systems / real-time firmware

UW Orbital

Firmware Developer to Waterloo, Ontario
UW Orbital team logo

From sensor register to scheduled telemetry.

I developed the path that moved LM75BD temperature readings through register-level I2C communication and into a FreeRTOS thermal and telemetry task. The work covered the driver, task timing, interrupt handling, and tests around the implementation.

How the reading moved.

  1. 01 Sensor LM75BD

    Temperature register

  2. 02 Interface I2C driver

    Read, convert, handle errors

  3. 03 Runtime FreeRTOS

    Queue and periodic schedule

  4. 04 Verification CMake + CTest

    Unit and integration tests

What I built.

  1. 01

    Register-level I2C

    Developed the LM75BD sensor driver in C, including register communication, temperature conversion logic, and error handling at the device interface.

  2. 02

    Scheduled thermal data

    Implemented a FreeRTOS thermal and telemetry task using queues and periodic scheduling so sensor reads ran on a predictable cadence.

  3. 03

    Short interrupt paths

    Deferred work through queues to keep interrupt handlers small and move the remaining processing into the task context.

Tests were part of the implementation.

I validated the firmware with unit and integration tests, then debugged the failures and edge cases exposed by those runs.

Source View firmware implementation

C / FreeRTOS / I2C / CMake / CTest