This past weekend I wasted a few hours trying to figure out why my AWS Lambda was failing to talk to the IoT Core service. This was despite temporarily adding an IAM policy to allow all “iot:*” actions, as well as creating a fully permissive IoT Policy. My lambda is operating in the us-east-2 region, …
Tempur-Pedic remote control project update: trouble sourcing parts
This silicon shortage really sucks. As you know, shortly after designing my Si446x reference design board I discovered that the Si446x parts are out of stock everywhere. In fact, most EZRadio/EZRadioPro chips are out of stock well into 2021 or 2022. I went ahead and ordered the PCB and parts anyway (I was able to …
Stepper motor controlled zoom and focus of the Raspberry Pi High Quality camera telephoto lens (work in progress)
Project status: This is a work in progress. Please support me on Patreon if you’d like to see me continue to work on it: https://www.patreon.com/chrislaplante This project is something that I started in September 2020. My original intent was to use the High Quality camera, telephoto lens, and a handful of 3D printed parts to …
CircuitPython on Raspberry Pi with Yocto
Today I have submitted a pull request to the excellent meta-raspberrypi Yocto layer to add recipes for a variety of CircuitPython packages. Assuming it is merged in, This will make it easy to use CircuitPython and Adafruit hardware on the Raspberry Pi 4, Zero, Zero W, and all other supported models. Update: it has been …
Reverse engineering the Tempur-Pedic adjustable base remote control (part 1.5: Patreon + proof-of-life update)
Long time no write! Recently I’ve received an outpouring of interest in this project which has reinvigorated my desire to work on it. To help myself be able to do so, I have started a Patreon: https://www.patreon.com/chrislaplante. For anyone who is interested in this project moving forward, I would appreciate your support! Please note, the …
Reverse engineering the Tempur-Pedic adjustable base remote control (part 1)
This is the first in a (probably) three part series. Checkout the code on BitBucket: https://bitbucket.org/MostThingsWeb/temper-bridge/src/master/main/ About a year ago, I decided to upgrade my old spring mattress to a TEMPUR-Contour Elite Breeze and I cannot say enough good things about it. I opted to also get an adjustable base (this one) for it, which …
vCenter Server Appliance: “AFD Native Error Occured: 9127”
[OUTDATED – It has been a while since I looked at this, so it’s probably very outdated.] Spoiler alert: I was unable to find a solution to this issue, and ended up deploying a new VCSA instance. I made the mistake of not assigning a static IP address to my vCenter Server Appliance instance. When …
Capturing Vim environment variables from bash scripts
In a recent bash script, I needed to obtain the value of the $VIM environment variable. Vim uses $VIM (as well as $HOME and $VIMRUNTIME) when computing various paths: http://vim.wikia.com/wiki/Open_vimrc_file#Location_of_vimrc. Default value of $VIM It is possible to find the default (fall-back) value for $VIM by inspecting the output of running vim –version. Here’s a …
Emulating nested optgroups in Django Forms
Some motivation Django has a field called ChoiceField which lets you very easily create a <select> dropdown in your forms. A great feature is the ability to transform nested choices into appropriate <optgroup> groups. For instance, the following code: …creates a field that when rendered looks something like this: The HTML that Django produced looks …
Parsing HTML with C++: Revisited
About a year ago I published an article entitled Parsing HTML with C++. It is by far my most popular article (second most popular being this one), and is a top result on Google for queries such as “html c++ parsing”. Nevertheless there is always room for improvement. Today, I present a revisit of the …