This is an archived copy of all my blog posts which is irregularly updated.
  • Adding a LoRaWAN stack to Mbed OS 5.8

    LoRaWAN is a low-power wide-area network technology that combines kilometers of range with low power consumption - a great fit for Internet of Things devices. Arm is continuing its investment in LoRaWAN by adding a native LoRaWAN stack to Mbed OS 5.8. The stable, well-tested, and (EU) pre-certified stack makes it easy for device manufacturers to add long-range connectivity to their IoT devices.

    Continue reading »

  • Q&A - Webinar: Exploring LoRa with Mbed

    On March 13th, Arm and Etteplan hosted two webinars on the new LoRaWAN stack that will be included in Mbed OS 5.8. More than 600 people joined the webinar, but if you missed it, see our recording of the webinar here.

    We received far more questions during the Q&A than we could handle during the webinar, so in this blog post, we’re answering as many as possible.

    Continue reading »

  • Reducing memory usage with a custom printf and newlib-nano

    We’ve blogged about memory optimization before: Reducing memory usage by tuning RTOS configuration, Optimizing memory usage in Mbed OS 5.2 and Where did my flash go? Visualizing linker statistics. Mbed OS also supports runtime memory tracing and runtime memory statistics.

    Both flash memory and RAM are limited on most microcontrollers, so reducing the memory footprint of your application can help you squeeze in more features or reduce cost. In this blog post we’ll look at making Mbed OS 5 applications smaller, first by replacing standard I/O calls with a smaller implementation, and then by switching the whole standard library. All numbers in this post are based on Mbed OS 5.6.6 and GCC 6.3.1, and verified on NUCLEO-F401RE.

    Continue reading »

  • LittleFS - A high-integrity embedded file system

    Having a small and resilient file system is crucial for many IoT devices. But utilizing the file system and pairing it with the correct storage technology such as external flash or SD cards can be difficult. Mbed OS is making it easy to add file system support by providing a wide portfolio of file systems. Mbed OS 5.7 supports both a FAT file system and introduces a new high-integrity embedded file system. This high-integrity file system is small, power-cut resilient and has wear-leveling support for flash chips that do not have their own wear levelling controller.

    LittleFS - a high-integrity embedded file system

    Continue reading »

  • Built with mbed - Gaming with Pokitto

    A big gray box on a desk. A bulky display next to it, gray text on a blue background. A child in front of it, frantically typing commands on the keyboard. Then the wonderful sense of excitement when the computer responds… “Hello world”. For many of us, this was not only how we started programming, but also how we became developers. Naturally, we’d want to instill this feeling into the next generation.

    Continue reading »

  • Adding a Visual Studio Code exporter

    Update (June 2019): I’ve given up on using the Mbed exporters. They’re breaking very often, and are inflexible. Instead I’ve put together mbed-vscode-generator which should work for both pyOCD and STLink targets.

    Visual Studio Code, Microsoft’s new cross-platform IDE, is gaining a lot of momentum. In the 2017 Stack Overflow Developer Survey it ranked in the top five for most popular developer environment for both web and desktop developers. Unfortunately, the survey did not have numbers on embedded developers - but its popularity is definitely on the rise in the Mbed offices, thanks to the excellent C/C++ support and the built-in support for visual debugging through GDB.

    Continue reading »

  • Getting started with LoRa using Mbed and The Things Network - Q&A

    On Wednesday Arm and The Things Network hosted two webinars on getting started with LoRa and LoRaWAN. Over 700 people joined the webinar, but if you missed it, the recording is available here.

    That LoRa is a popular subject was much reflected in the Q&A; we received far more questions than we could handle during the webinar. So in this blog post, Jan Jongboom and Johan Stokking are answering as many as possible.

    Where can I find the presentation??

    The slides are available here, the presentation is available here.

    Continue reading »

  • Winners of the Seoul IoT Hackathon

    Seoul IoT hackathon participants

    Seventy people, fifteen teams, and thirty-six hours of little to no sleep — those were the main ingredients to the final weekend of the Seoul IoT Hackathon. This year’s theme was “Better City Life,” so we had the teams throw themselves at projects to make Seoul a better city, such as, reducing the time getting in and out of metro stations, detecting impacts on workers’ helmets, and building smarter electric car chargers — all using Mbed!

    Continue reading »

  • Towards firmware updates over LoRa: cryptography and delta updates

    Last June Arm and The Things Network demonstrated firmware updates over Low-Power Wide Area Networks. At that point we were using two development boards, with a Multi-Tech xDot Cortex-M3 MCU as the LoRa radio, and a FRDM-K64F Cortex-M4 MCU as the application processor. That system was great for a demonstration, but not very cost efficient for a commercial rollout. In addition, we were also always sending the complete firmware to the device, even if only a few bytes changed. Not great if we’re using a network that has duty cycle limitations.

    Continue reading »

  • Firmware updates on Mbed OS 5.5 with FlashIAP

    The Dutch have a saying: “where people work, mistakes are made.” This is a problem if the mistake involves thousands of IoT devices that have a critical bug or a gaping security hole, especially if these devices are on a remote island or baked into concrete. Therefore, every Internet of Things deployment needs to remotely upgrade firmware securely and safely. To help developers build these firmware update capabilities into their devices, we have added new APIs and tools to Arm Mbed OS 5.5.

    Continue reading »