BBC Micro:Bit board was first announced in July 2015. Designed for STEM education, the board was then offered to UK schools in March 2016, and a few months later UK store would start selling it worldwide. It’s now available pretty much anywhere, and you can likely find it in a local store or online. The Thai government must have seen this, and thought to themselves “If the British can do it, we can do it too!”, as the National Electronics and Computer Technology Center (NECTEC) part of Thailand’s Ministry of Science and Technology designed KidBright32 board and courses to teach STEM to Thai students. The board is based on Espressif Systems ESP32-WROOM-32 WiFI and Bluetooth module, and comes with large holes for power (5V/GND) and 6 digital inputs/outputs, smaller through holes for I2C and more I/Os, as well as an I2C header. We’ll also find some LEDs, two dot matrix […]
Visual Studio 2017 with an Embedded Linux Arm Device
This is a non-sponsored guest post written by Marc Goodner: Principal Program Manager, Microsoft, and Jeremias Cordoba: Innovation Engineer, Toradex. Today many embedded devices run some flavor of Linux as their primary operating system. This poses a challenge to developers who run Windows on their development machine. This article explains a new way to use the latest Visual Studio for C++ development on an embedded Arm Devices from a Windows Host PC using containers for the build environment. The device we are deploying to is from the Toradex Colibri Family of System on Modules using the NXP i.MX 6ULL SoC, which features an Arm Cortex A-7. As a demo project, we will connect a Bluetooth Sensor with the Toradex Colibri Module. Please note that Visual Studio support for this case is in an early state, you will see improvements from Microsoft and Toradex in the coming months. Prerequisites Colibri i.MX 6ULL […]
Optimizing JPEG Transformations on Qualcomm Centriq Arm Servers with NEON Instructions
Arm servers are already deployed in some datacenters, but they are pretty new compared to their Intel counterparts, so at this stage software may not always be optimized as well on Arm as on Intel. Vlad Krasnow working for Cloudflare found one of those unoptimized cases when testing out Jpegtran – a utility performing lossless transformation of JPEG files – on one of their Xeon Silver 4116 Server:
1 2 3 4 5 |
vlad@xeon:~$ time ./jpegtran -outfile /dev/null -progressive -optimise -copy none test.jpg real 0m2.305s user 0m2.059s sys 0m0.252s |
and comparing it to one based on Qualcomm Centriq 2400 Arm SoC:
1 2 3 4 5 |
vlad@arm:~$ time ./jpegtran -outfile /dev/null -progressive -optimise -copy none test.jpg real 0m8.654s user 0m8.433s sys 0m0.225s |
Nearly four times slower on a single core. Not so good, as the company aims for at least 50% of the performance since the Arm processor has double the number of cores. Vlad did some optimization on The Intel processor using SSE instructions before, so he decided to look into optimization the Arm code with NEON instructions instead. First step was to check which functions may slowdown the […]
Embedded Systems Conference 2018 Schedule – IoT, Security, Artificial Intelligence, and More
The Embedded Systems Conference takes place each year in Boston, US in April or May. This year, the event will occur on April 18-19, and the organizers have published the schedule with 7 tracks: Advanced Technologies, Center Stage (free), Embedded Hardware Design & Verification, Embedded Software Design & Verification, IoT and Connected Devices, Keynotes (free) and Special Event (free). Even if you can’t attend, it’s always useful to have a look at the schedule to learn about potential industry developments. So I’ve made my own virtual schedule with some of the sessions I found relevant to this blog. Wednesday, April 18 8:00 – 10:00 – An Introduction to RTOS by Jean Labrosse (Software Architect, Silicon Labs) This tutorial will help you understand what RTOSs are and how they work so that you can make better use of their features. The class will explain what an RTOS is and why you […]
Embedded Linux Conference & IoT Summit 2018 Schedule
The Embedded Linux Conference 2018 and the OpenIoT Summit 2018 will jointly take place next month, on March 12 – 14, 2018 in Portland, Oregon, USA. The former is a “vendor-neutral technical conference for companies and developers using Linux in embedded products”, while the latter is a “technical conference for the developers and architects working on industrial IoT”. The Linux Foundation has already published the schedule, and it’s always useful to learn what will be discussed about even for people who won’t attend. With that in mind, here’s my own virtual schedule with some of the talks I find interesting / relevant to this blog. Monday, March 12 10:50 – 11:40 – Progress in the Embedded GPU Ecosystem by Robert Foss, Collabora Ltd. Ten years ago no one would have expected the embedded GPU ecosystem in Linux to be what it is now. Today, a large number of GPUs have […]
JeVois-A33 Linux Computer Vision Camera Review – Part 2: Setup, Guided Tour, Documentation & Customization
Computer Vision, Artificial Intelligence, Machine Learning, etc.. are all terms we hear frequently those days. JeVois-A33 smart machine vision camera powered by Allwinner A33 quad core processor was launched last year on Indiegogo to bring such capabilities in a low power small form factor devices for example to use in robotics project. The company improved the software since the launch of the project, and has now sent me their tiny Linux camera developer kit for review, and I’ve already checked out the hardware and accessories in the first post. I’ve now had time to test the camera, and I’ll explained how to set it up, test some of the key features via the provided guided tour, and show how it’s possible to customize the camera to your needs with one example. Getting Started with JeVois-A33 In theory, you could just get started by inserting the micro SD card provided with […]
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) […]