Getting Started with ANAVI Gas Detector Starter Kit and Home Assistant

ANAVI ESP8266 Gas Detector Display

ANAVI Gas Detector is an ESP8266 based board designed for MQ gas sensors supported by Arduino. This allows you to easily monitor air quality, or more accurately air conductivity using MQ-135 sensor as part of the starter kit either visually on the OLED display, or through your smartphone or computer using MQTT via automation platform such as Home Assistant. Leon Anavi sent me an ANAVI Gas Detector Starter Kit to have a look, and I’ll report my experience with the kit using it standalone, and through Home Assistant. Starter Kit Unboxing The kit contains the open-source hardware, ESP8266 based ANAVI Gas Detector board, a plastic stand, an OLED display, a USB to serial adapter, a gas sensor, and a few KiCad and ANAVI stickers. The board itself comes with an ESP8266MOD module, features a micro USB port for power, a reset button, four LEDs, a UART console, a 4-pin GPIO […]

Getting Started with Sipeed M1 based Maixduino Board & Grove AI HAT for Raspberry Pi

Grove AI HAT Face Detection

Last year we discovered Kendryte K210 processor with a RISC-V core and featuring AI accelerators for machine vision and machine hearing. Soon after,  Sipeed M1 module was launched with the processor for aroud $10. Then this year we started to get more convenient development board featuring Sipeed M1 module such as Maixduino or Grove AI Hat. Seeed Studio sent me the last two boards for review. So I’ll start by showing the items I received, before showing how to get started with MicroPython and Arduino code. Note that I’ll be using Ubuntu 18.04, but development in Windows is also possible. Unboxing I received two packages with a Maixduino kit, and the other “Grove AI HAT for Edge Computing”. Grove AI HAT for Edge Computing Let’s start with the second. The board is a Raspberry Pi HAT with Sipeed M1 module, a 40-pin Raspberry Pi header, 6 grove connectors, as well […]

BFQ (Budget Fair Queuing) I/O Scheduler Improves Linux Systems Responsiveness (Video)

BFQ Scheduler

Storage is normally the slowest part of a system, and operating systems such as Linux try to limit I/O access with “tricks” like caching. The I/O scheduler may also matter if you have multiple programs accessing the same drive, and in Linux 4.12 implemented two new multi-queue block I/O schedulers, namely BFQ (Budget Fair Queuing) and Kyber that are meant to improve the performance of the systems. If you’re using Linux 5.2 you may even get further improvements since performance tweaks make application start-up times under load to be up to 80% faster. I have never seen BFQ in action so far, but earlier this year, Paolo Valente, who is working for Linaro, made a video with an Acer Chromebook 15 showing Google Chrome launch time using the default mq-deadline schedule, and bfq-mq scheduler. The test involves writing a 1.5GB file to the drive with dd, and clicking on the […]

PhyWhisperer-USB Python Controlled USB 2.0 Sniffer Enables USB Security Testing (Crowdfunding)

PhyWhisperer-USB is a hardware USB sniffer & triggering platform that allows users to test the security of USB devices using side-channel power analysis and fault injection using a Python 3 interface, beside simply capturing packets. This has become especially important now as some USB devices include Bitcoin Wallets, FIDO2 keys, and encrypted drives with valuable data. PhyWhisperer-USB hardware specifications: FPGA – Xilinx Spartan 7S15 with 12,800 logic cells USB USB 2.0 Low/Full/High Speed mode PC connection – Micro-USB 2.0 HS port Host connection – Micro-USB port Target connection – USB-A female connector Trigger pattern – 1 – 64 bytes with mask Trigger delay – 0 – 1048576‬ cycles of 240 MHz internal clock derived from USB clock USB sniffer FIFO – 8192 bytes (FPGA block RAM, adjustable depending on FPGA utilization) Expansion – Spare digital I/O: 8 data pins, 1 clock pin routed to FPGA (on front panel) Clock output […]

MINIX NEO S2 USB-C SSD Hub Review in Ubuntu 18.04 with Khadas Edge

MINIX NEO S2 Khadas Edge

MINIX NEO S1 & S2 are USB-C hubs with the usual HDMI and USB outputs, but also a built-in 120 GB & 240 GB SSD respectively. The company has sent me a sample of each, and in order to test the platform, I decided to do on a Khadas board running Ubuntu 18.04 with LXDE desktop environment (aka Lubuntu). I’ll start by checking out the packages’ content, before going through my experience with the MINIX NEO S2 USB-C hub in Ubuntu 18.04 with LXDE desktop environment. MINIX NEO S1 & S2 Unboxing Both packages are basically identical except for the different color, and one shows 120GB SSD capacity, while the other has 240GB The back side has some more details about the USB-C hub. I’ll focus on the 240GB model since it’s just the same, but around $13 to $20 more expensive, and it offers double the capacity, as well […]

Reading ID Card Data in Ubuntu with EZ100PU Smart Card Reader (Thai ID Edition)

Smart Card Reader Thai ID Card

I was asked help with configuring a smart card reader on a government computer running Windows 7, but this made me wonder what would happen if I connected the card reader to my Ubuntu laptop and whether I’d be able to read content from a Thai ID card. EZ100PU Smart Card Reader Let’s have a look at the card reader itself first. It’s a FAST ID EZ100PU smart card reader compliant with ISO7816 standard. That’s the product page of the specific model, but a search for EZ100PU only reveals the manufacturer may be InfoThink Technology based on Taiwan. The USB smart card reader comes with a CD that includes drivers for Windows, Linux, Mac OS, and Android, as well as an SDK with a demo program and sample code in C++, Visual Basic .NET, and C#. As we’ll see further below, the Linux driver is not needed as it works […]

TensorFlow Lite for Microcontrollers Benchmarked on Linux SBCs

TensorFlow Lite microcontrollers benchmark linux SBC

Dimitris Tassopoulos (Dimtass) decided to learn more about machine learning for embedded systems now that the technology is more mature, and wrote a series of five posts documenting his experience with low-end hardware such as STM32 Bluepill board, Arduino UNO, or ESP8266-12E module starting with simple NN examples, before moving to TensorFlow Lite for microcontrollers. Dimitris recently followed up his latest “stupid project” (that’s the name of his blog, not being demeaning here :)) by running and benchmarking TensorFlow Lite for microcontrollers on various Linux SBC. But why? you might ask. Dimitris tried to build tflite C++ API designed for Linux, but found it was hard to build, and no pre-built binary are available except for x86_64. He had no such issues with tflite-micro API, even though it’s really meant for baremetal MCU platforms. Let’s get straight to the results which also include a Ryzen platform, probably a laptop, for […]

Android Gaming on Khadas VIM3 SBC (Video)

Android Gaming Khadas VIM3

I started playing with Khadas VIM3 Basic SBC powered by Amlogic A311D processor and 2GB RAM, and noticed Android benchmarks, especially 3D graphics were significantly better (40% improvement) than the ones of Rockchip RK3399. So I decided it may be interesting to show Android gaming on the single-board computer, and installed the latest version of Android 9.0 with Google Play store. Finally I connected the RF dongle of Tronsmart Mars G01 wireless gamepad, as well as USB keyboard and mouse to get some fun. Since the board only has two USB type-A ports, I also inserted MINIX NEO S2 USB-C + SSD hub to connect the gamepad RF dongle. Then I tried to install and play four games Beach Buggy Racing Installed via Google Play Played with Tronsmart gamepad. Perfectly smooth with max graphics settings. Similar to other TV boxes or boards. Riptide GP2 Installed via Amazon Store Played with […]

EmbeddedTS embedded systems design