ESP32-EVB now get much better

ESP32-EVBESP32-EVB revision A was made quick and has too many errors 🙂 some were due to the non very clear documentation, like that we assumed that all ports could have internal pull-ups but  when we try to write the software we found that the GPIOs we used for the buttons has no such. Other were done by our engineer negligence.

We had small 100 pcs series from Revision A, but after all issues we encounter just decided to trash it and just move forward to revision B.

Now in Revision B all interfaces are tested and confirmed to work fine 🙂

What we keep:

  1. Two relays 250VAC/10A
  2. LiPo charger which allow ESP32 to work without external power supply
  3. Reset and User button
  4. micro SD card
  5. UEXT connector to add temperature, humidity, etc sensors
  6. GPIO with all signals available on 0.1″ proto friendly step connector

What we add:

  1. USB connector now is also used for automatic programming of ESP32 so no need for external serial cable, with DTR and RTS bootloader mode is entering automatically
  2. Ethernet now is correctly wired and works 🙂
  3. We were surprised to read ESP32 has CAN and we try and it works great, so in the new revision we add CAN driver
  4. We add Infrared transmitter and receiver, so now you can control all your home appliances with IR control like TVs, VCRs, Air conditioners, and everything else with IR control

What we removed:

  1. second button, with all above peripherals the ESP32-WROOM-32 module resources are gone, there is no single GPIO unused left

Revision B schematic can be reviewed here . The PCB is now routing.

Color TFT 2.8″ LCD 320×240 pixel display board with UEXT compatible to ESP32-EVB is also coming soon. – Home cloud server based on A20-OLinuXino-LIME on Kickstarter

695e2a57a3b7a3d480c4ad9939de2544_original is new Kickstarter project which use A20-OLinuXino-LIME to create your own home server to keep your files safe and available on the net.


People who use a cloud app these days have to store their data on servers of the companies that provide the app. Without knowing what will happen to your data and who else has access to it, you are asked to trust those companies – which means you are losing control over your data and privacy!

With you know exactly where your files are – on your own server where only you have the access rights.


A20-OLinuXino-LIME server with 320GB HDD works on LiPo battery over 6 hours


We have server rack with several x86 servers running Linux with our work file repositories, the ERP and etc.

They are quite power hungry as lot of HDDs are connected to them in RAID mirrors to prevent data loss.

We are located in industrial area and power supply glitches are not uncommon, specially during the winter.

To keep the servers alive during power downs, we had to buy expensive 2000 EUR UPS, which actually keep them no more than 20-30 minutes up when power is down, so basically just to allow you 10-15 minutes to finish your work and then to shut them down properly before the battery is drained.

This UPS has lead-acid batteries inside which has to be changed every 3 years and cost almost as much as the UPS itself.

Initially we kept our all Olinuxino Linux images on Gdrive, but there were few issues with this, the images grew to many Gigabytes, and Gdrive start to restrict the access to the files after some limits were reach, so we decided to host these images by us on torrent. We decided to make separate server for this due to security reasons, we just wanted to keep our local network private and to allow external access only to this isolated server which we access also from outside like other users.

To keep it as low power as possible we setup one A20-LIME + HDD320GB + 6600mAh LiPo battery. This configuration works well several years already.

Yesterday our power supply provider EVN warned us that they will change mains high voltage cables in our area and Olimex will have power supply cut from 9.00 to 15.00, so we had to take day off.

We came today and sure we found all x86 servers down, but to our surprise the LIME with the HDD was working fine all these 6 hours of power blackout and didn’t shut down!

We know that with 6600mAh battery the LIME will last at least 10 hours as it uses 1.5-2W, but the HDD is rated 5W (5V/1A), so we were expecting less time stand alone operation.

It was good surprise to see that actual consumption is less, maybe the HDD enters stand-by mode when not used?

ESP8266 Building Hello World Blink LED and Simple Web Server to drive the Relay and check Button status


ESP8266-EVB is small 57×50 mm board with Relay and Button which are connected to Internet via ESP8266 WIFI module.

ESP8266 has inside Xtensa106 processor and RF front end circuit, you do not need separate processor to drive the relay and read the button as ESP8266 can be programmed with custom code.

Here we will explain how to setup your tools and make your first project.

First you need to install your tools. It’s simple, just follow the instructions here:

There are just few small mistakes as some commands will require SUDO before them and some paths are not exactly same, but you have to follow the steps and once you get error to read and correct the problem.

Here is what we do on Ubuntu 14.04 LTE 64-bit:

sudo apt-get install git autoconf build-essential gperf bison flex texinfo libtool libncurses5-dev wget gawk libc6-dev-amd64 python-serial libexpat-dev
sudo mkdir /opt/Espressif
sudo chown $username /opt/Espressif/
sudo cd /opt/Espressif
sudo git clone -b lx106 git:// 
cd crosstool-NG
./bootstrap && ./configure --prefix=`pwd` && make && make install
./ct-ng xtensa-lx106-elf
./ct-ng build
cd /opt/Espressif
mkdir ESP8266_SDK
wget -O
wget -O
mv esp_iot_sdk_v0.9.3 ESP8266_SDK
mv License ESP8266_SDK/esp_iot_sdk_v0.9.3
cd /opt/Espressif/ESP8266_SDK/esp_iot_sdk_v0.9.3
sed -i -e 's/xt-ar/xtensa-lx106-elf-ar/' -e 's/xt-xcc/xtensa-lx106-elf-gcc/' -e 's/xt-objcopy/xtensa-lx106-elf-objcopy/' Makefile
mv examples/IoT_Demo .
cd /opt/Espressif/ESP8266_SDK/esp_iot_sdk_v0.9.3
wget -O lib/libc.a
wget -O lib/libhal.a
wget -O include.tgz
tar -xvzf include.tgz
cd /opt/Espressif
wget -O esptool_0.0.2-1_i386.deb
dpkg -i esptool_0.0.2-1_i386.deb
cd /opt/Espressif
git clone esptool-py
ln -s $PWD/esptool-py/ crosstool-NG/builds/xtensa-lx106-elf/bin/

For less experienced users, we are preparing VirtualBox disk image which to run on Virtual machine on any OS like Linux, MAC OS, Windows, and everything inside is pre-configured and ready to use, hopefully we will upload this image on ESP8266-EVB web page tomorrow as we didn’t manage to complete it today.

Once you have setup the Tools you can download our examples from GitHub:

cd /opt/Espressif
git clone
cd ESP8266-EVB-blinkLED

the project will be compiled and you will see something like this:

AR build/app_app.a
LD build/app.out
FW firmware/0x00000.bin
FW firmware/0x40000.bin

congratulations you made your first code!

now we hae to load it to ESP8266-EVB

you need: ESP8266-EVB, 5V adapter like SY0605E, USB-Serial-Cable-F
connect the USB-SERIAL-CABLE-F to ESP8266-EVB UEXT connector as follows:

  • blue wire to pin#2
  • green wire to pin#3
  • red wire to pin#4

plug the USB cable to your computer USB connector and check which serial port it connects by typing:


your computer should display something like:

Bus 004 Device 005: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

if you type:

ls /dev/tty*

you will see:

.... /dev/ttyUSB0 ....

If the USB device is with different name you have to update it in the makefile.

After the code is compiled with no errors you can write it to ESP8266 by following these steps:

  1.  first you have to press button and hold it and to apply power 5V, ESP8266 will enter bootloader mode
  2. type ‘sudo make flash’ and wait until code is loaded:
sudo make flash
/opt/Espressif/esptool-py/ --port /dev/ttyUSB0 write_flash 0x00000 firmware/0x00000.bin 0x40000 firmware/0x40000.bin
Erasing flash...
Writing at 0x00007300... (100 %)
Erasing flash...
Writing at 0x00061200... (100 %)

now Green LED must start blinking!

So far so good, you just made blinking LED on ESP8266, now let’s make something more complicated – to run Embedded web server on ESP8266, go to esphttpd project directory:

cd /opt/Espressif/ESP8266/esphttpd

then upload the code

sudo make flash

then upload web pages with:

sudo make htmlflash

Now ESP8266 firmware is uploaded and ESP8266 create Embedded server.

Scan for WIFI which name starts with ESP_XXXXXXX where XXXXXX is the ESP8266 MAC address and connect to this network then open browser at you will see this home page:


if you click on Relay button in the right side you will see new page:


On this page you can switch the on-board relay by clicking on ON and OFF button

If you click on the Button button in the right side you will see new page:


If you click on Start scan the web page will start to refresh each second and display the button status if you click on Stop scan the page will not refresh.

This is very basic demo code which can be used as template for your own projects!

PIC-WEB-BOX demo video



PIC-WEB-BOX is embedded PIC web server using Microchip’s Open Source TCP-IP stack with two buttons, RS232 interface, UEXT connector, two GPIO connectors, Status LED, 2GB Sd card for web storage. The power supply can be in range 9-30VDC and the low consumption makes this board perfect for controlling things over internet or to read sensors etc.

We setup video where you can see how easy is to program it and using the build-in bootloader you can change PIC-WEB-BOX firmware over the net via TFTP.

UART, I2C, SPI interfaces are available and the video demonstrate how you can drive 4.3″ LCD, Relays, measure temperature with thermocouple etc.

SD card with 2GB is build-in for web storage.

PIC-WEB-BOX is with small enclosure.


LPC2378-STK Tutorial: Implementation of PPP connection with TCPNet Stack


Ohmohm tip us this tutorial via Twitter. Its in Russian language but you can use Google translate.

LPC2378-STK in this case act as web server and allow other devices to connect to it via PPP.

Web Server with MOD-IO + MOD-ENC28J60


Doing embedded Web servers with microcontrollers is not new but Andrew Rossignol blogged recently that he made embedded Web Server with MOD-IO and MOD-ENC28J60, the catch is that MOD-IO have ATMega16 microcontrollers with only 16KB Flash and 1K RAM!

You can read more about his implementation on his blog

Good work!

Previous Older Entries