The ESP8266 in Commercial Products!
Image source: Chaozlabs

The ESP8266 in Commercial Products!

The ESP8266 is a cheap WiFi SoC that is getting a growing interest within Makers and many people have asked them-self if this extremely low price (is sold at 5$ for a single piece) is hitting the market of cheap products.

Andreas looking inside an RGBWW (5 channels, 3 for RGB and 2 for White) controller has found an ESP8266 and even the connector to program it with the Arduino cores.

This device sells at 10$ for a single piece and can be used with any custom Arduino sketch, like this one below

/**************************************************************************
    Souliss - RGB LED Strip Hack
    
    Control and RGB LED or a Strip using the PWM, fade in/out and flash 
    effects are available as the Android interface or openHAB.
 
    Run this code on one of the following boards:
      - RGBW Led Strip Driver based on ESP8266
    
***************************************************************************/

// Configure the framework
#include "bconf/MCU_ESP8266.h"              // Load the code directly on the ESP8266
#include "conf/Gateway.h"                   // The main node is the Gateway, we have just one node

// **** Define the WiFi name and password ****
#define WIFICONF_INSKETCH
#define WiFi_SSID               "mywifi"
#define WiFi_Password           "mypassword"    

// Include framework code and libraries
#include <ESP8266WiFi.h>
#include <EEPROM.h>
#include "Souliss.h"

#define LEDCONTROL        0
#define LEDRED            1
#define LEDGREEN          2
#define LEDBLUE           3
#define	LEDSTRIP1         4
#define LEDWHITE1         5
#define LEDSTRIP2         6
#define LEDWHITE2         7

void setup()
{   
    Initialize();

	  analogWriteFreq(500);
	  analogWriteRange(255);

    // Get the IP address from DHCP
    GetIPAddress();                          
    SetAsGateway(myvNet_dhcp);                  // Set this node as gateway for SoulissApp                        
                
    Set_LED_Strip(LEDCONTROL);                  // Set a logic to control a LED strip
    Set_DimmableLight(LEDSTRIP1);
    Set_DimmableLight(LEDSTRIP2);
   
    // Define inputs, outputs pins
    pinMode(12, OUTPUT);                 // Power the LED
    pinMode(13, OUTPUT);                 // Power the LED
    pinMode(15, OUTPUT);                 // Power the LED    
    pinMode(14, OUTPUT);                 // Power the LED
    pinMode(4,  OUTPUT);                 // Power the LED 
}

void loop()
{ 
    // Here we start to play
    EXECUTEFAST() {                     
        UPDATEFAST();   

        // Execute the code every 1 time_base_fast      
        FAST_10ms() {
                    
            // Execute the logic that handle the LED
            Logic_LED_Strip(LEDCONTROL);
            Logic_DimmableLight(LEDSTRIP1);
            Logic_DimmableLight(LEDSTRIP2);

            // Use the output values to control the PWM
            analogWrite(15, mOutput(LEDRED);
            analogWrite(13, mOutput(LEDGREEN);
            analogWrite(12, mOutput(LEDBLUE);
            analogWrite(14, mOutput(LEDWHITE1);
            analogWrite(4, mOutput(LEDWHITE2));

            // Just process communication as fast as the logics
            ProcessCommunication();
        } 

        // Process the other Gateway stuffs
        FAST_GatewayComms();
          
    }
    EXECUTESLOW()
    {   
        UPDATESLOW();

        SLOW_10s()  {
        
            // The timer handle timed-on states
            Timer_LED_Strip(LEDCONTROL); 
            Timer_DimmableLight(LEDSTRIP1);
            Timer_DimmableLight(LEDSTRIP2);                       
        }     
    }       
} 

A couple of friends are just getting a sample to use it with Souliss, stay tuned!