Flashing Firmware on ANAVI Miracle Controller with Arduino IDE

ANAVI Miracle Controller is a new entirely open source development board for addressable (digital) LED strips like NeoPixels, WS2812B, WS2811, etc. The major advantages are that you can control two LED strips simultaneously, add a mini OLED display and I2C sensor modules as peripherals. Recently we launched a crowdfunding campaign for it at Crowd Supply.

ANAVI Miracle Controller

ANAVI Miracle Controller is a development board and it is easy to flash a custom firmware on it. The process is very similar as for our other open source project like ANAVI Thermometer, ANAVI Gas Detector and ANAVI Light Controller.

This tutorial explains the exact steps how to compile and upload the default open source Arduino sketch for ANAVI Miracle Controller using Arduino IDE.

Required Hardware

  • ANAVI Miracle Controller
  • USB to UART debug cable
  • Addressable LED strip
  • Appropriate power supply at 5V or 12V depending on the type of LED strips
  • Personal computer with MS Widows, Mac OS or GNU/Linux distribution
  • Optionally a mini OLED display and other peripherals can be attached
ANAVI Miracle Developer kit

Download Source Code from GitHub

The default firmware of ANAVI Miracle Controller is an open source Arduino sketch. It relies on several popular open source Arduino libraries, including FastLED for controlling addressable LED strips. Clone or download the source code from GitHub.

Connecting UART to USB

Each ANAVI Miracle Controller kit includes a USB to UART debug cable with CP2102. Depending on the operating system on your PC you might be required to install additional drives. It works out of the box on GNU/Linux distributions. As open source enthusiasts we are using it on Ubuntu. Plug the USB in your computer and connect the 3 wires as follows:

ANAVI Miracle ControllerUSB to UART Debug Cable
RXTX
TXRX
GNDGND
Connecting USB to UART cable to ANAVI Miracle Controller

Download Arduino IDE

Download and install Arduino IDE on your personal computer. It is free and open source software available for MS Windows, Mac OS and GNU/Linux distributions.

Launch Arduino IDE. From File > Open load an Arduino sketch. It can be the default firmware or any other compatible with ANAVI Miracle Controller Arduino sketch.

Configure ESP8266 in Arduino IDE

Go to File > Preferences. Select Settings and in the field Additional Boards Manager URLs add: http://arduino.esp8266.com/stable/package_esp8266com_index.json

From Arduino IDE select Tools > Board: Generic ESP8266 Module. Set the flash size to 4M (1M SPIFFS). The upload speed is 115200. Adjust the exact port of USB to serial debug cable connected to your computer.

Install Libraries

Select Tools > Manage Libraries. The Arduino library manager will appear. Install all required libraries and their exact versions. Over the time, with the development of the default firmware, new libraries might be added. Please have a look at the README file to get the up to date list of all Arduino libraries on which the the default firmware depends on.

Compile & Upload

In Arduino IDE click Verify/Compile. If there are any errors, please double check that you have installed all required libraries and their exact versions. If the source code compiles successfully, please proceed to to the next step for flashing the firmware.

Set the jumper to 5V or 12V depending on the type of addressable LED strip and power supply. Mismatch of the voltage may lead to severe hardware failure.

In Arduino IDE click Upload. Set the jumper on ANAVI Miracle Controller to 5V or 12V depending on your power supply and type of LED strips. The power supply voltage must match the required voltage by the LED strips, for example 5V for NeoPixels and the WS2812B included in all kits. Press and hold the RESET button on ANAVI Miracle Controller. Without releasing the RESET button, plug the power supply in the barrel jack of ANAVI Miracle Controller.

Do NOT release the RESET button until you see in Arduino IDE that the upload is 100% completed!

ANAVI Miracle Controller with 2 WS2812B LED strips connected to a laptop using USB to UART cable

Improved Arduino Sketch for ANAVI Light Controller

How often do you get software or firmware updates for a 2-year-old device? Probably not very often. This is not the case for ANAVI Light Controller! We have a major update of its Arduino sketch for you.

ANAVI Light Controller

ANAVI Light Controller open source hardware WiFi device for controlling a 12V RGB LED strip. It was brought to life through a crowdfunding campaign at Crowd in 2018. Now is January 2020, so this makes it ~2 years old! A lot of things have changed during this time. ANAVI Light Controller has been certified by Open Source Hardware Association (OSHA) and it now on sale at our distributors: Crowd Supply, Pi Supply and neven.cz.

Terminals for connecting 12V RGB LED strip to ANAVI Light Controller

Recently we made a major improvements to the default firmware available as an Arduino sketch at GitHub:

  • Support Home Assistant automatic discovery over MQTT
  • Turn on LED D1 on ANAVI Light Controller if the device is not connected to local WiFi network and needs initial configuration
  • Wait for a few seconds while LED D1 is blinking immediately after turning on ANAVI Light Controller to allow reset by keeping SW1 pressed
  • Append the last 5 characters of the machine ID to the WiFi Access Point (AP) to simplify the identification of the ANAVI Light Controller during the initial setup
  • Support MQTT messages with large payload for reporting back the current state of the RGB LED strips on topic stat/dev-id/color
  • Add DEBUG macros, disabled by default, if enabled additional debug information will be printed in the serial monitor
Changing colors of 12V RGB LED strip through Home Assistant using ANAVI Light Controller

You can either compile and upload the new version through Arduino IDE or just grab the binary from GitHub and flash it on your ANAVI Light Controller.

To learn more how ANAVI Light Controller works out the box with the popular open source platform Home Assistant read our previous article. It reveals the exact steps the setup MQTT Broker in Home Assistant and after that to automatically discover ANAVI Light Controller.

ANAVI Light Controller is suitable for low-cost 12V analog (non-addressable) LED strips. If you need a WiFi development board for controlling digital (addressable) LED strips at 5V or 12V have a look at our other open source product ANAVI Miracle Controller.

Hey, Google Turn On The Christmas Tree

Happy New Year! May the open source be with you!

The Christmas tree is among the most popular symbols of the holiday season. Decorating it is always fun, especially for a maker.

Andrey Kozhevnikov a.k.a. CODeRUS, a talented software engineer and a very skilled maker, used ANAVI Miracle Controller and addressable (digital) LED strips to decorate his Christmas tree and to control it with voice commands through Google Assistant and Home Assistant. Home Assistant is a popular open source platform for home automation. Google Assistant is an artificial intelligence-powered virtual assistant that recognizes speech and voice commands. CODeRUS shared a short video in twitter with the amazing result!

ANAVI Miracle Controller

ANAVI Miracle Controller is an ESP8266-powered, open source, Wi-Fi development board to control two 5 V and or 12 V LED strips.  It supports popular LEDs including Neopixel, WS2811, WS2812B, TM1809, etc. A crowdfunding campaign is running right now at Crowd Supply to fund mass production of the board.

As a small gift for the leading contributor to the Arduino sketch for another of our open source projects, ANAVI Light Controller, we sent one of the first stable prototypes of ANAVI Miracle Controller to CODeRUS. We were sure that he will make something interesting with it. His amazing creativity is always inspiring!

CODeRUS Новогодняя ёлка

CODeRUS is also well known in the open source communities because of his numerous contributions over the years to Maemo, MeeGo and Sailfish OS. These names ring a bell in any die-hard open source fan as they were/are brands of GNU/Linux distributions for smartphones, most notably Nokia models like N900 (Maemo) and N9 (MeeGo Harmattan) made a decade ago.

Adafruit NeoPixels and Home Assistant

Adafruit NeoPixels are rings, strips and other printed circuit boards with addressable RGB LED strips. It this video tutorial you will learn how to use NeoPixels with the popular open source home automation platform Home Assistant without any coding!

Yes, that’s correct! Let’s get started with Adafruit NeoPixel Ring and NeoPixel Stick in Home Assistant without any coding, just a few simple configurations.

The key for this tutorial is ANAVI Miracle Controller. An ESP8266-powered, open source, Wi-Fi dev board to control two 5V or two 12V LED strips. It supports popular LEDs including Neopixel, WS2811, WS2812B, TM1809, etc. Furthermore ANAVI Miracle Controller has dedicated slots for mini OLED display and up to 3 additional sensor modules. Right now we are running a crowdfunding campaign at Crowd Supply to fund mass production of ANAVI Miracle Controller.

Adafruit NeoPixels work at 5V so set the jumper on ANAVI Miracle Controller to 5V and use an appropriate 5V power supply.

Required Hardware

  • Adafruit NeoPixel Ring
  • Adafruit NeoPixel Stick
  • 6 male to male jumper wires
  • 5V DC power supply
  • ANAVI Miracle Controller
  • Personal computer, for example Raspberry Pi

Step By Step Installation

  • Install Home Assistant through Hass.io on the personal computer (it is recommended to use Raspberry Pi 3 or 4).
  • Install Mosquitto MQTT broker from Hass.io add-on store, configure username and password as well as Access Control Lists (ACL).
  • From Configure > Integrations add new MQTT integration and click Enable discovery. It is mandatory to enable discovery!
  • Solder male to male jumper wires to Adafruit NeoPixel Ring and NeoPixel Stick.
  • Connect NeoPixel Stick DIN to LED1, GND to GND and 5VDC to VOUT on ANAVI Miracle Controller. Connect NeoPixel Ring Data Input to LED2, GND to GND and 5V DC Power to VOUT on ANAVI Miracle Controller.
  • Set the jumper of ANAVI Miracle Controller to 5V and use appropriate power supply to turn on the board.
  • Configure ANAVI Miracle Controller to connect to your local WiFi network, set LED type to NEOPIXEL, number of LEDs for LED1 to 8 and number of LEDs for LED2 to 12.
  • In Home Assistant web interface, a couple of new devices will be automatically added under the names ANAVI Miracle Controller LED1 and ANAVI Miracle Controller LED2. Set different effects and colors for each Adafruit NeoPixels.

How Does It Work?

ANAVI Miracle Controller combines open source hardware with free and open source software. It has been certified by the Open Source Hardware Association under UID BG000050. After initial configuration the default firmware of ANAVI Miracle Controller, available as an Arduino sketch in GitHub, connects to the WiFi network and the MQTT broker. It sends a retained MQTT message with JSON payload containing description of the device. Home Assistant, thanks to the MQTT integration with enabled discovery, automatically receives the message and recognizes the device as MQTT Light component. As a result out of the box ANAVI Miracle Controller appears in the Home Assistant GUI.

Control 12V RGB LED Strip from Home Assistant

Home Assistant is a popular open source platform for home automation. It is written in Python programming language and runs perfectly on Raspberry Pi 3 B/B+ or 4 B. Now, with the latest updates of the Arduino sketch for ANAVI Light Controller it is super easy to control 12V RGB LED strip from Home Assistant through your smartphone, tablet or personal computer.

Have a look at the video and follow the steps below to configure ANAVI Light Controller and change colors of 12V RGB LED strips from Home Assistant.

What Is Required?

The following hardware is required:

How to Install?

  • Install Mosquitto from Hass.io add-on store. Set username and password for login to Mosquitto. Set active Access Control Lists (ACL) for the username and launch Mosquitto (it is recommended to install SSH server prior this step).
  • Add MQTT integration in Home Assistant with enabled discovery (from Configuration > Integrations)
  • Attach the 12V RGB LED strip to ANAVI Light Controller
  • Ensure that ANAVI Light Controller has been flashed the latest version of the default Arduino sketch. If it is not, compile it and after that upload it following this video guide.
  • Turn on ANAVI Light Controller, connect to its WiFi Access Point (AP) and configure it through the captive portal. You must provide your WiFi credentials, MQTT server, username and password. After that ANAVI Light Controller will be automatically discovered by Home Assistant over MQTT.
  • Through Home Assistant change colors or effects of ANAVI Light Controller.

How Does It Work?

ANAVI Light Controller is powered by the ESP8266 microcontroller with WiFi. The default Arduino sketch works with the machine to machine protocol MQTT and implements Home Assistant discovery of MQTT Light component.

As soon as ANAVI Light Controller boots, after it has been configured, it connects to the WiFi network, after that to the MQTT broker and sends retained MQTT message with JSON payload that describes the device. Each ANAVI Light Controller has a unique MD5 ID based on the chip ID of ESP8266. The MQTT integration in Home Assistant discovers ANAVI Light Controller based on the received MQTT message. Thanks to the data in the JSON payload Home Assistant automatically configures the device as MQTT Light.

Home Assistant & 12V RGB LED strip attached to ANAVI Light Controller

Home Assistant discovery is a user-friendly way for quickly adding new Internet of Things to the platform. Combined with MQTT and the default firmware for ANAVI Light Controller the process is straight-forward and anyone can do it in a few minutes.

ANAVI Miracle Controller

ANAVI Miracle Controller is an open source hardware Wi-Fi development board powered by the ESP8266 and designed to control two 5 V or 12 V addressable LED strips simultaneously.

ANAVI Miracle Controller supports popular addressable LEDs including Neopixel, WS2811, WS2812B, TM1809, etc. It also has a dedicated slot for a mini OLED I²C display and slots for up to three additional I²C sensor modules. The default firmware is available at GitHub as an Arduino sketch implementing Home Assistant MQTT Light component.

Back in 2018 we created ANAVI Light Controller for low-cost 12V RGB LED strips. Inspired by a lot of people asking for open source hardware dev board for addressable LEDs strips we created ANAVI Miracle Controller.

Last week we launched a crowdfunding campaign for ANAVI Miracle Controller at Crowd Supply. Learn all the details here. We are ready for manufacturing and now we need your support. We hope you help us bring this entirely open source project to life!

Intelligent Temp-Based Ducted A/C Zone Control with ANAVI Thermoter

Recently Mike shared his an awesome home automation project with OpenHAB2 and ANAVI Thermometer.

Mike’s 3D printed case for ANAVI Thermomter

ANAVI Thermometer is an ESP8266-powered, open source, Wi-Fi dev board with temperature and humidity sensors. It combines free and open source software with open source hardware. ANAVI Thermometer was brought to life thanks to a very successful crowdfunding campaign at Crowd Supply. Nowadays ANAVI Thermometer is available on sale at Crowd Supply as well as our other distributors.

Several ANAVI Thermometers in OpenHAB 2

The goal of Mike’s project is to provide smart control for four zone motors in ducted A/C system. Sonoff four-gang ITEAD switches manage the zone motors and several ANAVI Thermometers monitor the temperature and humidity. On the software side all these devices are managed through the popular open source home automation system OpenHAB 2.

Furthermore Mike designed a custom case for ANAVI Thermometer which is appropriate for 3D printing. He was kind enough to shared the STL files with the rest of the community in thingiverse.

If you have a 3D printer around, just grab the STL files and print this nice looking case for your ANAVI Thermometer!

Sunrise Simulator Alarm Clock with ANAVI Light Controller

ANAVI Light Controller is a certified open source hardware WiFi dev board for controlling a 12 V RGB LED strip. Furthermore it has 3 slots for attaching I2C devices, for example sensors for temperature, humidity barometric pressure, light, mini OLED display, etc.

ANAVI Light Controller was the first board that we releases with ESP8266 microcontroller. We started manufacturing after a successful crowdfunding campaign at Crowd Supply. Now, with Crowd Supply we are running a contest in our open source community. Anyone who shares his experience with our products wins a $25 Crowd Supply credit and enters a random prize drawing for more of our cool open source hardware!

Jonathan Lister entered the contest and shared his amazing project for sunrise simulator alarm clock with ANAVI Light Controller. He wrote an open source command-line JAVA applications that runs on his Raspberry Pi and send commands to ANAVI Light Controller over the machine to machine protocol MQTT.

The hardware required for Jonathan’s project includes a Raspberry Pi, ANAVI Light Controller, 12V RGB LED strip, appropriate power supplyies and appropriate lamp. Jonathan used IKEA Holmo floor standing lamp and placed RGB LED strips around a suitable tube inside it. The software requirements are JAVA 8 or above as well as an MQTT broker, for example the free and open source mosquitto.

The end result looks gorgeous! Furthermore, Jonathan has shared his source code and a few photos (also used in this article) in GitHub under Apache License 2.0 license. Don’t hesitate and give a star to the project in GitHub!

If you have also done an awesome project with any of our open source hardware boards at Crowd Supply, now is the best time to share your experience and enter the contest!

Share Your Experience to Win!

Together with Crowd Supply we successfully completed several crowd funding campaigns over the past two years. Thanks to these efforts people all over the world are using our open source hardware developer boards and kits for their awesome projects.

Do you have a cool project with any of our products? Would you like to share your story?

No matter what you did, Crowd Supply and we would like to learn more. Send a Field Report of 100 words or so along with any supplemental pictures or other resources. If it is suitable, Crowd Supply will publish it as an update and reward you with a $25 Crowd Supply credit! Furthermore, all publishable entries received before Nov. 15 will be entered into a random prize drawing for more cool ANAVI gadgets:

  • 1st prize: ANAVI Miracle Controller and ANAVI Light Controller
  • 2nd prize: ANAVI Infrared pHAT and ANAVI Play pHAT
  • 3rd prize: ANAVI Thermometer

Please submit your entries here. May the open source be with you!

Connecting ANAVI Gas Detector to Your Wi-Fi

ANAVI Gas Detector is an ESP8266-powered, open source, Wi-Fi dev board for monitoring air quality and detecting dangerous gases. In the previous blog post I have shared the exact steps how to assemble it. Now I will cover the straight-forward process for connecting it to your Wi-Fi network. It is very simple and takes less than a couple of minutes.

Step 1: Turn on ANAVI Gas Detector

When you turn on ANAVI Gas Detector for the first time, it will create its own Wi-Fi Access Point with the name ANAVI Gas Detector followed by a unique five character ID.

These characters are actually the end of the MD5 hash generated from the unique chip ID of the ESP8266 module. To avoid confusion, the same five characters are showed on the mini OLED display included in all kits of ANAVI Gas Detector.

Connect to the Wi-Fi access point created by ANAVI Gas Detector from your smartphone, tablet or personal computer.

Step 2: Captive Portal

Once you have connected to the Wi-Fi access point created by ANAVI Gas Detector, a captive portal will pop-up and guide you to the next steps. Click Configure WiFi as shown in the video.

Step 3: Configure

Select your local Wi-Fi network, enter a password (if it is not open), type in MQTT broker address, port, username and password.

By default, just for demo purposes, ANAVI Gas Detector connects to iot.eclipse.org with port 1883 and no username/password. This is a public MQTT broker just for demonstrations. It is highly recommended to install open source MQTT broker locally and connect ANAVI Gas Detector to it.

Optionally, you can also select a temperature scale. By default it is set to Celsius. Of course, Fahrenheit is also supported. To switch just type in fahrenheit.

Finally, when ready, just click Save. ANAVI Gas Detector will reboot and try to connect first to your Wi-Fi network and after that to the configured MQTT broker. If it experience problems connecting you will be asked to do the configuration again.

That’s it! The whole process requires just these three easy steps and takes less than a couple of minutes. No need to download & install any apps on your smartphone. If you don’t have a smartphone – you can do the configuration from your personal computer or a tablet.

One More Thing…

Once ANAVI Gas Detector is up and running, if you need to change the configurations, just press and hold the RESET button on the board for 10 seconds. Keep the RESET button pressed until the D1 indication LED on the board is blinking.

This way you will wipe out all configuration, reset ANAVI Gas Detector to factory default and you will be asked to connect it again to your Wi-Fi.

For more details please also read our update at Crowd Supply and watch the short video.