![](https://brychanthomas.home.blog/wp-content/uploads/2019/10/pexels-photo-2194062.jpeg?w=750)
Brychan Thomas’ projects
Hi! My name’s Brychan and this is my blog for summarising some of my personal projects. I do projects across a variety of (computer-related) fields such as:
- Artificial intelligence
- Internet of Things
- General programming
- Electronics
I hope you enjoy!
Personal blog
This is my portfolio site to summarise my projects, but I also write a blog with how-to guides explaining some of these projects in more detail. If you’re interested you can see it here: micropi.wordpress.com/
Most recent projects
- Repairing a Commodore 64A few months ago my aunt gave me her old Commodore 64 that had been sitting in the attic for over 30 years. It was covered with a layer of dust and grime which needed a lot of toilet paper to remove. I wasn’t able to try and get it working at the time becauseContinue reading “Repairing a Commodore 64”
- Creating an online bird identification quizOver the past couple of days I’ve been working on an online quiz that tests your ability to recognise birds by showing pictures or playing recordings. I created it with TypeScript and it uses the iNaturalist API to get the images and sound files. You can try it out on GitHub pages here, and theContinue reading “Creating an online bird identification quiz”
- Repairing an 80s micro cassette recorderThis holiday, between revising for the mock exams, I’ve found time to get a micro cassette recorder that used to belong to my great grandfather working. I think it’s a model from the 80s, but I haven’t been able to find an exact date. I was able to get it working by attaching 4.5v acrossContinue reading “Repairing an 80s micro cassette recorder”
- Creating a multiplayer game with TypeScript, Java and WebSocketsBack at the end of 2020 I created a multiplayer game using the Phaser game engine. Players connect to a Java Tomcat server using WebSockets to communicate. To start you have to join a lobby. The host (first person to join the lobby) can control parameters such as movement speed, vision radius and round length.Continue reading “Creating a multiplayer game with TypeScript, Java and WebSockets”
- Upgrading the air quality monitorWhen I originally built the air quality monitor for my school I used the Things Network, a public LoRaWAN radio network for low power devices to send data to the internet. This year a new version of the back end came out, called The Things Stack (aka V3). As a result, they are shutting downContinue reading “Upgrading the air quality monitor”
- Cyberfirst AdvancedThis year I was able to get onto the Cyberfirst Advanced residential course. It was held in Warwick after the Cardiff event was cancelled. I met some interesting people and learned some new skills. The course was divided between lecture time, where the two educators taught us content, and lab time, where we got toContinue reading “Cyberfirst Advanced”
- Creating another TTN Mapper node with a Heltec LoRa32 v2For my Gold DofE practice expedition I used the school’s Things Uno board to make a Things Network node that transmits its GPS coordinates. These GPS coordinates can then be received by gateways, and from there they are used to map the coverage of the Things Network, a free-to-use radio network designed for low powerContinue reading “Creating another TTN Mapper node with a Heltec LoRa32 v2”
- CanSat competitionOver the past seven or so months I have been working in a team of four taking part in the CanSat competition. The goal of the competition is to build a simulation of a satellite within the volume of a soft drinks can. The device is then launched in a small rocket and descends withContinue reading “CanSat competition”
- Creating a TTN Mapper GPS node with the Things UnoRecently I went on a DofE expedition in the Brecon Beacons. I wanted to try mapping any LoRaWAN coverage while I was there using TTN Mapper, but we weren’t allowed our phones so I couldn’t use the app. However, TTN Mapper also allows you to use nodes that broadcast their GPS coordinates, thus removing theContinue reading “Creating a TTN Mapper GPS node with the Things Uno”
- Using object oriented programming in C++ to create an ESP8266 breakout gameRecently I’ve been making a breakout game for an ESP8266 module that has a 64×128 OLED display and a 4-way joystick: Up until now I’ve avoided using any object oriented programming with Arduino. However, I wanted to have a go at it, and this seemed like a good project to start. You can see theContinue reading “Using object oriented programming in C++ to create an ESP8266 breakout game”
- Experimenting with programming an Arduino using AVR assemblyRecently we have been taught the imaginary assembly language used by AQA as part of A level computer science in school. I found these lessons very interesting, and I wanted to try using a real assembly language. I decided to try the AVR assembly language used by Atmel chips (such as those found in Arduinos)Continue reading “Experimenting with programming an Arduino using AVR assembly”
- The Things CertificationIn this year’s Things Conference, the ‘Things Certification‘ was launched. It is designed to test your knowledge around the LoRaWAN specification, configuration and implementation. Currently there are four certificates available, and you have to do a 30-minute multiple choice test for each. Usually they cost €99 each, but they are free until the first ofContinue reading “The Things Certification”
- Matrix Challenge FinalOn Saturday I took part in the virtual grand final of the Matrix challenge, a UK-wide competition run by the Yorkshire and Humber Regional Cyber Crime Unit for 11-17 year olds. The competition consisted of a series of capture-the-flag style challenges. Each was a cybersecurity-related puzzle ranging from cracking hashes using rainbow tables to figuringContinue reading “Matrix Challenge Final”
- CST Virtual HackathonThis week I participated in the Cardiff School of Technologies’ virtual hackathon. We were given two modules on the EC Council’s Learn on Demand platform to complete in the shortest time possible, ‘Hacking Wireless Networks’ and ‘Hacking Mobile Platforms’. The modules involved following a series of instructions over remote access to several virtual machines fromContinue reading “CST Virtual Hackathon”
- Creating a simulator for Malkus waterwheels with JavaOver the weekend I used Java to create a simulator to demonstrate Malkus waterwheels, which is something I found out about while reading about chaos theory on Wikipedia. The Malkus waterwheel is a special type of waterwheel that exhibits chaotic behaviour. This means that a small change in initial conditions can lead to very differentContinue reading “Creating a simulator for Malkus waterwheels with Java”
- JavaScript crafting gameDuring the lockdown I created a game with my friend Ronan. He made the graphics and I programmed it using the Phaser game engine. In the game you are a space man whose spaceship has crashed into our school. The objective is to look around the school to find items and combine them together untilContinue reading “JavaScript crafting game”
- Designing and building an air quality monitorAround a year ago the headmistress of the school asked if it would be possible to build a device capable of monitoring the air quality around the school in real time. The computer science teacher directed her to me and I was asked to do some research and put together a shopping list of theContinue reading “Designing and building an air quality monitor”
- From Nand to Tetris: Build a Modern Computer from First Principles online courseYesterday I completed part 1 of the “Nand to Tetris” course by Shimon Schocken and Noam Nisan on Coursera. I finished all the videos and the first 5 projects during lockdown but I delayed the final project because I wanted to try and learn the basics of Java to have another language to play with.Continue reading “From Nand to Tetris: Build a Modern Computer from First Principles online course”
- Creating a Discord bot with Node.js and ElectronRecently I created a basic Discord bot for the school’s computing club group using the Discord.js library for Node.js. At the moment it has basic functionality such as replying to mentions with random messages, making “I’m dad” jokes and welcoming new members. After I created the bot I thought it would be interesting to tryContinue reading “Creating a Discord bot with Node.js and Electron”
- Simulating a basic 8-bit computerRecently I’ve been watching some of Ben Eater’s videos on Youtube about building a computer following the SAP-1 architecture. To practice using TypeScript I decided to try and create a simulator. I wanted to be able to see what was going on, so I used p5.js to create a graphical interface showing the state ofContinue reading “Simulating a basic 8-bit computer”
- Creating a game and making a genetic algorithm to play itRecently I’ve been using the Phaser JavaScript game framework to create a game with a friend. I thought that it would be interesting to use what I’ve learned to create a basic game that a genetic algorithm can play. I ended up with a simple game where the player has to jump over rocks floatingContinue reading “Creating a game and making a genetic algorithm to play it”
- Andrew Ng’s Machine Learning CourseI recently finished the free online machine learning course by Stanford University professor Andrew Ng on coursera. It gives a grounding of the core concepts of machine learning such as cost functions and gradient descent and explores how different supervised and unsupervised learning algorithms such as linear regression, neural networks, support vector machines and K-meansContinue reading “Andrew Ng’s Machine Learning Course”
- Simulating a 555 timer in JavaScript with p5.jsThe 555 timer is the most popular integrated circuit ever produced – in 2003 it was estimated that a billion units are manufactured every year. It is used for many applications involving oscillating, pulse generation and timing. Recently I was set the challenge of simulating a 555 timer circuit using JavaScript. this is what IContinue reading “Simulating a 555 timer in JavaScript with p5.js”
- CyberStart EssentialsFor the past month or two I have been completing the 48 modules of CyberStart Essentials, part of the government’s free online extracurricular cyber security programme. Each module was made up of several sub-topics and a half hour test. They covered things such as networking, computer hardware, Windows, Linux, exploitation, forensics and much more. IContinue reading “CyberStart Essentials”
- Repairing a HP 54502A oscilloscopeMy Physics teacher recently acquired some old electronics equipment from a company that was throwing them out, and said that I could have some. I ended up with a Hewlett-Packard digitising oscilloscope from the early 90s. The display turned out to be broken, but before taking it apart I wondered whether I could fix itContinue reading “Repairing a HP 54502A oscilloscope”
- Using JavaScript to create Lewis structuresRecently I watched the Crash Course Chemistry video about Lewis structures, and I thought it would be a fun project to try and create a way of displaying these diagrams using the p5.js graphics library. You can see the finished product here: https://brychanthomas.github.io/lewis/ . It only works on a desktop computer rather than a mobileContinue reading “Using JavaScript to create Lewis structures”
- Creating a JavaScript gravity simulator using p5.jsRecently I came across p5.js, a JavaScript library that specialises in graphics. It’s designed to be easy to use, so I thought it would be a good way to develop my JavaScript skills. You can see the online in-browser version here: https://brychanthomas.github.io/gravity/. You can click on the canvas to add an object in a specificContinue reading “Creating a JavaScript gravity simulator using p5.js”
- Hacking a Bigtrak with an ArduinoThe Bigtrak was a programmable electric six-wheeled robot popular in the 80s. It used a keypad on top to allow the user to enter instructions, which it would then carry out sequentially. In 2010 it was relaunched. I had one of these lying around from years ago as well as a spare Arduino Mega soContinue reading “Hacking a Bigtrak with an Arduino”
- Using a neural network to predict future CO2 levelsI’ve recently been experimenting with Keras neural networks for basic example problems and I’ve been wanting to try and apply one to real-life data. While exploring I came across the NOAA’s data about carbon dioxide concentrations. They have been measuring the CO2 concentration in Mauna Loa, Hawaii regularly since 1958. As well as this theyContinue reading “Using a neural network to predict future CO2 levels”