<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>Comments on: New approaches for embedded development</title>
	<atom:link href="http://www.epanorama.net/blog/2016/03/13/new-approaches-for-embedded-development/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.epanorama.net/blog/2016/03/13/new-approaches-for-embedded-development/</link>
	<description>All about electronics and circuit design</description>
	<lastBuildDate>Mon, 13 Jul 2026 08:51:55 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.14</generator>
	<item>
		<title>By: Tomi Engdahl</title>
		<link>https://www.epanorama.net/blog/2016/03/13/new-approaches-for-embedded-development/comment-page-45/#comment-1881490</link>
		<dc:creator><![CDATA[Tomi Engdahl]]></dc:creator>
		<pubDate>Thu, 09 Jul 2026 13:44:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/newepa/?p=39621#comment-1881490</guid>
		<description><![CDATA[Complete Build of Open-Source ESP32-S3 16-Channel Automatic Timer Relay Switch
GitHub: github.com/xiv3r/esp32-automatic-timer-switch/tree/main/ESP32-S3]]></description>
		<content:encoded><![CDATA[<p>Complete Build of Open-Source ESP32-S3 16-Channel Automatic Timer Relay Switch<br />
GitHub: github.com/xiv3r/esp32-automatic-timer-switch/tree/main/ESP32-S3</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rufus in</title>
		<link>https://www.epanorama.net/blog/2016/03/13/new-approaches-for-embedded-development/comment-page-45/#comment-1881420</link>
		<dc:creator><![CDATA[Rufus in]]></dc:creator>
		<pubDate>Wed, 08 Jul 2026 10:59:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/newepa/?p=39621#comment-1881420</guid>
		<description><![CDATA[To guarantee the integrity of your bootable media, Rufus includes a built-in feature to check your USB drive for bad sectors, preventing potential errors during the critical operating system installation process.]]></description>
		<content:encoded><![CDATA[<p>To guarantee the integrity of your bootable media, Rufus includes a built-in feature to check your USB drive for bad sectors, preventing potential errors during the critical operating system installation process.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomi Engdahl</title>
		<link>https://www.epanorama.net/blog/2016/03/13/new-approaches-for-embedded-development/comment-page-45/#comment-1881004</link>
		<dc:creator><![CDATA[Tomi Engdahl]]></dc:creator>
		<pubDate>Thu, 02 Jul 2026 12:06:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/newepa/?p=39621#comment-1881004</guid>
		<description><![CDATA[https://etn.fi/index.php/72-ecf/18879-ecf26-agenttinen-ai-tulee-sulautettuihin]]></description>
		<content:encoded><![CDATA[<p><a href="https://etn.fi/index.php/72-ecf/18879-ecf26-agenttinen-ai-tulee-sulautettuihin" rel="nofollow">https://etn.fi/index.php/72-ecf/18879-ecf26-agenttinen-ai-tulee-sulautettuihin</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomi Engdahl</title>
		<link>https://www.epanorama.net/blog/2016/03/13/new-approaches-for-embedded-development/comment-page-45/#comment-1880994</link>
		<dc:creator><![CDATA[Tomi Engdahl]]></dc:creator>
		<pubDate>Thu, 02 Jul 2026 11:24:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/newepa/?p=39621#comment-1880994</guid>
		<description><![CDATA[https://hackaday.com/2026/07/01/gpu-accelerated-autorouter-handles-monstrous-pcb-designs/]]></description>
		<content:encoded><![CDATA[<p><a href="https://hackaday.com/2026/07/01/gpu-accelerated-autorouter-handles-monstrous-pcb-designs/" rel="nofollow">https://hackaday.com/2026/07/01/gpu-accelerated-autorouter-handles-monstrous-pcb-designs/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomi Engdahl</title>
		<link>https://www.epanorama.net/blog/2016/03/13/new-approaches-for-embedded-development/comment-page-45/#comment-1880993</link>
		<dc:creator><![CDATA[Tomi Engdahl]]></dc:creator>
		<pubDate>Thu, 02 Jul 2026 11:24:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/newepa/?p=39621#comment-1880993</guid>
		<description><![CDATA[https://hackaday.com/2026/07/01/positioning-without-satellites-or-base-stations/]]></description>
		<content:encoded><![CDATA[<p><a href="https://hackaday.com/2026/07/01/positioning-without-satellites-or-base-stations/" rel="nofollow">https://hackaday.com/2026/07/01/positioning-without-satellites-or-base-stations/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomi Engdahl</title>
		<link>https://www.epanorama.net/blog/2016/03/13/new-approaches-for-embedded-development/comment-page-45/#comment-1880992</link>
		<dc:creator><![CDATA[Tomi Engdahl]]></dc:creator>
		<pubDate>Thu, 02 Jul 2026 11:24:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/newepa/?p=39621#comment-1880992</guid>
		<description><![CDATA[https://hackaday.com/2026/07/01/floss-weekly-episode-873-wait-thats-not-open-source/]]></description>
		<content:encoded><![CDATA[<p><a href="https://hackaday.com/2026/07/01/floss-weekly-episode-873-wait-thats-not-open-source/" rel="nofollow">https://hackaday.com/2026/07/01/floss-weekly-episode-873-wait-thats-not-open-source/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomi Engdahl</title>
		<link>https://www.epanorama.net/blog/2016/03/13/new-approaches-for-embedded-development/comment-page-45/#comment-1880991</link>
		<dc:creator><![CDATA[Tomi Engdahl]]></dc:creator>
		<pubDate>Thu, 02 Jul 2026 11:23:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/newepa/?p=39621#comment-1880991</guid>
		<description><![CDATA[https://hackaday.com/2026/07/01/engineering-micro-submarines-to-replace-fish/]]></description>
		<content:encoded><![CDATA[<p><a href="https://hackaday.com/2026/07/01/engineering-micro-submarines-to-replace-fish/" rel="nofollow">https://hackaday.com/2026/07/01/engineering-micro-submarines-to-replace-fish/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomi Engdahl</title>
		<link>https://www.epanorama.net/blog/2016/03/13/new-approaches-for-embedded-development/comment-page-45/#comment-1880990</link>
		<dc:creator><![CDATA[Tomi Engdahl]]></dc:creator>
		<pubDate>Thu, 02 Jul 2026 11:23:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/newepa/?p=39621#comment-1880990</guid>
		<description><![CDATA[https://hackaday.com/2026/07/01/udp-broadcasting-and-easily-finding-network-services/

Local area networks (LANs) that use technologies like Ethernet and Wi-Fi are incredibly useful for letting devices talk with each other. Yet a core problem here is knowing which devices are where on the network, as anyone who has ever tried to add a network printer or network share to their system can probably attest to. Unless you happen to know the IP address of the LAN device, the port, and protocol, the target device may as well be located on the Moon without further help, such as automatic network discovery in lieu of waddling over to the device and reading the label listing its IP address.

Over the decades quite a few ways have been developed to enable such network discovery, with many of them using UDP broadcast as the first step. By broadcasting a global message on the entire LAN, any device that has an actively listening UDP socket on that particular port can parse said message and decide whether it’s feeling sociable enough to reply.

The topic of UDP broadcasting is however not as straightforward as it may sound if you’re just getting started, including the existence of many opinions on the ‘right way’. There is also a massive divide between a sprawling service discovery protocol like mDNS and a light-weight one like that one that I had to implement a few years ago for an open source project.]]></description>
		<content:encoded><![CDATA[<p><a href="https://hackaday.com/2026/07/01/udp-broadcasting-and-easily-finding-network-services/" rel="nofollow">https://hackaday.com/2026/07/01/udp-broadcasting-and-easily-finding-network-services/</a></p>
<p>Local area networks (LANs) that use technologies like Ethernet and Wi-Fi are incredibly useful for letting devices talk with each other. Yet a core problem here is knowing which devices are where on the network, as anyone who has ever tried to add a network printer or network share to their system can probably attest to. Unless you happen to know the IP address of the LAN device, the port, and protocol, the target device may as well be located on the Moon without further help, such as automatic network discovery in lieu of waddling over to the device and reading the label listing its IP address.</p>
<p>Over the decades quite a few ways have been developed to enable such network discovery, with many of them using UDP broadcast as the first step. By broadcasting a global message on the entire LAN, any device that has an actively listening UDP socket on that particular port can parse said message and decide whether it’s feeling sociable enough to reply.</p>
<p>The topic of UDP broadcasting is however not as straightforward as it may sound if you’re just getting started, including the existence of many opinions on the ‘right way’. There is also a massive divide between a sprawling service discovery protocol like mDNS and a light-weight one like that one that I had to implement a few years ago for an open source project.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomi Engdahl</title>
		<link>https://www.epanorama.net/blog/2016/03/13/new-approaches-for-embedded-development/comment-page-45/#comment-1880577</link>
		<dc:creator><![CDATA[Tomi Engdahl]]></dc:creator>
		<pubDate>Fri, 26 Jun 2026 08:20:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/newepa/?p=39621#comment-1880577</guid>
		<description><![CDATA[https://hackaday.com/2026/06/25/css-on-the-esp32/

There are lots of graphics libraries available for the ESP32, and lots of ways to program one to boot. Even still, most of us wouldn’t immediately think to CSS when it comes to embedded products — yet that’s now a thing on the Espressif platform, apparently.

The Gea stack allows one to compose CSS and TypeScript code that is then turned into generated C++ code that compiles to native firmware. The team behind Gea have demoed this ability by running a 3D cube animation on an ESP32 at up to 60 FPS. This isn’t some ugly, low-res wireframe demo, either. It’s a full-color animation running on a 410×502 AMOLED screen. It’s very fluid, and can even handle transparency on the cube faces (albeit with a performance penalty).

We Taught a $3 Chip to Run CSS
https://geastack.com/blog-we-taught-a-chip-to-run-css

What gea is

gea is a framework for building apps for small devices — smartwatch-sized AMOLED screens, round rotary dials, 7-inch panels — the way you build them for the web. You write TSX components with reactive state, style them with plain CSS files, and the toolchain compiles the whole thing to native C++. The binary flashed to the chip holds your app&#039;s logic as machine code, plus a rendering pipeline closer in structure to a game engine than to a browser.

A modern browser engine is tens of millions of lines of code. gea&#039;s entire style and layout engine is about six thousand lines of C++. It stays that small by implementing a focused slice of CSS — chosen for broad impact, not for completeness. And that slice is compiled, not interpreted: don&#039;t interpret CSS, compile it.
What ships to the chip

There is no CSS file on the device, and no CSS parser in the render loop. At build time, geatsc — gea&#039;s TypeScript-to-C++ compiler — and the gea plugin read your stylesheets and emit a registration for every rule; at boot, each value is parsed once into typed storage. From then on a rule isn&#039;t text, it&#039;s typed fields.]]></description>
		<content:encoded><![CDATA[<p><a href="https://hackaday.com/2026/06/25/css-on-the-esp32/" rel="nofollow">https://hackaday.com/2026/06/25/css-on-the-esp32/</a></p>
<p>There are lots of graphics libraries available for the ESP32, and lots of ways to program one to boot. Even still, most of us wouldn’t immediately think to CSS when it comes to embedded products — yet that’s now a thing on the Espressif platform, apparently.</p>
<p>The Gea stack allows one to compose CSS and TypeScript code that is then turned into generated C++ code that compiles to native firmware. The team behind Gea have demoed this ability by running a 3D cube animation on an ESP32 at up to 60 FPS. This isn’t some ugly, low-res wireframe demo, either. It’s a full-color animation running on a 410×502 AMOLED screen. It’s very fluid, and can even handle transparency on the cube faces (albeit with a performance penalty).</p>
<p>We Taught a $3 Chip to Run CSS<br />
<a href="https://geastack.com/blog-we-taught-a-chip-to-run-css" rel="nofollow">https://geastack.com/blog-we-taught-a-chip-to-run-css</a></p>
<p>What gea is</p>
<p>gea is a framework for building apps for small devices — smartwatch-sized AMOLED screens, round rotary dials, 7-inch panels — the way you build them for the web. You write TSX components with reactive state, style them with plain CSS files, and the toolchain compiles the whole thing to native C++. The binary flashed to the chip holds your app&#8217;s logic as machine code, plus a rendering pipeline closer in structure to a game engine than to a browser.</p>
<p>A modern browser engine is tens of millions of lines of code. gea&#8217;s entire style and layout engine is about six thousand lines of C++. It stays that small by implementing a focused slice of CSS — chosen for broad impact, not for completeness. And that slice is compiled, not interpreted: don&#8217;t interpret CSS, compile it.<br />
What ships to the chip</p>
<p>There is no CSS file on the device, and no CSS parser in the render loop. At build time, geatsc — gea&#8217;s TypeScript-to-C++ compiler — and the gea plugin read your stylesheets and emit a registration for every rule; at boot, each value is parsed once into typed storage. From then on a rule isn&#8217;t text, it&#8217;s typed fields.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tomi Engdahl</title>
		<link>https://www.epanorama.net/blog/2016/03/13/new-approaches-for-embedded-development/comment-page-45/#comment-1880576</link>
		<dc:creator><![CDATA[Tomi Engdahl]]></dc:creator>
		<pubDate>Fri, 26 Jun 2026 08:18:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.epanorama.net/newepa/?p=39621#comment-1880576</guid>
		<description><![CDATA[https://hackaday.com/2026/06/20/home-automation-simple-vs-easy/]]></description>
		<content:encoded><![CDATA[<p><a href="https://hackaday.com/2026/06/20/home-automation-simple-vs-easy/" rel="nofollow">https://hackaday.com/2026/06/20/home-automation-simple-vs-easy/</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
