Efficient Yocto development and OTA updates

There are some special considerations if you want to get efficient Yocto development and your OTA update system. The most important is managing the time it takes to build the whole image when using the Mender client with Yocto. Even when making a one line change somewhere, it will take at least 2 minutes to get the new image. If your team is doing a lot of iterations to the image, then two minutes per iteration is quite a lot to just sit around and do nothing. Our recommendation is to develop your application so that it is cross platform in such a way that you can run the application on your computer and do as much of the debugging and, you know, testing and everything there. So that you can save only like the very last integration pieces to do on the Yocto hardware.

Keep Yocto development separate

For the most part, then you can keep your Yocto team and your developer team separate. We are not necessarily saying you should do it but you can do it. The value of developing like this is that you can run it in multiple environments and only the Yocto specific issues will need to be addressed by the Yocto team. The developer team can concentrate on the rest of the issues without being bogged down by all this knowledge that you need to have about Yocto.

Efficient Yocto development and OTA updates summary

Firmware updates separate issue to Yocto

Updating firmware is always difficult. And this is one of the reasons why I stated earlier that I would go for a popular board such as Raspberry Pi or a Beaglebone Black. Because at some point you're going to run into having to do this and the more popular with the board the less chance that you're going to have a problem with this. And they're almost all non-standard. So it's like you If the vendor is bad at providing documentation or something, you could be in trouble by selecting an obscure board.

Flashing options in your Yocto considerations

You will have flash to the drive. There's three ways to do this. The one we use is DD - the Linux command line tool. Another very popular one is Etcher from Balena which is most suitable for beginners. The third, and most advanced tool to perform flashing using Uboot, which is the most difficult, but it's also the only one that is suitable for flashing things in the field. Whether using Yocto or Ubuntu, you must plan to have a capability for flashing the image to the device. This is something that you must plan for in advance.

Size benefits with Yocto embedded Linux

Size is another factor to consider such as binary updates, for example. They are not strictly related to Yocto, but it is easy to do them with Yocto. If you are updating a Yocto image with Mender also, you won't want it to query the server too much either because you want to save battery. You will also want to save bandwidth and Mender offers good support for this through Delta Updates. Spacing out your queries is a key strategy, so that you perform updates for your Yocto images the minimum amount of times necessary.

Consider reading these articles on Yocto:

Recent articles

How over-the-air (OTA) updates help emergency response teams

How over-the-air (OTA) updates help emergency response teams

There’s no getting around it—we live in a connected world where almost every industry is dependent on the Internet of Things (IoT).
What’s hot in the open source and embedded community?

What’s hot in the open source and embedded community?

AI, robotics, IoT, AVs, and more – 2024 is proving to be an exciting year for technology. And the open source and embedded tech community is no exception.
How to use over-the-air (OTA) updates & NVIDIA Jetson Microservices

How to leverage over-the-air (OTA) updates with NVIDIA Microservices for Jetson

Mender, in collaboration with NVIDIA, published two critical use cases, providing a step-by-step guide to over-the-air (OTA) updates with NVIDIA Jetson.
View more articles

Learn more about Mender

Explore our Resource Center to discover more about how Mender empowers both you and your customers with secure and reliable over-the-air updates for IoT devices.