Starting to do smart-home appliances with ESP-Mesh

ESPMesh reduces the loading of smart light devices on the router by forming a mesh with the smart light device.”

I’ve started months ago getting some smart lights for home and I’ve chosen Osram since it was about half the price than Phillips VUE. But the thing with this systems, though they work nice and with very little configuration, is that you need always a “Gateway”. A central point that receives signals and then send via Radio frequency to the lights what they have to do.

The Espressif ESP-Mesh took a different approach: Every device is a network member making a Mesh of interconnected devices. There is no gateway because there is no need for one.

There is also a very important point that is very interesting if you are a maker like me. It’s open source. That means you don’t need to buy a 60€ light to test it, you can just go to the ESP-Mesh github repository and download ESP-Mesh-Light example to compile it in one of your existing ESP32 Boards. Then you can get easily something like this working :

So what I’m working on the free time to take a rest from another pending projects is to take this PWM output and amplify it using a 74HC125 Quad Bus Buffer to power more than one led.

For those interested in reproducing this example:

https://github.com/espressif/esp-mdf/tree/master/examples/development_kit/light

Command lines to execute the compilation are only 2:

make menuconfig
make erase_flash flash

Compile this into your ESP32 and then download Espressif official Android App or if you are using I-phone / I-Pad just search for “ESP-Mesh”
The Mesh devices are configured using Bluetooth so keep in mind to have this enabled on your device. Instead of taking the “WiFi Manager” Approach, using an App, you have the benefit that you can just send the WiFi Credentials plus configuration directly to the ESP32.

Peggy version 2.0 Led panel receiving serial data

This is a modification we did to a Peggy2 led panel.

SAMSUNG DIGITAL CAMERA
JP1 y JP2 enable the “serial hack” (Map at the footer of this post)

The steps to follow if you want to try this:

  1. Install this program in the Peggy through USB using Arduino software. This little program is just a loop that renders in the led panel putting Peggy in “Serial mode”
  2. Make the electrical brige like shown in the picture
    Originally the bridge is from P2 to JP3 and JP4 so enabling Peggy2 to be programmed. To make this point clear, after changing the bridge you will not be able to install a program in Peggy, you will just send serial data through the USB
  3. Download processing and try out programs designed to send data to Peggy
    There are some examples at the end of this entry

This is the hardware modification explained by Carlos Fasani

Originally Peggy 2 has 2 bridges (0 ohm resistances) in jumpers JP3 and JP4.

With this connection the lines A_Sel and B_Sel of the multiplexor 74HC154 (U2) that controls rows 0 to 14 are connected to RXD (pin 2) and TXD (pin 3) of the microprocessor ATmega (U1).
But as this communication legs are needed to recevied serial data we take out JP3 and JP4 leaving the serial line desconected from 74HC154 (U2).
And then we bridge JP1 and JP2 connecting A_Sel and B_Sel from multiplexor 74HC154 (U2) to SDA (pin 27) and SCL (pin 28).

This way Peggy is ready to receive data and light the ROWS at the same time.

*UPDATE*
Windell, the Chief Scientist of Evil Mad Scientist replied to our email pointing out some important details that can be useful to make this even better:

 It  looks like you’ve run the two jumpers as follows:

  * First jumper: From the left side of JP2 to the right side of JP4, and
  * Second jumper: From the left side of JP1 to the right side of JP3.
 If I’m seeing this correctly, then your modification is exactly equivalent to putting the two jumpers in locations JP1 and JP2.  (See the attached screenshot for verification of how this is wired.)  And if so, you *should* still be able to reprogram the board, even after making the modification.

Thanks a lot for your clarification. I still didn’t tried this out since I forgot my soldier equipment but for sure it will work out.
Windell also pointed out that the latest Peggy 2 versions are already capable of receiving serial data and operating the full display at the same time, so long as you have the SER option selected on the board, and you are using our Peggy2Serial library and its RecvSerial.pde sketch
Peggy2serial

ATTACHED:
https://github.com/martinberlin/sketchbook
Electronic design of Peggy2 (pdf)

Jay’s projects. Jay was one of the first ones to send serial data and video to Peggy2

Modificación para hacer funcionar en serie la Peggy2

Esta es una modificación que hicimos para poder enviar datos seriales a través de USB al panel de Leds Peggy2.

SAMSUNG DIGITAL CAMERA
JP1 y JP2 habilitan el “serial hack” (Mirar plano adjunto en esta entrada)

Los pasos a seguir para poder hacer que esta modificación y enviar datos serie son:

  1. Instalar este programa en el Peggy a través del software de Arduino. Este programa la peggy en modo “Recibir datos por serie”
    Basicamente si le echan un vistazo a el codigo, es un loop eterno que recibe los datos serie y los imprime row por row en la placa de Leds. 
  2. Hacer el puente este como esta indicado en la foto (JP1 y JP2 a P2)
    Originalmente los puentes están desde P2 a JP3 y JP4 que son para tener una exacta compatibilidad con Peggy2. Para dejar en claro este punto, al hacer este cambio la placa Peggy queda fijada en modo de recepción serie con lo cual no se puede programar mas desde Arduino sino que le enviaremos datos por Processing.
  3. Descargar el processing.org y meter programas preparados para funcionar con la peggy en modo “serie”

ADJUNTOS:
https://github.com/martinberlin/sketchbook
Repositiorio en Github con ejemplos para probar esta modificación

Descargar Peggy2 plano electronico (pdf)

Jay’s projects. Jay fue uno de los primeros en enviar datos por serie a la Peggy2

Fe de erratas para Peggy2 mapa: Populate ONLY  (JP1 and JP2) OR (JP3 and JP4).  Select: JP1 and JP2 to enable the “serial hack” or Select: JP3 and JP4 for exact compatibility with Peggy 2.0.

Una cosa interesante que he descubierto intentando subir mis codigos es que WordPress.com no te permite hacer upload de cualquier fichero, con lo cual a partir de ahora subiré todos los codigos en Github.