ROV SAMPLER - Full writeup: HERE
IOT display with the album cover of my currently playing Spotify song persistently displayed.
Using an Adafruit MatrixPortal and a 64x64 HUB75 LED matrix display to continuously poll Spotify's API,
to display the album cover of my currently played track.
Spotify's public API includes scopes for getting an authorized user's currently playing track, the JSON data returned from this request includes a link to a 64x64 JPEG of the track's album cover.
The Adafruit MatrixPortal is an SAMD51 development board using AirLift to communicate with an ESP32 to handle wifi connections. Using this board and a Google Firebase server I poll the Spotify API for the current track to then download and convert the JPEG to an indexed bitmap with a gamma correction. This image is then displayed on a 64x64 HUB75 led matrix display
The enclosure is designed in fusion 360 and is 3D printed with white PLA. I had experimented with printing lenses out of transparent PLA to diffuse the LEDs, but I prefer the look of the pixels.
ESP32-S2 development board on a custom PCB with Kailh Choc mechanical switches. The remote checks a Google Firebase web service to dynamically update the python code run by the board when each button is either pressed, released, or held.
My initial prototype for the device, a flexible e-ink display overlaid on top of a matrix of push-button switches. The image displayed would be dynamically updated from a webservice to provide icons or text indicating the action each button would provide. Unfortunately, the flexible e-ink display was far too fragile to be used for this purpose and hard button presses would result in dead pixels and artifacting on refresh.
My latest version instead uses a 3x6 matrix of Kalih Choc "clicky" mechanical switches with RGB leds illuminating the keycaps. The device would run python scripts that could be dynamically changed from a webservice to interact with my Roku tv, my smart lights or any other IOT device. To extend battery life, I implemented sleep wake functionality to turn the device off when dormant for extended periods of time, the device would be woken back up by either a button press or if motion was detected by an internal vibration switch.
After completion of my Coverify project, I decided to make a miniature version in the style of a retro
tv as a birthday gift for my girlfriend.
Instead of using the 64x64 RGB display, I used 1.69" 280x240 IPS TFT display. Programmed in CircuitPython, the ESP32-S2 communicates with my firebase server to get most recently played song of either me or my girlfriend, the album cover is taken from the Spotify API response and is converted to a bitmap 3 with 15 colors using GraphicsMagick and is returned to the device to display on the screen.
Designed and printed a small RC tank with a Raspberry Pi zero and geared DC motors
that was controlled within the web browser of a laptop or mobile device, with a live feed of the tanks
Unfortunately, not much effort was taken into documenting this project before it was eventually taken
The Pi's headers were left exposed to allow for a module system so that in the future attachments could be easily connected.
Spent a year building and fully rewiring my own 1981 Yamaha xs400 cafe racer motorcycle. Taught me a lot about automotive design and problem-solving working on problems with limited documentation. Demonstrated my ability to work on metal, wiring harnesses, design, and weld. In the fall of 2018 I bought a 1981 Yamaha xs400 and throughout the year conceptualized, designed, and built my dream "cafe-racer."
Some notable points of the building process include cutting the frame and welding a brace, fabricating seat mounting points, relocating the battery to get the desired open triangle look, and many hours spent searching through old wiring diagrams to adapt the wiring harness to the modern handlebar controls and new lighting I had installed.
I am an outgoing third year University student looking for my second Co-op. I have four months experience at my previous Co-op as an IMIT Generalist and years of cumulative experience at various food service jobs. I am able to learn new tasks quickly and effectively, and have excellent work habits and efficiency.
I have a passion for science and technology, and my interests include programming, robotics, and embedded systems. Outside of school and work, you can find me working on some of my many personal projects and learning about new technologies.
I am currently attending my third year at the University of Victoria in the Computer Engineering faculty and attended high school at Lord Byng Secondary.
My previous Co-op was a 4-month term working for the Ministry of the Attorney General, Legal Services Branch, as an IMIT Generalist. Initially in this Co-op term I was tasked with implementing a full redesign and restructuring of the branch's internal website, after surpassing the expectations of my managers I was tasked with designing an asynchronous record lookup Web application to replace an outdated Microsoft Access application. This web app used asp.net and asynchronous services to access a Microsoft SQL server database.
- C, C++, C#
- Soldering and Solder-rework
- Circuit design
- 3D modeling - Fusion360, AutoCAD, SolidWorks
- 3D Printing
- Computer assembly, modification
- Linux, Windows 10, Mac OSX operating systems
- Raspberry Pi, CircuitPython and Arduino
- General training in both metal shop and woodshop