This blog is a place for me to share my projects with the world. I am very interested in the field of electronics design and software development. I am interested in many aspects of technology including embedded software development, dynamic web applications and electronics design.
There is something incredibly satisfying about breathing new life into old hardware. Vintage computing is one of my favorite hobbies. The challenge of coaxing modern software onto systems designed decades ago is a puzzle I cannot resist. I have been diving into the world of large language models (LLMs), and a question began to gnaw at me: could I bring the cutting-edge of AI to the nostalgic glow…
I have been impressed with Ryobi's 40V battery packs lately. They are fairly energy dense and compatible with a wicked 1800W inverter/power station that I have. Internally they are a 10S lithium pack with some number of cells in parallel depending on the pack capacity. They use the safer flame proof cells and have a sophisticated BMS built-in so I feel pretty comfortable messing with them. They…
Here is a project that I have been tossing around in my head for at least a year or two now. Given advances in audio compression algorithms and computer vision: could reasonably high-quality audio be stored on a paper tape? This is a fascinating concept to me. When considering the complete history of storage media from early cylindrical engraved records through to magnetic tape it is evident that…
A couple of days ago I published a blog discussing how I used NRF24L01 radios to implement a point-to-point network between two Raspberry Pi computers. I implemented this as a virtual network device and sent packets between the radios. Since then, I have made numerous improvements to the software and more than tripled the throughput from ~90kbps to nearly 300kbps. These improvements were through a…
I recently picked up a set of nRF 2.4GHz radio transceivers. These are low-cost radios with a SPI interface that allow exchanging 32 byte packets across a radio link that can run at up to 2MBit on-air data rates. They are popular among hobbyists who want to introduce wireless to their Arduino-flavored projects. I was able to buy ten of these radios with trace antennas for just $11 and three more…
If you have been following my blog for a while, you probably know that I am an unabashed Tesla fan. My heart lies with the Model S, the only car that I have ever bought twice. The recent Laguna Seca record-setting lap has me excited. One thing that stood to me was the e-stop stuck to the dash. I wonder what it does. Does it cut the main battery pack contactor? Wouldn't it be too late by the time…
Over the past weekend I took a solo, socially-distanced road trip to Mount Diablo to try out my Amateur Radio station. The results far exceeded my expectations and I ended up making more than 25 contacts total. View from Mount Diablo with Antenna on Trunk I decided to put together a video about my adventure. It turned out to be a nice day and a good way to get out of the house. The Amateur Radio…
About a year ago I added a Digital Audio Tape (DAT) deck to my home theater system. I was turned onto the format by popular Youtuber Techmoan and a great video that he produced: Digital Audio Tape: The one DAT got away . I had wanted to add magnetic tape to my home theater for some time and this highly unique format seemed like a perfect choice. Big Buck Bunny from DAT Tape Shortly after…
Over the past year I have been tossing around the idea of extending the electric range of my Cadillac ELR . I have wanted to build a large scale lithium battery system for some time and this seemed like a great way to learn about the technology. I had originally started with the idea of charging the ELR hybrid pack while driving. The plan was to use a 48V to 390V (96S) lithium battery charger.…
Those who know me well know that I have a passion for electric vehicles (EVs). I own a Tesla Model S, have driven it across the US and Canada twice , and am currently designing an electric bicycle with design cues taken from larger EVs and based on lessons learned from my electric skateboard project. I really can not scratch the itch to drive and learn more about EVs. Last fall I purchased a…
I recently returned from a three week trip crossing Canada in a Tesla Model S. The journey began in the heart of Silicon Valley and followed the West Coast of the United States until reaching Vancouver. I then travelled east on the Trans-Canada Highway until reaching the Greater Toronto Area where I was born and raised. After spending some quality time with family and catching up with old friends…
Over the past few days I wrote a command-line tool for controlling and monitoring PowerUSB-branded power strips . These are clever devices that connect to a computer via USB and allow power monitoring and controlling the state of the outlets. I decided to call it pwrusbctl and you can view the code on GitHub . The company that sells them offer a binary blob driver, but I wanted something that I…
I just returned from a 56km Boosted Board ride. I toured the bike trails along the Upper/Lower Crystal Springs Reservoirs and San Andreas Lake here in the San Francisco Bay Area. This is a new record for me. My previous range record was 27km on a single charge. Boosted Board with external battery in my backpack :] To achieve this I used a very large and custom designed lithium-ion battery pack. I…
I use an iCharger 1010B+ to charge a few batteries for my electric skateboard. I also top up the battery in my car from time to time. I thought it would be nice to keep track of the charging progress so I wrote a small tool to parse logs that are output over UART and format them into a human-readable format. I named the tool ichargermon . Feel free to send a pull request! The project is written in…
I have long wanted to become more well acquainted with the Linux kernel and finally decided to bite the bullet. I ordered an iMX233-OLinuXino-MAXI from Olimex to tinker with. The Freescale i.MX23 processor is noteworthy because it is available in an LQFP-128 package which means it can be installed on a PCB by hand with inexpensive tools and a steady hand. It is also a great platform to learn with…
Over the past couple of days I have ported libmikmod to run on an STM32F407. This is a very memory constrained environment with only 128kB of RAM but I am able to play some rather complex MOD and XM files that are in the range of 60kB in size. I had to patch libmikmod slightly and write a new audio output driver to make all of this happen. MikMod on STM32F4 Hardware :] The audio quality is quite…
I bought a Boosted Board back in August of this year while living in New York City. It was an awesome purchase. It is fun to ride and I could often beat the subway to my destination on shorter trips. I have since moved to Silicon Valley and find the range to be lacking slightly. The board gets approximately 7 miles of range out of the box and my office is 10 miles from home. My Boosted Board…
I recently got my hands on a pair of Flir Lepton thermal imaging sensors and have spent the last week bringing them online in my spare time. These are absolutely incredible devices that I believe will pave the way to consumer devices incorporating thermal imaging cameras. The footprint of the camera module (and optical assembly) is about the size of a dime. The resolution is 80x60 at 14bpp which…
I like to check out the thrift stores in my area for one of a kind technical gems to add to my collection. A few years ago I came across a Connectix QuickCam . This is one of the earliest webcams that didn't require a separate video capture card. Due to how easy it was to install, it was incredibly popular. So much so that Logitech ended up buying Connectix out and forking the product under their…
Let me first get something out of the way... I am an embedded nut. I absolutely love taking a foreign piece of hardware and bringing it to life. My most recent excursion into embedded land has been with a Nucleo board designed by STMicroelectronics . I decided to pair this board with a Gameduino 2 shield designed for the popular Arduino . I wrote a driver for the FT800 graphics processor and…
I remember my family's first computer well. It was 1997 and I was an easily-excited 6-year-old boy. This rather large contraption just landed on my dining room table and needless to say, I was very curious. I remember playing Moto Racer with my Dad. I remember being amazed when we purchased our ATI All-In-Wonder Pro TV Tuner video card. We could somehow watch cable television on our PC... while…
I have been working on this fun little project for the last couple of days. I ordered this VFD display from Noritake as a free sample. I am quite grateful for their generosity and I decided to put this display to good use. I have written a driver in C# that implements a partial selection of the commands available from this display. The driver is object-oriented with property accessors used to set…
It is quite snowy in southern Ontario today so I spent a bit of time configuring Conky on my system. I have heard of conky before but never bothered to put any time into configuring it. For those of you who don't know, Conky is a nice system monitoring application that runs on the root X window. This means that it sits on your desktop like Active Desktop, but better. Mine looks good, but I have…
I have wanted to write a 3D rendering engine for years and I have finally decided to spend some time on the problem. I decided to implement a simplistic rendering engine that supports the following basic features: 3D Perspective Projection (far objects are smaller than near objects) Triangular Polygons for Rendering Simplistic Lighting Model Colored Polygon Faces (no texturing) The largest hurdle…
I own an older model Panasonic Toughbook CF-28. I picked it up a couple of years ago for around a hundred dollars or so. It has a Pentium III 800MHz processor and 512MB of RAM, nothing to phone home about. What it lacks in performance it makes up for in its' rugged design. It is a military specification laptop that is capable of withstanding short drops, extreme temperatures and light water…