Implementation of OPC UA on ESP32-EVB

OPC Unified Architecture (OPC UA) is an open, implemented under GPL 2.0 license, machine to machine communication protocol for industrial automation developed by the OPC Foundation.

The OPC UA protocol specification consists of 14 documents for a total of 1250 pages. Due to this complexity, existing implementations are usually incomplete.

This is why we were puzzled to see on Twitter post by Selftronics that they made OPC UA server running on ESP32-EVB!

Here are the details of the implementation, the sources are at GitHub.

Fruit selection machine made with T2-OLinuXino-LIME2 and MOD-IO, runs OpenCV

As part of the OSIE project Nexedi SA, France built a small conveyor belt using entirely open-source products and technologies.

Their goal was to build a fruit selection machine, which would use AI (starting with OpenCV) to inspect fruits (and possibly many other small particles) and to do a physical separation (selection) of them.

Olimex have been chosen as a partner in the project because of the many of OSHW solutions which the company offers.

T2-OLinuXino-LIME2 and MOD-IO were used in the implementation.

Details for the project is available here.

New OSHW board with STM32F303 now can have CAN and USB working at same time, operates from -40+85C and with power supply from 4.2-40VDC

OLIMEXINO-STM32F3 is re-design of our popular OLIMEXINO-STM32 board.

What is new?

  • STM32F303RCT6TR is used which allow CAN and USB to work at the same time. The F1 Series of STM32 shared same buffer for both USB and CAN which leads to not be able to work with both CAN and USB at the same time. This is solved in F3 series
  • Increased amount of memory: 256KB Flash, 40KB RAM
  • Power supply is now from 4.2VDC up to 40VDC which allow OLIMEXINO-STM32F3 to work in Automotive applications without special power converters
  • Industrial temperature grade -40+85C
  • Real Time Clock backup battery holder for CR2032 Li battery
  • Lower cost

The price of OLIMEXINO-STM32F3 is EUR 14.95 for single unit and drops to EUR 11.96 for 50+ pcs order.

New Open Source Hardware IoT ESP32-S2 development boards with LiPo Battery Charger and consumption of only 30uA in deep sleep target handheld WiFi apps

ESP32-S2 is new SOC from Espressif which fills the gap between ESP32 and ESP8266.

It has the same memory model as ESP32 but has cut the Ethernet and Bluetooth parts, so only WiFi connection is possible – same as ESP8266, but offers more power, secure boot and encrypted firmware. Also support of decent SSL connection, something which lacks in ESP8266.

Pricewise now S2 is a bit lower cost than ESP32 and more expensive than ESP8266, but there is very strong competition in this niche coming from the new Bouffalo BL6XX chips, so my prediction is that to stay ahead Espressif will further lower the prices of ESP32-S2 to match ESP8266 very soon.

For comparison with ESP32 and ESP8266 the new ESP32-S2 has plenty of GPIOs up to 43!

Initially Espressif has announced that their ESP32-S2-WROVER modules will have as low as 2-4uA consumption, but later they increased this value to 20uA. Not quite well as their target but still very good achievement.

Our ESP32-S2-DevKit-Lipo is pin to pin compatible with ESP32-S2-Saola-1:

To keep compatibility with SAOLA-1 we add RGB LED, but also add LiPo battery charger and ESP32-S2-DevKit-Lipo can operate even without external power supply only on LiPo battery, there is battery level monitoring and external power supply sense. ESP32-S2-DevKit-Lipo can power external circuits with 3.3V up to 200mA when operate on battery.

ESP32-S2-DevKit-Lipo has build in programmer with CH340T. There is possibility the programmer part to be excluded and to use ESP32-S2 directy USB connection.

When operating on battery if the RGB LED is enabled the power consumption is ridiculous 700uA as the RGB LED appear to use lot of current even when not in operation, but there is RGB disable solder jumper which if opened you will not be able to operate the RGB LED on battery but will decrease the power consumption to total less 30uA in deep sleep.

For these who need more memory there is variant ESP32-S2-WROVER-DevKit-Lipo with 2MB of PSRAM.

The prices start from EUR 5.56 for ESP32-S2-DevKit-Lipo and EUR 6.36 for ESP32-S2-WROVER-DevKit-Lipo .

Building Marine Chartplotter with A20-OLinuXino-LIME and LCD-OLinuXino-7 in metal frame

Matthias sent us link to his project of Marine Chartplotter made with A20-OLinuXino-LIME open source hardware Linux computer + LCD-OLinuXino-7 and LCD7-METAL-FRAME

The power supply is done with DCDC-36-5-12

Tutorial: Running micro-ROS on STM32-E407 with JTAG

via Twitter we noticed this tutorial with step by step instructions how to build configure and program STM32-E407 is temporary down as our web hosting Hurricane Electric experience problems

The service was lost around 11.30 today September 02, we still wait them to recover. is hosted at since 1997 and during these 23 years we barely remember any issue, but this year there was one more interruption in July.

P.S. while I was writing this post the service was resumed.

Driving High voltage loads with optoisolated 220VAC/16A switch by Arduino and OLinuXino

eduArdu is educational low cost Arduino board, it has plenty of resources like: LED 8×8 display, Joystick, Buzzer, Microphone, temperature sensor, Ultrasound distance meter, PIR sensor, IR emitter and receiver, Capacitive buttons, RGB LED, Lipo charger for stand alone work.

Here we will show you how you can drive high voltage loads like lamps, heaters etc with PWR-SWITCH connected to eduArdu.

Plug PWR-SWITCH in mains and the object you want to control plug in PWR-SWITCH receptacle.

Then connect “-” termianl of PWR-SWITCH input to eduArdu UEXT.pin2 and “+” terminal of PWR-SWITCH input to eduArdu UEXT.pin4.

In Arduino IDE make this program:

void setup() {
   pinMode(0, OUTPUT);
// the loop function runs over and over again forever
void loop() {
   digitalWrite(0, HIGH); // turn the PWR-SWITCH on
   delay(5000); // wait for a 5 seconds
   digitalWrite(0, LOW); // turn the PWR-SWITCH on
   delay(5000); // wait for a 5 seconds

The Lamp will start to blink 5 seconds on and 5 seconds off.

You can drive high voltage loads with A20-OLinuXino-LIME2 + LIME2-SHIELD:

In this setup connect “-” termianl of PWR-SWITCH input to LIME2-SHIELD GPIO.pin9 and “+” terminal of PWR-SWITCH input to LIME2-SHIELD GPIO.pin7 (GPIO271 in Linux) and you can use this code to switch on and off PWR-SWITCH:

echo 271 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio271/direction

echo 1 > /sys/class/gpio/gpio271/value

echo 0 > /sys/class/gpio/gpio271/value

or you can use Python and pyA20LIME2:

!/usr/bin/env python
from pyA20Lime2.gpio import gpio
from pyA20Lime2.gpio import port
from pyA20Lime2.gpio import connector
gpio.init() #Initialize module. Always called first
gpio.setcfg(port.PI15, gpio.OUTPUT)

gpio.output(port.PI15, gpio.HIGH)
gpio.output(port.PI15, gpio.LOW)

Linux tip: How to reset device connected to USB port

Sometimes devices connected to USB ports need to be re-set. It’s not unusual GSM modems and WiFi dongles to freeze and the only way to bring them back to life is to remove and re-attach.

OLinuXino USB ports has power switches and current limiters which can be controller by Linux drivers.

After some experimenting we found that it’s not so easy actually to do it with the standard file system and shell.

A friend suggested to try this code. It worked very well, so here is how to use it. First you need to download and compile it, then to make it executable:

$ mkdir usbreset
$ cd usbreset
$ wget $
$ cc usbreset.c -o usbreset
$ chmod +x usbreset

Then you need to see where your USB device is. In our case I connected MOD-WIFI-R5370 WiFi USB dongle:

$ lsusb

you will see something like:

Bus 002 Device 039: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter

to reset this device use the command:

./usbreset /dev/bus/usb/002/039

The device USB port will be power off for a second then power on again.

All above is tested and work with official Olimex Linux images from, but should work on other Linux distributions too.

PWR-SWITCH is optically isolated EU style power load switch for up to 3500W, 230VAC/16A and can be driven with any microcontroller, Arduino, EPS32, or Linux computers directly with 3-24V

PWR-SWITCH hides the high voltage problems from the Arduino, ESP32, Raspberry Pi, Beaglebone, OLinuXino developers. It has 1500VAC optically isolation and can drive high voltage up to 230VAC / 16A loads safely.

To switch On or Off the loads from 3 to 24VDC can be used, so you can drive the loads with any microcontroller only 1mA is necessary to trigger the switch.

PWR-SWITCH is with EU stype plug and receptacle, so to use it in US or in UK you will need some of these:US to EU adapter, EU to US adapter or UK to EU adapter.

 PWR-SWITCH has CE-EMC and LVD certification.

Green LED show the switch status.

Previous Older Entries Next Newer Entries