RoadTest: The Internet of Holiday Lights RoadTest Plus
Author: migration.user
Creation date:
Evaluation Type: Independent Products
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: ESP8266 WiFi MCU, TI Launchpads.
What were the biggest problems encountered?: Low memory and storage on the Arduino/Atmega chips! They are starting to feel old :( Also, soldering the Infineon shield without proper headers.
Detailed Review:
Having nearly completed my IoT project, I feel I'm ready to write a review. I just need to add some features and finishing touches to the WebUI, a bit of code polishing and some little boxes to house all the stuff.
I loved having the opportunity to test all of these nice products. A big thanks to element14!
Let's start from the old-but-gold:
I already had an Uno, the SMD R2 revision. Compared to that, this newer version is better in many aspects, mostly aesthetic.
First of all, it uses a DIP chip, so it can be easily replaced if anything goes wrong.
Pin headers have been improved too: SCL/SDA pins have been added next to the AREF pin, and there are both silkscreen and adhesive pin markings (on the PCB and on the headers themselves).
The job of the Uno was to connect to Wi-Fi using an ESP8266, receive commands from the WebUi/Yún and to drive RGB LEDs or LED strips through the Infineon shield.
Here it is, connected to the ESP8266 chip and a RGB LED driver (power comes from a 12V adapter, connected to both the driver and the VIN pin).
Apart from some initial problems connecting to the ESP8266, the Arduino performed well and up to expectations. Configuration was a breeze and, as usual, the only thing I had to do to get it up and running was selecting the right board from the Arduino IDE.
While the hardware is not what I'd call new, the software behind it feels really solid, and Arduinos remain one of the most reliable prototyping platforms out there. However, there are a few quirks I noticed (jump to the Yún section to know more).
This was the product I was most excited about.
Configuration was very easy and Arduino-style. As soon as I connected the Yún to a USB port it created its own WiFi network which I had to join in order to configure it. I immediately upgraded its firmware to the latest version and the proceeded with the configuration so that it could connect automatically to my WiFi.
Connecting to the Linux chip was easy as well, via SSH. In a matter of seconds I installed Python and CherryPy, useful for running my WebUi. This really impressed me: in no more than 10 minutes since removing the Arduino from its box, I had it up and running. Neat!
I was also thrilled to find out that, being based on OpenWRT, it has a more advanced luci panel. You can see running processes and stats, configure startup apps and many other useful things:
The "Arduino side" hosted some code to read analog values from three potentiometers, a joystick and a switch, and to drive an I2C 0.96" LCD.
Sadly, this is the part where I encountered some issues, mostly related to the limitations of the chip.
Communication between the Arduino and the Linino (that's how they call it) side was easy and straightforward, using the Bridge library. Running python scripts was easy too, using the "runShellCommandAsynchronously" command.
For the I2C display, I decided to use the Adafruit SSD1306 + GFX library. However, the Arduino IDE said the atmega chip didn't have enough space. So I tried again using u8glib.
Still not enough memory, but nearly fixed it. The problem was with the font: changing it to a smaller, lower-quality one did the trick and I was able to compile and run my sketch.
Yet, I felt quite disappointed with this. The Arduino Yún is not a cheap board, and I don't think my project was particularly hard or heavy: its main processor should be updated, these Atmegas are starting to feel old. I understand they have to retain some backward-compatibility with shields and scripts but the competition is coming up with $5 32-bit MCUs with integrated Wi-Fi, such as the ESP8266, which in this project has been reduced to a mere WiFi-to-Serial converter.
Arduino has software and community support on its side: there are loads of libraries and example sketches and projects, but IMHO they should start improving their boards and lower their prices! I feel TI is doing the right thing with their Launchpads, they are insanely cheap and feature-filled.
In the end, I was able to build the controller on my Yún. Now I think I'll enclose it into a nice box and try to improve the LCD graphics, which are very basic. This picture is taken when selecting the starting color of a fade.
I liked this board. It's very well-built and feels professional. It looks like Infineon did a nice job building this shield.
It's based around a 32-bit ARM processor. Again, it feels funny that it's more powerful than the Arduino it's driven by!
There is pretty much no other documentation/examples for this board apart the ones on the Infineon site, which are well-made and more than enough. Configuring this wasn't really easy and I had to borrow a lot of the code from the Infineon examples. Communication with the Arduino happens through I2C.
There is a sort of "always-on fade" (or "walk"): if you set the board to a new color, it automatically fades from the previous color to the next one. Of course, the speed of the walk can be chosen with proper I2C commands. This is very smooth, and here's a picture from the quick start guide to see how it works:
Also, there is global brightness control, so that the select color can be dimmed down to a specific value (from 0 to 4095, nice range!). The dimming engine is exponential so dimming looks natural:
Even registers on the XMC microcontroller can be accessed directly from I2C, but that's a thing for more advanced users and I wasn't able to check that out.
The only thing I didn't like about this board was that there were no headers included, and I had to solder normal male headers. The result was that the board didn't fit on the Yún, and I had to do a very ugly thing: soldering jumper wires to the Infineon pads in order to connect the ESP8266 chip to them. Also, my headers somehow bent when removing the shield form the Arduino, ugh!
I also believe that a DC barrel jack would have been more useful, maybe connected to the VIN pin of the Arduino in order to power both the LEDs and the Arduino with the same power supply. I powered the Infineon shield through my ATX breakout board and it worked just fine.
I loved testing these products and I can't wait for another Roadtest that is suitable to me. I will continue to update this review and write blog posts about future uses of these products.
Thanks for reading!
Francesco