Posts

Showing posts from 2023

Inland IIC SPI 1.3" 128x64 OLED V2.0 Graphic Display Module and MicroPython

Image
The title of this is long to hopefully help people find this when they are thinking of buying this cheap Inland OLED.  I was looking to put a display in the center of my Ikea Dekad clock hack and this OLED was priced right. I've used the Nokia LCD displays in the past but wanted to try something a little brighter with higher contrast.  Microcenter sells an Inland branded OLED module for $7.99 in 2023 dollars.  My biggest gripe with the Inland products is that they have lousy documentation.  This module appears to be made by Keystudio which apparently continues in the Seeed Studio tradition of bare minimum examples and docs.   The device can support either SPI or I2C.  It comes preconfigured for SPI and I can't find instructions anywhere on how to change it.  This means you have to use 4 MCU pins instead of just two. There are apparently two main controllers for this type of OLED. This board uses the SH1106.  There is a great MicroPython driver for this chip.  It isn't part

An open-source developer gave a "best in class" answer to my bug report

Image
 An open-source developer responded to a bug report in a way that has "I take engineering seriously" written all over it. I wish more software engineers gave this as their first response, including myself. This is the response I got from a platform-related defect . That's certainly an issue! I'll try and add Windows to the CI tests so I can catch and fix these. I should be able to get to it later this week. just updating to let you know that I'm working on this; the fix should be fairly simple, the harder part is just to get all the windows CI working so that I can confidently support windows/fix other issues that may come up. Should have a release done by end of weekend. Why does this answer excite me?   It isn't because they replied.   It isn't because they take it seriously.  It isn't because they are going to fix it.  It excites me because  They intend to fix it in a way that it never comes back and that provides a platform for future testing. Chai

Freemometer V2.1 - Hacking the IKEA DEKAD into a notification device with a Pico and MicroPython

Image
This is V2 of a project I did a few years ago.  The IKEA DEKAD is a pretty package that makes a nice project case and comes with awesome mechanical bells. The Freemometer replaces the clock mechanism with a Servo and adds a couple status LEDs.  A microcontroller is added to run the servo, LEDs, and the motor that drives the alarm bells.  It is really the alarm bells that make the project.   The Pico is a lot more powerful than the Arduino-based first version of this device.  It is powerful enough to write code in Python which I find less stressful for a project like this that is not real-time in nature. This project uses a Pico W which means it can reach out  to some site or socket to get data and then run lights on the servo or the bell.  It also means you can stand up a web server or some other inbound listener that external parties can call.  I tend to Bluetooth into the virtual serial port on the HC-05 so I don't have to enable WebREPL or some other inbound wifi programming por

The great shift left - understanding the cognitive load of making single title engineering teams own everything

Image
There is a great shift left  movement in software engineering that is in some ways the natural outcome of the Agile movement.  Everyone wants to push more power and responsibility onto engineering teams removing roadblocks and shortening cycle time for making changes and creating products.  This increases the number of tasks and cognitive load on those teams as a tradeoff for shorter cycle times and other concerns. The idea is that you push ownership of every facet of a product to the lowest level possible.  People often use Amazon AWS as an example of success in this area.  Originally shift-left was primarily an engineering function where you pushed all of the technical responsibilities to a single team.  The team creates better products because they own the entire lifecycle and any of the cycle times.  Organizations have eliminated adjunct positions creating a staff single developer type that owns the previous test, DevOps, CI/CD, data, and all development disciplines. There can be m

2nd try at the four quadrants of knowing and unknowing

Image
This is another example of the known/unknown vs knowns/unknowns  quadrant mapping.  The last example was muddled.  These simple medical and house-building examples should help make this mouthful more relatable. Watch the video down below that uses this content!  This page was created to support the video and will have text content at some time in the future. The 4 quadrants of knowing and unknowing Content to be added on the 4 quadrants. Driving our constraints into the Known/Knowns quadrant <to be edited> Video and other content Try at this  Surfacing things we know nothing about YouTube Video   Surfacing things we know nothing about... blog article Video for this  2nd attempt and the 4 quadrants of Knowing This blog article  4 quadrants of knowing blog article Medical Example <medical example to be written up> Home Building Example <text for later> Video Revision History Created: 2023 01

Fail: My old HC-05 Bluetooth module was an HC-06 and it only took me a week to figure it out.

Image
Sometimes you make bad assumptions and they lead you into the alley for a week.  Then you figure it out and get back on the path to getting stuff done. I spent a week trying to reconfigure my Bluetooth HC-05 module to a higher data rate. I tried the key pin.  Then I tried strapping the mode switch pin to 3.3 volts.  Nothing worked.  My devices were 8 years old so I assumed the missing buttons on my devices were just a versioning thing My HC-06 Devices JY-MCU I was just stuck with 9600 bps which is not cool because causes its own issues  https://joe.blog.freemansoft.com/2023/01/replicating-micropython-repl-across-hc.html I did notice something weird it always responded to the AT command when connected to a terminal prompt.  It just didn't respond as expected  to the AT commands.  I couldn't type any of the expected commands. HC-06 Bluetooth board JY-MCU Eventually, I ran across this instructable that said that the board with my markings was probably actually an HC-06 which was

Replicating the MicroPython REPL across an HC-05 HC-06 Bluetooth link

Image
I wanted to run the MicroPython REPL and program code on an RP2040  over Bluetooth so I could avoid wires and still get into the device if there was some kind of Wi-Fi issue.  Read here or  watch the video . Bluetooth supports virtual serial ports in the same way USB devices can. RFCOMM-supporting Bluetooth adapters act as a transparent serial bridge between some RX/TX serial ports and the virtual serial port on a PC, phone, or another device type. Virtual serial ports appear on PCs after a successful pairing.  We can open the Bluetooth RFCOMM virtual serial port to read and write data as if it was serial over USB or a physical port.  We can leave that as a bare serial connection for data/commands or we can enable the MicroPython REPL to do programming, troubleshooting, and data transfer.  The truly awesome RP2040 has two software UARTS in addition to the USB serial connection.  We can connect either of these to serial RX/TX pairs to an RFCOMM-capable Bluetooth adapter virtually conne