Top 10 Programming Languages in 2016 for Embedded Software Development

IEEE Spectrum has published a list of the top programming languages in 2016 for Web, Mobile, Enterprise, and Embedded sectors with rankings created by weighting and combining 12 metrics from 10 sources. So I thought it would be fun to have a look at the top 10 of languages used for embedded software, and the results are: As expected, C and C++ are at the top, but I’m quite surprised that “Arduino” is now considered a programming language, as it is simply based on C/C++.  When I worked as an embedded software engineer a few years ago, I personally used C, and Assembly, and to a lesser extend C++ and VHDL. I only recently started to play with Arduino code, and while I’ve heard of most other languages in the list, it’s the first time I’ve ever seen Ladder Logic, probably because it’s designed to program PLCs in industrial control […]

The Eclipse Foundation Releases Open Source Smart Home & IoT Gateway Frameworks, MQTT & oneM2M Implementations

The Eclipse Internet of Things (IoT) Working Group has released – or soon will be releasing – four open source projects for the Internet of Things with Eclipse SmartHome 0.8 framework, Eclipse Kura 2.0 IoT gateway framework, Eclipse Paho 1.2 MQTT & MQTT-SN clients, and Eclipse OM2M 1.0 implementation of oneM2M standard. Eclipse SmartHome 0.8 Eclipse SmartHome is a framework for smart home solutions that runs on embedded devices, including Raspberry Pi, BeagleBone Black or Intel Edison development boards. The latest SmartHome 0.8 release includes a new REST API and corresponding “Paper UI” administration interface, support for new devices including Sonos speakers, LIFX bulbs, Belkin WeMo devices, digitalSTROM systems, EnOcean devices (via a new OSGi EnOcean Base Driver) and others, as well as a new rule engine supporting templates for beginners, JavaScript for automation rules and graphical rule editors. You can find more details on Eclipse SmartHome page, and/or download SmartHome 0.8, […]

ELLO 2M is a DIY Computer with a Keyboard, a 7″ Touchscreen Display and a Prototyping Area (Crowdfunding)

ELLO_2M

The traditional way to play with electronics is to get a board (e.g. Arduino), a breadboard to wire components & sensors to the board, and a computer for programming.  ELLO 2M combines all that into a single piece of hardware with a 7″ touchscreen display, a Microchip PIC32 micro-controller board, a solderless prototyping area made of PGA sockets, and a keyboard. ELLO 2M hardware specifications: MCU – Microchip PIC32MX470 32-bit micro-controller @ 120 MHz with 128kB RAM (512kB RAM in the ELLO 2M “hacker” versions) Extra System Memory – Optional on-board serial non-volatile data RAM Storage – 3x micro-SD cards (one permanently built-in and two for removable storage); internal serial FRAM Display – 7″ LCD touch-screen panel with 800×480 pixel resolution Audio – Small speaker and buzzer Keyboard – Replaceable QWERTY keyboard Connectivity – 2.4GHz RF communication module with simple communication protocol Expansion – Expansion receptacle, electronic prototyping space with […]

GNU Complexity Command Line Tool Measures Complexity of C Code

GNU complexity is a command line tool that computes a complexity measure of C source code, similar to pmccabe, but with a different method of calculating results with short functions scoring lower than pmccabe and highly nested functionality can score considerably higher. It can be useful to locate suspicious areas in unfamiliar code, get an idea of the efforts required to either understand the code or test it, or self-assess your own code. Bruce Korb, the maintainer, has just released version 1.5 with some bug fixes, so I’ve given it a quick try. We’ll need to get the code, build and install it first:

The user’s manual provides some insights and an example, which I’ve used against a directory in Linux source code:

The resulting table shows six information per line: the computed score, the number of lines between the opening and closing curly braces (ln-ct), the number […]

Marvell EZ-Connect MW302 IoT Starter Kit Supports AWS IoT Cloud Services

Amazon has just launched AWS (Amazon Web Services) IoT (Beta), a cloud platform that lets connected devices securely interact with cloud applications and other IoT devices. As pasrt of the announcement, they also released AWS IoT SDK that comes in three flavors: Embedded C SDK for C-based platforms such as Linux, RTOS, with variants for OpenSSL and mbed TLS. JavaScript SDK in Node.js Arduino Yún SDK. Ten started kits are currently officially supported by AWT IoT, many of them being existing platforms such as LinkIt One, BeagleBone Green, Intel Edison, or TI LaunchPad CC3200,  with several of these kits including SeeedStudio’s Grove modules. One of the kits that’s completely new, at least to me, is Marvell EZ-Connect MW302 IoT Starter Kit which include a mini USB to USB cable, and Marvell 88MW302 development board with the following (preliminary) specifications: SoC – Marvell EZ-Connect MW302 ARM Cortex-M4 WiSoC with 512KB SRAM […]

LimiFrog is a Bluetooth 4.1 Wearables Devkit Based on STM32L4 with Lots of Sensors (Crowdfunding)

LimitFrog is a tiny board powered by STMicro STM32-L4 microcontroller with Bluetooth 4.1 connectivity, plenty of sensors, and that can run code bare metal as well as RiOT real-time operating system. LimiFrog specifications: MCU – STMicro STM32-L4 ARM Cortex M4 micro-controller @ 80 MHz with DSP, 512KB flash, 128KB RAM External storage – 8MB serial flash for data that supports FAT32 file system Display – 160×128 RGB565 OLED display Connectivity – Bluetooth 4.1 (Panasonic PAN1740) Sensors (Follow this link for datasheets of most components) Pressure, altitude & temperature (LPS25H) 3-axis accelerometer, 3-axis gyroscope (LSM6DS3) 3-axis magnetometer (LIS3MDL) Ambient light, proximity and distance (VL6180X) Ambient sound (SPU0414H5H) USB – micro USB port for power and programming Expansions – 11-pin (through holes) providing access to SPI, I2C, CAN, PWM, GPIOs, ADC, DAC, Analog out, and power signals (3V out GND) Battery – 500 mAh (hours to weeks of battery life depending on […]

Google’s Portable Native Client Builds Architecture Independent Executable for Portability, and Better Performance

Native Client (NaCl) allows to build native C and C++, and runs it in the browser for maximum performance. Applications such as photo editing, audio mixing, 3D gaming and CAD modeling are already using it. The problem is that you have to build the code for different architecture such as ARM, MIPS or x86. To provide a portable binary, Google announced the Portable Native Client (PNaCl, pronounced pinnacle), which “lets developers compile their code once to run on any hardware platform and embed their PNaCl application in any website”. Instead of compiling C and C++ code directly to machine code, PNaCl generates a portable bitcode executable (pexe), which can be hosted on a web server. Chrome then loads this executable, and converts it into an architecture-specific machine executable (native executable – nexe) optimized for the device where the code runs. Bullet physics simulators (Shown below) and Lua interpreters are two […]

2013 Embedded Market Study – Software Development & Processors

UBM releases a study of the embedded market every year, by surveying over 1,000 embedded professional every year. They’ve just published their 2013 Embedded Market Study (85 pages report), after surveying over 2,000 engineers and managers, so let’s see whether anything has evolved in the software development and processor space compared to 2012. Again this year, most respondents are based in the US (62%), followed by Europe (20%), and Asia (12%). C/C++ languages still rule the embedded world with 81% market share, although a little less than last year (85%), assembler is a distant third (5%). Interestingly, the average size of development teams seems to have shrunk from 15.9 in 2012 to 14.6 in 2013, the average project being composed of 4 software engineers, 2.9 hardware engineers, 2.7 firmware engineers, 2 QA/Test engineers, 1.5 system integrators, and 1.5 with other functions. About a third of project last less than 6 […]

EmbeddedTS embedded systems design