Jolon Behrent

Projects

IoT Environmental Monitoring - Honours Project

My honours project involved working with Benjamin Secker to develop an Internet of Things environmental monitoring solution for the Greater Wellington Regional Council. I was tasked with developing the hardware and the low-level software.

The project was large in scope but came close to being finished by the end of the 8-month time frame. The device was capable of reliably reading data from SDI-12 sensors then saving it to an SD card and sending it to a cloud backend. There's too much to write about in this little box, so if you want to read more about it, you can find the final report here.

This project was continued part-time after I had graduated. This involved making various upgrades to the electronics, including adding a USB-C port, interfacing for a new modem, and updating the rainfall monitoring system.

Raspberry Pi Pico-based Stenography Keyboard

Sometimes I see something that I think is cool and really want to try it out. Most recently, this was stenography. Unfortunately, proper stenography gear is expensive, and even the open-source ones cost upwards of $100. I wanted to develop my own stenography keyboard using a Rasbperry Pi Pico. The keyboard software and hardware was all developed and designed by me. It has been made to be compatible with Plover. This is the first project that I have printed a PCB for, but it won't be the last.

3D Christmas Tree Light Animations

Inspired by Matt Parker's Christmas tree project and the subsequent work done by Harvard students, I decided to make my own animated Christmas tree system, but with improvements to four main areas: 1) move from Raspberry Pi to ESP32 to dramatically reduce the cost, 2) add ability to convert an mp4 video to an animation for the tree, 3) reduce the animation file size by creating a custom, lightly-compressed format, and 4) creating a user interface for configuring the tree and controlling animations. This project is still a work in progress, which I hope to have done in time for Christmas.

3D Printer Monitor

Not long after getting a 3D printer, I ran a 6 hour print. It was going well to begin with, but as Murphy's law would have it: when I left house, it failed. Unfortunately, I was gone for a while, so a decent amount of filament was wasted. I vowed to never let that happen again, so I developed a simple email service that can run off a Raspberry Pi which takes a photo of the printer with a webcam when requested. I know things like this already exist (there are even baby monitors that can be accessed from anywhere), but I wanted something that could be implement without needing to use anything I didn't already own.

Secret Santa

Every Christmas, starting in 2020, my family has played secret santa rather than having buying a gift for everyone. I'm personally not a fan of how secret santa works, as it is entirely possible that you will draw your own name, which could mean that everyone needs to draw a new name. You also can't factor in special rules, such as not allowing two people to give gifts to each other. This project treats the people as nodes on a graph, finds every possible Hamiltonian cycle between them, and picks one cycle at random. It then sends an email to each player telling them who they are buying a gift for.

I updated the program in 2021 to allow someone to be removed from the game after the allocations had been made. This is done by storing base64 encoded player allocations which can be read by a script and will send an email to whomever has to give a gift to a different person.

I further updated the program in 2022 in response to slow calculation times with "large" groups of people (8 people takes about 20 minutes to calculate). I initially tried multithreading, but didn't get good results from that. Instead, I developed a function that finds a valid, random Hamiltonian cycle with a best-case complexity of Θ(n). The algorithm doesn't always find a valid combination (for sparse graphs), so has to retry a few times until it does. The new algorithm can solve graphs with 1000 people in a matter of seconds.

Home Security System

I've set up a security system for a family member in the past but found that it was finicky and was missing a lot of important features. The better security systems are more expensive and often involve a third-party. This open-source project is for an end-to-end IoT home security system that can send text/email notifications to approved users and allow them to view footage captured by WiFi-connected nodes throughout their house. Each node is a custom-made device built on an ESP32 with the ability to be powered by battery and from mains. This is currently a work in progress.

Vehicle Tracking System

After my friend had his car stolen and dumped in another city, I was inspired to develop an affordable car monitoring and tracking system. This project is currently a work in progress, but will involve a Raspberry Pi Pico connected to the Hologram network. When the system is powered on, it will send information to a private MQTT broker about the location of the car.

UART to SDI-12 Conversion

SDI-12 is a wired communication protocol used for low-powered, environmental sensors. Unfortunately, I was unable to find any open-source hardware implementation of this protocol, so I needed to create something myself. The circuit I designed allows for conversion between UART and SDI-12, which means almost any microcontroller can communicate with an SDI-12 sensor (with the proper software implementation).

LaTeX Cover Letter Template

For all my previous job applications, I had written my cover letters in Word. Since they were all styled in exactly the same way, I figured I could start making them in LaTeX instead. This template is almost an exact copy of the one I made years ago in Word, except now it comes with custom commands so text can be filled in automatically.

Rabbit Genetic Simulation

I saw this video a few years ago and it inspired me to create something just like it. In short, it a rabbit simulations which allows them to produce offspring that have traits of the parents. I didn't want to use the video as a reference while I was designing this, so whatever I've done (good or bad) was purely my decision. This project is built using Java and Gradle. Unfortunately, it was never finished and maybe never will be.

Experience

Robotic Software Developer

Clutterbot, Lower Hutt
March 29, 2021 - present

Tasks:

  • Developing behaviour and navigation for a household robot using ROS.

Languages Used:

  • Python
  • C++
  • Bash

Summer Research Assistant

Robinson Research Institute, Lower Hutt
November 2, 2020 - March 26, 2021

Tasks:

  • Designing electronic circuit for testing a thruster.
  • Designing a high-voltage, high-current switching mechanism for an energy storage solution.
  • Collecting data.

Languages Used:

  • MATLAB
  • LabVIEW

Embedded Software Developer/Tester

Aviat Networks, Lower Hutt
November 18, 2019 - February 21, 2020

Tasks:

  • Writing code for embedded radio system.
  • Manual testing.
  • Writing automated tests.
  • Working in Agile team.

Languages Used:

  • C
  • C++
  • Python
  • Bash

Junior Design Engineer

Tait Communications, Christchurch
November 19, 2018 - February 8, 2019

Tasks:

  • Developing tool with user interface to calculate intermodulation distortion.

Languages Used:

  • Java
  • Python

Skills

Python
C/C++
Java
MATLAB
Circuit Design
Mechatronics
Microcontrollers
Linux
Git
Agile
AI
Statistics

Education

University

Victoria University of Wellington
Bachelor of Engineering with First Class Honours
Electronic and Computer Systems Engineering
2017 - 2020
Average grade: A+

College

Saint Patrick’s College
Silverstream
2012 - 2016

Resume

I’m more than happy to share my CV with people. Just flick me an email at jolon.behrent@gmail.com and I’ll try to respond as soon as I can. There’s no guarantee that all of the information will be up-to-date as it may have been some time since I last updated it.