ESP8266 and ESP32: Interview with Sergey Lyubka from Mongoose OS

Hi Sergey, thank you so much much for agreeing to this interview! Can you tell us a bit about your role at Mongoose OS? I am a technical cofounder and CTO of a company behind Mongoose OS, and set the  overall technical direction for the project.   For my readers who don’t know Mongoose OS.....

IoTCon in Munich: Impressions from Day 1

Munich is always worth a trip and you can get there from Zurich easily by train or coach. This time my employer Netcetera let me visit the Internet-of-Things conference to scout what is going on in the IoT field in Germany (and elsewhere). Here are some impressions I collected during the first day of the conference. To read about the second day go here. .....

ESP8266 Weather Station: Getting Started Guide available for Kindle

Once in a while I like to try out new ways to reach the audience. I’m happy to present the ESP8266 Weather Station: Getting Started Guide is now available for Kindle. If you are a frequent reader of this blog you might recognise some content of the guide from older posts. But I hope you still enjoy reading it on another device and in a revised form with additional information for beginners. .....

ESP8266 Weather Station on the “Big Screen”

The 0.96″ OLED displays I usually use for the WeatherStation are gorgeous but they could be bigger, right? Recently a bigger version of the SSD1306 based display became available on my favourite channels. Thanks to great work of the community (especially Fabrice Weinberg) the OLED library on Github  as been extended to support those 1.3″.....

ESP8266: Offline Debugging with the Platformio Environment

Having tools is great but you also need to know how to use them. Being a native Java speaker using a debugger is a very natural and easy thing. With the ESP8266 on the other hand this looks a bit different. I struggled now for a half day to figure out how to use the debugger to resolve a nasty crash that was happening if I would use a NFC card reader several times in a row. Most of the time I tried to use life debugging as I was used from the Java world a.....

WeatherStation & 3D Printing: striving for seamless integration

As you might know already I am now a proud owner of a 3D printer, a Printrbot Play. In the last few weeks I have tried to master the printer and I have learned a lot in this time. It was only a matter of time to bring my two passions together and use the 3D printer to create a case for the WeatherStation. This is my first result. It is not as perfect as I want it to be but it is presentable. With the next version I’ll have to make the w.....

3D Printing: My First 3 Weeks with a 3D Printer

After pondering over buying a 3D printer for almost a year I finally had ordered a Printrbot Play at the end of last year and about 3 weeks later it arrived in Switzerland in a pretty package at my door. In this post I’d like to share my experience with this specific printer and with 3D printing in general as far as I can tell after 3 weeks of owning one. I believe that in the first .....

Printrbot Play: First Impressions & First Prints

Yesterday my Printrbot Play finally arrived after 3 Weeks since I gave the order. After hesitating for a long time I finally made the order on december 31, then on January 11 it was shipped and 9 days later on January 20 it arrived at my home in Switzerland (but I wasn’t home:-() and I could pick it up at the post office in the evening. Should you decide to buy a Printrbot Pla.....

ESP8266 Arduino IDE Alternative: Platformio

The Arduino IDE is a good choice for a beginner to get into the world of small embedded devices. Feedback that I got from Weather Station Users indicates that the ESP8266 attracts many hobbyists to the IoT field that before had little experience with programming small devices. For me as a (professional) Java programmer the Arduino IDE lacks many features that I would expect from a modern development tool. The two that I miss most are Auto-.....

Weather Station in an Old Nokia Phone

Today I got a wonderful email from Jens Lochmüller from Germany which shows that necessity is truly the mother of invention. He wanted to build a case for the Weather Station with a picture frame but since he didn’t have an unused one at home and the shops were closed today he just put it into the case of an old Nokia phone. If I had to guess I would say it is a Nokia 1110 or.....

ESP8266 WeatherStation with a Magic Mirror

Just had a little time to test my latest idea. I took an IKEA picture frame, mirrored car tint and the Weather station, put everything together and it works! It only took about 30 minutes… Next time I’ll have to be more careful with the mirror tint, this thing scratches easily. But in the linked tint you get about 3 meters you’ll have enough material to get it perfect! .....

ESP8266 Weather Station: New Version Released

While I have a few days off I found some time to finally get a consistent set of libraries for the WeatherStation together and fix a few things. Here is a summary of the changes… Weather Station as a library Most important change from my point of view is that you can now install the Weather Station with the Arduino IDE library manager (or at least you will be able once this request has been .....

ESP8266 Oled Display library: How to customize fonts

Many people were asking me to publish the code that creates the font files used in the SSD1306 OLED library. Well, I was hesitating since the code was a bit hacky. So I sat down and created an online tool which is now open for Beta testing. It allows you to select a font from a list of integrated Apache licensed files, choose font size and style (plain, italic, bold) and then create the C file which you can copy paste into your Arduino IDE. A.....

ESP8266 Project Preview: FairyBox – The Kid & Parent Friendly Wifi Controllable MP3 Player

This is a quick preview of my next ESP8266 project in the pipeline: The FairyBox. Planned features: (Planned) Features Simple song selection with big buttons: button 1 selects folder one, first song, press button 1 again and it jumps to second song in folder 1. Web interface where parents can  control volume (limit) to protect hearing,  skip super a.....

ESP32 unboxing!

Santa came early this year! Espressif has sent me one of the early test boards of the new kid in IoT town, the ESP32. Compared to the ESP8266 which kind of dominated the hacker space in the last 12 months the ESP32 is very powerful! Coming Dual Core 32-bit L108 MCU, Wifi AND Bluetooth LE it might be yet another milestone in affordable IoT devices for DIY hackers and industry all together. Check out the unboxing pictures. Looks like I wi.....

ESP8266: Fixing extended ASCII issues in SSD1306 OLED library

I got a few complaints that the esp8266-oled-ssd1306 library does not handle special characters such as Umlauts properly. It turns out that the Arduino IDE does handle characters in the extended ASCII range (from 128-256) as UTF8 characters which means that Strings containing such characters can take more space than the bare number of symbols in it. For instance the degree character (°) will be represented as two chars with values 0xC2 .....

ESP8266 OLED display library release

Recently I released a new version of the esp8266-oled-ssd1306 library. This library allows you to control these wonderful little displays from a ESP8266 with little effort. When I first wrote the library for the WeatherStation I had the problem that 128×64 pixels never seemed enough space to display all the information. Then I added a feature set which allows you to describe the information in an number of frames which will then be .....

ESP8266 Feature Preview: More Fonts for the Weather Station!

I’m working on a new version of the Weather Station code. The first shot was the jason-streaming-parser library which allows me to fetch bigger objects directly from the source without the need of an proxy PHP script. The next step is to add more features to the display library. One is to allow more fonts and sizes. The current version only has one font and two sizes. For this I wrote a little Java program which converts any given.....

ESP8266/Arduino: processing huge JSON objects directly on the ESP

For a while now I wanted to improve my weather station project by adding more sources of information that can be displayed. But these sources I had in mind either used SSL (https) or delivered huge JSON responses. SSL is not yet supported on the ESP8266/Arduino platform (and from what I hear also broken on Nodemcu/Lua). Big JSON objects are a problem because all the existing libraries I tried are DOM based which consumes a lot of memory since.....

ESP8266/Arduino: Playing around with the upcoming filesystem feature

I recently stumbled on a feature that hopefully soon will be integrated into the stable release of the ESP8266/Arduino environment: a file system interface. Low-Level: EEPROM Up until now and currently your best bet for data persistence in the stable release you could use the EEPROM interface to write and read your data so it would be available between reboots of the device. This persistence interface is pretty lo.....

Choosing the right Electronics Shop

In the last couple of months I could collect some experience in where to buy the electronic components I use in my projects. Since in most cases I don’t care so much about several weeks of delivery time I usually order from one of several Chinese online shops or trading platforms. The following list reflects my own experience with these shops and platforms and does not have to necessarily reflect other opini.....

ESP8266, ThirsDee: 3D printed casing arrived

This was my first take ever at designing something for a 3D printer. Since I didn’t have a 3D printer available with a big enough printing area I ordered it online at Sculpteo.com. And only a few days after my order I received a nice little package from France today. Tada, the cover for Thirsdee, the intelligent plant helper! As you can see from the.....

WeatherStation Kit ready for your order

Great news! My supplier in China has finally sourced all the components that come with the WeatherStation Kit and I’m ready to take your orders. For a limited time it will cost only USD $19.95 and shipping is available for more than 70 countries. The kit is a good entry to get started with the ESP8266 since it requires only minimal wiring from you. Extend the source code found at github to display even.....

ESP8266: Wifi data logger already running for more than 2 months on batteries!

More than 1440 hours or in other words 60 days ago I put 3 AA batteries from IKEA in the battery box of the ESP8266 test board and started a program that would send temperature and humidity every 10 minutes to Thingspeak through its Wifi interface. I removed all unnecessary power consumers from the board such as LEDs and light resistor but there would have been more potential to improve longevity of the batteries. By setting a fixed IP .....

ESP8266: Meet Thirsdee, the Intelligent Plant Helper!

It’s amazing what you can do with just a few components: a load cell, a high gain analog-to-digtal converter and a NodeMCU module. You can for instance measure the water consumption of your dear plants. If you combine the previous mentioned components with a OLED display you can even visualize the current water level in the plant pot. And if the level reaches a critical low yo.....

ESP8266: Calibrating the Wifi Scale With Temperature Compensation

In my last post I talked about my self made scale. There are plenty of applications for a sensor that can sense the weight of things. But I guess the scale should not be tared (or set to zero) every time the ESP8266 wakes up from sleep. The load cell is basically a resistor that reacts to tearing and pushing of the metal bar. But like all resistors, they are prone to temperature drift. Thi.....

ESP8266: DIY Wifi Kitchen Scale

This week I finally received all the necessary pieces to build a internet connected kitchen scale. The ingredients are: a load cell (Wikipedia), a high resolution ADC (HX711) and of course a ESP8266 based NodeMCU V1.0 module. For the moment I’m not logging the data coming from the scale to the internet but I rather display it on o.....

Register now: The WeatherStation Kit is coming!

I’m very happy to announce that I could find a supplier who will ship all the parts that you need to get started with the WeatherStation. No more worries to find the right components. The WeatherStation Kit will contain: the new improved NodeMCU V1.0 with 4MB flash one SSD1306 based OLED display with a resolution of 128×64 pixels 40x 20cm female-female connectors USB.....

#ESP8266: Open-Source Designer Advice wanted for the weather station!

So, all the major technical challenges have been resolved. But now the fine tuning begins. Anyone with a graphical eye in the audience to give advice? How to arrange the different elements most efficiently so that it is pleasant to eye and brain and uses the space most efficiently? Please step forward… Your “playground” is 128×64 pixels, 1-bit depth… All result.....

ESP8266: 3D printed case for the weather station project

You just got to love open source! Some guys wrote a firmware for an exciting little chip (ESP8266), based on an open sourced SDK: the NodeMCU lua firmware was born. Then another guy (me;-)) writes a little LUA program to fetch weather data from an open API and displays the data on a OLED display. Then yet another guy (smiley77) creates a wonderful case for the project and makes it available as well: .....

ESP8266 Projects: Internet Connected WeatherStation with beautiful icons

Since I learned how to create pictures and display them on these wonderful OLED displays I wanted to build something useful with it. Once you know about all the pieces, putting them together is quite easy. The icon, temperature and humidity are updated every 10 minutes from http://openweathermap.org/, then parsed into a JSO.....

ESP8266, NodeMCU: how to create xbm images for displaying on OLED 128×64 I2C Displays

Do you know these wonderfully cheap SSD1306 based OLED displays with the crispy display? For a while now the NodeMCU Lua firmware for the ESP8266 supports them and has a rich feature set to draw lines, circles and even bitmaps. One way to draw bitmaps is in the XBM format, which is originally a text based format and they can be directly included into C code: #define clouds_width 60 #define clouds_height 60 static.....

ESP8266: NodeMCU V1.0 part created for Fritzing

Fritzing is a nice tool to quickly draw up your breadboard circuits. From there you can easily and for a competitive price order PCBs. But Fritzing is only fun when you have all the parts that you use in your project. For me the NodeMCU V1.0 that I recently acquired was missing. Since I always wanted to create a Fritzing part my self I sat down and made one and I will share it with you… .....

ESP8266: NodeMCU Custom Build

My colleague Marcel recently developed a web based tool that lets you choose the modules which will be compiled into the NodeMCU build. This saves you the trouble to setup your own build server with tool chain and can save you a lot of space on the LUA heap, depending on how many modules you need to run your code: http://frightanic.com/nodemcu-custom-build/ .....

ESP8266: Flight-O-Matic

Preview for my augmented reality project: A RaspberryPi with SDR-RTL dongle picks up signals from airplanes in my relative neighbourhood. When an airplane becomes visible from by living room window it sends detailed flight information to 6 modules of 8×8 Led Matrix elements such as connection details, airplane type, airline, etc. I hope to deliver a detailed documentation soon, the video is just a teaser;-) .....

RTL-SDR: Quick Guide to Software Defined Radio on Mac OS X Yosemite

Today another little package from China waited in my inbox: a DVB-T+FM Tuner. So far not that exciting. Except that this package for $10.99 is capable of receiving a huge spectrum of 24-1766MHz thanks to the powerful tuner inside. The keyword for making this hardware useful is Software Defined Radio or short SDR. And since the hardware is based on the Realtek Chip RTL2832U the software supporting it is called .....

ESP8266 module comparison: ESP-01, ESP-05, ESP-12, ESP-201, Test Board and NodeMCU

In this post I will guide you through the jungle of available modules based on the ESP8266. This is not a complete list of available modules but a selection of the ones I could test and review. If you think that I have been missing out on one important module please let me know.Every module here as some advantages and disadvantages, depending on the targeted application. If you are planning to to use a module as Wifi shield for an Arduino you might pi.....

ESP8266: How to get started – What hardware you’ll need

In this post I want to show you what hardware you’ll need in order to get started with the ESP8266. In the post I assume that you have no hardware yet at all. I also assume, that you’re mostly interested in programming the ESP8266 directly, rather than using it as a pure Wifi board for an Arduino. USB-To-Serial Adapter In order to talk to the ESP module you need a serial-to-usb adapter.....

ESP8266: using Docker to setup the build tool chain the easy way

When you get started with wonderful world of the ESP8266 your first step might have been to play around with the AT command firmware. Then you might have chosen one of the pre-built multi purpose firmwares, such as the NodeMCU or the NodeLua image. Then, the next logical step is to build a firmware yourself. But honestly, I was a bit afraid of this one, since it seemed all very Linux oriented and I wanted to run it on my Mac. Until I found zo.....

ESP8266 with web update: NodeLua, a Spark.io like ESP8266 firmware

The ESP8266 chip is really something: cheap and with its Wifi interface capable for Internet-of-Things tasks. You can get boards on Aliexpress for as little as $3, shipping to Europe or US included! OK, so you ordered one, waited (possibly) a few weeks and then it arrived! What do you do with it? How do you program it? I covered a few possibilities in my previous posts: you can use your Arduino and talk with AT commands to the ESP8266, thus s.....

ESP8266: trying out frankenstein firmware

I just gotten into the mood of trying out firmwares for the ESP8266. There is one that behaves similar to a busybox command line tool. Download the binary from here, flash it to the ESP8266 and connect to it over the serial channel: https://github.com/nekromant/esp8266-frankenstein So far I’ve used the serial console built into the Arduino IDE. But that’s .....

ESP8266: Using a seeeduino to talk to the ESP8266 module directly

I recently received two of these shiny new Wifi modules from China and had to test them out. In many posts around the web they say you should use a serial-to-usb adapter to send some AT commands to the module and set it up with your local access point. My problem was: I didn’t have such an adapter, or so I thought. It turns out you can use some types of Arduino’s for the job just fine. I had a Seeeduino V3.0 laying around and that.....

DevDuino Sensor Node – Part 1 – Programming the DevDuino

It took me far too long to get this working, but I finally did it: a small Arduino compatible board called “DevDuino” running on a CR2032 cell battery is sending temperature and battery voltage over the air to another Arduino board which records it. Sounds easy, doesn’t it? Well, it depends…: which Arduino are you using? how good is the documentation of the DevDuino?.....

Use proxydns and your dd-wrt router to watch Netflix on Chromecast outside of supported countries

Sadly tunlr ceased to exist – so compared to the setup I described here http://blog.squix.ch/2013/12/use-tunlr-together-with-dnsmasq-on-your.html I had to find a working solution again. But this time I couldn’t find a free dns service anymore, but I wanted to find a cheap one at least. It appears that .....

Continuous Deployment from Github to App Engine Java with CodeShip

Motivation Continuous Deployment is nice: you roll out new versions of your software all the time and not only three, four times a year with your mayor release. And everything automatically. Of course this requires a good coverage of automated unit, integration and UI tests to make sure that your current version doesn’t break anything for the user. What tools can you use do achieve this for y.....

Google App Engine (Java) ChannelService with AngularJS

Motivation I’m currently working on a foosball web app that is widely used in breaks where I work. While you track the goals made by each of the team the app running on the app engine calculates a ranking of all the players and awards badges given special scores in a game. Now I wanted to update all the clients about goals made or if a a foosball table is currently occupied. Since I’m .....

Use Tunlr together with dnsmasq on your dd-wrt router to easily watch Netflix abroad

Tunlr is a replacement DNS service that allows you to watch Netflix and similar services from abroad. The downside is that you have to change your DNS settings to send all traffic to Tunlr. You can do this either on every device you want to use such a service or you do it directly on your router, which will serve the new DNS servers to every client. But that would route ALL and I mean all DNS requests to Tunlr, and that is neither in Tunlr’s nor your interest. But theres a prettier solu.....

Backup your RaspberyPi SD Card images to play with different distributions

Do you like to explore all the technical possibilities of your gadgets like me? Sometimes setting up something can consume quite a lot of time. I had a RaspberryPi running for several month as Airplay station now. But since my Boxee is getting more and more hard to run reliably I’m looking for a replacement of it. Nothing easier than that, since I already have a RaspberryPi that can run XBMC just fine. But I only have one SD card laying around, so should I risk my Airplay installation .....

Live reload with appengine-maven-plugin

Google’s appengine-maven-plugin is cool. Especially for deploying your app to the cloud. But for developing it can be cumbersome, since the hot deploy mechanism is not very stable and you often have to restart the devserver. Since I wanted to get more into the whole JavaScript build chain I had a look at grunt but I just couldn’t get the configuration running with connect and livereload. And then I found this link: http://nitoyon.git.....

Turn on/off USB Power on TL-MR3020 running OpenWrt to restart Arduino

In a later blog post I will describe how I am using a TL-MR3020 router as low-cost wifi shield for my Arduino to transmit sensor data over wifi. In this post I just want to show how you can script a restart of the arduino by powering off the USB port that the Arduino is connected to. In need this because sometimes the arduino does not send anymore data to the ttyUSB0 device. So as a workaround I’m restarting the Arduino from time to tim.....

Use Tunlr on Boxee to watch Netflix outside of US (e.g. Germany, Switzerland)

The following how-to describes how you can watch Netflix on your boxee even if you are living outside of a country where Netflix is available. First of all you need a Netflix account. For USD 7.99 per month you can watch all their series and movies they have available. In my country VOD services cost that amount PER MOVIE! To register for Netflix I used the Hola Unblocker Plugin for Chrome (.....

Using munin to visualize your arduino sensor data

I was looking for the easiest way to visualize the sensor data my arduino in the basement is sending to the linux server. The server receives a data triple every few seconds which I write to a log file using cat: cat /dev/ttyUSB0 > /var/log/datalogger.log and the result looks like this: ... 0.10 58.60 23.00 0.25 58.60 23.00 0.22 58.60 23.00 0.21 58.60 23.00 ... .....

UIBinder: load background images in the bundle

It took me a while to figure this out, but finally I found a solution to load CSS background images for styles defined in a *.ui.xml: Copy the image to the same package as your *.ui.xml In the ui.xml add a “ui:data” tag that points to the image In the style block add an @url line that points to the ui:data field Use it in the style <ui:data fie.....

New tricks; revamped user interface

August 1st is the national holiday in Switzerland. Having a longer weekend also lets me work more on Feederator. In the last few days Feederator learned some cool new tricks, which I’d like to share with you Public Change Log For the users and my own sake I finally added a change log page. You can find it here. This allows you to track what I ha.....

Exporting your App Engine Data with a Sitemap of Sitemaps

Currently there are about 200’000 archived items available in the Feederator database. In the hope to attract more traffic I wanted to make this data available to search engines. But how to make this data available to search engines without putting too much burden on my App Engine Quota. Certainly one big Sitemap wouldn’t work, because the call from a search engine would reach the 30 seconds limit of a Servlet call long before all .....

Feederator, Kindle and PDF

I’m using Feederator myself to send interesting posts to my Kindle to read it later. To do this you can simple drill into the detail view of a post. There you’ll find a social bookmarking widget, labled with “share”. In the popup select “more” and then search for instapaper. In order for this to work you need to setup an account at instapaper.com, but don’t worr.....

Speeding up data store queries with self-merge joins

For a while now Feederator allows some kind of full text queries. When items are read for the first time into the datastore an index will be created. This index is currently a break down of the single words in the title, but can be extended to the description and other attributes of an item. My first attempt of implementing the full text search on the AppEngine resulted in a very costly algorithm. The fulltext search index is stored as a.....