Newsletter / March 4th, 2019

With this newsletter we are highlighting some of the developments which were important for us in the last month. If you would like to receive future newsletters per e-mail, please register in the form in the top right of our low.js homepage.

UDP/dgram support

low.js finally has support for the dgram module! Now it is just a matter of a few lines code to stream sensor data as UDP packets to servers or other computers!

const dgram = require('dgram');

let socket = dgram.createSocket('udp4');
socket.send('hello, world!', 12345, '');

High precision timestamps with GPIO rise/fall events

rise/fall events on GPIO pins now feature timestamps with high precision! On ESP32-WROVER the precision is 1 microsecond, on neonious one (LPC822) the precision is 33.333… nanoseconds.

This allows you to interface sensors which rely on timing, such as the HC-SR04 distance sensor which costs $ 1 at We have a ready to use module for this sensor in our examples GitHub repository.

Better lowsync user experience

We have noticed that many people try to flash low.js on ESP32-WROOM32 boards. Till recently, lowsync did report that flashing was successful, but the access point did not show up, making some people think low.js was broken.

We do not support ESP32-WROOM32 modules, as we require the 4 MB PSRAM which is only part of the ESP32-WROVER modules. While we do see that we could compress our environment more to not require the additional RAM, we believe it is best if we do not, because users will hit the memory ceiling very fast and thus it will be a bad user experience.

Now lowsync checks whether the module is an ESP32-WROVER by flashing a small stub which gives the required information to the flasher before trying to do the real flashing.