Archive

Posts Tagged ‘open source’

Micrium µC/OS RTOS Is Now Free for Makers and Startups

June 24th, 2016 1 comment

According to UBM embedded market study for 2015, Micrium µC/OS real-time operating system only came second after FreeRTOS when the company asked close to 1,000 engineers and managers around the world which operating systems they were currently using in their embedded products. The OS appears to be particularly popular in Asia, and the results are all the more impressive considering it’s a commercial operating systems.

Operating Systems used in Embedded Systems (UBM Survey)

Operating Systems used in Embedded Systems (UBM Survey)

But Micrium decided to bring more people on board by announcing a free version called µC/OS for Makers targeting hobbyists and startups (<$100k revenues) in February earlier this year. The real-time operating system includes a preemptive multitasking real-time kernel with optional round robin scheduling, has a low footprint (6K to 24K bytes code space, 1K+ bytes data space), support various types of targets including ARM Cortex-M and Cortex-A based MCU and processors such as STMicro STM32,  NXP Kinetis, Cypress PSoC5, etc.., as well as Atmel AVR, TI MSP430 and many others.

The Maker version of the OS excludes the CAN module, Building Blocks and the Graphical UI library, but comes with USB, TCP/IP, Modbus, and file system stacks. A summary of the different licenses for µC/OS-III is shown in the table below.

Click to Enlarge

Click to Enlarge

You can find more information on Micrium Maker page, or directly download it  (free email registration required) to try it out on your own platform or board.

Via 43oh.com

BusyBotNet is a Fork of Busybox with Security Tools

June 20th, 2016 1 comment

Busybox provides a lightweight version of common command line utilities normally found on “big” Linux into a single binary, in order to bring them to embedded systems with limited memory and storage. As more and more embedded systems are now connected to the Internet, or as they are called nowadays the Internet of Things nodes, adding security tools, such as cryptographic utilities, could prove useful for administrators of such system, and so BusyBotNet project wsa born out of a fork of Busybox.

BusyBotNetSome of the tools implemented include:

  • fenc to encrypt stuff with salsa algo
  • tsh. needs work, backdoor shell aes enc
  • rathole backdoor shell, blowfish enc
  • ssyn2 ddos tool
  • sudp udp ddos tool
  • jshon sh wrapper for json
  • hydra
  • prism userspace icmp triggered reverse shell backdoor

You can access the source code and instructions on busyboxnet github repo.

I’ve quickly tried it in my AMD x86 computer running Ubuntu 14.04 using BusyBotNet default settings:

You could run make menuconfig to add or remove the tools as needed.

The resulting binary was 3.1MB large, and compiled with the defined functions:

The promised tools are indeed installed:

Loading this version of busybox in shipping products could seriously backfire if your device is hacked, so I guess some of the tools would have to be disabled, or/and  only be used for internal testing.

Via n0where

Categories: Linux, Testing Tags: busybox, IoT, Linux, open source, security

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

June 17th, 2016 3 comments

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_IoTEclipse 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, and optionally SmartHome Designer for Linux, Mac OS X, or Windows.

Eclipse Kura 2.0

Eclipse Kura is a framework for building IoT gateways with the latest Kura 2.0 release to bring a new responsive user interface (UI), support for multiple cloud connections to Eurotech Everyware Cloud, Amazon AWS IoT, Microsoft Azure IoT and IBM IoT Foundation, new tools and code samples to ease the creation of Kura applications, and tighter integration with Apache Camel.

Eclipse Kura 2.0 will be available later in June. You can find more details, including instructions to use it on BeagleBone Black and Raspberry Pi boards on Eclipse Kura page. Kura is also found on commercial M2M and IoT gateways such Eurotech ReliaGATE 15-10.

Eclipse Paho 1.2

Paho MQTT Clients Features Comparison (Click to Enlarge)

Paho MQTT Clients Features Comparison (Click to Enlarge)

Paho provides an open-source client implementations of the MQTT and MQTT-SN messaging protocols in Java, Python, JavaScript, C, .Net, Android and Embedded C/C++ client libraries. Paho 1.2 release adds automatic reconnect & offline buffering functionality for the C, Java and Android Clients, webSocket support for the Java and Python Clients, and a new Go Client for Windows, Mac OS X, Linux and FreeBSD.

Visit Eclipse Paho page for more details about the implementations and to download the latest 1.2 version.

Eclipse OM2M 1.0

Eclipse OM2M is an open source implementation of the oneM2M standard, and the version 1.0 includes the following features:

  • Modular platform architecture, based on OSGi making it highly extensible
  • Lightweight REST API exposed through multiple communication bindings including HTTP and CoAP protocols and supporting various content formats such as XML and JSON.
  • Flexible data storage based on an abstract persistence layer supporting embedded & server databases, in-memory mode, SQL & NoSQL models.
  • Implementation of  Dedicated Common Service Entity (CSE) for Infrastructure node (IN), Middle Node (MN), and Application Service Node (ASN), and Common Service Function (CSF) including: Registration, Application and Service Management, Discovery, Data Management and Repository, Subscription and Notification, Group Management, Security, etc.
oneM2M Functional Architecture with AE (Application Entity), CSE and NSE

oneM2M Functional Architecture with AE (Application Entity), CSE and NSE

Version 1.0 release will be available later this month, you can find out more on Eclipse OM2M page.

The foundation has also issued a proposal for Eclipse Kapua open source project aimed to create a modular integration platform for IoT devices and smart sensors.

You can also check out other open source IoT projects on Eclipse IoT microsite.

OnePlus 3 Smartphone Launched Together With Source Code

June 15th, 2016 3 comments

Most smartphone manufacturers will drag their feet to release GPL source code, unless you go with Google Nexus or Android One smartphones. OnePlus is another exception as they have just launched OnePlus 3 smartphone, and released the source code the very same day as the hardware launch.

OnePlus_3OnePlus 3 specifications:

  • SoC – Qualcomm Snapdragon 820  quad core ARMv8 processor with two “Gold” cores up to 2.2 GHz, two “Silver” cores up to 1.6 GHz, Adreno 530 GPU with support for OpenGL ES 3.2, OpenCL 2.0, and Vulkan, and  Hexagon 680 DSP  @ up to 825 MHz
  • System Memory – 6GB LPDDR4
  • Storage – 64GB UFS 2.0 flash
  • Display – 5.5″ 1920 x 1080 optic AMOLED touchscreen display; Corning Gorilla Glass 4
  • Audio – 3.5mm audio jack; bottom facing speaker; dual microphone with noise cancellation; Dirac HD sound technology
  • Cellular Networks
    • GSM: 850, 900, 1800, 1900 MHz
    • North America model: WCDMA: Bands 1/2/4/5/8; FDD-LTE: Bands 1/2/4/5/7/8/12/17;  CDMA EVDO: BC0
    • Europe / Asia model: WCDMA: Bands 1/2/5/8; FDD-LTE: Bands 1/3/5/7/8/20; TDD-LTE: Bands 38/40/41
    • China model: WCDMA: Bands 1/2/5/8; FDD-LTE : Bands 1/3/7; TDD-LTE: Bands 38/39/40/41; TD-SCDMA : Bands 34/39; CDMA EVDO: BC0
    • 4G LTE Cat.6
    • Dual nano SIM slot
  • Connectivity – 802.11 a/b/g/n/ac WiFi, Bluetooth 4.2, NFC, GPS, GLONASS and BeiDou
  • Cameras
    • Rear camera – 16MP with EIS (Electronic image stabilization)  OIS (optical image stabilization), auto focus, up to 4K @ 30 fps or 720p @ 120 fps (slow motion); Sony IMX 298 sensor
    • Front-facing camera  – 8 MP with EIS, fixed focus up to 1080p30 fps; Sony IMX179 sensor
  • USB – USB Type-C @ USB 2.0 speed
  • Sensors – Fingerprint 3.0 scanner, Hall sensor, accelerometer, gyroscope, proximity sensor, ambient light sensor and electronic Compass
  • Misc – Hardware keys, vibration motor, RGB LED notification light
  • Battery – 3,000 mAh non-removable capacity with support for Dash charge (5V/4A)
  • Dimensions – 152.7 x 74.7 x 7.35 mm (Anodized aluminum body)
  • Weight – 158 grams

The phone ships with a pre-applied screen protector, a Dash charge Type-C cable and charge adapter, a SIM tray ejector, and a quick start guide. OnePlus3 runs OxygenOS based on Android 6.0 Marshmallow.

This brings me to the software release. I understand that while OxygenOS itself is not open source, you can still retrieve the open source part and some extra binaries from the phone to build and possibly modify the image yourself, as explained on OnePlusOSS github repo:

  1. Retrieve the open source code:
  2. Retrieve some close source libraries from the phone after rooting it:

    This will create a “vendor” directory that you need to copy to the build directory
  3. You can then build the firmware:
  4. and flash it with fastboot:

OnePlus 3 sells for 399 Euros. More details can be found on the product page, and if you are interested in hacking the device (rooting won’t void the warranty btw), you may want to check the dedicated forum on XDA developer.

Apache Mynewt RTOS for IoT Includes an Open Source Bluetooth 4.2 LE Stack for MCUs

June 15th, 2016 5 comments

The Apache Software Foundation has recently released version 0.9 Apache Mynewt open source real-time operating systems for micro-controllers under… an Apache 2.0 license. The RTOS works on STMicro STM32 Cortex-M4, and Arduino Zero / M0 Cortex-M0 boards, but they’ve also implemented the  first open source Bluetooth Low Energy stack for MCUs, starting with support for Nordic Semi nRF52 Cortex-M4 and nRF51 Cortex-M1 evaluation boards, and acting as a replacement for Nordic SoftDevice Bluetooth Smart / LE solution.

Apache_Mynewt_System_Block_DiagramThe operating system competes with ARM mbed, the Zephyr Project, and RIoT, but the foundation claims it is the only one that’s both community driven and permissively licensed (Apache 2.0) project in the embedded space.

The OS is modular and can be configured with a Go-like build and package management tool with components such as secure boot loader, flash file system and TLV storage mechanism, rich logging infrastructure, circular buffering schemes, and Bluetooth 4.2 Low Energy. WiFi, Thread, and Bluetooth 5 are also part of the roadmap, and support for Javascript and Python is currently being worked on.

You can find more information and/or get started with the project on Apache Mynewt microsite.

Frosted OS is an Open Source POSIX Operating System for Cortex-M Micro-controllers

June 9th, 2016 5 comments

Frosted, which stands for “Free Operating Systems for Tiny Embedded Devices”, is an OS with a POSIX-compliant system call API, borrowing the Linux kernel kconfig for configuration, and currently supporting ARM Cortex M0,M3,M4, and M7 MCU including Texas Instruments Stellaris LM3S, STMicro STM32F4/F7, and NXP LPC17XX micro-controllers. The developers are focusing on IoT applications, as well as porting retro-games such as Doom.

Doom on STM32F7 Board

Doom on STM32F7 Discovery Board

The kernel relies on libopencm3 for hardware abstraction, and the operating system can be built with GCC ARM for Frosted using the source code released under a GNU GPLv2 license.

The Wiki explains how to build and run the OS on either Qemu (in a Linux computer) used LM3S target, or an STM32F4 Cortex -M4 or STM32F7 Cortex-M7 board. The team also uploaded showing a video of Doom (fdoom) running on STM32F7 board, and possibly adapted from stm32doom port.

If you are interested in joining the project you can contact the developers on #frosted IRC channel, or use Github’s issues tab to report bugs and/or new features requests. There’s also a webpage here.

Thanks to Zoobab for the tip.

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

May 28th, 2016 11 comments

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_2MELLO 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 up to 1156 holes
  • Misc – Real-time clock
  • Battery – 4,500mAh battery for up to 12 hours of continuous operation (more in power-saving mode)
  • Dimensions – six stacked circuit boards with 6.4mm total height without socket

ELLO_M2_BASIC_Game

ELLO 2M uses BASIC, which incidentally is the first programming language I first learned many years ago, but C language programming is also possible. More precisely ELLO runs MMBasic implementation released under a Creative Commons License. The project is also open source hardware with all design files released on github.

Konstantin Dimitrov, the project developer, has taken to CrowdSupply to raise funds for mass production. A $65 pledge will get you the six bare PCBs (shown in the video above), so that you can purchase and solder the components yourself, but most people may want an assembled version with price starting at $180 for Ello 2M Developer which does not include the prototyping area, and you’d need to pledge $240 to get Ello 2M Geek with the built-in prototyping board.  You can also request your own custom keyboard panel-out for $550. Shipping is included in the prices, and delivery is scheduled for September 2016.

Via Liliputing and Geek

How to Install PHP 5.6 (and Xibo Digital Signage CMS) in Ubuntu 16.04

May 28th, 2016 5 comments

Xibo is an open source digital signage using a client / server architecture, and in the past I wrote a tutorial showing how to use it, and ran Xibo Python client on ARM Linux TV box, but with software handling only so rendering scrolling text was not very smooth at all, and video decoding was not really possible. But now I have Star Cloud PCG02U Intel TV stick which costs just $70 shipped with Ubuntu 14.04, and that I have upgraded to Ubuntu 16.04, and I thought that would be a great low cost Xibo Linux client which should have pretty good performance. I started by installing Xibo server, only to find out that the cross-platform Python client had been phased out, with now only Windows and Android clients available.

So I canceled my plan. I still had some challenges installing Xibo server on Ubuntu 16.04, so I’ll report my experience as it may be useful to others. There will be two sections: 1. Downgrading PHP 7.0 to PHP 5.6 in Ubuntu 16.04 and 2. Installing Xibo CMS in Ubuntu 16.04.

Downgrading PHP 7.0 to PHP 5.6 in Ubuntu 16.04

Ubuntu 16.04 ships with PHP 7.0, and while it provides much better performance over previous version, the massive changes mean that some software packages are not compatible, and that includes Xibo that requires the “mysql” php module, which has been removed from PHP 7.0. So that means I had to install PHP 5.6 instead, which is not officially supported, but can be installed through a ppa.

Remove all php 7.0 packages:

Install php 5.6, apache2 and mysql, and required php modules for Xibo:

Usually, this is enough, but Apache2 will not enable php 5.6 automatically, so you need to run three more commands to enable some modules, and restart apache2:

You should now be able to create phpinfo.php file in /var/www/html, and confirm PHP 5.6 is running.

Installing Xibo 1.7.7 CMS in Ubuntu 16.04

The rest of the installation is actually standard. Download XIBO CMS, extract,. and setup the directory permissions for the CMS and media library.

You’ll also want to modify 2 lines in /etc/php/5.6/fpm/php.ini to allow for longer execution time and larger files:

Now go to your browser to access http://localhost/xibo or http://<IP_address>/xibo to complete the installation.

Xibo_Installation_Ubuntu_16.04

Click to Enlarge

The first step will check all requirements, and if that’s OK, you can click next. if not you are likely missing some PHP modules, but the instructions above should have installed all what’s needed already. The rest of the installation is pretty straightforward, but if you have issues you can check out Xibo CMS instructions.

Xibo_Ubuntu_16.04_Install_SuccessNow you can login to create a layout and schedule to played by one or more Windows or Android clients.