Posts Tagged ‘tools’

uCAN CAN Ethernet Converter and Logger is Based on Orange Pi Zero Board

September 19th, 2017 2 comments

The CAN bus is a serial communication protocol used in automotive and automation applications. The guys at have designed a solution around Orange Pi Zero board that allows you to log CAN bus data or act as a bridge between the CAN bus and Ethernet or WiFi. They call it “CAN Ethernet converter, CAN Logger, Linux CAN computer”. Sorry, no shorter name that I could find…

Click to Enlarge

uCAN (pronounced micro CAN) CAN Bus board specifications:

  • Main Board – Orange Pi Zero with Allwinner H2+ quad core cortex-A7 processor, 256 MB RAM
  • Network Connectivity – 10/100M Ethernet, 802.11 b/g/n WiFi
  • Can Bus – 2-pin terminal block; support for CAN version 2.0 support
  • Power Supply – DC 5V/2A via micro USB port
  • Dimension – 50 x 50 x 20 mm

The device comes pre-load with Debian distribution provided by Armbian plus various CAN tools. The getting started video below shows uCANTools web interface programmed with Node.js and running by default on the board, and explains how to use sockets instead to access the CAN data.

You can find the source code for uCANTools on Github, and the other pre-installed tools are based on can-utils package available from Debian repository.

uCAN CAN Ethernet converter is normally sold on Tindie for $50 plus shipping, but right as I was about to finish this article the price switched to $150 with the message “This seller is on vacation. Please return after Oct. 14, 2017 to purchase this awesome product!”. Oh well…

Mini Review of Nextion Enhanced NX8048K070 7″ Display with Enclosure for HMI Applications

June 21st, 2017 3 comments

I reviewed some Nextion touchscreen a while ago. Those were 2.4″ and 5″ serial TFT displays with optional resistive touch support that could be used in standalone mode, or connected to an MCU board over UART to control external hardware. The user interface could be designed and emulated in Windows based Nextion Editor program before uploading it to the display via UART or micro SD card. ITEAD Studio has recently launched Nextion Enhanced NX8048K070 family of 7″ displays with resistive or capacitive touch panels, and support for GPIOs. The company sent me the capacitive model with enclosure for evaluation, so I’ll have a quick look at the hardware and Nextion Editor in this mini review.

Nextion Enhanced NX8048K070_011C Unboxing

I received it in a package from “ITEAD intelligent solutions” with basic description with

  • Model: NX8048L070_011C with enclosure
  • Outside dimensions : 275 x 170 x 50 mm (That’s the package dimensions)
  • Product size: 218 x 150 x 22.5 mm
  • Gross weight: 0.598kg

Click to Enlarge

The display comes with a UART cable, or small micro USB power board, and a wall mounting kit.

Click to Enlarge

If we check the other side of the display, we’ll find the UART connector on the left, a micro USB slot on the bottom right, and the GPIO connector that inconveniently requires a flat cable, so you’d have to make your own board to connect external hardware, or purchase the company’s $5 expansion board, which is not included in the kit by default. There’s also the almost-compulsory typo found on many devices made in China: “Human Mechine Interface”.

Click to Enlarge

The thickness is indeed 22 mm, but if you fully embed the display into a wall, the visible thickness will be 6 mm.

You may have to open the bottom cover, as you’ll need to add a battery in case you want to use the RTC function.

Click to Enlarge

Let’s have a look an the main IC while we have the case open:

I close the case back, and power the display via the micro USB power supply board, and a USB power adapter.

Click to Enlarge

It’s a simple demo with a background image, some text, a slider, and 4 different pages, which I’ll demonstrate below after doing some simple modifications.

Nextion Editor and NX8048K070 Demo Sample

Nextion Editor is a Windows program, but a while ago, I was told it also worked with Wine in Ubuntu. So I downloaded the latest version (v0.47), and while the installation started, it eventually failed in Ubuntu 16.04. So I reverted to using Windows 7 in VirtualBox. I also downloaded and extracted found at the bottom of Wiki page, which I then opened from Nextion Editor.

Click to Enlarge

The user interface will allow you to add various items from the Toolbox including text, scrolling text, numbers, buttons, pictures, progress bars, gauges, check boxes, and so on. As with the previous version, you’ll also need to import and convert font with a fixed size. The demo already has four of those defined. You can also add and link several pages with 4 pages used in the demo, and the Attributes section is used to defined parameters for the selected item

Click to Enlarge

I just added text. It should have been easy, but I was very confused at the beginning, since nothing would show up when I clicked on “Text” in toolbox. I could change the attributes, but the text would not be displayed. I went back to check the old review, and I used “Add Component” menu in Nextion v0.30 at the time, but that menu does not exist anymore. Finally, I noticed the 800×480 display was not shown completely, on the text was located on the top left of the UI. I delete the dozen text items I had created, and added “CNXSoft was here!” at the end of the list. The user interface is not really intuitive, so I’d still recommend to read the user guide, even some of the parts are outdated, as it should help getting started, and they have examples with Arduino. To control GPIOs on the display, you’d need to use cfgpio code.  In case, you run into troubles because the documentation is not quite as good as expected, you can always try your luck in the forums.

You can click on Compile to check for errors in your user interface, and then Debug to launch the simulator.

This will allow you to test the UI as if it was running in the display itself. You can even send keyboard or MCU commands. Once you are happy with the results, click on Operation->Upload to Nextion to upload the UI to the display. I had some troubles getting the display work when I connected it through my serial debug board via USB hub (the display would blink), but the problem was solved by connecting it directly to the USB power from my computer. The upload still failed as the demo is configured for the 5.0″ board, and it correctly detected a 7.0″ board. The fix was easy, as I just had to select Device ID, and change NX8048K050_011 to NX8048K070_011.

Click to Enlarge

After that the upload could start with the Nextion display properly detected.

It took 6 minutes and 35 seconds to upload the ~4MB user interface to the display, so it’s not really fast. That mean if you have  ~32MB UI, it would take close to 50 minutes. In that case, it would be much faster load the UI from the micro SD card. In that case, you need to copy the .tft file found via Nextion->File->Open build folder.

Here’s a quick overview and demo.

Nextion Enhanced 7″ display can be purchased for $88 with resistive touch and $108 with capacitive touch.

$46 TS100 Digital Programmable Soldering Iron is Controlled by STMicro STM32 MCU

December 5th, 2016 11 comments

I’m now using a $4 soldering iron which works most of the time for what I’m doing, but sometimes it does not seem to heat quite fast enough which may cause problems. I’m not soldering that often, so I did not think about getting a better one, but I’ve just come across an TS100 digital & programmable soldering iron with a OLED display showing the current temperature, and controlled by an STMicro STM32F103T8U6 micro-controller.


The soldering iron also includes an accelerometer which allow the soldering iron to know when you are using it, so the temperature drops if it is inactive for over 5 minutes (sleep mode), and after 10 minutes of inactivity, the soldering iron automatically turns off.

TS100 soldering iron key specifications:

  • OLED Display
  • USB – 1x micro USB port for configuration
  • Temperature Range – 100 to 400 °C; 15 seconds to heat to 300 °C @ 19V; Sleep mode temp: 200 °C (default)
  • Power – 65 Watts (max @ 24V); 40W using 19V power supply
  • Supported Tips – TS-D24, TS-K, TS-BC2, TS-B2
  • Misc – 2x buttons to adjust temperature, calibrate temperature, and enter DFU (firmware update) mode
  • Power Supply – 12 to 24 V via DC5525 connector (an old laptop power supply will work provided it has a 5.5/2.5mm jack)
  • Dimensions – 96 x 16.5 Φ mm for operating unit, 72+33 mm x 5 mm Φ for heating unit
  • Weight – 33 grams

If you connect the TS100 to you computer via its USB port, you’ll be able to change config.txt to adjust default settings like temperature, temperature steps, sleep time, and so on, as well as change the boot logo, and update the firmware.

TS100 is also listed on Tindie where you’ll find a user’s manual, schematics, and source code for your STM32 soldering iron. The manufacturer also has a forum mostly in English, where people exchange ideas, and for example they released a firmware for left handed people.

I discovered the soldering iron thanks to a video by Andreas Spiess comparing irons of different price points: a 30-years old Weller Magnastat, Aoyue 968 A+, two cheaper soldering irons, namely 907 constant temperature soldering iron and Mustool MT223 not-so-adjustable temperature electric soldering iron, and of course TS100.

For each soldering iron, he tested the actual power draw during heating, whether the set temperature (360°C) is the actual temperature, heating speed, heat transfer, and showing special features of each iron. The video is really interesting to watch, but if you don’t have time that’s the summary at the end.

soldering-iron-comparison-tableTS100 performed really well for the price, although there’s about a 30 °C delta between the set and real temperature. I really like small form factor, fast heating and automatic power off feature. I’m pretty sure it will solve the issue I had with my $4 iron, so I was convinced an bought TS100 on Banggood for $45.55. I’ll use a laptop power supply to power it up, but if you don’t have a spare one DSY404-19V-2 power supply is recommended, and sells for $22.02 on Banggood.

Thank you Nanik!

Categories: Hardware, Video Tags: electronics, tools

Realtek RTL8710AF (PADI IoT Stamp) vs Espressif ESP8266 (ESP-07) WiFi RF Performance Comparison

October 27th, 2016 4 comments

After I posted about PADI IoT Stamp IoT kit based on RTL8710AF ARM Cortex M3 WiSoC yesterday, I was soon asked whether I could compare the RF performance against ESP8266 modules like ESP-12. I don’t have any equipment to do this kind of test, except for some simple test like testing range with WiFi Analyzer app, but I remember Pine64 told me they had some comparison data a little while, and accepted to share their results.

wifi-rf-performance-testingThe test setup is comprised of Litepint IQ2010 multi-communication connectivity test system and PC software, as well as the device under test (DUT) with PADI IoT Stamp (version with u.FL antenna connector) and ESP-07 ESP8266 module as a u.FL connector is required to connect the test system.

They’ve tested 802.11b, 802.11g, and 802.11n, but for IoT projects 802.11b is the most important as usually long range is more important than data rate. Test results below are based on CH1 input data with 1dBm compensation.

That’s the results for ESP8266…


ESP8266 802.11b Data, Spectral Mask and Constellation Diagram

.. and the results for RTL8710 using an 802.11b connection.


RTL8710AF 802.11b Spectral Mask and Constellation Diagram

The tables show peak and average power, LO leakage, EVM (Error vector magnitude), Frequency error and other parameters. The spectral mask, and constellation diagram are also shown for each case. If you’ve never studied or worked about RF signal, it’s quite all complicated, but can get some insights by reading Practical Manufacturing Testing of 802.11 OFDM Wireless Devices white paper.

A Spectral Mask describes the distribution of signal power across each channel. When transmitting in a 20 MHz channel, the transmitted spectrum must have a 0 dBr bandwidth not exceeding 18 MHz, –20 dBr at 11 MHz frequency offset, –28 dBr at 20 MHz frequency offset, and the maximum of –45 dBr and –53 dBm/MHz at 30 MHz frequency offset and above.

The Constellation Diagram is a representation of a signal modulated by a digital modulation scheme. It is useful to identify some types of corruption in signal quality. The EVM is a measure of the deviation of the actual constellation points from the ideal error-free locations in the constellation diagram (in % RMS or dB), and you’d want to keep this as small as possible.

In both diagrams, it appears that the signal is quite cleaner on PADI IoT stamp compared to ESP8266 module with more distortions. The diagram are not quite clear enough to check the Spectral Mask values. I’m sure we’ll get some more feedback in the comments section.

If you are interested in 802.11g and 802.11n results, you can access the rest of the report.

NXP Unveils MCUXpresso Development Tools for LPC and Kinetis Microcontrollers

October 25th, 2016 No comments

After NXP bought Freescale, you had development tools for Freescale Kinetis MCUs such as Design Studio or Kenetis SDK, and others such as LPCXpresso for NXP LPC microcontrollers. The company has worked to unifying software and tools support between its ARM Cortex-M MCU families, and has now announced MCUXPresso software and tools for both NXP Kinetis and LPC MCUs.

Click to Enlarge

Click to Enlarge

MCUXpresso unifies thousands of Kinetis and LPC microcontrollers under a set of compatible tools including

  • MCUXpresso SDK – Open-source software MISRA-compliant development kit (SDK) with peripherals drivers, wireless & wired connectivity stacks, middleware, real-time OS, getting started guides, API documentation, and application examples.
  • MCUXpresso IDE – Integrated development environment (IDE) for editing, compiling and debugging. It also integrates MCU-specific debugging views, code trace and profiling, multicore debugging, etc… Both free and professional edition of the IDE will be available, and LPCXpressor and previously Freescale Freedom & Tower platforms will be supported.
  • MCUXpresso config tools:
    • An SDK Builder enabling custom-built SDKs for specific MCUs or evaluation boards.
    • A graphical pins tool to assist with routing of internal signals to external pins, and generates ANSI-C source for the MCUXpresso SDK environment.
    • A clocks tool with a graphical representation of the MCU clock tree system, interactive user controls, and assistance with system fine-tuning.
    • A power estimation tool to allow application modeling and assessment of power consumption under user-defined parameters.
MCUXpresso SDK Architecture

MCUXpresso SDK Architecture

The MCUXpresso SDK and config tools will be available around the middle of next month, and beside built-in support for the MCUXpresso IDE, the SDK can also work with IAR Embedded Workbench, ARM Keil  MDK, Atollic TrueSTUDIO, SOMNIUM  DRT, and others. That’s not a bad thing since MCUXpresso IDE will only be released in March 2017.

You’ll find many more details, and download links for the SDK on MCUXpresso page.

Intel Launches $15 Quark D2000 Arduino Compatible Board

April 14th, 2016 6 comments

Intel introduces three new Quark Micro-controllers last year, and I already experimented with Intel System Studio tools, quite similar to the Arduino IDE, and designed for hardware such as Intel Quark D1000 Customer Reference Board. So far the company had not released any boards available to the general public, but this has now changed since they’ve launched the “Intel Quark Microcontroller Developer Kit D2000”.


Intel Quark D2000 development board specifications:

  • MCU – Intel Quark D2000 32-bit processor Intel Pentium x86-compatible without x87 FPU @ 32 MHz with 8 KB SRAM, 32 KB instruction flash, 8 KB OTP flash and 4 KB OTP data flash
  • USB – 1x micro USB (JTAG) for power and programming/debugging
  • Sensors – 6-axis Accelerometer / magnetometer with temperature sensor (Bosch Sensortec BCM150)
  • Expansion options:
    • Arduino Uno compatible SIL sockets (3.3V IO only)
    • Booster pack compatible SIL headers (3.3V IO only)
  • Misc – Reset and user buttons, jumpers, RTC
  • Power Supply
    • External (2.5V – 5V) DC input via screw terminal
    • USB power (5V) via debug port
    • Coin cell battery (type CR2032 not supplied)
  • Dimensions – 8.4 x 5.7 cm
Click to Enlarge

Click to Enlarge

The board can also be developed with Intel System Studio for Microcontrollers IDE with support for GCC 5.2.1, Intel-enhanced GDB 7.9, Integrated Performance Primitives for Microcontrollers 1.0, Floating Point Emulation library, sample applications, a BSP for the Intel Quark Microcontroller Software Interface (Intel QMSI)
OpenOCD 0.8.0, TinyCrypt 0.1.0, Python 2.7.10, and more. The IDE works in Linux 64-bit (Ubuntu 14.04 LTS, and Fedora 21), and Windows 7/8.1/10 64-bit. All manufacturing and hardware design files have been released (Cadence Allegro), and documentation includes hardware and user’s guides.

The board can be purchased for $14.95 on Mouser, and you can visit Intel Quark Microcontroller D2000 product page for more details about the MCU and the development board, including all documentation.

Decode or Generate QR Codes in Ubuntu with QtQR and zbar-tools

March 21st, 2016 3 comments

Sometimes I’ve found myself having to decode a QR code on my computer, and usually I’d just get my Android smartphone, use a QR code app to decode it, and send the results to my computer by email. It works, but wouldn’t it be better to simply do this straight from my computer instead? After a few minutes searching, I eventually found out QtQR graphical utility that can both generate and decode QR codes.

In Ubuntu and Debian, you can install it as follows:

You can create a QR code with a given pixel size and level of error correction for text, URL, bookmark, email, phone number, SMS/MMS, WiFi network, and so on, and then use the Save QRCode button to save the resulting picture.
QrQR_Decode_URL If instead you simply want to decode a QR code from an image or your webcam use the Decode button, and the tool will automatically extra the data, and offer you to take action, such as opening an URL address.

If you’d rather use the command line,you could install zbar-tools instead:

The image above was a complete Antutu 6.0 results screenshot, so you don’t need to save/edit the picture with the QR code only, and the app will scan the complete picture. If instead you want to scan a QR code with your webcam use zbarcam.

Categories: Linux, Testing, Ubuntu Tags: how-to, Linux, tools, ubuntu

RPi-Monitor is a Web-based Remote Monitoring Tool for ARM Development Boards such as Raspberry Pi and Orange Pi

March 17th, 2016 4 comments

It can be pretty useful to monitor the CPU load, memory and storage usage, and network traffic of your boards, and they are already graphical tools like System Monitor on Ubuntu providing most of the information, and monit can be used on server, but I’ve recently been introduced to RPi-Monitor utility for Raspberry Pi and Orange Pi boards (patched version), that very easy to install, and provide neat chart of many different variables.

Since I’m currently playing with Orange Pi One board running armbian, so that’s the platform I’ve used to run RPi-Monitor (OPi-Monitor). The usage should be exactly the same on Raspberry Pi, but the installation steps are little different.

To install RPi-Monitor on Orange Pi One, open a terminal or access the serial console, and you can install and start the service with a single command line:

It actually took around 8 minutes on my board, as it downloaded and installed required packages. Once the installation is complete redirect your computer browser to the URL provided at the end of the script to access the web interface.

RPI-Monitor_StartupClick on Start to make the system automatically collect data, and you’ll end up on the status page with version information, uptime, CPU usage, temperature, memory usage, SD card usage, and network traffic.

Click to Enlarge

Click to Enlarge

That’s all good, but my favorite part is the Statistics tab with show really neat and useful charts.


Click to Enlarge

They may be confusing at first since two scales are used for multiple elements,  with for example the left sacle (0 to 100) showing CPU usage in percent and SoC temperature, with the left scale (0 to 5) used for the other metrics such as CPU frequency in GHz, Active CPUs, etc… Each element can be easily disabled and enabled.


Click to Enlarge

There are 7 types of charts: Uptime, Load / Clock speeds / Temperature, Details CPU Stats, Memory. Disks – boot, Disks – root, and Network, and 6 update options with the fastest being updated every 10 seconds for a 24 hour window, and the slowest every 60 minutes for a one year view of the board. The Options tab is only used to select the default update time, and you can also access the charts in your smartphone’s browser by scanning the QR core in the About section.

I’ve run sysbench to show the chart in action, and at first I was confused simply because the charts are not updated in real-time, and you need to reload the page to get the latest available data. There are two windows in the Statistics tab with the large one allowing you to zoom-in a specific time period out of the 24-hour window using your mouse, and the smaller one always shows the 24-hour charts (or whatever update time you have selected). The Reset selection clear the zoom in the larger chart.

I’ve run sysbench twice on the chart above, checking the value as the second test was running.  What we can see is that as CPU usage climbed to 100%, the CPU temperature raised to 89.0C, which triggered various cooling states of the processor, leading to drops in the CPU frequency as the test was running. That means for this type of load the board would likely benefit from a heatsink and/or fan to operate at a higher performance level.

RPi-monitor is open source  and you can get the source code and/or report issues on Raspberry Pi boards in github. You can get more info and updates on the developer’s blog.