<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/simplifying-embedded-system-design-with-a-modern-software-ecosystem-jr0ummxbk" -->

---
title: Simplifying Embedded System Design with a Modern...
description: A practical walkthrough of building a remote oil-tank monitoring system using the MAX32690 MCU, Zephyr RTOS, and Analog Devices&#x27; CodeFusion Studio. The system...
canonical: https://daily.dev/posts/simplifying-embedded-system-design-with-a-modern-software-ecosystem-jr0ummxbk
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Simplifying Embedded System Design with a Modern Software Ecosystem | daily.dev
og:description: A practical walkthrough of building a remote oil-tank monitoring system using the MAX32690 MCU, Zephyr RTOS, and Analog Devices&#x27; CodeFusion Studio. The system...
og:url: https://daily.dev/posts/simplifying-embedded-system-design-with-a-modern-software-ecosystem-jr0ummxbk
og:image: https://api.daily.dev/og/posts/jr0UmmxBk.png
og:image:alt: Simplifying Embedded System Design with a Modern Software Ecosystem
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Simplifying Embedded System Design with a Modern Software Ecosystem

**[Embedded.com](https://daily.dev/sources/embedded-com)** · 10 min read · 0 upvotes · 0 comments

## Summary

A practical walkthrough of building a remote oil-tank monitoring system using the MAX32690 MCU, Zephyr RTOS, and Analog Devices' CodeFusion Studio. The system uses an ultrasonic sensor for time-of-flight level measurement, a MAX31723 temperature sensor to correct sound-velocity drift, and Wi-Fi to relay fill-level data to an indoor display. The article contrasts bare-metal development with the Zephyr-based approach, showing concrete code-size reductions (e.g., ultrasonic driver: 89 lines bare-metal vs. 35 with Zephyr; LCD 'Hello World': 136 vs. 37 lines). It explains how device tree and Kconfig separate hardware configuration from application logic, enabling board swaps and platform migration with minimal rework, and outlines extensions such as energy harvesting and predictive refill alerts.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.embedded.com/simplifying-embedded-system-design-with-a-modern-software-ecosystem>

## Questions this post answers

### How much code does Zephyr RTOS save compared to bare-metal drivers for embedded sensor tasks?

Using Zephyr RTOS within CodeFusion Studio cut ultrasonic measurement driver code from 89 lines (bare-metal) down to 35 lines, and reduced LCD 'Hello World' display code from 136 lines to 37 lines. These reductions came from pre-integrated drivers, middleware, and a hardware abstraction layer that removed the need for custom low-level implementations.

_Weighing bare-metal versus RTOS-based firmware tradeoffs gets easier with real numbers surfaced on daily.dev._

### Why does temperature matter for ultrasonic liquid level sensing in a tank?

The speed of sound in air changes with temperature, so a time-of-flight distance measurement using a fixed sound velocity will drift as ambient conditions change. Adding a temperature sensor, such as the MAX31723 with ±0.5°C accuracy, lets firmware update the sound-velocity term used in the distance calculation, producing a more stable fill-level estimate over time.

_Engineers refining sensor accuracy can keep tabs on similar measurement techniques through daily.dev._

### How do you calculate liquid volume in a tank from an ultrasonic distance measurement?

Subtract the measured distance from the tank's internal height to get liquid height, then multiply by tank length and width to get volume. For example, with a 1.4 m tall, 1.7 m long, 0.7 m wide tank and a measured distance of 0.4 m, liquid height is 1.0 m and volume is 1.19 cubic meters, or 71.4% of the 1.66 cubic meter total capacity.

_Developers prototyping tank-level sensing logic can find worked examples like this via daily.dev._

## Similar posts on daily.dev

- [Can Spotflow Solve Remote Debugging for Embedded Systems?](https://daily.dev/posts/can-spotflow-solve-remote-debugging-for-embedded-systems--qupvhq2mj) · EmbeddedRelated · 0 upvotes · 0 comments
- [Embedded Systems Runtime Observability, Sensor Fusion for Drones, Embedded Design for Mil/Aero: Embedded Week Insights](https://daily.dev/posts/embedded-systems-runtime-observability-sensor-fusion-for-drones-embedded-design-for-mil-aero-embe-dnev0oy96) · Embedded.com · 0 upvotes · 0 comments
- [Zephyr at 10: A Decade of Open Source Embedded Innovation](https://daily.dev/posts/zephyr-at-10-a-decade-of-open-source-embedded-innovation-vibqu9lw9) · Linux Foundation · 0 upvotes · 0 comments
- [Ultra-low-power Cortex-A55 MPUs for industrial HMI and IoT applications](https://daily.dev/posts/ultra-low-power-cortex-a55-mpus-for-industrial-hmi-and-iot-applications-d6jzwpuhn) · CNX Software · 1 upvotes · 0 comments

---

Tags: [#iot](https://daily.dev/tags/iot), [#embedded](https://daily.dev/tags/embedded)

[View this post on daily.dev](https://daily.dev/posts/simplifying-embedded-system-design-with-a-modern-software-ecosystem-jr0ummxbk)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Simplifying Embedded System Design with a Modern Software Ecosystem","url":"https://daily.dev/posts/simplifying-embedded-system-design-with-a-modern-software-ecosystem-jr0ummxbk","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/simplifying-embedded-system-design-with-a-modern-software-ecosystem-jr0ummxbk"},"datePublished":"2026-08-11T14:35:05.683Z","dateModified":"2026-09-14T09:19:52.991Z","description":"A practical walkthrough of building a remote oil-tank monitoring system using the MAX32690 MCU, Zephyr RTOS, and Analog Devices' CodeFusion Studio. The system...","image":"https://media.daily.dev/image/upload/s--ZrL_HSsR--/f_auto/v1722860399/public/Placeholder%2006","thumbnailUrl":"https://media.daily.dev/image/upload/s--ZrL_HSsR--/f_auto/v1722860399/public/Placeholder%2006","isAccessibleForFree":true,"articleSection":"Embedded.com","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Embedded.com","logo":"https://media.daily.dev/image/upload/s--oPypG_tz--/f_auto,q_auto/v1780213576/logos/embedded-com?_a=BAMAMiWQ0","url":"https://daily.dev/sources/embedded-com"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/simplifying-embedded-system-design-with-a-modern-software-ecosystem-jr0ummxbk","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"iot,embedded","timeRequired":"PT10M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Embedded.com","item":"https://daily.dev/sources/embedded-com"},{"@type":"ListItem","position":3,"name":"Simplifying Embedded System Design with a Modern Software Ecosystem"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/simplifying-embedded-system-design-with-a-modern-software-ecosystem-jr0ummxbk#faq","mainEntity":[{"@type":"Question","name":"How much code does Zephyr RTOS save compared to bare-metal drivers for embedded sensor tasks?","acceptedAnswer":{"@type":"Answer","text":"Using Zephyr RTOS within CodeFusion Studio cut ultrasonic measurement driver code from 89 lines (bare-metal) down to 35 lines, and reduced LCD 'Hello World' display code from 136 lines to 37 lines. These reductions came from pre-integrated drivers, middleware, and a hardware abstraction layer that removed the need for custom low-level implementations. Weighing bare-metal versus RTOS-based firmware tradeoffs gets easier with real numbers surfaced on daily.dev."}},{"@type":"Question","name":"Why does temperature matter for ultrasonic liquid level sensing in a tank?","acceptedAnswer":{"@type":"Answer","text":"The speed of sound in air changes with temperature, so a time-of-flight distance measurement using a fixed sound velocity will drift as ambient conditions change. Adding a temperature sensor, such as the MAX31723 with ±0.5°C accuracy, lets firmware update the sound-velocity term used in the distance calculation, producing a more stable fill-level estimate over time. Engineers refining sensor accuracy can keep tabs on similar measurement techniques through daily.dev."}},{"@type":"Question","name":"How do you calculate liquid volume in a tank from an ultrasonic distance measurement?","acceptedAnswer":{"@type":"Answer","text":"Subtract the measured distance from the tank's internal height to get liquid height, then multiply by tank length and width to get volume. For example, with a 1.4 m tall, 1.7 m long, 0.7 m wide tank and a measured distance of 0.4 m, liquid height is 1.0 m and volume is 1.19 cubic meters, or 71.4% of the 1.66 cubic meter total capacity. Developers prototyping tank-level sensing logic can find worked examples like this via daily.dev."}}]}
```

