Luc Heaton
Software Engineer
Hi, I mostly develop firmware for embedded devices.
I also build desktop and mobile applications,
as well as websites, and the odd game.
During my further education I studied:
Computer Science
Physics
Digital Illustration
The languages I use:
C/C++
C#
English / Français (un peu)
.experience
I learn through the projects I work on daily — most of which are listed here
Although I've done freelance, remote, and on-site work for:
Expanded my technical expertise by independently developing a custom USB interface for the STM32,
simplifying firmware updates via my dedicated Windows application.
Integrated a six-axis motion tracking sensor via I2C with the ESP32,
enhancing product functionality.
Created an intuitive interface to transmit specified configurations of RS232 serial data to a product.
Streamlining the product evaluation stage for the Quality Assurance team.
Developed multiple Companion modules, including the interspace-mastercuev7 module
extending product capabilities.
Designing and handling graphical interfaces for product displays that employ serial communication.
Engaging in daily discussions on product features and ideas,
demonstrating adaptability to design changes to fulfil customer requirements.
Gained a new perspective of troubleshooting electronic devices from working alongside the support team.
Retained valuable technical knowledge to diagnose software and hardware faults of computers and select portable devices.
Interaction at the front desk with new or returning customers, taking notes of issues, and offering feedback.
Acquired a great insight into web development through discussions with other employees.
2017 - 2018.portfolio
Some projects I'd like to give attention to:

Featured Project
MasterCueV7 Companion Module
I built a module for the Companion,
a software platform designed to manage and control various software/hardware
applications within the realm of live production, broadcasting, and other audio-visual
setups. Through input devices such as the Stream Deck, users can perform complex actions
with a simple button press without the need to be nearby.
The MasterCueV7
module, allows users to send and receive Cues, and set, suspend,
or resume outputs, all through HTTP requests and JSON parsing.
My MasterCueV7 module can be found and added to your device by searching in the
Companion Connections list of the Companion web interface, or on its Github page
NodeJS Companion 20/06/2023

Featured Project
RS232 Display Tester
I developed a Windows application featuring an intuitive GUI to transmit specified
configurations of segment display data to drive Interspace Industries's (Big) Countdown
displays over USB. Giving the user control of the three colours and 4x8 segments, plus the colon.
Originally I planned to build an embedded version that would shift the serial data,
but because of the modified version of the RS232 protocol used, I instead built a
dedicated WinForms application, which now streamlines the product evaluation stage
for the Quality Assurance team.
C# WinForms 28/12/2022
Featured Project
Desktop VU Meter
Produced a working prototype of a desktop VU Meter with Winforms using NAudio.
Monitoring multiple devices (current limit of 5) simultaneously, scaling the program
window with each device added, with options to add / remove monitors, and refresh the
list of audio devices.
The source code can be found on Github
C# WinForms 11/05/2020

Featured Project
Text-based Scrabble
An ASCII recreation of the board game Scrabble I developed for my Computer Science
coursework.
Including: Premium scoring cells, Horizontal and vertical placement,
Blank tiles, Dictionary validation and checking surrounding tiles during placement,
Multi-word scoring, and more.
You can read my documentation of the project on Github
Python 16/12/2018
Other projects
TLC59281 Library
Built a C++ library to interface serially with the TLC59281 LED driver to
control four seven-segment displays. This involved building 32-bit payloads
that specify which segments to illuminate, the colour of the LEDs,
and the symbol bits. As well as the transfer method requiring the correct timing
to send data to the driver chip
Allowing others to interface with this display without needing to understand
the payload structure. Also extending the functionality of the library with
various helper methods for more control.
C/C++ 15/04/2021
Gyroscope Air Mouse
Built a C++ library to package the interface with a six-axis motion sensor. After configuration, and fine-tuning of resolution bits for each output (of which it has three accelerometer outputs and three gyroscope outputs), I can read the I2C data using an Arduino Micro (HID compatible). Translating the data into relative coordinate positions to control the mouse of a connected computer
C/C++ 05/05/2022
Power Regulator
Developed a performance-efficient realtime power analyzer with the
AVR tiny series.
Built to indicate an OK status so long as the sampled voltage level is
within an acceptable range. Otherwise, power cycling - However, if this
occurs too frequently, we enter a lockdown state, whereby the power to the
device is disconnected, and a manual reset is required. With my knowledge
of AVR registers, I was able to gather and monitor the 10-bit resolution
analogue input by combining the values of two separate registers.
C/C++ 17/09/2021
AutoTagger
Created a Python script that fixes the ID3 metadata on audio files so they
are organized correctly by media players. As I frequently find the tags
have slight differences, such as capitalization, which will break generated artist albums.
It works on audio files within a local directory, by validating the stored
artist(s) names against an ever-growing dictionary file of artists, which
is then applied to the ID3 tags along with the song name.