<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Embedded Systems</title>
    <description>The latest articles on DEV Community by Embedded Systems (@embedsys).</description>
    <link>https://dev.to/embedsys</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F870432%2F81e684b6-ddb7-4415-9935-a65e27cc4677.jpg</url>
      <title>DEV Community: Embedded Systems</title>
      <link>https://dev.to/embedsys</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/embedsys"/>
    <language>en</language>
    <item>
      <title>Embedded Systems Weekly #136</title>
      <dc:creator>Embedded Systems</dc:creator>
      <pubDate>Sun, 22 Jan 2023 21:18:34 +0000</pubDate>
      <link>https://dev.to/embedsys/embedded-systems-weekly-136-53ni</link>
      <guid>https://dev.to/embedsys/embedded-systems-weekly-136-53ni</guid>
      <description>&lt;p&gt;Welcome to issue 136 of our newsletter on embedded systems! I hope you'll like the selection that I have hand-picked for you. I wish you a happy weekend and happy reading.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy reading!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3wiWXZc"&gt;Lessons in Electric Circuits&lt;/a&gt;&lt;br&gt;
It's a free electrical engineering textbook covering electricity and electronics. It's in 6 volumes and to give you an overview the first 4 titles are: Direct Current (DC), Alternating Current (AC), Semiconductors and Digital Logic and Circuits.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3WnSTS5"&gt;Learning Verilog and FPGA&lt;/a&gt;&lt;br&gt;
The author's story of how he first failed, then succeeded, at learning how an FPGA works and how to write Verilog code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3Wnys85"&gt;Executable and Linkable Format 101 - Part 1 Sections and Segments&lt;/a&gt;&lt;br&gt;
It's a great series of four articles that covers the ELF format's ins and outs. After part 1 on Sections and Segments, the next part is on &lt;a href="https://bit.ly/3wklixX"&gt;Symbols&lt;/a&gt;,&lt;br&gt;
the following one is on &lt;a href="https://bit.ly/3Wpq7AB"&gt;Relocations&lt;/a&gt;, and the final one is on &lt;a href="https://bit.ly/3whpNtc"&gt;Dynamic Linking&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3wi1g7c"&gt;Glitching the Olimex LPC-P1343&lt;/a&gt;&lt;br&gt;
This interesting article describes in detail how to set up a glitching attack. An attacker glitch attacks a component by making it run out of its nominal operating conditions. There is no solid defense against a motivated attacker.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools / Libraries
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3QYF6QV"&gt;HexEd.it&lt;/a&gt;&lt;br&gt;
Browser-based Online and Offline Hex Editing&lt;br&gt;
A full-featured HTML5/JavaScript-based hex editor running directly in your web browser.&lt;/p&gt;

&lt;h2&gt;
  
  
  News / Business
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3Wx9X8i"&gt;Emerging Startups 2023: Top Internet of Things Infrastructure Startups&lt;/a&gt;&lt;br&gt;
If you are curious about the IoT startup ecosystem, this report is a good starting point to dig deeper.&lt;/p&gt;

&lt;h2&gt;
  
  
  Jobs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://jobs.embedsysweekly.com/job/6z9BR9LE/senior-software-development-engineer"&gt;Nokia, Senior Software Development Engineer, New Providence, New Jersey, USA&lt;/a&gt;&lt;br&gt;
The pandemic has highlighted how important telecoms networks are to society. Nokia’s Network Infrastructure group is at the heart of a revolution to bring more and faster network capacity to people worldwide through our ambition, innovation, and technical expertise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Misc
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3WIpC53"&gt;Grayscale on 1-bit LCDs&lt;/a&gt;&lt;br&gt;
You'll probably be as surprised as I had been to discover what it is possible to render on a 1-bit LCD. I encourage you to watch the video linked at the top of the article. It gives a fairer view of the author's work.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Embedded Systems Weekly #135</title>
      <dc:creator>Embedded Systems</dc:creator>
      <pubDate>Fri, 13 Jan 2023 15:48:10 +0000</pubDate>
      <link>https://dev.to/embedsys/embedded-systems-weekly-135-3k23</link>
      <guid>https://dev.to/embedsys/embedded-systems-weekly-135-3k23</guid>
      <description>&lt;p&gt;This week Siemens revealed a new vulnerability in its S7-1500 CPU product family: &lt;a href="https://sie.ag/3vXkH5c" rel="noopener noreferrer"&gt;Missing Immutable Root of Trust&lt;/a&gt;. What does it mean in simple words? The device can't ensure the integrity of the code executed. One would say, let's patch the vulnerability. Herein lies the big problem with this vulnerability. The origin is burned on a chip. Conclusion: No fix planned. And one advice: be careful with whom can access the product. Really?!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy reading!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Sponsor
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;-- &lt;a href="https://bit.ly/3ZCrYEX" rel="noopener noreferrer"&gt;&lt;strong&gt;Call for Papers for Hardwear.io USA is open!&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://bit.ly/3ZzPyT2" rel="noopener noreferrer"&gt;@hardwear_io&lt;/a&gt; USA 2023 Call for Papers is open now. If you have a groundbreaking embedded research or an awesome open-source tool you’d like to showcase to the global hardware security community, this is your chance. Send in your ideas on various hardware topics, including but not limited to Chips, Processors, ICS/SCADA, Telecom, Protocols &amp;amp; Cryptography. &lt;a href="https://bit.ly/3ZCrYEX" rel="noopener noreferrer"&gt;Submit now!&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3W9YHPh" rel="noopener noreferrer"&gt;A Comparison of SPARK with MISRA C and Frama-C&lt;/a&gt;&lt;br&gt;
There is for sure a bias in this paper hosted on the Adacore website. Nevertheless, I find the comparison fair. With the recent changes in the way Adacore licenses its libraries, and improvements in dependency management, I feel that Ada can get its chance in the popularity charts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3ZznkaJ" rel="noopener noreferrer"&gt;Taking over a Dead IoT Company&lt;/a&gt;&lt;br&gt;
It's a fun reading, and there is more to it than the title share. The author analyzes why the defunct &lt;a href="https://bit.ly/3GEJi3z" rel="noopener noreferrer"&gt;NYC Train Sign&lt;/a&gt; failed. From his point of view, mainly because the BOM (Bill Of Materials) was too high and the retail price too low. He shares: "One trick I use is that multiplying the BOM cost by 4 will often get you the retail price." Do you agree with his approach as a back of the enveloppe estimation?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3Wh7LC0" rel="noopener noreferrer"&gt;What're you telling me, Ghidra?&lt;/a&gt;&lt;br&gt;
Many articles on reverse engineering something are using Ghidra. It could be intimidating to start right away in an advanced subject. With this article, you can get yourselves familiar with the tool.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3XaKJh9" rel="noopener noreferrer"&gt;Welcome to Comprehensive Rust 🦀&lt;/a&gt;&lt;br&gt;
Rust usage is spreading everywhere: In the Linux kernel, recently in the &lt;a href="https://bit.ly/3vYsGPm" rel="noopener noreferrer"&gt;Chrome web browser&lt;/a&gt;, and notably in Android. As a bonus, The team behind the course is maintaining &lt;a href="https://bit.ly/3IQsZ6F" rel="noopener noreferrer"&gt;discussions on Github&lt;/a&gt; where you can ask questions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3kfSsMr" rel="noopener noreferrer"&gt;Whoops: Linux's strcmp() For The m68k Has Always Been Broken&lt;/a&gt;&lt;br&gt;
That's a  story that makes obvious how benefic the recent changes toward safety are. This subtle bug has been found because the flag  "-funsigned-char" is now enabled by default. Way to go Linux kernel team!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3Zw12GV" rel="noopener noreferrer"&gt;If you use a custom linker script, _start is not (necessarily) the entry point&lt;/a&gt;&lt;br&gt;
Great article to complement your knowledge if you are starting your journey into custom linker scripts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools / Libraries
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3CLcmFj" rel="noopener noreferrer"&gt;WLED Project&lt;/a&gt;&lt;br&gt;
A fast and feature-rich implementation of an ESP8266/ESP32 webserver to control many kinds of LEDs&lt;/p&gt;

&lt;h2&gt;
  
  
  Jobs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://jobs.embedsysweekly.com/job/Kz6rZvjK/avionics-software-senior-manager-advanced-development-programs" rel="noopener noreferrer"&gt;Blue Origin, Avionics Software Senior Manager – Advanced Development Programs, Seattle, WA $177k-$259k / year&lt;/a&gt;&lt;br&gt;
We are a diverse team of collaborators, doers, and problem-solvers who are relentlessly committed to a culture of safety. This position will directly impact the history of space exploration and will require your commitment and detailed attention towards safe and repeatable space flight. Join us in lowering the cost of access to space and enabling Blue Origin’s vision of millions of people living and working in space to benefit Earth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Misc
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3kfHNBc" rel="noopener noreferrer"&gt;Nixie Tube Audio Meter&lt;/a&gt;&lt;br&gt;
It is such a beautiful project. I could not add it to the newsletter. As a bonus, the author shares his workflow to generate animated 3D previews of the case with the PCB in.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3CMIF6R" rel="noopener noreferrer"&gt;Apollo Guidance Computer Restoration&lt;/a&gt;&lt;br&gt;
The whole Youtube playlist is magnificent. If you love electronics, be careful. If you launch one of these videos, you're going to lose hours of your day.&lt;/p&gt;

</description>
      <category>php</category>
      <category>discord</category>
      <category>gratitude</category>
    </item>
    <item>
      <title>Embedded Systems Weekly #134</title>
      <dc:creator>Embedded Systems</dc:creator>
      <pubDate>Sat, 07 Jan 2023 11:12:48 +0000</pubDate>
      <link>https://dev.to/embedsys/embedded-systems-weekly-134-2273</link>
      <guid>https://dev.to/embedsys/embedded-systems-weekly-134-2273</guid>
      <description>&lt;p&gt;Wingman Software giveaway is over and we had the pleasure of randomly picking the two winners.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;roo*&lt;strong&gt;@z&lt;/strong&gt;*.com&lt;/strong&gt; is the winner of the Live TDD Training seat.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;san*&lt;strong&gt;@s&lt;/strong&gt;*.net&lt;/strong&gt; is the winner of the Self-Paced TDD for Embedded C Training.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you didn't win, you could still sign up. Investing in your career is probably the best thing you can do for your future you. The coming session is on January 17, 18, and 19, 2023. To sign up, go to &lt;a href="https://bit.ly/3X4fcgy" rel="noopener noreferrer"&gt;Wingman Software website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy New Year! Happy reading!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3GJRvEW" rel="noopener noreferrer"&gt;DIY Arduino Based Air Sensor&lt;/a&gt;&lt;br&gt;
It is an ongoing series of articles. It's perfect for beginners who want to get their hands on electronics / embedded systems in 2023. In the coming days, the author planned to write a third part to add a temperature and humidity sensor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3jMFw0b" rel="noopener noreferrer"&gt;How Long Is A Millisecond?&lt;/a&gt;&lt;br&gt;
The author draws a good analogy between the heartbeats and the CPU clock ticks. He sets the idea of "CPU years" to better understand CPUs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3jXfAPA" rel="noopener noreferrer"&gt;Fuzzing ping(8)… and finding a 24 year old bug.&lt;/a&gt;&lt;br&gt;
It's an interesting article to read. It gives a method to use AFL on an app communicating over a network.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3GM6GgJ" rel="noopener noreferrer"&gt;The faker's guide to reading (x86) assembly language&lt;/a&gt;&lt;br&gt;
The author shows us that reading assembly code should not be intimidating and that it is a critical skill. I completely agree with him. Be ready to read assembly language. You never know when you'll need it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3GO7ySj" rel="noopener noreferrer"&gt;A Gentle Introduction to Assembly Language Programming&lt;/a&gt;&lt;br&gt;
Let's be honest right away. It's not a gentle introduction at all. It's an introduction for developers already comfortable in C or C++. If you are one of these developers, you should skim this book. I thought it was a good article to share with the one above on reading assembly code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3Ql7tZg" rel="noopener noreferrer"&gt;RISC-V Bytes: Timer Interrupts&lt;/a&gt;&lt;br&gt;
We already talk about it multiple times in the newsletter, RISC-V architecture is getting more and more attention. This article describes how work timer interrupts in the context of the RISC-V architecture.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3Qq1DGg" rel="noopener noreferrer"&gt;Building a Frankenstein 64&lt;/a&gt;&lt;br&gt;
Here is another article for the people among us who are into retro-computing. This time it's about building a Commodore 64 replica from scratch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools / Libraries
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3GMK3J5" rel="noopener noreferrer"&gt;OpenPnP&lt;/a&gt;&lt;br&gt;
OpenPnP is an open-source &lt;a href="https://bit.ly/3XcsZBD" rel="noopener noreferrer"&gt;pick-and-place&lt;/a&gt; system. It includes the software and a list of hardware designs. The main goal of the project is to provide an implementation that makes building a P&amp;amp;P machine affordable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Jobs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://jobs.embedsysweekly.com/job/9DN4R84m/embedded-software-engineer" rel="noopener noreferrer"&gt;Cavnue, Embedded Software Engineer, Remote (Full remote)&lt;/a&gt;&lt;br&gt;
Join us in building the roads of the future. Cavnue, which recently announced the closing of its Series A at $130M, is bridging technology and road infrastructure to realize a safer, more efficient, and more accessible future for automated transportation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Misc
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3GJjZ1v" rel="noopener noreferrer"&gt;The C language - Draft Version 1&lt;/a&gt;&lt;br&gt;
This week I just discovered this gem for C language lovers. The first draft of the kernighan &amp;amp; ritchie. I dug a bit to find who is "Tom Lyon" the name written on the cover. He wrote a blog post on his journey at &lt;a href="https://bit.ly/3WRnXKZ" rel="noopener noreferrer"&gt;Bell Labs&lt;/a&gt; and he is active on &lt;a href="https://bit.ly/3GWxWJP" rel="noopener noreferrer"&gt;Mastodon&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3WUjS98" rel="noopener noreferrer"&gt;The Sega System E: The Master System Supergrafx&lt;/a&gt;&lt;br&gt;
I'm forty-something, and the Sega Master System is part of my youth. There is more in this article than my nostalgia. Give it a read.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Embedded Systems Weekly #133</title>
      <dc:creator>Embedded Systems</dc:creator>
      <pubDate>Sun, 01 Jan 2023 12:54:22 +0000</pubDate>
      <link>https://dev.to/embedsys/embedded-systems-weekly-133-4nn9</link>
      <guid>https://dev.to/embedsys/embedded-systems-weekly-133-4nn9</guid>
      <description>&lt;p&gt;And this is the final issue of 2022. The first end of the year since the reboot from zero of this newsletter. I'm going to keep the retrospective for the first-anniversary end of January. Meanwhile, happy New Year's Eve embedded systems lovers. I wish you all the best for 2023.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy reading!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  This Week Giveaway
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://embedsysweekly.com/embedded-systems-tdd-training-wingman-software-giveaway/" rel="noopener noreferrer"&gt;Test-Driven Development for C/C++ Training&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This week, Wingman Software Training gives away &lt;strong&gt;two seats&lt;/strong&gt;. One subscriber will win a seat to participate in the coming Live TDD Training. Another will win access to the new Self-Paced Test-Driven Development for Embedded C Training. The course is designed and delivered by &lt;strong&gt;James W Grenning&lt;/strong&gt;, author of &lt;a href="https://bit.ly/3i0ANHZ" rel="noopener noreferrer"&gt;Test-Driven development for Embedded C&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To participate, you just have to subscribe to Embedsys Weekly newsletter before January 6th at 00:00. All the current subscribers participate automatically to the giveaway. Nothing more to do! &lt;a href="https://embedsysweekly.com/embedded-systems-tdd-training-wingman-software-giveaway/" rel="noopener noreferrer"&gt;Discover more →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3IwYKBB" rel="noopener noreferrer"&gt;Cheerlights on a Raspberry Pi Pico using MQTT-SN over CAN bus&lt;/a&gt;&lt;br&gt;
In this post, IBM Distinguished Engineer and Master Inventor Andy Stanford-Clark, wrote about how, with Ken Tindell, he seamlessly interfaced MQTT with CAN buses.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3If66cL" rel="noopener noreferrer"&gt;An In-Depth Look at the ICE-V Wireless FPGA Development Board&lt;/a&gt;&lt;br&gt;
This board combines a Lattice ICE40 UP5K FPGA with a RISC-V-based Espressif ESP32C3 Wifi+Bluetooth module and LiPo battery charger support. If you are hesitating about buying it, this article will help you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3hXOLKI" rel="noopener noreferrer"&gt;Making Opensource USB C industrial camera with Interchangeable C mount lens, Interchangeable MIPI Sensor with Lattice Crosslink NX FPGA and Cypress FX3 USB 3.0 controller&lt;/a&gt;&lt;br&gt;
The job the author did and described in this article is mind-blowing. He is building. Imagine yourself creating an industrial camera from scratch... Mind-blowing!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3GyyVQ9" rel="noopener noreferrer"&gt;Afternoon hack: a USB foot keyboard&lt;/a&gt;&lt;br&gt;
In issue 132, I shared a project that turns a clutch into an input device for Vim. &lt;a href="https://bit.ly/3i0B5P5" rel="noopener noreferrer"&gt;Sylvain&lt;/a&gt;, a friend of mine, reminded me about this project he did in 2016. A good addition for this week issue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3GvEoH8" rel="noopener noreferrer"&gt;A journey into IoT – Unknown Chinese alarm – Part 1 – Discover components and ports&lt;/a&gt;&lt;br&gt;
Reading this series of 4 articles, you'll certainly learn a few things. The spectrum of subjects covered is very large. (&lt;a href="https://bit.ly/3Gtu6r4" rel="noopener noreferrer"&gt;Part 2 – Firmware dump and analysis&lt;/a&gt;, &lt;a href="https://bit.ly/3GtDOKc" rel="noopener noreferrer"&gt;Part 3 – Radio communications&lt;/a&gt;, &lt;a href="https://bit.ly/3GxqVi0" rel="noopener noreferrer"&gt;Part 4 – Internal communications&lt;/a&gt;)&lt;/p&gt;

&lt;h2&gt;
  
  
  Jobs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3vsE1H8" rel="noopener noreferrer"&gt;vTitan Corporation Pvt Ltd , Embedded Software Engineer, Chennai, India&lt;/a&gt;&lt;br&gt;
At vTitan, we are pioneering a new era of healthcare solutions by innovating cutting edge medical devices and equipment. Our path-breaking research and development work has empowered us to create products that pave the way for India's self-reliance in healthcare technology.&lt;/p&gt;

&lt;h2&gt;
  
  
  Misc
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3GxesuS" rel="noopener noreferrer"&gt;NB100 CYBERDECK&lt;/a&gt;&lt;br&gt;
In this article, the author describes how he turned a vintage Amstrad NC100 into a cyberdeck. The whole project is interesting, and the result is fabulous.&lt;/p&gt;

</description>
      <category>redis</category>
      <category>tooling</category>
      <category>cli</category>
    </item>
    <item>
      <title>Embedded Systems Weekly #132</title>
      <dc:creator>Embedded Systems</dc:creator>
      <pubDate>Fri, 23 Dec 2022 23:19:21 +0000</pubDate>
      <link>https://dev.to/embedsys/embedded-systems-weekly-132-cmc</link>
      <guid>https://dev.to/embedsys/embedded-systems-weekly-132-cmc</guid>
      <description>&lt;p&gt;A few days ago, Tessa Lau shared her personal experience illustrating &lt;a href="https://bit.ly/3WobHkY"&gt;why hardware is hard&lt;/a&gt;. A story of robots behaving erratically. A story of a problem not reproducible in the lab. A kind of story that we would like to see shared more often publicly. Thank you Tessa!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy reading!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3FTKb7R"&gt;Building a Rust-y Vim clutch with the Raspberry Pi 2040&lt;/a&gt;&lt;br&gt;
When someone leaves a team made of persons creative and skilled like the author of the article, we all have the chance to read how to build a clutch to command your Vim via USB. Among the technical aspects, the author distills some excellent advice: "&lt;em&gt;My approach to any complex problem is to start with a base assumption that nothing works. Then introduce the smallest reasonable amount of unknown. Prove this new version works as expected and keep iterating up the stack until I have a working thing or need a break.&lt;/em&gt;" ~ Chris Price&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3WrnNtJ"&gt;Disassembling a Cortex-M raw binary file with Ghidra&lt;/a&gt;&lt;br&gt;
In the continuity of a training course he attended, Niall is writing a nice introduction to Ghidra, the open-source tool for analyzing firmware.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3Wls7e9"&gt;Converting a WW2-era Engine Cowl Flaps Indicator into a USB Peripheral&lt;/a&gt;&lt;br&gt;
I like this kind of article that resuscitates an old piece of hardware with modern electronics. On a small PCB, a PIC16F1459  transforms inputs received by USB into SPI messages to the four MCP41HV31 digital potentiometers controlling the four dials. Curious to see it moving? Check out the &lt;a href="https://bit.ly/3WliWKD"&gt;video&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3PMMPRC"&gt;Ethernet transceiver&lt;/a&gt;&lt;br&gt;
The author built from scratch a transceiver that converts a 10BASE-T Ethernet signal to SPI back and forth. He tested it first with an stm32f100 but switched quickly to an stm32f401 to get enough RAM (from 8kB to 96 kB) for the buffers. In the end, the microcontroller uses the homemade Ethernet transceiver to send messages on Telegram. It's an impressive work with all the details &lt;a href="https://bit.ly/3YKRbg4"&gt;open-source&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3FUyspX"&gt;Magnetometer Soft Iron and Hard Iron Calibration: Why and How&lt;/a&gt;&lt;br&gt;
After detailed explanations, the article does a practical analysis of the sensitive QMC5883L magnetometer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools / Libraries
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3hMJSnw"&gt;FXT: a library of algorithms&lt;/a&gt;&lt;br&gt;
FXT is a library of low-level algorithms. One of the subjects covered is fast transforms. The list is quite long, and the website claims that the routine listed here are among the fastest available.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3PMMRsI"&gt;EsPiFF&lt;/a&gt;&lt;br&gt;
The EsPiFF goal is to provide a solid design around an ESP32 to replace a Raspberry Pi 4 when this one is not robust enough or takes too much power.&lt;/p&gt;

&lt;h2&gt;
  
  
  Jobs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3hLb85Y"&gt;Ledger, Senior Firmware Engineer, 1 Rue du Mail, Paris, 75002 (Open to remote)&lt;/a&gt;&lt;br&gt;
Founded in 2014, Ledger is the global platform for digital assets and Web3. Over 15% of the world’s crypto assets are secured through our Ledger Nanos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Misc
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bit.ly/3PS07MB"&gt;Proofs about programs, An interactive tutorial&lt;/a&gt;&lt;br&gt;
Even though It uses Lean theorem prover by Microsoft, and the language used for the course is Javascript, it is a great introduction to the problem of proving program termination.&lt;/p&gt;

</description>
      <category>embedded</category>
    </item>
    <item>
      <title>Embedded Systems Weekly #131</title>
      <dc:creator>Embedded Systems</dc:creator>
      <pubDate>Sun, 18 Dec 2022 10:39:23 +0000</pubDate>
      <link>https://dev.to/embedsys/embedded-systems-weekly-131-n5n</link>
      <guid>https://dev.to/embedsys/embedded-systems-weekly-131-n5n</guid>
      <description>&lt;p&gt;Welcome to edition 131 of our weekly newsletter on embedded systems!&lt;/p&gt;

&lt;p&gt;This week, we have hand-picked a selection of links to please the C lovers among you. Whether you're an experienced professional or just starting to learn about embedded systems, we hope you enjoy this edition of our newsletter!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy reading!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.apriorit.com/dev-blog/787-reverse-engineering-microcontroller-model-identification"&gt;How to Identify a Microcontroller Model Using Firmware Analysis&lt;/a&gt;&lt;br&gt;
It's the first time that I read an article along this angle. It's very interesting to discover the techniques used to identify the microcontroller from the firmware.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.righto.com/2022/11/how-8086-processors-microcode-engine.html"&gt;How the 8086 processor's microcode engine works&lt;/a&gt;&lt;br&gt;
Besides the interesting writing on the 8086 itself, I like as well the part on the microcode history. Ken Shirriff is delivering yet another great article.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://arxiv.org/abs/2212.05438"&gt;Understanding Concurrency Vulnerabilities in Linux Kernel&lt;/a&gt;&lt;br&gt;
Based on bugs listed in the CVE database during the last ten years, the study covers 101 concurrency vulnerabilities. Among the things covered, the study classify the fixes in four different classes named condition check, code switch, lock strategy and design change.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://spritesmods.com/?art=doom-bauble"&gt;A Christmas tree bauble that plays Doom&lt;/a&gt;&lt;br&gt;
It is, at the same time, charming and impressive technically. The author shares the schematics. He shares how he modified an existing Doom port to make it possible to pair a BLE keyboard with the bauble. Yes, you got it. You can play on the bauble. With the case design files, everything is available in the &lt;a href="https://github.com/Spritetm/esp32c3-doom-bauble"&gt;Doom on an ESP32-C3 based Christmas tree bauble&lt;/a&gt; repository.&lt;/p&gt;

&lt;h2&gt;
  
  
  Jobs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://jobs.embedsysweekly.com/job/9BNPORM9/embedded-software-engineer"&gt;Octopus Energy, Embedded Software Engineer, Slough, UK (Partially remote)&lt;/a&gt;&lt;br&gt;
Our ambition is to help put the world on the path to Net Zero. Through our R&amp;amp;D team, we’re working on exciting projects that will directly impact the future of renewable energy. Our R&amp;amp;D team is now rapidly expanding and we’re looking for determined people to join us on our mission.&lt;/p&gt;

&lt;h2&gt;
  
  
  Misc
&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://www.madore.org/~david/computers/quine.html"&gt;Quines (self-replicating programs)&lt;/a&gt;&lt;br&gt;
It is an oldie, but it remains fun to check out. Enjoy!&lt;/p&gt;

</description>
      <category>embedded</category>
    </item>
    <item>
      <title>Embedded Systems Weekly #130</title>
      <dc:creator>Embedded Systems</dc:creator>
      <pubDate>Sat, 10 Dec 2022 22:35:17 +0000</pubDate>
      <link>https://dev.to/embedsys/embedded-systems-weekly-130-43ja</link>
      <guid>https://dev.to/embedsys/embedded-systems-weekly-130-43ja</guid>
      <description>&lt;p&gt;Welcome to issue #130! The end of the year is coming and the time to build your plans for the next years is coming. Did you start to think about something new that you want to learn?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy reading!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://learn.adacore.com/courses/intro-to-embedded-sys-prog/index.html" rel="noopener noreferrer"&gt;Introduction to Embedded Systems Programming&lt;/a&gt;&lt;br&gt;
I'm happy to share this introduction because it is not one in C or even in Rust but in Ada.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://en.cppreference.com/w/c/language/bool_constant" rel="noopener noreferrer"&gt;Predefined Boolean constants (C23)&lt;/a&gt;&lt;br&gt;
The future standard of the C language is coming! The header "stdbool.h", introduced in the C99, is removed by the &lt;a href="https://open-std.org/JTC1/SC22/WG14/www/docs/n3054.pdf" rel="noopener noreferrer"&gt;C23&lt;/a&gt;. A new built-in &lt;a href="https://en.cppreference.com/w/c/language/bool_constant" rel="noopener noreferrer"&gt;bool&lt;/a&gt; type is added directly in the language, and so are the predefined constants true and false. With remarkable patience and longevity, we might use them in our embedded projects in 10 years or so.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/cpq/bare-metal-programming-guide" rel="noopener noreferrer"&gt;A bare metal programming guide&lt;/a&gt;&lt;br&gt;
It's a beginner guide for developers who want to start their adventure in the bare metal world. It uses the STM32F429, but as the author writes, most of the fundamental parts apply to any other microcontroller.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://kristerw.blogspot.com/2016/02/how-undefined-signed-overflow-enables.html" rel="noopener noreferrer"&gt;How undefined signed overflow enables optimizations in GCC&lt;/a&gt;&lt;br&gt;
It's an article from 2016, but I have to admit I didn't know that GCC is using some undefined behavior to do optimizations. It's a very interesting technical article.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.eetimes.com/nasa-uses-risc-v-vector-spec-to-soup-up-space-computers/" rel="noopener noreferrer"&gt;NASA Uses RISC-V Vector Spec to Soup Up Space Computers&lt;/a&gt;&lt;br&gt;
Did you know about the RVV spec advantages? If you are like me, and you didn't, this article is a great overview.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://iosoft.blog/2022/12/06/picowi/" rel="noopener noreferrer"&gt;PicoWi: standalone WiFi driver for the Pi Pico&lt;/a&gt;&lt;br&gt;
In this series of 6 articles, the author writes from scratch a driver for the CYW43439. From the low-level SPI driver to the ARP and ICMP protocols, everything is explained in detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Jobs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://jobs.embedsysweekly.com/job/Kg6R3Jwm/embedded-software-engineer-digital-signal-processor-processing" rel="noopener noreferrer"&gt;Tietoevry, Embedded Software Engineer – Digital Signal Processor/Processing, Poland, Warsaw (Partially remote)&lt;/a&gt;&lt;br&gt;
We are one of the largest Nordic IT services company. In Poland our specialty is delivering modern IT business solutions, mainly as software development for well-known companies from different sectors like automotive and smart devices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Misc
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://kinexon.com/blog/fifa-preferred-provider-live-player-and-ball-tracking/" rel="noopener noreferrer"&gt;The sensor which is integrated into the Word Cup ball&lt;/a&gt;&lt;br&gt;
This week I randomly learned that the World Cup ball embeds a sensor. From the company website: "utilizing both ultra-wideband (UWB) radio frequency and an Inertial Measurement Unit (IMU)"&lt;/p&gt;

</description>
      <category>gratitude</category>
    </item>
    <item>
      <title>Embedded Systems Weekly #129</title>
      <dc:creator>Embedded Systems</dc:creator>
      <pubDate>Fri, 02 Dec 2022 18:53:02 +0000</pubDate>
      <link>https://dev.to/embedsys/embedded-systems-weekly-129-2p3j</link>
      <guid>https://dev.to/embedsys/embedded-systems-weekly-129-2p3j</guid>
      <description>&lt;p&gt;This week we exchanged around what could be the simplest definitions of hard, firm and soft real-time systems. Each of them definition can cover multiple pages, but at the highest-level what could be a one-liner summary? Here are my propositions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hard&lt;/strong&gt;: if any result is not produced within the deadline, the system is considered as failing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Firm&lt;/strong&gt;: if some results are not produced within the deadline, they are discarded and the system is still considered as operational&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Soft&lt;/strong&gt;: results produced out of the deadline are all considered valid, and the system is always considered functional whatever are the delays&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What do you think about them? Do you have alternative one-liner definitions for real-time systems that you find better? Please share them, email me!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy reading!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://youtu.be/YT5vB3UqU_E" rel="noopener noreferrer"&gt;Writing a Really Tiny RISC-V Emulator&lt;/a&gt;&lt;br&gt;
It's maybe the tiniest RISC-V emulator around. It is all in one unique function of ~400 lines, but it can run Linux and various executables on it. The &lt;a href="https://github.com/cnlohr/mini-rv32ima" rel="noopener noreferrer"&gt;tiny C header-only risc-v emulator&lt;/a&gt; code is on Github with everything needed to make it run yourself. It's a really impressive work which deserves to be highlighted,&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@csrohit/blue-pill-systick-programming-878dec0f1582" rel="noopener noreferrer"&gt;Blue Pill: SysTick programming&lt;/a&gt;&lt;br&gt;
It's a straight to the point tutorial on how to use the Cortex M3 24-bit system timer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/rhbLgg8mWxs" rel="noopener noreferrer"&gt;Hacking your dishwasher, or cloudless Home Connect appliances&lt;/a&gt;&lt;br&gt;
A nice presentation where the speaker describes how he managed to reverse engineered Bosh-Siemens appliance communication protocol to be able to use them disconnected from the Internet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.embeddedrelated.com/showarticle/1485.php" rel="noopener noreferrer"&gt;Peripheral Interaction Without a Linux Device Driver Using Spidev&lt;/a&gt;&lt;br&gt;
This article describes how sometimes it is not necessary to implement a kernel space module to drive a peripheral. A good example on how to use the &lt;a href="https://www.kernel.org/doc/html/latest/spi/spidev.html" rel="noopener noreferrer"&gt;Linux kernel SPI userspace API&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools / Libraries
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/formatc1702/WireViz" rel="noopener noreferrer"&gt;WireViz, Easily document cables and wiring harnesses&lt;/a&gt;&lt;br&gt;
WireViz is a little tool very handy to document your cabling and get beautiful visual from it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Jobs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://jobs.embedsysweekly.com/job/YGNWznb9/senior-embedded-software-engineer" rel="noopener noreferrer"&gt;Intergalactic, Senior Embedded Software Engineer, 3172 Deseret Dr S, St. George, UT 84790, USA (Open to remote)&lt;/a&gt;&lt;br&gt;
Intergalactic is a team of engineers, technologists, designers, mathematicians, and problem solvers committed to a singular idea: reviving the no-boundaries mentality in aerospace. We are a team of the nation’s best, regardless of where we live.&lt;/p&gt;

&lt;h2&gt;
  
  
  Misc
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://blog.brixit.nl/taking-a-good-picture-from-a-pcb/" rel="noopener noreferrer"&gt;Taking a good picture of a PCB&lt;/a&gt;&lt;br&gt;
We all need these advices, don’t we?&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>testing</category>
    </item>
    <item>
      <title>Embedded Systems Weekly #128</title>
      <dc:creator>Embedded Systems</dc:creator>
      <pubDate>Fri, 25 Nov 2022 22:14:03 +0000</pubDate>
      <link>https://dev.to/embedsys/embedded-systems-weekly-128-46ja</link>
      <guid>https://dev.to/embedsys/embedded-systems-weekly-128-46ja</guid>
      <description>&lt;p&gt;Most of us at least heard about the &lt;a href="https://en.wikipedia.org/wiki/Brooks%27s_law" rel="noopener noreferrer"&gt;Brooks's law&lt;/a&gt;, named after the author of The Mythical Man-Month. He sadly died last week. Hat off to Frederick Phillips Brooks Jr. who had a major impact on how we manage projects nowadays. (I really hope I won't have to do any new tribute this year. We lost enough major contributors in the past weeks)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy reading!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://spectrum.ieee.org/transistor-history" rel="noopener noreferrer"&gt;How the First Transistor Worked&lt;/a&gt;&lt;br&gt;
This article is a delicious mix of historic facts and technical details. A pleasure to read to discover more about the point-contact transistor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.mnemonic.io/resources/blog/reverse-engineering-an-ev-charger/" rel="noopener noreferrer"&gt;Reverse engineering an EV charger&lt;/a&gt;&lt;br&gt;
It is an interesting reading because it is pretty rare to see this kind of article on a device well-designed. How a team of experts gets access to a device when it has no flaws? From the other point of view, how do you design your product to be sure to not compromise the fleet if one device is reversed engineered.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://luajit.io/post/learn-rust-from-assembly-code/" rel="noopener noreferrer"&gt;Learn Rust From Assembly Code&lt;/a&gt;&lt;br&gt;
It is the author's favourite way to learn Rust. In this specific article, he makes us discover how the ownership system is translated into assembly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://astrid.tech/2022/07/07/0/blink-mini-disassembly/" rel="noopener noreferrer"&gt;Disassembling an Amazon Blink Mini camera&lt;/a&gt;&lt;br&gt;
Buckle up, this is a 4 parts' article (&lt;a href="https://astrid.tech/2022/07/13/0/blink-mini-dumping" rel="noopener noreferrer"&gt;2&lt;/a&gt;, &lt;a href="https://astrid.tech/2022/08/03/0/blink-mini-fw-analysis/" rel="noopener noreferrer"&gt;3&lt;/a&gt; and &lt;a href="https://astrid.tech/2022/08/06/0/blink-mini-4/" rel="noopener noreferrer"&gt;4&lt;/a&gt;) that goes really deep in this blink cam. Each part brings something new to the reader. It's a massive amount of work from the author.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/KULeuven-COSIC/Starlink-FI" rel="noopener noreferrer"&gt;Starlink User Terminal Modchip&lt;/a&gt;&lt;br&gt;
It is the repository holding all the resources presented in the talk named "Glitched on Earth by Humans: A Black-Box Security Evaluation of the SpaceX Starlink User Terminal". All instructions, pcb design and code source are available to let the brave among us try the hack.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://personaljournal.ca/qqmrichter/dynamically-static-allocation-in-embedded-systems" rel="noopener noreferrer"&gt;Dynamically static allocation in embedded systems&lt;/a&gt;&lt;br&gt;
Last week I shared an article on how to be sure that your embedded software doesn't do any dynamic memory allocations. That's for sure, the best way to be sure that you won't have any memory problem in your system. In some cases, under some specific conditions, there are engineers who propose more flexible approaches like the one described in this article. Be extra careful if you adopt a such method in your project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools / Libraries
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://docs.rs/embassy-executor/0.1.1/embassy_executor/" rel="noopener noreferrer"&gt;Release of the Embassy executor&lt;/a&gt;&lt;br&gt;
It's in the &lt;a href="https://embedsysweekly.com/embedded-systems-issue86/" rel="noopener noreferrer"&gt;issue #86 (Feb 2022)&lt;/a&gt;, that I talked for the first time about the embassy-executor. It was because of this still fantastic article titled &lt;a href="https://tweedegolf.nl/en/blog/65/async-rust-vs-rtos-showdown" rel="noopener noreferrer"&gt;Async Rust vs RTOS showdown!&lt;/a&gt;. Since then, Dario Nieuwenhuis continued to work on it, and the first release finally happened this week. I can't emphasize enough that you should take the time to at least read the article and get yourself familiar with the library. It's promising.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/F5OEO/rpitx" rel="noopener noreferrer"&gt;RF transmitter for Raspberry Pi&lt;/a&gt;&lt;br&gt;
With this project you can turn your Raspberry Pi into an RF transmitter with only a filter to avoid interferences.&lt;/p&gt;

&lt;h2&gt;
  
  
  Jobs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://jobs.embedsysweekly.com/job/KJ0RXjJY/real-time-embedded-software-engineer" rel="noopener noreferrer"&gt;Mobileye, Real-Time Embedded Software Engineer, Haifa, Israel (Partially remote)&lt;/a&gt;&lt;br&gt;
The autonomous Driving group is in charge of the research, design, and implementation of new Software drivers and Operating System features, as well as, maintaining, and enhancing existing ones.&lt;/p&gt;

&lt;h2&gt;
  
  
  Misc
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.crumbsim.com/" rel="noopener noreferrer"&gt;CRUMB Circuit Simulator&lt;/a&gt;&lt;br&gt;
This week &lt;a href="https://mobile.twitter.com/MBushellRacing" rel="noopener noreferrer"&gt;Mike Bushell&lt;/a&gt; released is CRUMB Circuit Simulator. You can find it on Steam or on the App Store. Many already shared that it is fun to play with.&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>react</category>
      <category>typescript</category>
      <category>python</category>
    </item>
    <item>
      <title>Embedded Systems Weekly #127</title>
      <dc:creator>Embedded Systems</dc:creator>
      <pubDate>Sun, 20 Nov 2022 10:44:26 +0000</pubDate>
      <link>https://dev.to/embedsys/embedded-systems-weekly-127-3ke0</link>
      <guid>https://dev.to/embedsys/embedded-systems-weekly-127-3ke0</guid>
      <description>&lt;p&gt;Welcome to issue #127! I hope you all had a great week coding, designing and testing your projects. It is now the moment to read the selection of links that I put together for you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy reading!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ‟Sponsor
&lt;/h2&gt;

&lt;p&gt;— &lt;a href="https://www.luos.io/blog/a-flexible-embedded-bootloader"&gt;Luos Makes Embedded Device Firmware Updates Easy&lt;/a&gt;&lt;br&gt;
The new Luos bootloader updates all boards without needing physical access to each of them. Now, it’s possible to update&lt;br&gt;
firmware on many microcontroller units (MCU) without needing a specific bootloader for each different board. &lt;a href="https://www.luos.io/tutorials/get-started"&gt;Get Started →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://youtu.be/AHYNxpqKqwo"&gt;The RS-232 protocol&lt;/a&gt;&lt;br&gt;
After months without tutorials, Ben Eater delivers a new video as good as all the previous ones. Pedagogically, it is of high quality.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mcuoneclipse.com/2022/11/06/how-to-make-sure-no-dynamic-memory-is-used/"&gt;How to make sure no Dynamic Memory is used&lt;/a&gt;&lt;br&gt;
You know the drill to build a robust system: No dynamic memory allocation. This article gives you tips to configure your build in order to be sure that no malloc slipped into your final binary. As a bonus, you get a short introduction on how to use the linker cross reference.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.controlpaths.com/2022/11/07/writing-verilog-code-using-python-with-migen/"&gt;Writing Verilog code using Python with Migen.&lt;/a&gt;&lt;br&gt;
Following this article, you'll get your first module generated under 1 hour. In issue #91 I linked the &lt;a href="https://embedsysweekly.com/embedded-systems-issue91/"&gt;tool chain Amaranth HDL&lt;/a&gt; an alternative to &lt;a href="https://m-labs.hk/gateware/migen/"&gt;Migen&lt;/a&gt; for abstracting away standard HDL languages with Python. Check it out too.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://yurichev.org/bool2/"&gt;Boolean algebra for noobs: stack alignment&lt;/a&gt;&lt;br&gt;
A short but interesting article that explains why and how the assembly code generated is making a stack alignment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.kianryan.co.uk/2022-11-14-tiny-cpm/"&gt;TinyCPM - CP/M on a Tiny 2040&lt;/a&gt;&lt;br&gt;
For the fans of &lt;a href="https://en.wikipedia.org/wiki/CP/M"&gt;CP/M&lt;/a&gt; among us, this article will show you how to put together a CP/M based system so small that you can bring it with you everywhere all the time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.righto.com/2022/11/the-unusual-bootstrap-drivers-inside.html"&gt;The unusual bootstrap drivers inside the 8086 microprocessor chip&lt;/a&gt;&lt;br&gt;
Ken Shirriff managed to pull out yet another article on something I didn't know about the 8086. Please tell me that I'm not the only one who didn't know about this bootstrap driver!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.thea.codes/starfish-a-control-board-with-the-rp2040/"&gt;Creating a pick and place control board with the RP204&lt;/a&gt;&lt;br&gt;
No details are let in the dark in this article. Every aspect of the &lt;a href="https://en.wikipedia.org/wiki/Pick-and-place_machine"&gt;pick and place&lt;/a&gt; control board is described clearly with nice illustrations. It is a really nice article to read.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lastminuteengineers.com/74hc595-shift-register-arduino-tutorial/"&gt;How 74HC595 Shift Register Works &amp;amp; Interface it with Arduino&lt;/a&gt;&lt;br&gt;
This is a good introduction on why and how using shift registers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools / Libraries
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/mickjc750/prnf"&gt;PRNF&lt;/a&gt;&lt;br&gt;
I'm keeping an eye on this lightweight tiny printf alternative. It is one year old and get a 1.0.0 release recently, but doesn't have any tests. It could become interesting with a bit more QA.&lt;/p&gt;

&lt;h2&gt;
  
  
  Misc
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://youtu.be/8bw80LiCl7g"&gt;FPGA + PCIe Hardware Accelerator Design Walkthrough (DDR3, M.2, ..)&lt;/a&gt;&lt;br&gt;
A walk through of a FPGA-based (Xilinx Artix 7) PCIe hardware accelerator in an M.2 form-factor.&lt;/p&gt;

</description>
      <category>embedded</category>
    </item>
    <item>
      <title>Embedded Systems Weekly #126</title>
      <dc:creator>Embedded Systems</dc:creator>
      <pubDate>Fri, 11 Nov 2022 19:28:59 +0000</pubDate>
      <link>https://dev.to/embedsys/embedded-systems-weekly-126-574d</link>
      <guid>https://dev.to/embedsys/embedded-systems-weekly-126-574d</guid>
      <description>&lt;p&gt;This week I ran a &lt;a href="https://twitter.com/embedsys/status/1589586047595597824?s=20&amp;amp;t=Cr9HOsvgwVRGFhEVClw-fQ"&gt;poll&lt;/a&gt; asking engineers the IDE they use for C programming. I had been surprised by two things. The first one is the very low percentage using Eclipse. Only 10%. The second one is the very high percentage using VS Code: 53.2%. I hadn't realised how VS Code became dominant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy reading!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://youtu.be/dt7Vy02W5DU"&gt;Testing of Event-Driven Embedded Software with Python&lt;/a&gt;&lt;br&gt;
In this presentation in two &lt;a href="https://youtu.be/1L4bAOZHdIc"&gt;parts&lt;/a&gt; , Miro Samek demonstrates how replacing mocks with spies and using a proper software tracing tool makes your testing easier and dynamic. Miro Samek is using his company's tools, but the point stands and several other tools on the market provide the same features. If the concepts and differences between mocks and spies are blurry for you, I suggest reading the &lt;a href="https://martinfowler.com/bliki/TestDouble.html"&gt;TestDouble&lt;/a&gt; article by Martin Fowler.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tinytapeout.com/"&gt;Tiny Tapeout 2 is open for submissions&lt;/a&gt;&lt;br&gt;
Tiny Tapeout, &lt;a href="https://twitter.com/matthewvenn"&gt;Matthew Venn&lt;/a&gt;'s project, is probably the easiest way to get your design manufactured on a real chip. The second run, currently opened, will close on Nov, the 14th at 18:00 CET. You still have the weekend to submit your work and to see it integrated on a real chip.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.feabhas.com/2022/10/understanding-arm-cortex-m-intel-hex-ihex-files/"&gt;Understanding Arm Cortex-M Intel-Hex (ihex) files&lt;/a&gt;&lt;br&gt;
You might have already used ihex files, but probably you never took the time to dig their structure. Niall Cooling did the work for us in this article.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://spectrum.ieee.org/passive-radar-with-sdr"&gt;Build a Passive Radar With Software-Defined Radio&lt;/a&gt;&lt;br&gt;
An Interesting article that shows what it is nowadays possible to do with affordable SDR technology. The author is using the &lt;a href="https://www.krakenrf.com/product-page/krakensdr"&gt;KrakenSDR&lt;/a&gt; at $399.00 plus two TV antennas at $19.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.allaboutcircuits.com/technical-articles/understanding-common-mode-rejection-ratio-and-its-relationship-with-analog-to-digital-converter-offset-error/"&gt;Understanding CMRR and its Relationship With ADC Offset Error&lt;/a&gt;&lt;br&gt;
If you are like me with very basic knowledge of electronics, this article is a good starting point to progress on what is the common mode signal and how works an ADC.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools / Libraries
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://kalumajs.org/"&gt;Kaluma&lt;/a&gt;&lt;br&gt;
Kaluma is a tiny JavaScript runtime for RP2040.&lt;/p&gt;

&lt;h2&gt;
  
  
  Jobs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://jobs.embedsysweekly.com/job/9q6nAedY/embedded-software-engineer"&gt;National Robotics Engineering Center, Embedded Software Engineer, Full-time, Pittsburgh, PA, USA&lt;/a&gt;&lt;br&gt;
NREC has 25+ years of experience and is globally renowned for developing and deploying robots into many applications across multiple sectors, such as agriculture, mining, defense, energy, and manufacturing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Misc
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://youtu.be/_xjXdjj2m5Q"&gt;PROBABLY THE BEST 'elevator relay logic vid' in the world&lt;/a&gt;&lt;br&gt;
In the &lt;a href="https://embedsysweekly.com/112-embedded-systems-history/"&gt;issue #112 of the newsletter&lt;/a&gt;,&lt;br&gt;
I wrote a brief historic of embedded systems. In it, I talked about the times when lifts were relay-controlled. Check out this mesmerizing video to see one running...&lt;/p&gt;

</description>
      <category>embedded</category>
    </item>
    <item>
      <title>Embedded Systems Weekly #125</title>
      <dc:creator>Embedded Systems</dc:creator>
      <pubDate>Sun, 06 Nov 2022 14:54:21 +0000</pubDate>
      <link>https://dev.to/embedsys/embedded-systems-weekly-125-3b80</link>
      <guid>https://dev.to/embedsys/embedded-systems-weekly-125-3b80</guid>
      <description>&lt;p&gt;After our last week tribute to Wolfgang Denk, this week we have to take our hat off to &lt;a href="https://www.theregister.com/2022/10/29/kathleen_booth_obit/"&gt;Kathleen Booth&lt;/a&gt;, who died at the end of September. She invented something that she called the Contracted Notation, and that is today known as the assembly language.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy reading!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.quaxio.com/circuit_boards/"&gt;Types of circuit boards&lt;/a&gt;&lt;br&gt;
Alok Menghrajani wrote this article to help himself navigate through the long list of different types of circuits. I bookmarked it as a reference.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.copetti.org/writings/consoles/wiiu/"&gt;Wii U Architecture: A practical analysis&lt;/a&gt;&lt;br&gt;
Personally, I always find interesting these kinds of consumer products' deep analysis. Of courses to discover what choices the manufacturer made but as well the dedication of the person doing the analysis and publishing it for free. Thank you, Rodrigo Copetti.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/antoinevg/hello-amaranth/tree/main/hello-femtorv"&gt;Rust blinky on RISC-V soft core&lt;/a&gt;&lt;br&gt;
If you were looking for, an introduction example of an embedded Rust program, running on a RISC-V soft core, check out this blinky that is using the &lt;a href="https://github.com/BrunoLevy/learn-fpga/tree/master/FemtoRV"&gt;FemtoRV&lt;/a&gt; &lt;a href=""&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://fredericb.info/2022/06/breaking-secure-boot-on-google-nest-hub-2nd-gen-to-run-ubuntu.html"&gt;Breaking Secure Boot on Google Nest Hub (2nd Gen) to run Ubuntu&lt;/a&gt;&lt;br&gt;
There is no better embedded systems engineer who knows about the last exploits. Not only which product has been hacked, but as well how it has been hacked. With this knowledge, you can make your own designs more secured.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/qeiRGbYCD-0"&gt;Memory safety in C++, Zig, &amp;amp; Rust (part 1)&lt;/a&gt;&lt;br&gt;
Even though, in general (and most of the time) memory allocations must be avoided in embedded systems, this video is insightful to understand why many are eyeing on Rust. I know it's polemic, but as an old C developer, I believe that it is now the moment to onboard the Rust train just to be ready when it will roll.&lt;/p&gt;

&lt;h2&gt;
  
  
  News / Business
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.semianalysis.com/p/arm-changes-business-model-oem-partners"&gt;Arm Changes Business Model – OEM Partners Must Directly License From Arm&lt;/a&gt;&lt;br&gt;
Is it ARM reacting to the threats coming from the CPU/GPU changes landscape? Is it a bad move for ARM long-term position? Some specialists see it as a pure anti-competition move. What do you think?&lt;/p&gt;

&lt;h2&gt;
  
  
  Jobs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://jobs.embedsysweekly.com/job/Ykg8xlaY/senior-firmware-engineer"&gt;Baker Hughes, Senior Firmware Engineer, Full-time, Houston, TX&lt;/a&gt;&lt;br&gt;
Would you like to shape firmware development for a global company? With operations in over 120 countries, we provide better solutions for our customers and richer opportunities for our people.&lt;/p&gt;

&lt;h2&gt;
  
  
  Misc
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.nature.com/articles/d41586-022-03395-z"&gt;Thumb-sized microscope captures images deep inside the brains of active animals&lt;/a&gt;&lt;br&gt;
It is both scary and fascinating. Anyway, if you feel adventurous, everything needed to build it is available in the &lt;a href="https://github.com/kavli-ntnu/MINI2P_toolbox"&gt;Mini2P toolbox&lt;/a&gt; repository.&lt;/p&gt;

</description>
      <category>embedded</category>
    </item>
  </channel>
</rss>
