Campus Compass is a project - and entrepreneurial venture - aimed at converting radio signals from devices into real-time occupancy statistics for study spots on campus. This real-time data is provided to users in the form of an app; in your hand like a compass! On top of advertising revenue, the campus usage data will be sold to the universities - who have already shown interest in it. This has been an extremely fun project where I have learned a tonne by doing: data engineering, data analysis, cloud infrastructure engineering, embedded system engineering, telecommunications protocols, app development, management, busyness strategy, and much more.
Using nothing but logic gates, I implemented a fully functional Hi-RISC processor. This Highly-Reduced-Instruction-Set-Computer was coded in HDL and compiled onto an FPGA. This gave me a thorough understanding of how processors function at a microarchitecture-instruction level. Uncovering the mysteries of these shinny chips
The beauty of Computer Systems Engineering # The Computer Systems Engineering degree I am enrolled on satisfies my thirst of curiosity by falling and rising through levels of computational abstraction like a man bungee jumping.
The zeroG PHY communications protocol allows for cheap, asynchronous low-power, communications across microprocessors which don’t have wireless modules. I implemented during my seconds university year using skills obtained from signal processing, microprocessors, and communications principles modules.
Find the code here
ZeroG started when I grew frustrated that my Arduino microcontrollers could not send the data they were collecting to the cloud. This meant that if I implemented some cool sensors in my house using Arduinos, I could only access this data by being right next to them.
I wanted to see if I could get a neural network to learn to fly a drone. To save money, I decided to test this in a simulation first. I had always wanted to implement a physics engine. Implementing Newtonian motion and collisions was quite straight forward; however, when implementing the torque and rotation calculations for the physics engine I discovered “quaternions” - which are far less straight forward…
I implemented a physics engine in python, in an object oriented style.
As part of university coursework I developed software which simulates cascaded electrical circuits over a period of time. The software parses a CSV file with component definitions and connections, constructing a model of the circuit using graph theory principles. This model is then systematically turned into a series of equations which govern it’s behavior. Simulations are run based on these equations and some parameters entered into the program. The result is saved - tables and graphs.