• 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

    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 »

  • JerryScript workshop 2017

    A year ago we launched experimental JavaScript support for mbed OS 5, which allows developers to write their IoT applications in a high level scripting language. This is possible through JerryScript, a lightweight JavaScript engine that has full EcmaScript 5.1 support, but fits in only 64K of RAM.

    Last week the core contributors to the JerryScript project came together in Szeged, Hungary to talk shop, discuss new features and drink some home-made palinka. Rob Moran (senior engineering manager, Tools team) and Jan Jongboom (JerryScript contributor) were representing Arm.

    Continue reading »

  • Where did my flash go? Visualizing linker statistics

    It happens to all of us. At some point, your application compiles, but the linker fails with a message similar to '.data' will not fit in region RAM’`. This is a sign that the application does not fit in flash, something that is limited on most microcontrollers. Flash memory takes up a lot of silicon area (In this picture of an ST Cortex-M3, the 128K of flash is in red), and therefore increases both the cost and the likelihood of defects in microcontrollers. Flash also requires power, and more flash increases power consumption. Less flash is better for cost and energy efficiency, but it can be a nuisance when writing applications.

    Continue reading »