Skip to main content


Coral USB Accelerator first impression.

Google has released its edge AI devices notably the Coral Dev Board and the USB Accelerator recently and I managed to buy the USB accelerator from Seeed Studio before it was sold out. I find that there is a bit of irony that China is listed as one of the countries that have restricted export but my Accelerator was shipped out of Shenzhen and luckily I do not stay in one of the countries listed that has export restrictions.

This is really a tiny piece of device. It is has a silver heat sink wrapped with rubbery plastic and comes with a USB 3.0 USB-C interface. I cannot imagine that this edge TPU only consumed about 2.5W but packed enough computation power to perform object detection and image classification in real-time. I decided to do my initial test on a Linux desktop that has USB 3 supports instead of Raspberry Pi in order to make sure that the USB port is not the bottleneck.

Installation was brisk, I have followed the Get Started Guide and I managed to get the demo app up and runn…
Recent posts

Xiaomi Mi Flora Chinese and International version comparison

Xiaomi Miflora sensor allows monitoring of the surrounding environment of the plant. It can monitor temperature, soil moisture, conductivity (acidity of the soil), ambience light. There are 2 versions of the sensor, international and Chinese version. Realistically, I cannot see the difference between the 2 versions.

The left-hand side is the Chinese version and the right is the international version. Other than the packaging, the main difference is the price of the sensor. The International version cost 2x more.

In other forums, there are discussions that the Chinese version cannot connect to the MiHome App. I have set my MiHome app to connect to China server and it is able to register the sensor correctly.

For my usage, I will be connecting to Openhab to monitor the plants andusing Thomas Dietrich MiFlora mqtt daemon as the bridge between Openhab and the sensor.

The International version is detected as Flower care and the firmware version is 3.1.9 while the Chinese version is detecte…

Smart Home Project (Updates)

The project has reached an operational stage with the following milestones.

The original posts can be found at
Starting a smart home project
Smart Home Design V1

The Smart Home is controlled by Openhab2 using a Raspberry PI. After some initial instability, the system finally is able to be functioned smoothly. The main control panel is Habpanel and a sample of the main dashboard is as shown.

Habpanel is one of the official UI supported by Openhab. It comes with some pre-defined widgets such as buttons, frames etc. For the pictures above, some of the widgets are custom widgets created by third parties such as the column of sliding switches, presence detection panel and the fan control panel. User can easily extend habpanel widgets because the widgets are written in AngularJS.

There are 5 main types of communications protocols:

This is the main backbone used by all the devices.
2. Zigbee
This is mainly used by Xiaomi sensors.
3. RF 433 MHz
This is used by the ceiling fans, doorbell…

Google Cloud IotCore with Raspberry PI

In my previous blog post, I have written about the integration of Google Cloud IoTCore using UDOO and how the temperature information is sent up to Pub/Sub. In the post, I will describe the integration of Raspberry PI to Google Cloud IoTCore. The primary communication protocol between the sensors and the IoTHub is mosquitto MQTT.

For this setup, I have a temperature sensor using ESP8266 flashed with ESP Easy firmware. The ESP and sensor are battery power which set to wake up every 60 minutes to take the measurement and transfer this to Raspberry Pi. The IOT bridge is written in Python which bridges the internal MQTT messages and Google Cloud IoTCore.

The sensor is battery power using a 3rd party Nokia BL-5C (1020 mah) rechargeable battery. This can be cheaply purchased from many battery shops or online. I have used 2 versions of the Wemos Mini charging shield version (1.1and 1.2). The details on how to modify the version 1.1 to be able to read the voltage level of the battery can be f…

Smart Home Control Panel using ESP-Link

This post describes the control panel developed with a few open source software and libraries. The main purpose is to have a proof of concept that the various components can be put together to become a useful product.

I have built a smart home system controlled using Openhab and the hardware switches are primarily using Sonoff switches with Tasmota firmware. The switches are controlled using Openhab Habpanel using an Android Tablet. Generally, this is my preferred way of using the Android Tablet but the Arduino control panel is developed so that it can interface to external hardware at low cost.

The control panel is developed using ESP-Link firmware with the El-client APIs and the hardware is an ESP8266 and Mega2560 combi board.  Besides acting as a touchscreen based on/off switch, it is also an internet clock (ntp) and a doorbell buzzer.

The software/firmware/libraries are
ESP-Linkel-client APIs (interface to ESP-Link firmwareMCUFriends Arduino library to control the TFT screen.JOS me…

Two routers configuration for Smart Home

When setting up the smart home system using WIFI as the core network infrastructure, it is important to split the surfing traffic and smart home traffic. This will ensure that the smart switches respond timely. 

For my smart home setup, I have used 2  Asus routers (RT-AC1200G+ & RT- AC68U), one is configured as the main the other configured as the slave. There is no reason why a particular model is chosen as it is based on what I have on-hand but it is better to have dual-band routers because I will have 4 separate bands (Two 5Ghz and two 2.4 GHz) of network bandwidth.

The router is configured as a Master-slave mode with different subnets and network route is added to make sure that the traffic can flow both ways. The smart switches are all connected to a dedicated 2.4 GHz bandwidth and the remaining 3 bands are for normal surfing.

For normal surfing, in order to the client devices to automatic connect to the strongest signal frequency, all the SSIDs have to be the same.  So the clie…

A simple ESP-01 USB adapter with toggle switch for reprogramming

ESP-01 is a simple ESP8266 module which can be purchased cheaply from Aliexpress. At one of promotion, I purchased an ESP-01 for just S$1.97. That's very cheap for a wifi enabled microcontroller. An ESP-01 can be a WIFI bridge for non-connected microcontroller such as Arduino UNO, Mega, Nano etc. Communication between the microcontroller can be done using the serial link between them.

I have written a post on this using ESP-Link to connect to an Arduino Pro Mini. Together with the client library provided, the Pro Mini can easily transfer sensor data via MQTT.

For the most part, once the firmware is in place, normally I will use OTA to update. Sometimes, I wanted to reuse the same controller for another firmware and I have rewired up the controller for reflashing. This makes it very inconvenient to use.

Recently, I bought a USB ESP-01 adapter thinking that my problem is solved. When I received it and realised…