Posts Tagged ‘micropython’

Wemos LOLIN32 Lite Board Powered by ESP32 Rev 1 Chip Sells for $4.90

September 14th, 2017 3 comments

Wemos introduced the first low cost ESP32 board with LOLIN32 board going for $6.90 plus shipping in April, but the company is now back with a new Lite version of the board switching ESP-WROOM-32 module with their own design around ESP32 Rev 1 chip (with various silicon bug fixes), and a lower $4.90 price tag to which you need to add ~$2 for shipping.

Click to Enlarge

Wemos LOLIN32 Lite is also smaller, so we’ll lose some of the pins (mostly extra power pins), but the I/Os look the same:

  • SoC – Espressif ESP32-DOWD6Q Rev 1.0 dual core Tensilica Xtensa LX6 processor with WiFi and BLE
  • Connectivity – 802.11 b/g/n WiFi + Bluetooth LE
  • I/Os via 2x 13-pin headers with digital I/Os, analog inputs, UART, I2C, SPI, VP/VN, DAC…
    • 3.3V I/O voltage
    • Breadboard compatible
  • USB – 1x micro USB port for power and programming/debugging
  • Misc – Reset button
  • Power – 5V via micro USB + battery header for Lithium battery (charging current: 500mA max)
  • Dimensions & Weight – TBD

The board sold on Aliexpress is pre-loaded with micropython firmware, but you could also change that to Arduino, or other supported firmware. The Wiki has limited information for now.

Realtek RTL8195AM Ameba WiFi + NFC Module Sells for $9 Shipped

August 1st, 2017 1 comment

Last year, Realtek Ameba IoT SoCs and development kits launched with boards such as Ameba Arduino, and later, the family got some buzz thanks to $2 RTL8710AF modules like Pine64 Padi IoT stamp, which looked competitive priced against ESP8266 SoC, and featuring an ARM Cortex-M3 core. Back to 2017, ESP8266 appears to still be the preferred platform for makers, and the community around Reatek Ameba processor is relatively small, but maybe the solutions are being integrated into commercial products rather than hobbyists project. Today, as I browsed the web, I noticed that are also some Realtek RTL8195AM module with WiFi, and NFC starting with an “Realtek Ameba-RTL8195AM WiFi & NFC Module” I first found on DFrobot for $15 per unit, but after spending a bit more time searching, I ended finding what looks like the same model for $8.99 including shipping on IC Station.

RTL8195AM module (MJIOT-AMB-02) specifications:

  • SoC – Realtek RTL8195AM ARM Cortex-M3 processor @ 166 MHz with 1MB ROM,2MB SDRAM,512KB SRAM
  • Connectivity – 802.11 b/g/n 1×1 Wi-Fi up to 150 Mbps via u.FL antenna connector, NFC read/write
  • Interfaces via half-holes:
    • 10/100M Ethernet MII/ RMII/RGMII interface
    • 1x USB OTG
    • SDIO device/SD card controller
    • Up to 30x GPIO
    • 2x SPI master-slave, 3x UART (2x HS-UART, 1x log UART), 2x I2C, 4x PWM
    • 2x I2S/PCM
    • 2x ADC, 1x DAC
  • Security – Hardware SSL engine in Realtek SoC
  • Power Supply – 3.0V~3.3V
  • Dimensions – 24 x 19mm
  • Temperature range – -20℃~+85℃

The module can be programmed with the Arduino IDE and Micropython, and you can have access to the SDK via Ameba IoT website. For evaulation, you may consider to order the module with breakout board instead going for $9.74 shipped.

The module appears to be manufactured by Shenzhen Minjun IOT Technology, and you’ll find more technical details and information about the module on the product page. Other RTL8195AM modules include CC&C WM-8195AM, and Rayson WFM-250, none of which appear to support NFC.

FOSDEM 2017 Open Source Meeting Schedule

January 31st, 2017 4 comments

FOSDEM (Free and Open Source Software Developers’ European Meeting) is a 2-day free event for software developers to meet, share ideas and collaborate that happens on the first week-end of February, meaning it will take place on February 4 & 5, 2017 this year. FOSDEM 2017 will features 608 speakers, 653 events, and 54 tracks, with 6 main tracks namely: Architectures, Building, Cloud, Documentation, Miscellaneous, and Security & Encryption.
I won’t be there, but it’s always interesting to look at the schedule, and I made my own virtual schedule focusing especially on talks from “Embedded, mobile and automotive” and “Internet of Things” devrooms.

Saturday 4, 2017

  • 11:00 – 11:25 – Does your coffee machine speaks Bocce; Teach your IoT thing to speak Modbus and it will not stop talking, by Yaacov Zamir

There are many IoT dashboards out on the web, most will require network connection to a server far far away, and use non standard protocols. We will show how to combine free software tools and protocols from the worlds of IT monitoring, Industrial control and IoT to create simple yet robust dashboards.

Modbus is a serial communication protocol developed in 1979 for use with programmable logic controllers (PLCs). In simple terms, it is a method used for transmitting information over serial lines between electronic devices., it’s openly published, royalty-free, simple and robust.

Many industrial controllers can speak Modbus, we can also teach “hobby” devices like Arduino boards and ESP8266 to speak Modbus. Reliable, robust and simple free software Modbus client will be used to acquire the metrics from our device, then the metrics will be collected and sent to Hawkular and Grafana to store and visualize our data.

  • 11:30 – 11:55 – Playing with the lights; Control LIFX WiFi-enabled light bulbs, by Louis Opter

In this talk we’ll take a close look at a one of the “smart” (WiFi-connected) light-bulbs available on the market today. The bulbs expose a small API over UDP that I used to run an interface on a programmable buttons array. We will see how topics like reverse engineering, security, licensing, “self-hosting” and user experience came into play.

monolight is an user interface to control LIFX WiFi-enabled light bulbs. monolight runs on a programmable button array; it is written in Python 3.6 (to have type annotations and asyncio), and it interfaces with the bulbs through a more complex daemon written in C: lightsd.

This talk will start with a live demo of the button grid remotely controlling the light bulbs. We will then explore how it works and some of the motivations behind it (network isolation, trying to not depend on the “cloud”, reliability, user-experience). Finally, we will look into what kind of opportunities even more open IoT products could bring, and open leave the place to Q&A and discussion.

  • 12:00 – 12:30 – Creating the open connected car with GENIVI, by Zeeshan Ali, GENIVI Development Platform (GDP) technical lead

A number of new components have matured in GENIVI to provide a true connected car experience. A couple of them are key connectivity components; namely SOTA (Software Over the Air) and RVI (Remote Vehicle Interface). This talk will discuss both these components, how they work together, the security work done on them and their integration into the GENIVI Development Platform.

This talk will also run down the overall status of GENIVI’s development platform and how it can enable an automotive stack to speak not just with the cloud, but with IoT devices via Iotivity interface.

  • 12:30 – 13:00 – Making Your Own Open Source Raspberry Pi HAT; A Story About Open Source Harware and Open Source Software, by Leon Anavi

This presentation will provide guidelines how to create an open source hardware add-on board for the most popular single board computer Raspberry Pi using free and open source tools from scratch. Specifications of Raspberry Pi Foundation for HAT (Hardware Attached on Top) will be revealed in details. Leon Anavi has been developing an open source Raspberry Pi HAT for IoT for more than a year and now he will share his experience, including the common mistakes for a software engineer getting involved in hardware design and manufacturing. The presentation is appropriate for anyone interested in building entirely open source products that feature open source hardware and open source software. No previous experience or hardware knowledge is required. The main audience are developers, hobbyists, makers, and students. Hopefully the presentation will encourage them to grab a soldering iron and start prototyping their DIY open source device.

  • 13:00 – 13:25 – Building distributed systems with Msgflo; Flow-based-programming over message queues, by Jon Nordby

MsgFlo is a tool to build systems that span multiple processes and devices, for instance IoT sensor networks. Each device acts as a black-box component with input and output ports, mapped to MQTT message queues. One then constructs a system by binding the queues of the components together. Focus on components exchanging data gives good composability and testability, both important in IoT. We will program a system with MsgFlo using Flowhub, a visual live-programming IDE, and test using fbp-spec.

In MsgFlo each process/device is an independent participant, receiving data on input queues, and sending data on output queues. A participant do not know where the data comes from, nor where (if anywhere) the data will go. This strong encapsulation gives good composability and testability. MsgFlo uses a standard message queue protocol (MQTT or AMQP). This makes it easy to use with existing software. As each participant is its own process and communicate over networks, they can be implemented in any programming language. Convenience libraries exist for C++, Python, Arduino, Node.js and Rust. On top of the message queue protocol, a simple discovery mechanism is added. For existing devices without native Msgflo support, the discovery messages can be sent by a dedicated tool.

  • 13:30 – 13:55 – 6LoWPAN in picoTCP, and how to support new Link Layer types, by Jelle De Vleeschouwer

6LoWPAN enables, as the name implies, IPv6-communication over Low-power Wireless Personal Area Networks, e.g. IEEE802.15.4. A lot of resources are available to allow 6LoWPAN over IEEE802.15.4, but how can one extend the 6LoWPAN feature-set for the use with other link layer types? This talk will cover the details about a generic implementation that should work with every link layer type and how one can provide support for ones own custom wireless network. The goal is to give quite a technical and detailed talk with finally a discussion about when 6LoWPAN is actually useful and when is it not.

Last year, as a summer project, a generic 6LoWPAN adaption layer was implemented into picoTCP, an open source embedded TCP/IP-stack developed by Altran Intelligent Systems, with an eye on the IoT. The layer should also be able to allow multiple link-layer extensions, for post-network-layer processing. This could be used for mesh-under routing, link layer security, whatever you want. This talk will cover how one can take advantage of these features and caveats that come with it.

  • 14:00 – 15:00 – Groking the Linux SPI Subsystem by Matt Porter

The Serial Peripheral Interconnect (SPI) bus is a ubiquitous de facto standard found in many embedded systems produced today. The Linux kernel has long supported this bus via a comprehensive framework which supports both SPI master and slave devices. The session will explore the abstractions that the framework provides to expose this hardware to both kernel and userspace clients. The talk will cover which classes of hardware supported and use cases outside the scope of the subsystem today. In addition, we will discuss subtle features of the SPI subsystem that may be used to satisfy hardware and performance requirements in an embedded Linux system.

  • 15:00 – 15:25 – Frosted Embedded POSIX OS; a free POSIX OS for Cortex-M embedded systems, by Brabo Silvius

FROSTED is an acronym that means “FRee Operating System for Tiny Embedded Devices”. The goal of this project is to provide a free kernel for embedded systems, which exposes a POSIX-compliant system call API. In this talk I aim to explain why we started this project, the approach we took to separate the kernel and user-space on Cortex-M CPU’s without MMU, and showcase the latest improvements on networking and supported applications.

  • 15:30 – 16:00 – How to Build an Open Source Embedded Video Player, by Michael Tretter

Video playback for embedded devices such as infotainment systems and media centers demands hardware accelerators to achieve reasonable performance. Unfortunately, vendors provide the drivers for the accelerators only as binary blobs. We demonstrate how we built a video playback system that uses hardware acceleration on i.MX6 by using solely open source software including Gstreamer, Qt QML, the etnaviv GPU driver, and the coda video decoder driver.

The Qt application receives the video streams from a Gstreamer pipeline (using playbin). The Gstreamer pipeline contains a v4l2 decoder element, which uses the coda v4l2 driver for the CODA 960 video encoder and decoder IP core (VPU in the Freescale/NXP Reference Manual), and a sink element to make the frames available to the Qt application. The entire pipeline including the Gstreamer to Qt handover uses dma_bufs to avoid copies in software.This example shows how to use open source drivers to ease the development of video and graphics applications on embedded systems.

  • 16:00 – 16:25 – Project Lighthouse: a low-cost device to help blind people live independently, by David Teller

The Word Health Organization estimates that more than 250 million people suffer from vision impairment, 36 millions of them being entirely blind. In many cases, their impairment prevents them from living independently. To complicate things further, about 90% of them are estimated to live in low-income situations.

Project Lighthouse was started by Mozilla to try and find low-cost technological solutions that can help vision-impaired people live and function on their own. To this date, we have produced several prototypes designed to aid users in a variety of situations. Let’s look at some of them. This will be a relatively low-tech presentation.

  • 16:30 – 16:55 – Scientific MicroPython for Microcontrollers and IoT, IoT programming with Python, by Roberto Colistete Jr

MicroPython is a implementation of Python 3 optimised to run on a microcontroller, created in 2013 by the Physicist Damien P. George. The MicroPython boards runs MicroPython on the bare metal and gives a low-level Python operating system running interactive prompt or scripts.

The MicroPython boards currently use 32 bit microcontrollers clocked at MHz and with RAM limited to tens or hundreds of Kbytes. These are the microcontroller boards with official MicroPython support currently in the beginning 2017 : Pyboard, Pyboard Lite, WiPy 1/2, ESP8266, BBC Micro:bit, LoPy, SiPy, FiPy. They cost between USD3-40, are very small and light, about some to tens of mm in each dimension and about 5-10 g, have low power consumption, so MicroPython boards are affordable and can be embedded in almost anything, almost anywhere.

Some hints will be given to the FOSS community to be open minded about MicroPython : be aware that MicroPython exists, MicroPython is a better programming option than Arduino in many ways, MicroPython boards are available and affordable, porting more Python 3 scientific modules to MicroPython, MicroPython combines well with IoT.

  • 17:00 – 17:25 – Iotivity from devices to cloud; how to make IoT ideas to real using FLOSS, by Philippe Coval & Ziran Sun (Samsung)

The OCF/IoTivity project aims to answer interoperability issues in the IoT world from many different contexts to accommodate a huge range devices from microcontrollers, to consumer electronics such as Tizen wearables or your powerful GNU/Linux system The vision of Iotivity is not restricted to ad hoc environment but also can be connected to Internet and make the service easily accessible by other parties. With cloud access in place, usage scenarios for IoT devices can be enriched immensely.

In this talk we walk through the steps on how to practically handle IoT use cases that tailored towards various topologies. To introduce the approach used in IoTivity, we first give a detailed background introduction on IoTivity framework. Then we will present a demo that shows a few examples, from setting up a basic smart home network to accessing the IoT resource via a third party online service. Challenges and solutions will be addressed from development and implementation aspects for each step of the demo.

We hope this talk will inspire developers to create new IoT prototypes using FLOSS.

  • 17:30 – 17:55 – Open Smart Grid Platform presentation, an Open source IoT platform for large infrastructures, by Jonas van den Bogaard

The Open Smart Grid Platform is an open source IoT platform. The open smart grid platform is a generic IoT platform, built for organizations that manage and/or control large-scale infrastructures. The following use cases are now readily available: smart lighting, smart metering, tariff switching, and microgrids. Furthermore the following use-cases are in development: distribution automation, load management and smart device management. The architecture of the open smart grid platform is modular and consists multiple layers.

The open smart grid platform is highly unique for embracing the open source approach and the following key features:

  • Suitable for scalable environments delivering high performance
  • High availability and multitenant architectures
  • Built with security by design and regularly tested.
  • It has a generic architecture. More use cases and domains are easily added to the platform.
  • The open smart grid platform is based on open standards where possible.

We believe the platform is interesting for developers who have interest in working on use-cases for Smart Cities, Utility Companies and other large-scale infrastructure companies.

  • 18:00 – 19:00 – AGL as a generic secured industrial embedded Linux; factory production line controllers requirements are not that special, by Dominig ar Foll

There is no de facto secured embedded Linux distro while the requirement is becoming more and more critical with the rise of IoT in Industrial domains. When looking under the hood of the Yocto built AGL project (Automotive Linux), it is obvious that it can fit 95% of the most common requirements as a Secured Embedded Linux. We will look how non Automotive industries can easily reuse the AGL code and tools to build their own industrial product and why it’s a safer bet than to build it internally.

Industrial IoT cannot be successful without a serious improvement of the security coverage. Unfortunately there is as today, no of-the-shelves offer and the skills required to create such solution, are at best rare, more often out of reach. AGL as created a customizable embedded Linux distro which is nicely designed for reuse in many domains outside of Automotive. During the presentation we will see how to: – start your development with boards readily available on the Net, – change the BSP and add peripherals using Yocto layers or project like MRAA, – integrate a secure boot in your platform, – add your middleware and your application without breaking the maintained Core OS – develop a UI on the integrated screen and/or an HTML remote browser – update the core OS and your add-ons. – get support and influence the project.

Sunday 5, 2017

  • 10:00 11:00 – How I survived to a SoC with a terrible Linux BSP, Working with jurassic vendor kernels, missing pieces and buggy code, by Luca Ceresoli

In this talk Luca will share some of his experiences with such vendor BSPs, featuring jurassic kernels, non-working drivers, non-existing bootloaders, code of appallingly bad quality, ineffective customer support and Windows-only tools. You will discover why he spent weeks in understanding, fixing and working around BSPs instead of just using them. The effects on the final product quality will be described as well. Luca will also discuss what the options are when you face such a BSP, and what both hackers and vendors can do to improve the situation for everybody’s benefit.

  • 11:00-12:00 – Open Source Car Control, by Josh Hartung

This fall my team launched the Open Source Car Control (OSCC) project, a by-wire control kit that makes autonomous vehicle development accessible and collaborative to developers at every level. In this presentation, we discuss the project and its implications on the development of autonomous cars in a vertically integrated and traditionally closed industry.

A primary barrier to entry in autonomous vehicle development is gaining access to a car that can be controlled with an off-the-shelf computer. Purchasing from an integrator can cost upwards of $100K, and DIY endeavors can result in unreliable and unsafe solutions. The OSCC project acts as a solution to these problems. OSCC is a kit of open hardware and software (based on Arduino) that can be used to take control of the throttle, brake, and steering in modern cars. The result is a fully by-wire test car that can be built for about $10K (USD), including the vehicle. In this discussion, we unpack the impetus and development of the OSCC project, challenges we encountered during development, and the role projects like OSCC have in a necessary “flattening” of the automotive industry.

  • 12:00 – 13:00 – Kernel DLC Metrics, Statistic Analysis and Bug-Patterns, by Nicholas Mc Guire

SIL2LinuxMP strives to qualify a defined GNU/Linux subset for the use in safety-related systems by “assessment of non-compliant development”. To demonstrate that the kernel has achieved suitable reliability and correctness properties basic metrics of such properties and their statistic analysis can be used as part of the argument. Linux has a wealth of analytical tools built-in to it which allow to extract information on compliance, robustness of development, as well as basic metrics on complexity or correctness with respect to defined properties. While IEC 61508 Ed 2 always pairs testing and analysis, we believe that for a high complexity system traditional testing is of relatively low effectiveness and analytical methods need to be the primary path. To this ends we outline some approaches taken:

  • Bug-age analysis
  • Bug-rates and trend analysis
  • Code-complexity/bug relationship
  • Brain-dead correctness analysis
  • Interface and type-correctness analysis
  • API compliance analysis
  • Analysis of build-bot data

While much of the data points to robust and mature code there also are some areas where problems popped up. In this talk we outline the used methods and give examples as well as key findings. FLOSS development has reached a quite impressive maturity, to substantially go beyond we think it will need the use of quantitative process and code metrics – these results from SIL2LinuxMP may be a starting point.

  • 13:00 – 14:00 – Loco Positioning: An OpenSource Local Positioning System for robotics, presentation with a demo of autonomous Crazyflie 2.0 quadcopter, by Arnaud Taffanel

Positioning in robotics has alway been a challenge. For outdoor, robots GPS is solving most of the practical problems, but indoor, precise localization is still done using expensive proprietary systems mainly based on an array of cameras.

In this talk, I will present the loco positioning system: an open source Ultra Wide Band radio-based local positioning system, why we need it and how it works. I will also speak about its usage with the Crazyflie 2.0 open source nano quadcopter, of course ending with an autonomous flying demo.

  • 14:00 14:50 – Free Software For The Machine, by Keith Packard

The Machine is a hardware project at Hewlett Packard Enterprise which takes a new look at computer architecture. With many processors and large amounts of directly addressable storage, The Machine program has offered an equally large opportunity for developing new system software. Our team at HPE has spent the better part of two years writing new software and adapting existing software to expose the capabilities of the hardware to application developers.

As directly addressable storage is such a large part of the new hardware, this presentation will focus on a couple of important bits of free software which expose that to applications, including our Librarian File System and Managed Data Structures libraries. Managed Data Structures introduces a new application programming paradigm where the application works directly on the stable storage form for data structures, eliminating serialization and de-serialization operations.

Finally, the presentation will describe how the hardware is managed, from sequencing power to a rack full of high-performance computing hardware, through constructing custom Linux operating systems for each processor and managing all of them as parts of a single computing platform.

  • 15:00 – 15:25 – Diving into the KiCad source code, by Maciej Sumiński

Let’s be sincere, all of us would love to change something in KiCad. I bet you have an idea for a new tool or another killer feature that would make your life so much easier.

You know what? You are free to do so! Even more, you are welcome to contribute to the project, and it is not that difficult as one may think. Those who have browsed the source code might find it overwhelming at first, but the truth is: you do not have to know everything to create useful extensions.

I would like to invite you for a walk through the KiCad source code to demonstrate how easy it is to add this tool you have always been dreaming about.

  • 15:30 – 16:00 – Testing with volcanoes – Fuego+LAVA, embedded testing going distributed, by Jan-Simon Möller

LAVA and Fuego are great tools individually already. Combining and extending them allows for a much broader test coverage than each tool alone can provide.

The focus of this talk is to share the experiences made and lessons learned so people can integrate such tools better in their own environment. It also raises the pain-points and open issues when setting up a distributed environment.

Especially for Automotive, Long-Term-Support, CIP or Consumer Electronics, advancing the Test-harness is essential to raise the bar and strengthen the confidence in our embedded platforms. Automated testing can improve our ecosystem from two sides: during development (feature does work and does not break things) and during maintenance (no regressions through backports).

  • 16:00 – 16:30 – Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device, by Stefan Schmidt

Adding support for IEEE 802.15.4 and 6LoWPAN to an embedded Linux board opens up new possibilities to communicate with tiny, IoT type of, devices.

Bringing IP connectivity to devices, like sensors, with just a few kilobytes of RAM and limited battery power is an interesting IoT challenge. With the Linux-wpan and 6LoWPAN subsystems we get Linux ready to support the needed wireless standards as well as protocols that connect these tiny devices into the wider Internet. To make Linux a practical border router or smart home hub for such networks.

This talk will show how to add the needed transceiver hardware to an existing hardware and how to enable and configure the Linux-wpan and 6LoWPAN mainline subsystems to use it. The demonstration will include setting up the communication between Linux and other popular IoT operating systems like RIOT or Contiki as well.

  • 16:30 – 17:00 – OpenPowerlink over Xenomai, by Pierre Ficheux

Industrial Ethernet is a successor of classic field bus such as CAN, MODBUS or PROFIBUS. POWERLINK was created by B&R Automation and provides performance and real­-time capabilities based on standard Ethernet hardware. openPOWERLINK is open source and runs on lots of platforms such as Linux, Windows, various RTOS and dedicated hardware (FPGA). We will explain how to use openPOWERLINK on top of Xenomai 3, a powerful real-time extension for Linux kernel based on co-­kernel technology.

FOSDEM 2017 will take place at the ULB Solbosch Campus in Brussels, Belgium, and no registration is required, you just need to show up in order to attend the event.

$55 OpenMV Cam M7 Open Source Computer Vision Board is Powered by an STM32F7 Cortex-M7 MCU

January 2nd, 2017 6 comments

I wrote about Jevois-A33 computer vision camera based on Allwinner A33 quad core Cortex A7 processor last week, and today, I’ve come across OpenMV Cam M7 open source computer vision board based on a much less powerful STMicro STM32F7 ARM Cortex M7 micro-controller, but with the advantage of consuming less power, and exposing some extra I/Os.

openmv-cam-m7OpenMV Cam M7 board specifications & features:

  • MCU – STMicro STM32F765VI ARM Cortex M7 @ up to 216 MHz with 512KB RAM, 2 MB flash.
  • External Storage – micro SD slot
  • Camera
    • Omnivision OV7725 image sensor supporting 640×480 8-bit grayscale images or 320×240 16-bit RGB565 images at 30 FPS
    • 2.8mm lens on a standard M12 lens mount
  • USB – 1x micro USB port (Virtual COM Port and a USB Flash Drive)
  • Expansion – 2x 8-pin headers with SPI, I2C CAN bus, asynchronous serial bus (Tx/Rx), 12-bit ADC, 12-bit DAC, 3x I/Os for servo control; interrupts and PWM on all I/O pins; 3.3V (5V tolerant)
  • Misc – RGB LED and 2x 850nm IR LEDs
  • Power Supply – 5V via micro USB port, 3.6 to 5V via VIN pin
  • Power Consumption (@ 3.3V) – Idle: 110mA;  active no μSD Card: 190mA; active with μSD Card: 200mA
  • Dimensions – 45 x 36 x 30 (H) mm
  • Weight – 16 grams
Click to Enlarge

Click to Enlarge

The camera board supports frame differencing (motion detection), marker tracking, face detection, eye tracking, color tracking (up to 32 colors at the same time), optical flow, edge/line detection, template matching, image capture (BMP/JPG/PPM/PGM), and video recording (MJPEG/GIF). Programming is done in OpenMV IDE using MicroPython language. You’ll find more details in OpenMV Cam’s documentation, and watch a description of the board and a QR code detection demo in the video below.

The computer vision board can be pre-ordered now for $55 on the product page with shipping scheduled for March 2017.

Pycom To Sell WiFi, BLE, LoRa and Sigfox OEM Modules for Your Own Hardware Projects

December 19th, 2016 5 comments

Pycom is the company making some relatively popular IoT boards programmable with Python such as WiPy, LoPy, SiPy, and soon FiPy, supporting respectively WiFi+BLE, LoRa+WiFi+BLE, Sigfox+WiFi+BLE, and for the latter all four plus LTE CAT M1/NB1. Those little boards are great for personal projects and/or to experiment, but for those of you who would like to integrated IoT connectivity into your own hardware projects, Pycom will soon launch three OEM module for corresponding to WiPy, SiPy and LoPy connectivity featues with respectively W01, S01 and L01 modules.

sigfox-lora-wifi-ble-oem-modulesKey features:

  • W01 WipY 2.0 OEM Module – Dual network BLE and WiFi – 7.95 Euros
  • L01 LoPy OEM module – LoRa, WiFi and Bluetooth – 14.95 Euros
  • S01 SiPy OEM module – Sigfox, WiFi and Bluetooth; Available in both 14dB (for Europe) and 22dB (outside Europe) version for respectively 14.95 and 19.95 Euros

All three models have basically the same functionality as the full board, but there are missing the voltage regulator, reverse power supply protection, antenna switch, smd antenna, u.fl connectors, reset switch, LED, headers, and a few passive components found on the development boards. The modules will come in an hermetically sealed trays, and are both CE and FCC certified.

The modules will officially launch in April 2017 with a minimum order quantity of 500 units, and a lead time expected to be 8 to 12 weeks. You can find all three modules on Pycom’s OEM products page.

LoPy Tiny IoT Developer Board Runs MicroPython, Supports LoRa, WiFi and Bluetooth (Crowdfunding)

February 10th, 2016 10 comments

Pycom launched WiPy last year, a WiFi IoT board based on Texas Instruments CC3200 ARM Cortex M4 SoC, and a few months after sending rewards to their Kickstarter backers, they are back on the crowdfunding platform to launch LoPy, another IoT development board that runs MicroPython and offers LoRa, WiFi and Bluetooth LE connectivity.

LoPy Boards, WiPy Board, and Pycom baseboard

LoPy Boards, WiPy Board, and LoPy Expansion Board

LoPy board hardware specifications:

  • SoC – Dual processor @ 160 MHz with WiFi & BLE radio with 400 kB RAM, 1MB flash
  • External Storage – 4MB flash
  • Connectivity
    • 802. 11b/g/n @ 16Mbps with WEP, WPA/WPA2 WiFi security; SSL/TLS support; AES encryption engine.
    • Bluetooth Classic and Low Energy
    • LoRaWAN
      • Semtech LoRa transceiver SX1272 @ 868 MHz (Europe) or 915 MHz (North America).
      • Range – Node: Up to 40km; Nano-Gateway: Up to 5 km
      • Nano Gateway Capacity – Up to 100 nodes.
    • Internal chip antenna and u.fl connectors for external antennas
  • Headers – 2x 14-pin headers for:
    • Up to 24 GPIOs (3.3V tolerant)
    • 2x UART, SPI, I2C
    • DMA, I2S
    • 12-bit ADC and 8-bit DAC.
    • 16-bit and 32-bit timers with PWM.
  • Hash and encryption engines – SHA, MD5, DES, AES
  • Misc – RTC
  • Power Supply – 3.3V to 5.5V
  • Power Consumption
    • Wi-Fi:12 mA in active mode, 5uA in standby
    • LoRa: 3mA in active mode, 39mA during Tx, 14mA during Rx
    • BLE: 8mA in active mode, 2uA in standby.
  • Dimensions – 55mm x 20mm
  • Certifications – EMC, CE, FCC, LoRaWAN

They did not disclose the wireless SoC name, but the specifications look very similar to Espressif ESP32, and ESP8266 should get a proper MicroPython port soon, so at first I thought they could have decided to go with ESP32, even though it’s probably premature even for a Kickstarter project. However, WiFi is said to be limited to 16 Mbps,  one of the pictures indicates a “Cortex-M4 WiFi” is used, and somebody asked whether the chip was ESP32, and they answered that “due to NDA restrictions we can’t give more details about the SoC at this moment”, so it could be also a new Texas Instruments SimpleLink CC3x part with WiFi and Bluetooth. So we’ll have to wait to find out.

LoPy Kit with IP64 enclosure, LoPy Board, antenna, and battery

LoPy Kit with IP64 enclosure, LoPy Board, antenna, and battery (Not available in the Kickstarter campaign, but later).

The board also supports Blynk libraries, can be programmed with Pymakr IDE, and is Microsoft Azure ready. Arduino IDE support is planned as a stretch goal. LoPy can be used as a LoRa node, and as LoRa gateway with up to 100 nodes, so you could easily build your own little IoT network.

LoPy expansion board allows easier development with a USB to serial converter, 3 Female headers, compatible with both LoPy and WiPy board, a LiPo battery charger with JST connector, a microSD card socket, user LED and push button, and various jumpers to enable/disable features. You’ll probably want to include the antenna kit as well, unless you have your own, as it’s not included in the standard pledges.

Setting up a LoRa Connection in Python

Setting up a LoRa Connection in Python

The company has already raised over 58,000 Euros out of their 50,000 Euros target so the project will go ahead. All early bird rewards are gone, but you can still pledge 29 Euros to get a LoPy board, and most will probably want to add 5 Euros to get the LoRa antenna kit too, or simply pledge 48 Euros to get a complete kit with the board, the antenna, and the expansion board. Shipping adds 7 Euros, and delivery is scheduled for August 2016.

Embedded Systems Conference 2016 Schedule – April 13-14

January 29th, 2016 No comments

The Embedded Systems Conference 2016 will take place in Boston on April 13-14, and the organizers have now released the schedule, minus some keynotes, which features four main tracks: Embedded Hardware, Embedded Software, Connected Devices and the Internet of Things (IoT), and the ESC Engineering Theatre.


As usual, I’ve gone through the list of talks and composed my own little virtual schedule which ended up with sessions focusing on power management, IoT, and security, as well some optimization and drivers development talks among others, such as patents, and the origin of Gerber files.

Wednesday 13

  • 8:00 – 9:00 – Power Management in Embedded Systems by Colin Walls, Embedded Software Technologist, Mentor Graphics

The importance of power management in today’s embedded designs has been steadily growing as an increasing number of battery powered devices are developed. In this session, we will discuss design considerations that should be made when starting a new power sensitive embedded design, which include:

  • Choosing the hardware with desired capabilities
  • Defining a hardware architecture that will allow software to dynamically control power consumption
  • Defining appropriate power usage profiles
  • Making the appropriate choice of an operating system and drivers
  • Choosing measurable power goals and providing these goals to the software development team to track throughout the development process.
  • 9:00 – 9:45 – Creating an IoT Device in Only 45 Minutes by Jacob Beningo,  Consultant, Beningo Engineering

Developing an IoT system seems extremely complex. Security, remote updating, sensor interfacing and battery life are just a few issues facing developers of connected systems. This session will reorient the embedded system engineer and expose them to an IoT platform known as the Electric Imp. We’ll walk through the design and implementation of an IoT device in 45 minutes. Attendees will gain a paradigm shift in thinking about how to design systems and be introduced to how embedded systems will be designed in the coming decade.

  • 10:00 – 10:45 – Embedded Software Optimization: Architecture, Design, & Implementation by Rob Oshana, Director of SW, Freescale

This session discusses a set of techniques used in practice to optimize embedded applications for performance, memory, and power. A set of performance optimization techniques will be examined, starting with the proper mapping of software algorithm to hardware architecture, along with algorithmic transformation, C-level optimization techniques such partial summation and multi-sampling, loop unrolling and software pipelining. Practical memory optimization techniques such as data structure use and alignment, as well as power optimization techniques such as dynamic voltage frequency scaling, cache optimization and a “top ten” list of other techniques, will be discussed. This session will also cover common “optimization blockers” and how to eliminate them.

  • 11:00 – 11:45 – Considerations for Security in Embedded Systems by Ahmed Refaey Hussein, Sr. Systems Architect, Mircom Group of Companies, and Khaled Loukhaoukha, Sr. Research Officer, Centre de Recherche Développement, Bouchaoui

Security has become a crucial consideration and is one of the most important design goals for an embedded system. In this session, we will introduce security in embedded systems, and provide two current approaches to security countermeasure for memory corruption and attacks. The two techniques are dynamic information flow tracking (DIFT) and same technique with secure page allocation (PIFT).

  • 14:00 – 14:45 – Code Analysis Made Easy by Rafael Taubinger,  Senior Field Applications Engineer, IAR Systems

The widely used C/C++ languages are known for their flexibility and proximity to hardware. However, these languages also feature a huge number of undefined behaviors and their flexibility lets you write code that may not work the way you intended; your code could be syntactically correct but nuances of the language may force the code to operate in unexpected ways. In the best case, these mistakes are detected during the development cycle, but they could easily escape into the field and necessitate a product recall. Fortunately, static- and runtime-code analysis can be integrated seamlessly into your workflow. This session will demonstrate how they can be used to detect potential errors in your application so errors can be eliminated as early and cheaply as possible.

  • 15:00 – 15:45 – Real-Time Software Using Micro Python by Jacob Beningo, Consultant, Beningo Engineering

Python has become a very popular scripting language and has been deployed on many production systems in addition across multiple application domains. Micro Python is a lean and efficient Python 3 port designed to run on an ARM Cortex-M microcontroller. This session will explore real-time embedded software concepts as they relate to Micro Python.

Attendees can expect to learn key concepts in areas, such as: Python, Python vs C, Real-time Programming, Object Oriented Design, Rapid Prototyping, Controlling MCU Peripherals from Micro Python, Exception and Error Handling, and Real-Time Scheduler Concepts and Design.

  • 16:00 – 16:45 – Marketing Malarkey and the Truth About Ultra-Low Power Design by Jack Ganssle,  Consultant, TGG

Vendors are waging battles about their low-power microprocessors that can run on a coin cell for years. Some of what they claim is somewhat disingenuous; other claims are irrelevant. This session covers real-world data on what sort of battery life can be expected (based on millions of data points the author has gathered experimentally), what mitigation strategies are appropriate, what low sleep currents really mean, and other sources of leakages that will drain the cells long before the MCU does. The session specifically focuses on coin cell applications.

Thursday 14

  • 8:00 – 8:45 – All About Patents by Bob Zeidman, President, Zeidman Technologies

This course explains all about patents including how they are written, what they protect, why you need them, and how to utilize them. It begins with a description of different kinds of intellectual property. It then explains how hardware and software companies, startup companies, and individuals can use patents to their advantage to protect their intellectual property. Finally, the course relates actual legal cases where patents have been asserted or defended, including personal experiences of the instructor as an expert witness on some of the largest cases of the last and current millennium.

  • 9:00 – 9:45 – Understanding the IoT Platform Wars: Technical Trade Offs by Michael Anderson, Chief Scientist, The PTR Group, Inc.

As the Internet of Things (IoT) starts to gather momentum, a number of competing IoT platforms are jockeying for dominance. Offerings from the Thread Group (Google/Nest), Allseen Alliance (Qualcomm), Apple’s Homekit, the Open Interconnect Consortium (Intel) and many others are joining the fray. But, in this confusing array of platforms, what are the main features of each and why should you care? This session will provide an overview of these platforms, their capabilities, and barriers to entry as the industry prepares for a fight to determine the future of the 50 billion devices planned for the IoT.

  • 10:00 – 10:45 – HAL Design for MCUs by Jacob Beningo, Consultant, Beningo Engineering

The speed at which a developer is expected to write software often results in device drivers that are difficult to understand, hard to maintain, and difficult to port. This session describes methods and techniques that can be used to develop a re-usable hardware abstraction layer (HAL) that is easy to maintain and use across multiple projects and platforms. It will also examine key properties of a HAL and provide examples for common MCU peripherals.

  • 11:00 – 11:45 – Cryptography Basics for Embedded Developers by Eystein Stenberg, Product Manager,

Many vulnerabilities and breaches happen due to incorrect use of cryptographic mechanisms like encryption. This session will cover the basic mechanisms of cryptography, like encryption, signatures, and key storage, looking at how these are used to create important security properties like authentication, confidentiality, and integrity.

Performance is particularly important for embedded development, and this session will cover which cryptographic operations are computationally expensive and why. It will highlight implementations of cryptographic mechanisms that help meet the performance needs of embedded devices, including Elliptic Curve Cryptography. Common pitfalls, libraries, and tools relevant for secure use of cryptography for embedded devices will also be addressed.

  • 14:00 – 14:45 – The Incredible Story Behind the Gerber PCB File Format by David Gerber,  Writer & Editor, Independent

The story behind the “Gerber PCB File Format” begins with H. Joseph Gerber, after whom the format was named. Gerber was a refugee who would receive the U.S. National Medal of Technology, in 1994, for his “technical leadership in the invention, development, and commercialization of manufacturing automation systems for a wide variety of industries.”

Born Heinz Joseph Gerber in Vienna, Austria, he used his inventiveness as a boy to help his family survive Nazi rule. Arriving penniless in America in 1940 with his mother, he completed a high school curriculum in just two years and college in another two, graduating with a Bachelor of Science degree in aeronautical engineering. After turning his pajamas into his first product — a “revolutionary” engineering device (now in the Smithsonian National Museum of American History) — he began his career by driving around the country to visit customer sites, selling his products by day and inventing new ones by night. Finding problems that customers did not realized they had, as opposed to simply improving existing processes, his method was to invent completely new systems of design and manufacture.

Gerber and his company refined this method in industry after industry, not only inventing new products, but also creating the supporting industrial infrastructure, often from scratch, without existing standards, compatibilities, and modularization. It is this dynamic, growing from the state of technology, the requirements of industry transformation, and the method of a remarkable inventor, that underlies the evolution of the so-called “Gerber language” in the fabrication of circuit boards.

  • 15:00 – 15:45 – Applying Lessons Learned in Space FPGA Development Here on the Earth by Adam Taylor, Eur Ing, E2V

Taking the hard learned lessons from space FPGA and VHDL development and demonstrating how these can be used on the terrestrial applications to obtain a better resultant and quality for your system. This session looks at the engineering life cycle, architectures, coding structures, pitfalls around clocks and reset and mitigation techniques. While focusing upon the FPGA and VHDL structures there is also information presented on the impacts of the environment, training and development and the entire supporting facility needed for the developing a great FPGA solution on time, quality and cost.

There are two types of pass to attend the event: the conference pass and the expo pass. The latter includes access to all expo floors, four of them, and vendor sponsored training sessions, while the former adds tutorials, conference sessions, and lunch.

(Ends Tuesday, December 22, 2015)
$799 FREE
(Ends Friday, February 5, 2016)
$949 FREE
(Ends Friday, April 8, 2016)
$1,149 FREE

The expo pass is free as long as you book in advance, and the conference pass costs between $949 to $1,299 depending on how early you book your pass. Students, teachers and government officials save up to 25%, and if your company sends several people, the price drops up to 30%.

Bringing a Better Port of MicroPython to ESP8266 (Crowdfunding)

January 28th, 2016 16 comments

MicroPython is an lightweight implementation of Python 3 that runs on ARM Cortex-M micro-controllers such as STM32 or Texas Instruments CC3200, and since ESP8266 is so popular, work has started to port MicroPython on the Tensilica Xtensa LX106 based WiFi SoC.


The current ESP8266 port comes with some API callss specific to ESP8266, but is quite basic, uses the execution model provided by Espressif, requiring callbacks to process WiFi requests, and doesn’t include support for many of the chip’s interface such as SPI, nor support WiFi fully.

That’s why Damien George, the project lead, has launched a Kickstarter campaign to help fund development of the port, aiming to raise at least 6000 GBP (~$8,500 US). The goal is to develop “proper” Berkeley sockets for MicroPython on the ESP8266, in order to provide a true Python socket API to make development easier, optimize RAM usage, and implement the missing parts on the current port.

Since there are so many ESP8266 modules on the market, they decided to do a software only crowdfunding campaign. Backers will receive MicroPython ESP8266 firmware for their development board – It will be developed on Adafruit HUZZAH boards -, as well as tutorials  and documentation, with the source code released 6 months later, unless the 12,000 GBP stretch goal (~$17,000 US) is reached, in which case they’d just release the code at the end of the campaign.

Pledges start at 7 GBP ($10) and go up to 700 GBP (~$1,000), and the more you spent the higher support and influence (vote on modules) will be. MicroPython ESP8266 v1.0 firmware is expected to be released in May 2016.

Thank you John!