Self-hosted OpenGL ES Development on ChromeOS?

opengles chromeos

This is a guest post by blu about developing OpenGL ES applications on Chrome OS. Ever since I’ve been using a chromebook in developer mode as my daily notebook (can’t beat 10h-plus battery life on ~300EUR well-performing machines), I’ve been missing one thing ‒ OpenGL ES coding under ChromeOS. My chromebook is more than well-equipped for GLES3 hardware-wise (verified via dual-booting to ArchLinux), and I always have up-to-date toolchains self-hosted under ChromeOS, thanks to an excellent package manager aptly named Chromebrew. And yet my coding-on-the-go under ChromeOS has been limited to console apps ‒ ChromeOS has strict limitations which include no X11 display manager, or any other industry-standard display manager that I’m aware of, and I don’t feel like dual-booting into ArchLinux too often ‒ ChromeOS has spoiled me with its fine-tuned performance. The no-display-manager limitation of ChromeOS is usually worked-around via Crouton but in my case Crouton would not help ‒ no 3D-hardware-accelerated support on ARM chromebooks. So in …

WiFiBoy32 is an ESP32 Portable Game Console and IoT Devkit

WiFiBoy32

I’ve noticed that ever since Hardkernel launched their ODROID-GO “10th anniversary” portable game console based on ESP32 processor, most of the talk on IRC and social media is about this new toy, and people almost seem to have forgotten about the company’s Arm Linux boards 🙂 But recently, I’ve come across a somewhat similar ESP32 device called WiFiBoy32 that acts as both a portable game console and an IoT development kit. WiFIBoy32 specifications: Wireless module – ESP32-WROOM-32 wireless module with 802.11 b/g/n WiFi and Bluetooth 4.2 LE connectivity Display – 2.4″ 240×320 color SPI TFT LCD display Expansion – 2x 8-pin through holes with GPIOs, SPI, DAC, I2S,ADC, VP/VN, and power signals (3.3V, Vin, GND) Misc Top – 6x large gaming buttons, select and start push buttons, buzzer Bottom – PROG and RESET buttons, user LED USB – 1x micro USB port for power and programming (CP2102) Dimensions – 120 x 73 mm The board can be programmed with the …

Coocox CoIDE and GCC Arm Embedded Toolchain Download Links

I’ve been playing with RAK811 LoRa GPS tracker last week-end and earlier this week, and Rak Wireless provides open source firmware for the board that can be work on with Arm Keil or Coocox CoIDE tools. The former requires registration, and the latter is freeware and appears to be preferred by Rakwireless guys. The only problem is that CooCox website have been down for several days, so I could not download the IDE from the official website. So instead I downloaded it from Softpedia together with a GCC toolchain. Sadly the version in Softpedia and the toolchain are outdated, so the firmware won’t build. I had installed CooCox CoIDE v 1.7.8 with GNU Tools ARM Embedded 4.7 2013q. Rakwireless engineers informed me they used CoIDE v 2.0.6 with gcc-arm-none-eabi-5_4-2016q3-20160926-win32. I could not find it online, so they added both to their RAK811 documentation. You’ll find the two files under Tools: CoIDE-V2Beta-20170117.exe and gcc-arm-none-eabi-5_4-2016q3-20160926-win32.exe. But again, it took me a few …

KidBright32 Board is Thailand’s BBC Micro:Bit Equivalent

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 LED displays, three buttons, a buzzer, an RTC, a light …

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 with Wi-Fi/BT and an Aster Carrier Board TI SensorTag (Bluetooth low energy) …

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:

and comparing it to one based on Qualcomm Centriq 2400 Arm SoC:

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 process the most using perf:

encode_mcu_AC_refine and encode_mcu_AC_first are …

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 should use one. We’ll explain what tasks are, 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 Open Source support and for those that aren’t supported yet, …