Arduino Revisited

I started to write this post on 2017 November 22. The original title was MKR: Arduino Revisited. Two hundred and fifty days should be long enough to write any post, but this one has defied me.

An Arduino MKR 1000, the most basic board in this new Arduino family. In November, I expected to be buying several of them for a home automation project. (Photo: Arduino.cc)

Soon, it will be ten years since I started using and teaching Arduino. In November, I was looking forward to the new series of Arduinos, the MKR (Maker) series, a small form factor microcomputer with a number of outputs and headers (electrical pin connectors), a battery management system and USB, that could be useful for building home automation room control units, small enough to fit inside almost anything, such as a light switch box inside a wall.

Each room in our house would have its own personal microprocessor. Some rooms, such as the workshop might have several. Each microprocessor would then connects to multiple sensors that would measure/ detect things like temperature, humidity, light and motion inside that room. Analogue data would be converted inside the microprocessor to digital data, then sent onwards to a central controller, located somewhere in the house. If specific conditions were met, the controller will initiate an action, sending a message to either the same or another microprocessor, and ordering it to activate an activator (as they are called) such as opening a vent or turning on a light. These microprocessors would be fried if they received power exceeding a few milliwatts, so they use relays to indirectly switch on components that can consume up to 2 500 Watts.

There are just two problems with microprocessors like this. First, they should not use wireless communication (including but not limited to WiFi, Bluetooth or radio), but should be wired. Second, they should not use batteries or mains current as a power source.

Both of these problems can be resolved using Ethernet, which is network cabling technology, initially developed at Xerox PARC (Palo Alto Research Center) between 1973 and 1974. For most home automation circuits there is no great urgency to turn on or off an activator. A millisecond or two will not make much of a difference, so there is no need for gigabit per second Ethernet.  Megabit per second is good enough. Batteries and mains current can be eliminated by sending electrical power through the Ethernet cable.

At the moment, I have lost my enthusiasm for Arduino MKR boards, and am looking for a replacement. Why?  It all has to do with open-source, or lack thereof, if not in practice, at least in spirit.

Arduino, despite its open-source claims, has not always been transparent.  The following is a summary of some of the Arduino disputes, taken from: https://en.wikipedia.org/wiki/Arduino

In 2008, the five cofounders of the Arduino project created a company, Arduino LLC to hold the trademarks associated with Arduino. They transfered ownership of the Arduino brand to the newly formed company. The same year one of the five cofounders, Gianluca Martino through his company, Smart Projects, registered the Arduino trademark in Italy and kept this a secret from the other cofounders for about two years. Later, negotiations with Gianluca to bring the trademark under control of the original Arduino company failed. In 2014, Smart Projects began refusing to pay royalties. It then renamed itself Arduino SRL and created the website arduino.org, copying the graphics and layout of the original arduino.cc. In January 2015, Arduino LLC filed a lawsuit against Arduino SRL. In May 2015, Arduino LLC created the worldwide trademark Genuino, used as brand name outside the United States. In 2016, Arduino LLC and Arduino SRL merged into Arduino AG. In 2017 BCMI, founded by four of the five original founders (with the initials representing those of their respective last names) acquired Arduino AG and all the Arduino trademarks.

In July 2017, Massimo Banzi announced that the Arduino Foundation would be “a new beginning for Arduino. ”  That same month, former CEO Federico Musto allegedly removed many open source licenses, schematics and code from the Arduino website.  See: https://techcrunch.com/2017/07/26/ceo-controversy-mars-arduinos-open-future/

Currently, I have been unable to find any further information about an Arduino foundation, and any new start. Instead, I find in May 2018, Arduino announcing the sale of engineering kits to encourage the use of Arduino at university level.  Unfortunately, the kits require the use of Mathlab and Simulink, closed-source and expensive software packages from MathWorks, despite open-source alternatives, such as R.  Admittedly, the kits contain a one year licence for the software. See: https://blog.arduino.cc/2018/05/12/arduino-goes-to-college-with-the-new-arduino-engineering-kit/

Back in 2013, Massimo Banzi was more enthusiastic about open-source hardware, as he explained in an Arstechnica interview. See: https://arstechnica.com/information-technology/2013/10/arduino-creator-explains-why-open-source-matters-in-hardware-too/

Here are some quotes from the article:  As an open source electronic prototyping platform,  Arduino releases all of its hardware design files under a Creative Commons license, and the software needed to run Arduino systems is released under an open source software license.  Why is openness important in hardware? Because open hardware platforms become the platform where people start to develop their own products. For us, it’s important that people can prototype on the BeagleBone [a similar product] or the Arduino, and if they decide to make a product out of it, they can go and buy the processors and use our design as a starting point and make their own product out of it. … With the Raspberry Pi you cannot even buy the processor….  Raspberry Pi is a PC designed for people to learn how to program. But we [Arduino] are a completely different philosophy. We believe in a full platform, so when we produce a piece of hardware, we also produce documentation and a development environment that fits all together with hardware.

Even the Arduino website has changed its language. Before it might have distinguished between an original board and a clone, emphasizing the open source nature of boards. Now this nuance is missing entirely, it states:  “If you are wondering if your Arduino board is authentic you can learn how to spot a counterfeit board here [with link].” See: https://www.arduino.cc/en/Main/Products

While I live in hope that Arduino will reform, I don’t want to financially support it any more. What I want is an open-source board with its own Ethernet connectivity. They did have one, but retired it without a direct replacement. Currently, this feature seems to be unavailable from Arduino. They are undoubtedly too busy developing boards that connect an assortment of proprietary communications technology.

The Arduino Ethernet with PoE (Power over Ethernet), an almost ideal solution, except that it has been retired. (Photo: Arduino.cc)

I have considered using other boards, even Italian ones, such as the Fishino, but they also lack Ethernet connectivity: https://www.fishino.it/home.html

The board that seems to offer the most promise comes from DF Robot: https://www.dfrobot.com/product-1286.html

DF Robot W5500 Board with PoE, available at a price of USD 45 or less. (Photo: DF Robot)

Their W5500 Ethernet with PoE board is based on the ATmega32u4 in an Arduino Leonardo package with a W5500 Ethernet chip . The latter is TCP/IP hardwired for embedded systems, although not gigabit enabled. The board is compatible with most Arduino shields and sensors. Version 2.0 has an upgraded PoE power regulation circuit, which makes PoE power more reliable.

The main difference between a Uno and a Leonardo package is that the latter uses a more sophisticated chip, an ATmega32U4 chip.  It shares the same form factor and I/O placement (analog, PWM, I2C pins in the same place) as the Uno, which means that it can use the same shields, which are additional boards that sit on top of the Arduino, and connect directly to the pins below.

A Seeed relay shield, showing the pins that allow it to be directly connected to most Arduino boards. Yes, Seeed is spelled with 3 e’s. (Photo: Seeedstudio.com)

A relay shield provides several, typically four,  switches that can control high current loads. They can be wired as NO (Normally Open) or NC (Normally Closed) circuits. These are important, because most electrical equipment cannot be controlled directly by a microprocessor’s pins. Relays are useful for switching AC appliances such as fans, lights, motors as well as high current DC solenoids.

 

DF Robots, an alternative to Arduino. (Illustration: DF Robots)

The fact that the DF Robots W5500 board is open-source, means that everyone is permitted to make their own boards from scratch, if they should want. Most of the time, this is not an economic choice.