Projects


   Please feel free to visit my GitHub page to view my full collection of repositories.

   Aviation GPS Error Plotter - From a GPS log, provides a visual Latitude/Longitude plot of an aircraft track. The plot will indicate portions of the flight where the Horizontal Dilution of Precision (HDOP) was high.
- Description: Using the provided GPS log, provide a visual Latitude/Longitude plot of the aircraft track. The NMEA message format used in the log is explained in this website: http://aprs.gids.nl/nmea/ The plot should indicate portions of the flight where the Horizontal Dilution of Precision (HDOP) was high. For example, by using a red colour to indicate a DOP greater than 2.0.
- What I Learned: This project has seen me refine my skills at using the Matplotlib Python package and has improved my skill at rendering images and plots using the Python coding language. It has also served as a refresher in geospatial navigation calculations.
GPS Track Large
GPS Track Small


   TIE Corps Tailoring Tool 3 - A 3D graphical rendering tool produced in Python to read PHP in from a website, parse the data into XML format and then dynamically launch POV-Ray to render a high-quality ray-traced jpeg image.
- Description: As a member of an online sci-fi video gaming club, members took on the alias of naval officers. A requirement of being a member included the creation of a uniform consisting of rank, position, squadron patch and medals. The club's existing tool was old, out of date and required maintenance. It was also compiled with no available source code. Using Python, Qt and POV-Ray I recreated the tool from scratch, implemented existing functionality and added enhanced features.
- What I Learned: I learned how to request and parse PHP returned web data. I enhanced my Qt skills and learned how to make attractive GUIs utilising CSS Stylesheets. I learned how to parse data into an XML format ready for 3D rendering. The software then interrogates a Windows operating system in order to find the version and location of POV-Ray , execute POV-Ray and extract a 3D ray-traced jpeg image.
TIE Corps Tailoring Tool 3 Landing Page.
TIE Corps Tailoring Tool 3 Options Page.
TIE Corps Tailoring Tool 3 Final Output Image.
TIE Corps Tailoring Tool 3 Dress Uniform Preview.
TIE Corps Tailoring Tool 3 Flight Helmet Preview.



   Aircraft Transponder Code Loader - Graphical Python application used in conjunction with Mil-Std 1910 and 1553 protocols to load data to an aircraft transponder.
- Description: Taking advantage of PBA.Pro bus analysis software, this program utilises Python and Qt to manipulate a 3910/1553 aircraft data bus to load data. The program will retrieve the current data on-board, perform analysis of the data to ensure it's correct, and if it's not, ask the user to load correct data after which a final data check is performed.
- What I Learned: In this project I learned how to manipulate aircraft data bus architecture to become a dynamic bus controller. I learned how to directly manipulate binary and hexadecimal data using Python as well as performing checksum calculations. I leard how to create and read data from a database.
Data To Be Loaded.
Data Retrieved


   Arduino Animator - A Python application to dynamically write C++ Arduino code to run an LED panel.
- Description: Supporting a friend's project, where they had constructed an Arduino powered RGB LED panel, they were then going on to manually writing the C++ code for over 100 individual RGB LEDs with the aid of hand drawn diagrams. I used my Python and QT programming knowledge to create a PyQT5 GUI driven Python application that would allow them to 'paint' their creations and then rapidly export the converted C++ code to Arduino.
- What I Learned: I further enhanced my PyQt skills by learning how to dynamically create GUI elements and then overload their signals and slots to grant me the control over the GUI that i required. I learned how to parse data into a C++ format ready for LED rendering.
Animator Program Demo.
Animator Program Demo Output.
Animator Program Animation Demo.



   PBA.Pro Python IDE Emulation - A Python wrapper module to allow Python scripting of bespoke PBA.Pro class objects in any IDE.
- Description: PBA.Pro is bespoke databus analysis software that features Python scripting. The software itself features a built in IDE but is extremely rudimentary and is similar to programming in notepad. To aid my team in being able to script for this software utilising any off the shelf Python IDE, I created this wrapper class to emulate all PBA.Pro script functionality and include features such as intellisense. This module allows users to run their PBA.Pro scripts within their IDE of choice allowing them to spot errors quickly and have full docstring intellisense. The module also features persistent object creation, meaning that an object can be created multiple times while maintaining its attributes.
- What I Learned: In this project I learned how to process and parse XML data into a Python runtime, persistently store information pending it’s request and make a valuable Python module.
PBA.Pro IDE Emulator.
PBA.Pro IDE Emulator.



   SkyShadow's Rapid Reporting Tool - Graphical Python application used for collecting information and generating reports for an online club.
- Description: A Python application featuring a Qt based GUI used to scrape and parse HTML data from a live website and produce concise reports about club members.
- What I Learned: In this project I learned more about applying CSS Stylesheets to a Qt GUI. I learned to read in and parse HTML using the 'urlllib', 'BeautifulSoup' and 'soupsieve' Python modules.
SkyShadow's Rapid Reporting Tool.



   Triple-X C++ Console Game - Part of Final Project Submission of Unreal Engine C++ Developer: Learn C++ and Make Video Games Course.
- Description: C++ Console based text game where you play the role of a hacker trying to break into a secret server with increasing difficulty.
- What I Learned: In this project I learned the programming fundamentals of writing pure C++ code.
Triple-X C++ Console Game.



   FPV Radio Controlled Plane - Uses Raspberry Pi, 2.4GHz radio and 5GHz video telemetry to create and automated 'First-Person View' radio controlled aircraft.