Getting Started with MicroPython on ESP32 – Hello World, GPIO, and WiFi

I’ve been playing with several ESP32 boards over the months, and tried several firmware images. I started with a tutorial for Arduino Core on ESP32, a few month later I tested ESP32 JavaScript programming with Espruino on ESPino32 board, and recently Espressif Systems sent me ESP32 PICO core development board powered by their ESP32-PICO-D4 SiP, and while I took some pretty photos, I had not used it so far. So I decided to go with yet another firmware, and this time, I played with MicroPython on ESP32, and will report my experience with basic commands, controlling GPIOs, and WiFi in this getting started post. Flashing Micropython Firmware to ESP32 Board Source code is available on Github, as a fork of MicroPython repo as ESP32 support has not been upstreamed yet. We could built the firmware from source, but there’s also a pre-built binary which you can download on MicroPython website. […]

When Your Code Lands You in Jail

You’ve probably heard about Volkswagen emission scandal that surfaced last year. Basically, the company used some tricks to detect when the vehicle was under test and ran in low emission mode during those tests, and normally on the road emitting up to 40 times over the U.S. pollution limits. Cheating is quite easy because testing is performed indoor with the car wheels on rollers as shown in the picture below, so all the software had to do is detect whether the car was actually moving forward to select the right mode. Several executives involved in the decision to rig the emissions tests got charged as expected, but what happened to the engineer who implemented the code following his  boss(es)’ request? Reuters reports that he’s been sentenced to 40-month prison term, and a $200,000 fine, after pleading guilty early on, and collaborating with authorities. His lawyer argued that Jiang (Engineer surname) […]

How ARM Nerfed NEON Permute Instructions in ARMv8

This is a guest post by blu about an issue he found with a specific instruction in ARMv8 NEON. He previously wrote an article about OpenGL ES development on Ubuntu Touch, and one or two other posts. This is not a happy-ending story. But as with most unhappy-ending stories, this is a story with certain moral for the reader. So read on if you appreciate a good moral. Once upon a time there was a very well-devised SIMD instruction set. Its name was NEON, or formally — ARM Advanced SIMD — ASIMD for short (most people still called it NEON). It was so nice, that veteran coders versed in multiple SIMD ISAs often wished other SIMD ISAs were more like NEON. NEON had originated as part of the larger ARM ISA version 7, or ARMv7, for short. After much success in the mobile and embedded domains, ARMv7 was superseded by […]

Getting Started with MediaTek X20 Android Development Board

Thanks to CNX for helping me get a hand on the 96Boards compliant Mediatek X20 board that was generously donated by Seeed Studio. In this article, I will walk through the steps to get the board up and running and also compile Android from the source code. The current Android is version 6. Unboxing the Beast First Boot Up The board boots up from the eMMC, and the first time you boot up you will get Android screen as shown in Figure-9. This is the default Android image from the factory, which surprisingly looks like it was setup for a phone screen mode, which is not sufficient for a HDMI monitor. It would be better to install the images that are made available at Linaro website or build your own. See the other section to flash the board with different images. Switching to Fastboot Mode Flashing image files are done […]

OnePlus 5 Smartphone Linux Kernel & Android Source Code Released

OnePlus 5 is a premium smartphone powered by a Qualcomm Snapdragon 835, 6 to 8 GB LPDDR4x RAM, 64 to 128 GB UFS 2.0 storage and a 5.5″ Full HD display, as well as the usual LTE, WiFi, Bluetooth, GPS.. connectivity. It was launched yesterday for $479 with 6GB RAM/64GB storage, $539 with 8GB RAM/128GB storage, and today, I’ve just read on XDA developers that the company had already released the source code for the phone. Beside the official Google Nexus/Pixel smartphones, many manufacturers will drag their feet before they eventually open the source code that they are legally required to release. Some companies will release the source code as tarballs, which works, but OnePlus has done better with Linux 4.4.21 source code available on Github. You should also be able to get the Android 7.1 Nougat source code as indicated here:

The source code should lead to improvements […]

XOD is a Visual Programming Language for Arduino, Raspberry Pi, and other Maker Boards

When you think about visual programming on the Raspberry Pi or Arduino board, Scratch may come to mind, but some developers have decided to create their own visual programming language working for Arduino, Raspberry Pi, and other boards. Meet XOD, pronounced ksəud. The developers explains their used “functional reactive programming principles and added graphical functionality”. XOD is comprised of “nodes” that represents either some physical device like a sensor, motor, or relay, or some operation such as addition, comparison, or text concatenation, which you can link together through inputs and outputs to create a program, and XOD IDE will compile the resulting diagram to create and upload a binary program to Arduino, Raspberry Pi, etc… You can also convert a XOD diagram into a node with inputs and outputs to use it in another diagram, so the language is scalable. The developers are now looking for testers to play with […]

WebAssembly is a Cross-Platform, Cross-Browser Solution for High Performance Code in Web Browsers

Most code running in a web browser runs much slower than native code (C/C++/ assembly), and it’s fine for many applications, but some others requiring higher performance like software video decoding would have to relies on native code, initially provided via browser plugins, but then Google introduced PNaCL (Portable Native Client) allowing to run native code on multiple targets (ARM, Intel, etc..) but in Chrome browser only, and now one of Chrome developers has explained that the community has moved to WebAssembly. WebAssembly works just as well as PNaCl, and is already natively supported by Chrome and Firefox, with support added to preview versions of Microsoft Edge and Apple Safari browsers.Since it works just as well as PNaCL, and adoption of the later is low enough, Google decided to drop support for PNaCl in the Chrome browser in Q1 2018, except inside Chrome Apps and Extensions. To get a feel […]

Getting Started with OpenCV for Tegra on NVIDIA Tegra K1, CPU vs GPU Computer Vision Comparison

This is a guest post by Leonardo Graboski Veiga, Field Application Engineer, Toradex Brasil Introduction Computer vision (CV) is everywhere – from cars to surveillance and production lines, the need for efficient, low power consumption yet powerful embedded systems is nowadays one of the bleeding edge scenarios of technology development. Since this is a very computationally intensive task, running computer vision algorithms in an embedded system CPU might not be enough for some applications. Developers and scientists have noticed that the use of dedicated hardware, such as co-processors and GPUs – the latter traditionally employed for graphics rendering – can greatly improve CV algorithms performance. In the embedded scenario, things usually are not as simple as they look. Embedded GPUs tend to be different from desktop GPUs, thus requiring many workarounds to get extra performance from them. A good example of a drawback from embedded GPUs is that they are […]

EmbeddedTS embedded systems design