luc@lucheaton.com

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 - Present

Gained 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.

Python 09/07/2019

View all my projects