Yocto-sensei and the magnificent weather box

In the age of AI, cloud services and pumpkin spice lattes, it is sometimes easy to forget the importance of doing the basics right. Who would want to focus on team structure, documentation or proper workflows? Well, Vaisala does. And that’s why they build the best weather stations and measuring equipment in the world.

A good weather station is accurate and reliable. You’ll want to trust the data it provides, and it should work under extreme conditions. Vaisala Oyj is among the top manufacturers of these stations globally. You might have seen their weather stations in intersections, and you certainly have read some data they provided. If you have landed safely at the Helsinki-Vantaa airport, you have utilised Vaisala’s weather system.

Weather stations are a part of Vaisala’s product portfolio. They also have dozens of measurement devices in various areas, such as environmental and industrial measurements. With over 2200 employees and 25 offices globally, they have designed and manufactured top-notch measurement systems for 80 years. And they do the basics right.

What’s in the box?

In brief, a weather station is quite a simple device. Its sensors collect data, which the data management unit processes and sends to the web service. But look a little deeper, and there is a lot of expertise and software behind this unit. Vaisala’s applications run on a custom Linux platform to collect, store and deliver the data. Buutti’s Esa ”Yocto-sensei” Jääskelä worked as a part of the teams responsible for the RWS200 and AWS810 weather stations.

What did Esa do, exactly? His job was to update the Linux systems in two of Vaisala’s weather stations. The main goals were improving information security and ensuring the systems ran up-to-date software. He wrangled Yocto and Bootloader and made some changes to the CI/CD pipeline. ”I changed revisions of some git repositories to see what fell apart, and then I fixed it,” Esa explains. 

”I changed revisions of some git repositories to see what fell apart, and then I fixed it.”

This sounds simple enough, but it is extremely complicated. Not only does the operating system run on custom hardware, but the weather data is handled by custom services on the OS. ”In my experience, it seems like software tends to act like opossums when dropped in an unexpected environment: they get scared, make hissing noises and finally pretend to be dead,” Esa elaborates. ”Low-level software has a bad habit of breaking when the operating system around it changes.”

The update has to be done in a way that doesn’t stop the functioning of the weather station. There is no room to mess things up, as a broken update would mean climbing to the masts housing the weather stations. With thousands of weather stations, that would be expensive

Esa making a traditional, ocular weather observation.

How do they make this work?

Esa worked with two of Vaisala’s teams. One focused on the RWS200, and the other focused on the AWS810. The teams had both software developers and testers. It was a mix of Vaisala’s employees and consultants. Here, we find a great example of the basics done right: the testers were inside the teams. This way they knew the product well and could provide useful feedback quickly. 

Overall, the team members had a high level of technical expertise. There was considerable freedom, flexibility and trust in their work methods. Esa worked remotely from Oulu, and the rest of the team was in Vantaa. The team received higher-level requests for features and then could figure out the implementation themselves.

Another well-done basic thing were Vaisala’s coding and development workflow practices. ”Every change in the repository was well-documented,” explains Esa. ”There was always an explanation, what had been done, why it was done and how it was tested.” This makes it possible to create high-quality code in the long run. It shows: ”I haven’t yet seen a Yocto build tooling this well maintained anywhere else.”

”I haven’t yet seen a Yocto build tooling this well maintained anywhere else.”

The result

In 14 months, Esa got the job done. The weather stations now run on a newer, safer build of Linux. Additionally, he updated Vaisala’s proprietary service manager to a standard and widely used service manager. Now, it will be easier to develop the system further. The service manager will be easier to maintain as there is support and updates to it.

Other Buuttians know Esa as an agreeable guy who is easy to work with. ”Esa has an extremely high expertise level and likes to train others,” explains his supervisor. Vaisala has noticed this, too. ”Esa was a great addition to our team. He handled complex tasks and communicated his thoughts well,” elaborates Jukka-Pekka Sarjanen, a product owner at Vaisala. ”We would use Buutti’s services again.”

Esa has also written a few blogs about Yocto. See them here.