ProjectsCubeSat Camera ModuleThe goal of this project was to develop a small, low-power camera system suitable for integration as a CubeSat payload. Three prototypes…
DroneDrone Guidance SystemThis guidance system for drones encompasses a simulator (APM SITL) or real drone support, path planning, mission creation, drone control…
ProjectsCubeSat Onboard Computer DesignOver the past year and a half, I have been working on the SFU Satellite Design Team as the computing subsystem lead. The team and I have…
ProjectsDemoSat For Educational OutreachI’ve been part of a lot of educational outreach for the SFU Satellite Design Team. It’s super fun talking about our projects to the public…
EmbeddedOpenCV Development Over SSHThis post is a collection of a few tips and tricks for developing openCV applications on a Raspberry Pi (or any other embedded linux board…
FPGAPetalinux Bringup on Cora Z7-10 Zynq BoardThis post contains notes that I generated while bringing up Petalinux on my Cora Z7-10 Zynq board. First I get Petalinux working and do a…
WebGoodbye Wordpress, Hello GatsbyI’ve maintained a Wordpress blog for years now, and I always did like Wordpress. Creating Wordpress themes was one of the first significant…
Machine-LearningGetting Started With Deep Learning – Classifying Images From a DroneI knew it would only be a matter of time until I would try out some deep learning. For me, the motivation to get stated came from two things…
openCVDigitizing Player Piano Scrolls With OpenCVAt NWHacks in 2018 my team and I made a system to digitize player piano music scrolls using openCV. Using a camera, the location of the…
CubeSatRadiation Testing a CubeSat ComputerAt the SFU Satellite Design Team, we are taking part in the Canadian Satellite Design Challenge. As part of the challenge, we were offered…
openCVRaspberry Pi & OpenCV - UART Communication (Part 2)In this second post regarding my experiments with OpenCV on the Raspberry pi, I will go over interfacing the OpenCV code with the Pi’s UART…
CubeSatCubeSat Computing BoardsAt the SFU Satellite Design Team , we’re building a CubeSat from scratch. One of my main roles is designing the onboard computer hardware…
openCVGetting Started With OpenCV and Raspberry PiI bought a Raspberry Pi nearly a year ago, always intending to use it in OpenCV experiments. Just recently, I got around to starting the…
MATLABMultiple Application Trapezoidal Rule in MATLABI recently had to implement multi-application trapezoidal rule for some work I was doing. I decided to implement the algorithm in MATLAB…
HALCoGENRunning HALCoGen on Mac or Linux With WINEThis tutorial covers installing and running HALCoGen for TI Hercules/TMS570 MCUs on a mac or Linux machine using WINE. I first started using…
Smart LockWiFI Smart LockFor a class project, my team and I were lucky enough to be able to build a smart lock. The prototypes were constructed of 3D printed parts…
microcontrollerTI ARM LaunchPad GPIO Input TutorialThe TI Tiva Launchpad boards are an excellent way to get started working with ARM microcontrollers. With the Tivaware software suite, they…
microcontrollerTI ARM LaunchPad GPIO Output TutorialThe GPIO functions in Tivaware take a little fiddling with to understand. For beginners, it may not be immediately obvious what’s going on…
microcontrollerTI ARM LaunchPad GPIO Unlock TutorialTI locks some GPIO pins because they’re required for programming interfaces like JTAG. SW2 on the LaunchPad is connected to PF0 ( page 33…