Customize GStreamer build with only the features needed for your application

Gstreamer customize

Thanks to a partnership between Collabora and Huawei is now possible to build Gstreamer with just the features required for a specific application, reducing the binary size for space-constrained embedded systems. Gstreamer is a very popular open-source multimedia framework used in a wide variety of projects and products, and with an impressive number of features spread over 30 libraries and more than 1600 elements in 230 plugins. This is not a problem on desktop PC and most smartphones, but the size of the binary may be too large for some systems, and until recently it was no easy way to customize GStreamer build for a specific application. But Collabora changed the code to allow gst-build to generate a minimal GStreamer build. The company built upon a new feature from GStreamer 1.18, released in September 2020, that makes it possible to build all of GStreamer into a single shared library named […]

ArduinoShrink library slashes code size, boosts speed of Arduino AVR firmware

ArduinoShrink

Arduino AVR Core is supposed to be already efficient, as the resulting code will run on AVR ATmega168 and ATmega328 MCUs with just 16 to 32KB of internal flash storage and 8 to 16 MHz clock speeds. But Nerd Ralph felt there was space for improvement as for instance the Blink sample takes 924 bytes of flash storage when compiled for the Arduino Uno.  So he developed ArduinoShrink library with the same functions as Arduino AVR Core but enabling smaller and faster firmware files. The result is pretty impressive as we can see from the screenshot above with the Blink sample now taking just 196 bytes or an almost 80% reduction in size. So how was this feat achieved exactly? Ralph explains it in details in a blog post, but in a nutshell, the following main two steps were taken: Writing modular, self-contained code instead of providing a single static […]

Android 12 developer preview released – What’s New?

Android 12 developer preview

Google releases a new version of Android every year, and the company is now usually releasing a developer preview in February to allow feedback and testing from app developers. So here we are with the Android 12 developer preview having just been released by Google with changes ranging from trust and safety to media transcoding to support for AVIF image format. Android 12 highlights: Performance Improved Binder IPC calls – Google engineers have had a look at latency and workload distribution, and made optimizations that reduce the median experience. This has yielded roughly a 2x performance increase on Binder calls overall, and up to a 47x improvement in refContentProvider(), 15x in releaseWakeLock(), and 7.9x in JobScheduler.schedule(). Foreground service optimizations – To ensure a better experience for users, foreground service starts from the background will be blocked for apps that are targeting the new platform. Android 12 will also delay the […]

JPEGDEC is a Faster JPEG Arduino Library Designed for 32-bit MCUs

In order to ensure software compatibility, Arduino libraries are supposed to work on various types of hardware from 8-bit microcontrollers with a limited amount of memory to more powerful 32-bit chips like STM32 Arm Cortex-M MCU or ESP32 dual-core Tensilica WiSoC that can access a larger amount of RAM. This is all good, but in some cases, this may affect performance. Larry Bank noticed this when looking for a JPEG viewers for Arduino and only found ones which sacrificed speed to work on MCUs with very little RAM. So he started to work on JPEDDEC JPEG Arduino library optimized for speed and compatible with any MCU with at least 20K of RAM. Optimizations go beyond just loading more data into memory, as Larry explains in a blog post, the library also performs the removal of stuffed bytes, optimize the Huffman decode and DCT parts, and more. Some of the key […]

Perfetto Profiler Now Supports Mali GPU Hardware Counters via Panfrost

Perfetto Mali GPU Profiling

Perfetto is an open-source system profiler, app tracer, and trace analyzer for Linux, Android & Chrome platforms, and user-space apps. The program can already visualize CPU and memory usage, as well as power consumption.  GPU support is more limited with the program only capable of sampling the GPU frequency when the driver outputs that information via ftrace. When Perfetto is also extendable thanks to a Tracing C++ SDK that “allows userspace applications to emit trace events and add more app-specific context to a Perfetto trace”. Collabora made use of the tracing SDK to add support for Mali Midgard GPU performance profiling in gfx-pps project using the Mali GPU hardware counters exposed via Panfrost open-source Mali GPU driver. After following the installation instructions, you’ll be able to run the following executables for tracing and profiling: tracedtracing service. traced_probes OS probes service. perfetto command-line tool for recording traces. producer-gpuproviding the Panfrost data […]

ZS1100A IoT Power Meter Supports Sigrok Open-Source Software (Crowdfunding)

ZS110A power meter

A few months ago, I tested Qoitech Otii Arc power meter & DAQ system designed for developers of IoT devices, and fount out it would be incredibly useful to developers of battery-operated devices since it shows voltage and current graphs synchronized with the serial output making it easy to see where software might be optimized. The system can also capture analog and digital signals from the DUT and emulate batteries with user-defined characteristics. But this weekend, I’ve come across a very similar solution with ZS1100A IoT power meter that also happens to be compatible with Sigrok open-source signal analysis software, and the corresponding Pulseview GUI. ZS1100A IoT power meter specifications: Measurements Output Voltage Range – 0 to 6 V programmable in 10 mV steps with +/- 5mV accuracy, Current Measurement Range – -0.5 A to 1.5 A (linear range) with < 0.1 μA resolution,  accuracy of 1% of measured value […]

Getting Started with Qoitech Otii Developer Tool using ESP8266 and Raspberry Pi 4 Boards

Qoitech Otii Arc Raspberry Pi 4

Last month, I received Qoitech Otii Arc power supply, power meter, and DAQ unit that aims at helping hardware and software engineers develop energy-efficient products. I’ve now had time to test the unit with an ESP8266 board and Raspberry Pi 4 SBC, so I’ll show how to get started and my overall experience with the hardware and program. Requirements and Initial Setup The unit takes a 9V power supply or micro USB adapter as power input, but power output is done through banana plugs. I did not have any cables with banana plugs so I bought one on eBay for about $5 shipped. This cable is really convenient with output to USB (female connector), crocodile clips, and hook clips. However, as we’ll see below it may not be suitable for all types of loads, and you may have to make your own with a higher rated cable. You’ll need to […]

Linaro Connect San Diego 2019 Schedule – IoT, AI, Optimizations, Compilers and More

Linaro Connect San Diego 2019

Linaro has recently released the full schedule of Linaro Connect San Diego 2019 that will take place on  September 23-27. Even if you can’t attend, it’s always interested to check out the schedule to find out what interesting work is done on Arm Linux, Zephyr OS, and so on. So I’ve created my own virtual schedule with some of the most relevant and interesting sessions of the five-day event. Monday, September 23 14:00 – 14:25 – SAN19-101 Thermal Governors: How to pick the right one by Keerthy Jagadeesh, Software Engineer, Texas Instruments With higher Gigahertz and multiple cores packed in a SoC the need for thermal management for Arm based SoCs gets more and more critical. Thermal governors that define the policy for thermal management play a pivotal role in ensuring thermal safety of the device. Choosing the right one ensures the device performs optimally with in the thermal budget. […]

Exit mobile version
EmbeddedTS embedded systems design