Tag Archives: Electronics

M5Stack review. An Espressif ESP32 development kit.

I received the M5Stack Core development kit last week. I’m quite excited about this, and would like to share my thoughts on it.

The kit is based on Espressif ESP32 microcontroller. It is a System-on-Chip (SOC) microcontroller that is becoming extremely popular. There are great reasons for this popularity. The chip includes Wi-Fi and Bluetooth connectivity, connectivity that is very relevant for modern projects. Another important reason for the popularity is the availabiltity of free development tools. GCC based compilers, Arduino, Micro Python, etc are all available. However, the most important reason for the popularity is the low cost. Chips, modules, and development boards are readily available at low cost.

M5Stack is a great awesome development platform. It enables the development of aestheticly-pleasing prototype with little effort. It may even be ideal for low-volume production. The modular stackable expansion system is quite ingenious. Custom circuit is “stacked” at the bottom of the kit. The circuit can then be enclosed with relative ease. The difficult task of enclosing the user interface elements (screen, buttons, etc) have been done for you.

M5Stack next to AA battery for size reference

The core module is equiped with well-chosen user interface peripherals. The set of peripheral is good for most projects. They include:

  • 2″ 320×240 LCD screen. (quite sharp, mainly due to the small size)
  • 3 buttons
  • a speaker, and
  • on/off – reset push button.

The setting up of the Arduino developemnt environment is well documented and is straight forward. Software libraries for accessing the LCD, speaker and buttons are provided. This is a huge time saver. Eg. to display text on the screen you can just call a library function

Checkout their social media sites for project ideas:

Overall, the M5Stack is a very nice development platform. The team did a great job. Attention to detail is self-evident — the hardware, the software, the user manual, the packaging. The M5Stack is a great prototype platform.

bladeRF enclosure – made from laser cut acrylic

I made an enclosure for my bladeRF board from laser-cut acrylic (also known as “Perspex”). This is the first time I experimented with custom laser cutting. The laser cutting service is provided by SeeedStudio. I’m very pleased with the result, see photos below.

bladeRF acrylic enclosure

bladeRF acrylic enclosure

The acrylic used is 2.55 mm thick. The PCB is mounted to the bottom plate using eight M2.5 hex spacers. The top plate and the bottom plate are held together by four M4 hex posts.

Laser-cut acrylic is good for making a prototype enclosure. It is quick and easy to design. It requires no effort in producing them. It also has a nice distinctive look.

ViewRF software – RTL-SDR Spectrum Analyzer for BeagleBone Black

In my previous blog entry I demonstrated my RTL-SDR based spectrum analyzer running on the BeagleBone Black (BBB) with a 7-inch touchscreen LCD.

In this entry I’ve provided instructions on how you can run this software on your own BeagleBone. I’ve released the software – ViewRF – under the GPL license. You can download the source code hosted on GitHub.

The hardware you need (other than the BeagleBone itself) is the RTL2832U based DVB-T (digital TV) USB dongle. See RTL-SDR wiki for a list of supported hardware. I’ve tested the software with dongles based on the Elonics E4000 tuner and also the Rafael Micro R820T tuner. These dongles are available from various online shops.

The software has been designed to run on a 800×480 resolution screen, ie the resolution of the 7 inch LCD cape.


  1. Download and unzip (using 7-zip) this microSD image:
    Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.12-beaglebone-2013.06.20.img.xz. Then copy this unzipped image using Win32 Disk Imager to a microSD card.
  2. Insert the microSD card to your BBB and power it on.
  3. After you are logged in, open a terminal, then disable X Windows autostart using the command:
    systemctl disable gdm
  4. Reboot:
    /sbin/shutdown -r now
  5. At the console, login as root, then calibrate the touchscreen
  6. Install these Angstrom packages:
    opkg update
    opkg install qt4-embedded --force-depends
    opkg install libqtsvge-dev --force-depends
    opkg install libqtguie-dev --force-depends
    opkg install qt4-embedded-dev --force-depends
  7. Set the following environment variables:
    export OE_QMAKE_CXX=/usr/bin/gcc
    export OE_QMAKE_CXX=/usr/bin/g++
    export OE_QMAKE_LINK=/usr/bin/gcc
    export OE_QMAKE_INCDIR_QT=/usr/include/qtopia
    export OE_QMAKE_MOC=/usr/bin/moc
  8. Download, compile and install QWT:
    wget http://jaist.dl.sourceforge.net/project/qwt/qwt/6.1.0/qwt-6.1.0.tar.bz2
    tar -xjvf qwt-6.1.0.tar.bz2
    cd qwt-6.1.0

    Edit qwtconfig.pri, remove QwtOpenGL, QwtDesigner
    Edit ./src/src.pro, change TARGET to:
    TARGET = $$qwtLibraryTarget(qwt$$QT_LIBINFIX)
    Continue with the compilation process:
    make install
  9. Download, compile and install RTL-SDR library:
    git clone git://git.osmocom.org/rtl-sdr.git
    cd rtl-sdr
    autoreconf -i
    ./configure --enable-driver-detach
    make install
    make install-udev-rules
  10. Edit /etc/profile, add the line:
    export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/qwt-6.1.0/lib
  11. Edit /etc/profile.d/qte.sh, if using touchscreen add the line:
    export QWS_MOUSE_PROTO=LinuxInput:/dev/input/touchscreen0
    or if using a mouse, add the line:
    export QWS_MOUSE_PROTO=MouseMan:/dev/psaux
    Logout, then log back in again.
  12. Download and run ViewRF software
    git clone git://github.com/stephenong/ViewRF.git
    cd ViewRF
  13. To run the pre-built binary (don’t run the git checkout command if you are building from source)
    git checkout 9b4d425331
    ./ViewRF -qws

I hope this software is useful to you. Let me know what you do with it. Feel free to donate :), link on the sidebar.

Demonstration of my Spectrum Analyzer project

A demonstration of my Spectrum Analyzer project built using the Beaglebone Black and a USB DVB-T digital television receiver. The receiver is based on Realtek RTL2832U accessed using RTL-SDR library. The demonstration shows the RF spectrum of various sources.

If you are interested in this project, I’ll be releasing the application and source code in GitHub so you can build your own. Probably in a month or two, or sooner, or later.
You can now run this software – ViewRF – on your own hardware. See http://robotics.ong.id.au/2013/08/25/viewrf-rtl-sdr-spectrum-analyzer-for-bbb-software/

Seeed Studio DSO nano oscilloscope review

I just received my Seeed Studio DSO nano oscilloscope.

I had difficulty justifying the purchase of this oscilloscope, as I had doubts on its usefulness and performance. However, the unit has such cool form factor that I just had to have it. The oscilloscope is modestly priced at USD $89. I justified buying it because, if for some reason the oscilloscope is not usable, then I still can use it as an ARM STM32 development board (Hey, this is the same CPU that powers Hexi’s locomotion engine).

DSO nano

The DSO nano is really small

Continue reading