Open Source is not Enough

This story from 2017 explains why it is essential that people understand who controls every product they acquire. In this particular case – about garage openers, an open source hardware solution proves to be more problematic than a closed source solution.

An attractive garage door, totally unrelated to the one mentioned in this web-log post. Photo: http://homesfeed.com/unique-garage-doors/

Denis Grisak started Garadget, which makes an open-source Internet-connected garage opener. He promoted his start up on Kickstarter.

This device uses Wi-Fi-based cloud connectivity from Particle to open and close garage doors. The garage door is controlled over the internet by a mobile phone app. It also uses existing garage door hardware. The phone becomes a remote control.

On 2017-04-01, April fools’ day for some, R. Martin, a customer who purchased a Garadget opener on Amazon reported iPhone application control problems, and left the following comment on the Garadget community board: “Just installed and attempting to register a door when the app started doing this. Have uninstalled and reinstalled iphone app, powered phone off/on – wondering what kind of piece of shit I just purchased here…”

Yes, the language cannot be condoned, but one can understand that the customer is feeling frustration. Soon afterwards, not having gotten a response, he left a 1-star review of Garadget on Amazon: “Junk – DO NOT WASTE YOUR MONEY – iPhone app is a piece of junk, crashes constantly, start-up company that obviously has not performed proper quality assurance tests on their products.”

Grisak then remotely deactivated Martin’s garage opener [sic] and posted the following on the support forum: ” Martin, [NP] The abusive language here and in your negative Amazon review, submitted minutes after experiencing a technical difficulty, only demonstrates your poor impulse control. [NP] I’m happy to provide the technical support to the customers on my Saturday night but I’m not going to tolerate any tantrums. At this time your only option is return Garadget to Amazon for refund. Your unit ID 2f0036… will be denied server connection.” NP = New Paragraph.

This denial of service breaks the trust that is necessary between a manufacturer/ vendor and its customers. I was surprised to find that the company is still in business. It certainly doesn’t deserve to be. The legality of the server disconnection can be discussed, as could potential criminality, if someone were to be injured or killed because of this disconnection. However, we will not be visiting these subjects today.

Instead, there is a basic lesson to be learned by all consumers, and that is not to place too much trust in suppliers. In particular, it means avoiding technological solutions that give over-riding control of a product to someone other than the end user. In particular, control of communications is important. It does not make any difference if the product is open-source or closed-source, if the someone else controls communication.

In its Kickstarter description, one meets the following: “In its core Garadget uses the Photon module from the great folks at Particle and benefits from all the development tools and support materials created for the module[.]” Particle makes cloud-connected microcontrollers, that are powered by Device OS, a proprietary (closed-source) operating system. Cloud is just a funny name for someone else’s server. That puts consumers at the mercy of companies that have a more direct relationship with Particle. Particle may make it easy for a startup to prototype a product. It might make it easy for that same startup to scale up production, Unfortunately, neither of those are particularly important for consumers.

Some Choices

The main reason for writing this post is not to complain about a manufacturer/ vendor, but a way of life where needs are met exclusively by shopping, and where buying something leads to unintended consequences. In this particular case it is the loss of control.

Unfortunately, not shopping is not an option. Twenty-first century people cannot make everything from scratch. At some point a component has to be bought. The size of that component may vary – It may be a property with multiple buildings, a house, a garage, a garage door, a garage door opener, a microprocessor or a … Somewhere, one has to stop, and buy something.

R. Martin lost control at the garage door opener level, and it is here that a solution can be offered. There are several ways to make a garage door opener, including some that make excellent projects for an adult (including teacher/ parent/ grand-parent) and child (12+) to work on together, at school, home or community workshop.

Raspberry Pi is closed-source, but its products offer high value for their relatively low price. Normally, I have a reluctance to use closed-source products. For example, I use Linux, rather than Windows. In this particular case, I want to show that closed-source may be the appropriate choice, because the end-user retains control.

There are several different models of Raspberry Pi as well as several different generations. These instructions are general, and may be adapted to the specific variant used. Part of my crusade is to encourage people to use compute modules, rather than Model A, Model B or Zero varieties. The reason is simple – in most projects not all of the components supplied are needed. Compute module 3+ was launched 2019-01 and will be available until at least 2026. In terms of computing, future proofing does not get any better.

At the Inderøy Tekno-workshop, one of the projects that will be worked on will be a garage opener. Currently, the idea is to combine two different projects, using the following documentation:

https://github.com/andrewshilliday/garage-door-controller

https://github.com/sp1k3ster/home-assistant/pull/1

This weblog post was originally considerably larger when it was originally written: 2019-02-03 with a time stamp of 17:28:20.