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.
Collaborated with other companies to iteratively fine-tune prototypes, refining features toward the final product vision.
Provided real-time remote support to diagnose and resolve issues during deployment.
Found creative, practical solutions to overcome technical constraints of the products.
2022 - 2025Gained 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.
