During the course of the day I encounter lots of challenges, some of which take minutes to solve and others that take much longer. My goal for this section is to keep track of these challenges and their solutions. I will turn the longer ones into articles, while the shorter ones will stay as blog entries. You can expect topics to range from very specific programming challenges to broader topics like life.
Below is a list of the recent blog entries. You can also browse the blog by using the tags on the right side, or if you know what you are looking for then you can use the search box at the top right.
I have recently been playing around with a side project that uses the ESP32 SOC/microcontroller, the Adafruit Huzzah32 flavor specifically. I am controlling a motor with it and use a ULN2003 to drive it. I noticed that when I connected the driver, I couldn’t upload a new firmware to it. After doing some troubleshooting and research, I learned that my pins were the issue.
Specifically, GPIO PIN #12 was the issue for me. It’s one of the strapping pins used for the different boot modes. I am sure there are ways to address this, but I ended up switching to a different and now I can upload firmware as needed.
I have recently been playing around with 3D printers. I wasn’t sure if I would like them or use them enough, so I decided to start with a common basic 3D printer: Creality Ender 3 V2. I was surprised to see how much I ended up using it. I wanted to turn the printer off automatically when it completed a print, but there wasn’t anything standard. So, I researched and put together this solution for my specific setup.
I recently decided to build a new desktop computer for a new hobby that requires a powerful Windows-only computer. I thought I would spend 1-2 weeks researching, and then I should be good to buy and be done within three weeks. Was I wrong?!
In March of this year (2020), when the Coronavirus disease (COVID-19) pandemic was getting into full flux in the US, I, along with other volunteers, started an initiative to help with grocery and other essential item deliveries for at-risk population. With volunteer developers’ help, we launched right away. Later, we successfully concluded this initiative at the end of May once commercial services and grocery stores caught up to the delivery demand surge. This page hosts the last remnants of that effort, and the cv19assist.com domain now redirects to this page.
It has been a while since I have had to set up a new MacBook Pro so I forgot about all the small things that I had changed over the past few years. I have some interference issues at home that I am still trying to resolve, but in the meanwhile I set up a second slightly older access point that I had lying around. I noticed that my MacBook Pro wasn’t switching when it got closer to the second access point (AP).
I couldn’t resist the Tesla fever and finally took the plunge a few months ago. Since then, I have been absorbing the Tesla ecosystem and observing everything that it has to offer. I have been especially intrigued by the Autosteer (part of “Autopilot”) functionality because that’s one of the game-changing features that Tesla is offering. Here are a few odd behaviors of the system that I have observed so far. Note that most of the Autopilot features are currently in Beta, so I am always careful when using it, and I am also expecting that Tesla will work out these kinks as it continues to improve the system.
As a “prosumer” I have liked the Ubiquiti equipment because it’s not too expensive and at the same time provides advanced functionality that I like to tinker with. After switching to an EdgeRouter, I recently swapped one of my two access points with the UniFi nanoHD access point. The EdgeRouter works independently, but the UniFi HD provides a lot more options when controlled using the UniFi Controller. For this, I had a Raspberry Pi 3 lying around so instead of getting the UniFi Cloud Key, I decided to set up the controller on the Raspberry Pi.
I work from home most of the days and generally keep my office door closed to keep distractions to a minimum. I also tend to be on video and audio calls quite a bit. When I am talking on the calls, then it is easy for my family to know not to come in, but when I am listening, then they obviously cannot tell. There have been times when I am on video calls and have had a family member walk in, not knowing. Those can be awkward at times.
Now, what does this all have to do with the Raspberry Pi? In addition to the Raspberry Pi, I also had a 2.8″ Adafruit PiTFT lying around that I did not end up using in another project. I was planning on having the Raspberry Pi running all day for the UniFi Controller anyway, so why not give it another purpose? So, I decided to create a small digital sign that I could control remotely and put it outside my door for people to know what I was up to. Overkill? Why, yes it is, but it was also fun. Actually, the real overkill would have been this solution running on a rechargeable battery! I called this the “Entriway.”
I am generally excited to try out new software. This was the case when Apple announced the public betas for macOS Mojave recently. I was excited to try out the public beta, but I didn’t want to mess with my primary setup. Unfortunately, my older spare MacBook Pro is no longer supported by Mojave so my only option was using my primary MacBook Pro, which was a little scary. After looking around for a little bit, I learned that I could install Mojave on a new partition without messing much with the existing install.
I have lately been experimenting with Kubernetes and containers. As I was playing around with a few configurations I had the need for exploring a container’s contents interactively. Kubernetes’s dashboard has functionality to get into a container, but it assumes that you are using the bash shell. Unfortunately, any Apline Linux-based container images do not have bash installed so we have to resort to other options to get access.
Alpine uses the busybox provided ash shell (which basically a symbolic link to /bin/busybox). To get to the prompt you have to run.