Podman on Inovato Quadra / Armbian

The Quadra is not equipped with vast amounts of memory (a whole 2GB), but even with a 2K 24 bit color desktop running in a virtual frame buffer, it has 1,3GB available for running applications. Turning off the UI increases that to 1,7GB.

While I could run the applications I am thinking of playing with on this box as simple processes, using containerized applications would have some advantages. As long as the memory constraints of this little ARM SBC don’t make that impractical.

Continue reading

Inovato Quadra Headless VNC

VNC on a headless system sounds like an odd choice, and indeed, for most things I need this box for I will be connecting via ssh and have no need for a graphical interface. Since I don’t have the HDMI port connected to anything, there is even more reason to just turn it off as the default resolution without a monitor connected turned out to be a measly 1024×768 (yes, I am old enough to remember when that was a good screen resolution, but that’s no longer the case).

There are a few possible solutions to this problem:

  • Connect a monitor 🤣
  • Plug in a dummy monitor HDMI plug
  • Switch from the default Xorg server to Xvfb
Continue reading

Purple Air / Kano Pixel

I had three of these little Kano pixel units which I bought for the kids to learn some programming on when they were on sale. Turns out the kids didn’t really use them much, and now Kano seems to be history.

The boards are based on the ESP-32 WROOM microcontroller, and can be programmed using the Arduino IDE, but they can also run MicroPython – a version of the Python programming language that runs on microcontrollers like this one. Furthermore, there is already a library which adds support for the LED matrix (128 NeoPixels), the buttons and the rotary dial on the top. Sadly, it does not have support for the USB connectors, or the built-in microphone (which I suspect is connected via the 4th USB channel that the hub IC on the board provides).

Once I had it running Python, my next thought was what could I do with it…

Continue reading

ESPixelStick Programming

As part of the mission to build out some hardware for sound & light shows at Halloween (yes, I know it is only a few days away; my kids keep reminding me), and Christmas, I picked up an ESPixelStick from Amazon. These come fully assembled, but unprogrammed. How hard can that be I thought?

I will comment that it would have been nice to have some documentation, or at least a pointer to an up to date website in the bag with the board…

Continue reading

Skull Eyes Project

A couple of years ago I picked up two plastic skull decorations in the post-halloween sales. Once I got them home, it occurred to me that they could become an interesting project. Adding some lights to their eyes with some fun effects was the plan. It has taken me a while to get time to do this, but I finally pulled all the parts together and modified the basic plastic skull with some LED eyes.

The parts, in addition to the skull of course, are as follows:

The circuit is very simple:

Power comes from the USB, which also acts as the data connection to the computer for programming the board.

Continue reading

CircuitPython & MacOS Catalina 10.15.6

A while ago now I bought an ItsyBitsy M4 Express, and two of their NeoPixel Jewel LED boards from AdaFruit to create eyes for a plastic skull halloween decoration. Until this last weekend, I haven’t had time to play with it much though. Beyond soldering the headers on the board (the two sides, not the end one), and adding some patch wiring to the NeoPixel boards too so I could build up the electronics part on a breadboard to experiment with.

Looking on the AdaFruit site I discovered two things about this board that are going to make the project easier:

  1. The board runs CircuitPython out of the box (although an older version the I needed to upgrade)
  2. There is a CircuitPython for Jupyter Notebooks, which is a very powerful way of prototyping Python code straight from a browser.
Continue reading

Thoughts: Internet of Things

Much of the IoT hype is really just the final arrival of the promised connected devices – something that was being touted as imminent while I was at Wind River, but which really needed Wi-Fi and Bluetooth to come of age first. Today, connected devices are everywhere. Even cars are connected.

Now we live in a world where devices can be connected to a home or office network without requiring cabling. And we can wear lightweight devices that can take advantage of the more powerful computer in our pockets (aka a smartphone) for Internet connectivity using just low power Bluetooth connections. In some cases, even permanent devices, like smart door locks, can be battery-powered and use Bluetooth to connect to a local "bridge" device.

In addition to that always on connectivity, these devices needed simpler controls. Whether touch screens that can adapt, or, more recently, voice control, without more natural controls, many IoT devices would be too complex.

Finally, the arrival of meaningful AI is helping make many of these devices at least seem smarter, and be easier to interact with. Often with natural language, or by having the device simply observe & learn.

Continue reading

When Cloud Based IoT Dies

Update November 7, 2016:

It looks like the Lono cloud service is back online. This was not a normal outage however as their domain completely disappeared from DNS. The bigger question of what they will be doing to ensure that the device works locally, even when the cloud is unavailable still deserves an answer (and I filed a support ticket this evening asking both about the outage & about plans for graceful degradation of service should the cloud component fail again).


A while ago now I backed a project on Kickstarter that was creating a more modern sprinkler controller. That actually wasn’t hard to imagine since the user interface of the one our home’s builder attached to wall consisted of a rotating switch, some buttons and an LCD display which could handle numbers & a few other preset things. Like something from the 1980s.

That project was Lono, and, like most Kickstarters, it delivered late & somewhat incomplete. But the hardware looked good, was dead simple to install & seemed to work. The software less so. Over time, things improved a bit though.  I could access the controller, via the iPhone app, from anywhere. Scheduling was added, as was weather and a few other features. I don’t think I saw the truly smart scheduling that was promised, but it was delivering what I needed. Until today.

Cloud Dependency

Today, the Lono died. Well. More specifically, the cloud service behind the Lono died. Now the attractive black & green box on the wall of my garage is essentially useless. Obviously, that is frustrating because I can no longer control my sprinklers, even from home when my phone & the Lono are on the same network. But it frustrates me on another level too. These IoT devices are clearly more powerful when connected to the cloud, but they should not be designed to be dependent on that cloud to do anything. 

There is absolutely no reason why the Lono, discovering it could no longer reach its cloud based control center, couldn’t have dropped back to a LAN only mode. Whether the outage is caused by the company failing (which seems to be the case here), or other things (maybe an ISP failing, or being temporarily offline), there really is no excuse for these things to stop working based on their last known settings & reverting to more local control.

Kickstarter 

I’ve backed a number of different things on Kickstarter & Indiegogo. Typically, while they may have received firmware updates etc, only a couple were really dependent on a cloud based service & only Lono has failed. It does make me think I will be more wary of cloud backed IoT projects in future. Perhaps such projects will need to explain their plans for this scenario. At the very least, it would be good to see they’ve considered this & have some level of “disconnected” functionality baked in.

If they want to truly impress me, they should have hardware design, firmware & app software in an escrow service, with public (or at least customer) release triggered on company failure. Then, maybe, the community could rally around and perhaps continue support for these devices. 

Ongoing Pebble Issues


Update: Check out my more recent update on my Pebble experiences too.

Anybody following along here will know that I have been having intermittent connection issues, as well as bluetooth audio interference issues, with my Pebble smartwatch. But more than that, I have been having issues with their customer support. Not to mention having their Chief Evangelist accuse me of whining, and then block me on Twitter. Great way to treat your customers. Guess she doesn’t want to actually hear from real users. 

On October 17, I was given this answer by one of their support folks:

We well received your logs, and will review them thoroughly and have a reply by Tuesday. Thanks for your patience.

That was a Friday. By the next Friday, October 24, I had still heard nothing other than another canned response on a different case number because I submitted more logs through their app and it generates a new case each time suggesting I upgrade to iOS 8.1 (which I had already done, and which has made no difference).

Continue reading

Pebble: Still Not Ready

Sadly, I have to say the Pebble smart watch is still not ready for general use. There are still too many bugs in the firmware, and too many limitations for it to be acceptable to anyone outside of the early adopter crowd. Even a year after they initially shipped.

In the early days, the regular firmware updates seemed to improve things. Unfortunately, the most recent updates seem to have made things worse. 

Battery Issues

The new stainless steel watches were launched with version 2 firmware and the Pebble App Store all of which seemed great. Except that the battery life of the watch could suddenly drop from the several days normally achieved to just a few hours. And it could go from super efficient to super inefficient at any time. Given that battery life is one of their key advantages, this was a pretty serious regression. Something that should have been caught during testing.

The fixed firmware was released recently, but apparently it is still not really fixed. My watch took around 24 hours to drop from fully charged to 89% (that is pretty much the normal rate I have observed – around 10% a day).

2014-05-18 04:48:27:000 ttery_monitor.c:204 Batt state: 4224mV 99% hardware charging 0 plugged 0
2014-05-19 02:55:26:000 ttery_monitor.c:204 Batt state: 4095mV 90% hardware charging 0 plugged 0 
2014-05-19 03:00:26:000 ttery_monitor.c:204 Batt state: 4086mV 89% hardware charging 0 plugged 0 
2014-05-19 05:41:26:000 ttery_monitor.c:204 Batt state: 3994mV 79% hardware charging 0 plugged 0 
2014-05-19 08:19:26:000 ttery_monitor.c:204 Batt state: 3927mV 69% hardware charging 0 plugged 0 
2014-05-19 09:44:26:000 ttery_monitor.c:204 Batt state: 3869mV 59% hardware charging 0 plugged 0

But then look at what happened. The next 30% drop took less than 7 hours. And for most of that time I was asleep and very few notifications were being delivered (I get far more during the day when all my calendar event reminders are firing off).

Seems the issue with the battery is still not fixed. I have submitted the logs, but at this point I am losing confidence in Pebble’s ability to fix these serious firmware issues.

Audio Interference

For the longest time the audio quality I have experienced when using my car’s hands free telephone system has been terrible. Very occasionally it would be crystal clear, but most of the time it was crackly, sometimes to the point where I would need to hang up and redial in hopes of getting better quality. It never occurred to me that the cause of this noise was the Pebble. 

Last week though I was driving back home after going to pick up some paperwork and I was stuck in traffic listening to music from my phone connected via the car’s A2DP connection. This had always been good quality (further confusing me as to why the telephone audio should be so bad), but now it was experiencing periodic drop outs. Very short times in the music when there was silence, but easily noticeable. Since I was stuck in traffic, often not moving at all for several minutes, I had time to trace the cause.

Remembering that the Pebble had just updated its firmware, that was an obvious place to start. Turning off the Bluetooth on the watch didn’t impact anything immediately but right then the traffic moved, so I turned my attention back to the road; leaving the Pebble’s Bluetooth off. Perhaps 30 seconds or so after I switched it off, the dropouts stopped. The next time I stopped, I turned Bluetooth back on and sure enough the drop outs re-appeared. So now, the Pebble interferes with A2DP music streams (a clear, and serious regression).

Even more interesting, during one of the times I had Bluetooth off I received a call. It was crystal clear. More experimenting with that showed that the interference I had long put down to an incompatibility between my car and iPhone was in fact also being caused by the Pebble. That is not a regression in the latest firmware though; that has always been there.

Some searching online revealed a thread on their support forums describing the hands free audio interference that is happening in lots of cars. And yet the support response I got merely shrugged it off with the advice that I should disable Bluetooth on my watch when in the car & there was no way they could test all cars. Obviously, nobody would expect them to test all cars, but it doesn’t seem hard to find some that show the problem. And there is even a detailed post in that thread stating the problem can be reproduced on Bluetooth audio quality measurement test equipment:

The Voice Quality algorithm used for this test was ITU-T P.862.1 (PESQ). The scale for the PESQ algorithm is 1-5 (5 being perfect). For all tests, the iPhone is on ATT network whereas the far-end is Verizon PSTN. Each test consisted of 3 different calls, each call sending/recordng 4 voice files. After each test i averaged all PESQ scores.
The average score for iPhone5 without Pebble was 2.71. This is average for mobile to PSTN.
The average score for iPhone5 with Pebble was 1.36. This is considered extremely low.
The average score for iPhone4 without Pebble was 2.40. 
The average score for iPhone4 with Pebble was 1.22.

That makes it pretty clear that the Pebble is interfering with the audio quality on iOS devices at least. Again, this should really have been caught during testing.

Recommendation

At this point in time, if you asked me whether you should buy a Pebble I would have to say no. Not unless you are willing to live with pre-alpha quality software, potentially abysmal battery life, poor quality Bluetooth audio connections and relatively little support. When it is working well, the Pebble is a great smart watch, but the ongoing software quality issues are really letting it down right now.