Luc Heaton
Programmer
Hi, I'm a programmer of many things.
From the firmware of embedded chips to desktop/mobile applications
or websites (like this one).
During my further education I studied:
Computer Science
Physics
Digital Illustration
The languages I use:
C
C#
HTML & CSS
English / Un peu de français
Various embedded devices I work with:
ESP32
STM32
ATtiny
Some communication interfaces I use:
SPI
I2C
UART
.experience
I learn from the projects that I work on everyday, which are nearly all listed here
Although I have or continue to work for:
Engineering efficient firmware to control microcontrollers such as the ESP32 and ATtiny.
Successfully integrated a six-axis motion tracking device through I2C communication, enhancing product functionality.
Created a Windows application featuring a simple GUI for transmitting specified configurations of RS232 data to a product over USB. Streamlining the product evaluation stage for the Quality Assurance team.
Developed a module that is now packaged with Companion, that extends a product's capabilities.
Designing and handling the GUIs of product displays that employ serial communication.
Engaging in daily discussions on product features and ideas, demonstrating adaptability to design changes to fulfil customer requirements.
2019 - PresentGained a new perspective of troubleshooting electronic devices through working alongside the support team.
Retained valuable technical knowledge, improving my ability to diagnose software and hardware faults with computers and 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.
I built the MasterCueV7
module, which after pairing with, 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 Javascript 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
I 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 A-Level 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
I 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
I built myself 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
I developed another 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
I built 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.