<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>Rust Embedded Working Group</title>
        <link>https://blog.rust-embedded.org</link>
        <description>Blog of the Embedded Rust Working Group
</description>
        <generator>Zola</generator>
        <language>en</language>
        <atom:link href="https://blog.rust-embedded.org/rss.xml" rel="self" type="application/rss+xml"/>
        <lastBuildDate>Wed, 20 Aug 2025 00:00:00 +0000</lastBuildDate>
        
            <item>
                <title>Heapless v0.9.1 has been released!</title>
                <pubDate>Wed, 20 Aug 2025 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/heapless-091/</link>
                <guid>https://blog.rust-embedded.org/heapless-091/</guid>
                <description>&lt;p&gt;Almost 2 years after the last release, the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;heapless&quot;&gt;heapless&lt;&#x2F;a&gt; crate has a new release. The first attempt at a &lt;code&gt;0.9.0&lt;&#x2F;code&gt; release was yanked due to including more breaking changes than intended.  This has been fixed, and &lt;code&gt;0.9.1&lt;&#x2F;code&gt;  has been released today.&lt;&#x2F;p&gt;
&lt;p&gt;Compared to &lt;code&gt;0.8.0&lt;&#x2F;code&gt;, the &lt;code&gt;0.9.1&lt;&#x2F;code&gt; release contains a bunch of small everyday improvements and bugfixes. Most users of the library should be able to adapt with minimal changes. For more information, you can check out &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;heapless&#x2F;blob&#x2F;main&#x2F;CHANGELOG.md&quot;&gt;the changelog&lt;&#x2F;a&gt;. Here are some of the major changes that can improve your usage of the library.&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;h1 id=&quot;the-view-types&quot;&gt;The &lt;code&gt;View&lt;&#x2F;code&gt; types&lt;&#x2F;h1&gt;
&lt;p&gt;One of the main constraints when working with &lt;code&gt;heapless&lt;&#x2F;code&gt; types is that they all have a &lt;code&gt;const generic&lt;&#x2F;code&gt;. In a lot of situations, these can now be removed thanks to the &lt;code&gt;View&lt;&#x2F;code&gt; types.&lt;&#x2F;p&gt;
&lt;p&gt;A lot of embedded firmware will allocate a couple of buffers and pass them around to save on memory.
To make it easy to change the size of the buffers, functions will carry along these &lt;code&gt;const generics&lt;&#x2F;code&gt;:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;rust&quot; style=&quot;background-color:#2b303b;color:#c0c5ce;&quot; class=&quot;language-rust &quot;&gt;&lt;code class=&quot;language-rust&quot; data-lang=&quot;rust&quot;&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;use &lt;&#x2F;span&gt;&lt;span&gt;heapless::Vec;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;struct &lt;&#x2F;span&gt;&lt;span&gt;App{
&lt;&#x2F;span&gt;&lt;span&gt;    …
&lt;&#x2F;span&gt;&lt;span&gt;}
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;impl &lt;&#x2F;span&gt;&lt;span&gt;App {
&lt;&#x2F;span&gt;&lt;span&gt;     &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;pub fn &lt;&#x2F;span&gt;&lt;span style=&quot;color:#8fa1b3;&quot;&gt;handle_request&lt;&#x2F;span&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span&gt; N: &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;usize&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span&gt; M: &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;usize&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;input&lt;&#x2F;span&gt;&lt;span&gt;: &amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;mut &lt;&#x2F;span&gt;&lt;span&gt;Vec&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;u8&lt;&#x2F;span&gt;&lt;span&gt;, N&amp;gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;output&lt;&#x2F;span&gt;&lt;span&gt;: &amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;mut &lt;&#x2F;span&gt;&lt;span&gt;Vec&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;u8&lt;&#x2F;span&gt;&lt;span&gt;, M&amp;gt;) -&amp;gt; Result&amp;lt;(), Error&amp;gt; {
&lt;&#x2F;span&gt;&lt;span&gt;	     …
&lt;&#x2F;span&gt;&lt;span&gt;     }
&lt;&#x2F;span&gt;&lt;span&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;The new &lt;code&gt;View&lt;&#x2F;code&gt; variants of the types enable you to remove the &lt;code&gt;const generics&lt;&#x2F;code&gt; while still keeping the same functionality:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;rust&quot; style=&quot;background-color:#2b303b;color:#c0c5ce;&quot; class=&quot;language-rust &quot;&gt;&lt;code class=&quot;language-rust&quot; data-lang=&quot;rust&quot;&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;use &lt;&#x2F;span&gt;&lt;span&gt;heapless::VecView;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;struct &lt;&#x2F;span&gt;&lt;span&gt;App{
&lt;&#x2F;span&gt;&lt;span&gt;    …
&lt;&#x2F;span&gt;&lt;span&gt;}
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;impl &lt;&#x2F;span&gt;&lt;span&gt;App {
&lt;&#x2F;span&gt;&lt;span&gt;     &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;pub fn &lt;&#x2F;span&gt;&lt;span style=&quot;color:#8fa1b3;&quot;&gt;handle_request&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;input&lt;&#x2F;span&gt;&lt;span&gt;: &amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;mut &lt;&#x2F;span&gt;&lt;span&gt;VecView&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;u8&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;output&lt;&#x2F;span&gt;&lt;span&gt;: &amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;mut &lt;&#x2F;span&gt;&lt;span&gt;VecView&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;u8&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;) -&amp;gt; Result&amp;lt;(), Error&amp;gt; {
&lt;&#x2F;span&gt;&lt;span&gt;	     …
&lt;&#x2F;span&gt;&lt;span&gt;     }
&lt;&#x2F;span&gt;&lt;span&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Call sites of &lt;code&gt;handle_request&lt;&#x2F;code&gt; will be able to stay the same. The function will continue to accept &lt;code&gt;&amp;amp;mut Vec&amp;lt;u8, N&amp;gt;&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;So what&#x27;s the difference between &lt;code&gt;VecView&lt;&#x2F;code&gt; and &lt;code&gt;Vec&lt;&#x2F;code&gt;?&lt;&#x2F;p&gt;
&lt;p&gt;There are almost none, both are aliases of the same underlying type &lt;code&gt;VecInner&lt;&#x2F;code&gt;. The only limitation of  &lt;code&gt;VecView&lt;&#x2F;code&gt; compared to &lt;code&gt;Vec&lt;&#x2F;code&gt; is that &lt;code&gt;VecView&lt;&#x2F;code&gt; is &lt;code&gt;!Sized&lt;&#x2F;code&gt;. This means that you cannot perform anything that would require the compiler to know the size of the &lt;code&gt;VecView&lt;&#x2F;code&gt; at compile-time. You will always need to manipulate &lt;code&gt;VecView&lt;&#x2F;code&gt; through pointer indirection (generally a reference). This means you can&#x27;t just create a &lt;code&gt;VecView&lt;&#x2F;code&gt; out of thin air. The &lt;code&gt;VecView&lt;&#x2F;code&gt; is always a runtime &quot;View&quot; of an existing &lt;code&gt;Vec&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;So how can we obtain a &lt;code&gt;VecView&lt;&#x2F;code&gt; ? It&#x27;s pretty simple: &lt;code&gt;Vec&lt;&#x2F;code&gt; can be &lt;em&gt;coerced&lt;&#x2F;em&gt; into a &lt;code&gt;VecView&lt;&#x2F;code&gt;. Coercion (in this case &lt;a href=&quot;https:&#x2F;&#x2F;doc.rust-lang.org&#x2F;reference&#x2F;type-coercions.html#r-coerce.unsize&quot;&gt;&lt;code&gt;Unsized&lt;&#x2F;code&gt; coercion&lt;&#x2F;a&gt;), is a way the compiler can transform one type into another implicitly. In this case, the compiler is capable of converting pointers to a &lt;code&gt;Vec&lt;&#x2F;code&gt; (&lt;code&gt;&amp;amp;Vec&amp;lt;T, N&amp;gt;&lt;&#x2F;code&gt;, &lt;code&gt;&amp;amp;mut Vec&amp;lt;T, N&amp;gt;&lt;&#x2F;code&gt;, &lt;code&gt;Box&amp;lt;Vec&amp;lt;T, N&amp;gt;&amp;gt;&lt;&#x2F;code&gt; etc...) to pointers to a &lt;code&gt;VecView&lt;&#x2F;code&gt; (&lt;code&gt;&amp;amp;VecView&amp;lt;T&amp;gt;&lt;&#x2F;code&gt;, &lt;code&gt;&amp;amp;mut VecView&amp;lt;T&amp;gt;&lt;&#x2F;code&gt;, &lt;code&gt;Box&amp;lt;VecView&amp;lt;T&amp;gt;&amp;gt;&lt;&#x2F;code&gt; etc...), so you can use a reference to a &lt;code&gt;Vec&lt;&#x2F;code&gt; when a reference to a &lt;code&gt;VecView&lt;&#x2F;code&gt; is expected:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;rust&quot; style=&quot;background-color:#2b303b;color:#c0c5ce;&quot; class=&quot;language-rust &quot;&gt;&lt;code class=&quot;language-rust&quot; data-lang=&quot;rust&quot;&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;use &lt;&#x2F;span&gt;&lt;span&gt;heapless::{VecView, Vec};
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;struct &lt;&#x2F;span&gt;&lt;span&gt;App{
&lt;&#x2F;span&gt;&lt;span&gt;    …
&lt;&#x2F;span&gt;&lt;span&gt;}
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;impl &lt;&#x2F;span&gt;&lt;span&gt;App {
&lt;&#x2F;span&gt;&lt;span&gt;     &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;pub fn &lt;&#x2F;span&gt;&lt;span style=&quot;color:#8fa1b3;&quot;&gt;handle_request&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;input&lt;&#x2F;span&gt;&lt;span&gt;: &amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;mut &lt;&#x2F;span&gt;&lt;span&gt;VecView&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;u8&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;output&lt;&#x2F;span&gt;&lt;span&gt;: &amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;mut &lt;&#x2F;span&gt;&lt;span&gt;Vec&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;u8&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;) -&amp;gt; Result&amp;lt;(), Error&amp;gt; {
&lt;&#x2F;span&gt;&lt;span&gt;	     …
&lt;&#x2F;span&gt;&lt;span&gt;     }
&lt;&#x2F;span&gt;&lt;span&gt;}
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;let mut&lt;&#x2F;span&gt;&lt;span&gt; request: Vec&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;u8&lt;&#x2F;span&gt;&lt;span&gt;, 256&amp;gt; = Vec::new();
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;let mut&lt;&#x2F;span&gt;&lt;span&gt; reply: Vec&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;u8&lt;&#x2F;span&gt;&lt;span&gt;, 256&amp;gt; = Vec::new();
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span&gt;app.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#96b5b4;&quot;&gt;handle_request&lt;&#x2F;span&gt;&lt;span&gt;(&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;mut&lt;&#x2F;span&gt;&lt;span&gt; request, &amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;mut&lt;&#x2F;span&gt;&lt;span&gt; reply).&lt;&#x2F;span&gt;&lt;span style=&quot;color:#96b5b4;&quot;&gt;unwrap&lt;&#x2F;span&gt;&lt;span&gt;();
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;If you prefer things to be explicit, the &lt;code&gt;View&lt;&#x2F;code&gt; variants of types (&lt;code&gt;Vec&lt;&#x2F;code&gt; is not the only data structure having &lt;code&gt;View&lt;&#x2F;code&gt; variants) can be obtained through &lt;code&gt;vec.as_view()&lt;&#x2F;code&gt; or through &lt;code&gt;vec.as_mut_view()&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;The pointer to the &lt;code&gt;VecView&lt;&#x2F;code&gt; is the size of 2 &lt;code&gt;usize&lt;&#x2F;code&gt;: one for the address of the underlying &lt;code&gt;Vec&lt;&#x2F;code&gt;, and one for the capacity of the underlying &lt;code&gt;Vec&lt;&#x2F;code&gt;. This is exactly like slices. &lt;code&gt;VecView&amp;lt;T&amp;gt;&lt;&#x2F;code&gt; is to &lt;code&gt;Vec&amp;lt;T, N&amp;gt;&lt;&#x2F;code&gt; what a slice &lt;code&gt;[T]&lt;&#x2F;code&gt; is to an array &lt;code&gt;[T; N]&lt;&#x2F;code&gt;.
Unless you need to store data on the stack, most often you will pass around &lt;code&gt;&amp;amp;mut [T]&lt;&#x2F;code&gt; rather than &lt;code&gt;&amp;amp;mut [T; N]&lt;&#x2F;code&gt;, because it&#x27;s simpler. The same applies to &lt;code&gt;VecView&lt;&#x2F;code&gt;. Wherever you use &lt;code&gt;&amp;amp;mut Vec&amp;lt;T, N&amp;gt;&lt;&#x2F;code&gt;, you can instead use &lt;code&gt;&amp;amp;mut VecView&amp;lt;T&amp;gt;&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;The &lt;code&gt;View&lt;&#x2F;code&gt; types are not available just for &lt;code&gt;Vec&lt;&#x2F;code&gt;. There are &lt;code&gt;View&lt;&#x2F;code&gt; versions of a lot of heapless types:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Vec&lt;&#x2F;code&gt; has &lt;code&gt;VecView&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;String&lt;&#x2F;code&gt; has &lt;code&gt;StringView&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;Deque&lt;&#x2F;code&gt; has &lt;code&gt;DequeView&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;LinearMap&lt;&#x2F;code&gt; has &lt;code&gt;LinearMapView&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;HistoryBuf&lt;&#x2F;code&gt; has &lt;code&gt;HistoryBufView&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;BinaryHeap&lt;&#x2F;code&gt; has &lt;code&gt;BinaryHeapView&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;mpmc::Queue&lt;&#x2F;code&gt; has &lt;code&gt;mpmc::QueueView&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;spsc::Queue&lt;&#x2F;code&gt; has &lt;code&gt;spsc::QueueView&lt;&#x2F;code&gt;
(and now, the producer and consumer structs don&#x27;t carry the const-generic)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;SortedLinkedList&lt;&#x2F;code&gt; has &lt;code&gt;SortedLinkedListView&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;code&gt;IndexMap&lt;&#x2F;code&gt; and &lt;code&gt;IndexSet&lt;&#x2F;code&gt; are the two remaining structures that don&#x27;t have a &lt;code&gt;View&lt;&#x2F;code&gt; type available.
We hope to be able to use it in the future.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;benefits-of-the-view-types&quot;&gt;Benefits of the view types&lt;&#x2F;h2&gt;
&lt;p&gt;The benefits are multiple:&lt;&#x2F;p&gt;
&lt;h3 id=&quot;better-compatibility-with-dyn-traits&quot;&gt;Better compatibility with &lt;code&gt;dyn Traits&lt;&#x2F;code&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;If a trait has a function that takes a generic, it is not &lt;code&gt;dyn&lt;&#x2F;code&gt; compatible. By removing the const generic, the &lt;code&gt;View&lt;&#x2F;code&gt; types can make &lt;code&gt;dyn Trait&lt;&#x2F;code&gt; pass around data structures without having to hard-code a single size of buffer in the trait definition.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;better-binary-size-and-compile-times&quot;&gt;Better binary size and compile times&lt;&#x2F;h3&gt;
&lt;p&gt;When you use const-generics, the compiler needs to compile a new version of the function for each value of the const-generic.
Removing the const generic means cutting down on duplicated functions that are all almost the same, which improves both compile time and the size of the resulting binary.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;better-ergonomics&quot;&gt;Better ergonomics&lt;&#x2F;h3&gt;
&lt;p&gt;The View types can remove a ton of excess noise from the generics.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;the-lentype-optimization&quot;&gt;The &lt;code&gt;LenType&lt;&#x2F;code&gt; optimization&lt;&#x2F;h1&gt;
&lt;p&gt;Most often, buffers in embedded applications will not contain a huge number of items.
Until &lt;code&gt;0.9.1&lt;&#x2F;code&gt; the capacity of a &lt;code&gt;heapless&lt;&#x2F;code&gt; data structure was almost always stored as a &lt;code&gt;usize&lt;&#x2F;code&gt;, which can often encode much more values than necessary.&lt;&#x2F;p&gt;
&lt;p&gt;In 0.9.1, data structures now have a new optional generic parameter called &lt;code&gt;LenT&lt;&#x2F;code&gt;. This type accepts &lt;code&gt;u8&lt;&#x2F;code&gt;, &lt;code&gt;u16&lt;&#x2F;code&gt;, &lt;code&gt;u32&lt;&#x2F;code&gt;, and &lt;code&gt;usize&lt;&#x2F;code&gt;, and defaults to &lt;code&gt;usize&lt;&#x2F;code&gt; to keep typical uses of the library, simple.&lt;&#x2F;p&gt;
&lt;p&gt;If you are seriously constrained by memory, a &lt;code&gt;Vec&amp;lt;T, 28&amp;gt;&lt;&#x2F;code&gt; (equivalent to &lt;code&gt;Vec&amp;lt;T, 28, usize&amp;gt;&lt;&#x2F;code&gt;) can become a &lt;code&gt;Vec&amp;lt;T, 28, u8&amp;gt;&lt;&#x2F;code&gt;, saving up to 7 bytes per &lt;code&gt;Vec&lt;&#x2F;code&gt;. This is not much, but in very small microcontrollers, it can make the difference between a program that uses all the memory available and one that just fits.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;contributors&quot;&gt;Contributors&lt;&#x2F;h1&gt;
&lt;p&gt;This release was made possible by &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;zeenix&quot;&gt;@Zeenix&lt;&#x2F;a&gt; joining the embedded working group as part of the libs team to help maintain &lt;code&gt;heapless&lt;&#x2F;code&gt; and convincing &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sgued&quot;&gt;@sgued&lt;&#x2F;a&gt; to do the same.&lt;&#x2F;p&gt;
&lt;p&gt;The &lt;code&gt;View&lt;&#x2F;code&gt; types were a contributions from &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sgued&quot;&gt;@sgued&lt;&#x2F;a&gt;, and the &lt;code&gt;LenType&lt;&#x2F;code&gt; were contributed by &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;GnomedDev&quot;&gt;@GnomedDev&lt;&#x2F;a&gt;.
In total 38 contributors participated in all the other improvements to the crate and helped with maintainance.&lt;&#x2F;p&gt;
</description>
            </item>
        
            <item>
                <title>embedded-hal v1.0 now released!</title>
                <pubDate>Tue, 09 Jan 2024 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/embedded-hal-v1/</link>
                <guid>https://blog.rust-embedded.org/embedded-hal-v1/</guid>
                <description>&lt;p&gt;The Rust Embedded Working Group is proud to announce the release of &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; version 1.0 together with the
companion crates &lt;code&gt;embedded-hal-bus&lt;&#x2F;code&gt;, &lt;code&gt;embedded-hal-async&lt;&#x2F;code&gt; and &lt;code&gt;embedded-hal-nb&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Check out the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;embedded-hal&quot;&gt;repository&lt;&#x2F;a&gt;, the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;embedded-hal#crates&quot;&gt;API documentation&lt;&#x2F;a&gt; and the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;embedded-hal&#x2F;blob&#x2F;master&#x2F;docs&#x2F;migrating-from-0.2-to-1.0.md&quot;&gt;migration guide&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;The &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; crates provide traits (interfaces) for using peripherals commonly available in microcontrollers
such as GPIO, UART, SPI or I2C. They allow writing drivers (for sensors, displays, actuators, network adapters, etc.) in
a generic way, so they work on any microcontroller with an &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; implementation without
modifying them. It&#x27;s a central piece of the Embedded Rust ecosystem, ensuring interoperability throughout.&lt;&#x2F;p&gt;
&lt;p&gt;The 1.0 release has been in the works since 2020. Now that it&#x27;s out, we consider all
traits in it to be &lt;em&gt;stable&lt;&#x2F;em&gt;. The plan is to extend &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; with more traits in future 1.x releases,
not doing more breaking changes (i.e. there are no plans for a 2.0 release). This will provide a stable
base for building HALs and drivers.&lt;&#x2F;p&gt;
&lt;p&gt;So, what&#x27;s new in &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; 1.0?&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;&lt;img src=&quot;..&#x2F;embedded-ferris-soldering.png&quot; alt=&quot;Ferris soldering embedded stuff&quot; &#x2F;&gt;
&lt;em&gt;Ferris with a soldering iron by &lt;a href=&quot;https:&#x2F;&#x2F;waterpigs.co.uk&#x2F;notes&#x2F;5UrMgn&#x2F;&quot;&gt;Barnaby Walters&lt;&#x2F;a&gt;.&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;focus-on-drivers&quot;&gt;Focus on drivers&lt;&#x2F;h2&gt;
&lt;p&gt;Previous versions of &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; had a dual goal of standardizing HAL APIs for end users, and allowing writing generic drivers.
Experience has shown that these goals sometimes conflict with each other. As the latter brings much more value, 1.0 focuses on that.&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;ve simplified some traits and merged others to remove interoperability gotchas.&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;ve removed traits that were found to not be usable for generic drivers (most notably timers). The plan is to add
them back in the future, with a better design. See the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;embedded-hal&#x2F;blob&#x2F;master&#x2F;docs&#x2F;migrating-from-0.2-to-1.0.md&quot;&gt;migration guide&lt;&#x2F;a&gt; for details and links to the tracking issues.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;async&quot;&gt;Async&lt;&#x2F;h2&gt;
&lt;p&gt;A new addition is the &lt;code&gt;embedded-hal-async&lt;&#x2F;code&gt; crate, containing async versions of the traits. With the Rust 1.75 release,
async traits are available on Rust stable. They can be used without heap allocations or dynamic
dispatch (unlike previous macro-based polyfills like the &lt;code&gt;async-trait&lt;&#x2F;code&gt; crate), so they are a great fit for bare-metal embedded usage.&lt;&#x2F;p&gt;
&lt;p&gt;Most &lt;code&gt;embedded-hal-async&lt;&#x2F;code&gt; traits are async versions of their blocking counterparts.&lt;&#x2F;p&gt;
&lt;p&gt;However, one highlight is the &lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;embedded-hal-async&#x2F;1.0.0&#x2F;embedded_hal_async&#x2F;digital&#x2F;trait.Wait.html&quot;&gt;&lt;code&gt;digital::Wait&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; trait, with methods like &lt;code&gt;wait_for_high()&lt;&#x2F;code&gt; and &lt;code&gt;wait_for_low()&lt;&#x2F;code&gt;. This trait adds support for using &quot;IRQ&quot; GPIO pins typically used by SPI and I2C devices to send an interrupt to the microcontroller. This frequently-requested feature turned out to be hard to abstract with traits, but is now feasible in an ergonomic way with async.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;spi-bus-sharing&quot;&gt;SPI bus sharing&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;img src=&quot;..&#x2F;spi-shared-bus.svg&quot; alt=&quot;SPI bus&#x2F;device diagram&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;embedded-hal&#x2F;1.0.0&#x2F;embedded_hal&#x2F;spi&#x2F;index.html&quot;&gt;&lt;code&gt;SpiDevice&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; trait now allows sharing a SPI bus between multiple devices, each selected with its own CS pin. The design allows for unrelated drivers to talk to different devices in the same bus without conflicts and without being aware of each other.&lt;&#x2F;p&gt;
&lt;p&gt;The trait is agnostic about the kind of mutex&#x2F;locking mechanism. The &lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;embedded-hal-bus&#x2F;0.1.0&#x2F;embedded_hal_bus&#x2F;spi&#x2F;index.html&quot;&gt;&lt;code&gt;embedded-hal-bus&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; crate provides implementations for commonly used mutexes, but it is possible to write your own for e.g. the mutex of your favourite RTOS.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;error-handling&quot;&gt;Error handling&lt;&#x2F;h2&gt;
&lt;p&gt;Generic drivers can now inspect errors, thanks to them being required to implement an &lt;code&gt;Error&lt;&#x2F;code&gt; trait
that allows querying the error &quot;kind&quot; out of a pre-selected set. HAL implementations can still use custom error types,
and map errors that don&#x27;t fit in these categories to the &lt;code&gt;Other&lt;&#x2F;code&gt; kind.&lt;&#x2F;p&gt;
&lt;p&gt;All error types are also required to implement &lt;code&gt;Debug&lt;&#x2F;code&gt;, so &lt;code&gt;.unwrap()&lt;&#x2F;code&gt; and similar are now always available in generic drivers.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;embedded-io&quot;&gt;embedded-io&lt;&#x2F;h2&gt;
&lt;p&gt;The &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; project also hosts the &lt;code&gt;embedded-io&lt;&#x2F;code&gt; crates. They provide traits for byte-oriented I&#x2F;O streams. Since serial
ports (UART) are essentially byte streams, the serial-specific traits in &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; have been removed in favor of &lt;code&gt;embedded-io&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;embedded-io&lt;&#x2F;code&gt; has not reached 1.0 yet, but we expect that to happen in 2024.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;thanks&quot;&gt;Thanks&lt;&#x2F;h2&gt;
&lt;p&gt;Thanks to the HAL team (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;therealprof&quot;&gt;@therealprof&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ryankurte&quot;&gt;@ryankurte&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;eldruin&quot;&gt;@eldruin&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Dirbaio&quot;&gt;@dirbaio&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MabezDev&quot;&gt;@MabezDev&lt;&#x2F;a&gt;), and to everyone who helped with testing, feedback and contributions for making &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; 1.0 possible.&lt;&#x2F;p&gt;
&lt;p&gt;Thanks to the Rust Foundation for sponsoring Dario Nieuwenhuis (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Dirbaio&quot;&gt;@dirbaio&lt;&#x2F;a&gt;)&#x27;s work on &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; through the &lt;a href=&quot;https:&#x2F;&#x2F;foundation.rust-lang.org&#x2F;news&#x2F;announcing-the-rust-foundation-s-2023-fellows&#x2F;&quot;&gt;Fellowship grants program&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;And lastly, thanks to all the people releasing and maintaining HAL implementations and drivers using &lt;code&gt;embedded-hal&lt;&#x2F;code&gt;. &lt;em&gt;You&lt;&#x2F;em&gt; are the ones who make &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; actually useful in the real world!&lt;&#x2F;p&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 31</title>
                <pubDate>Tue, 22 Mar 2022 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-31/</link>
                <guid>https://blog.rust-embedded.org/newsletter-31/</guid>
                <description>&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;AdaCore and Ferrous Systems have joined forces to support Rust in safety- and mission-critical environments.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;blog.adacore.com&#x2F;adacore-and-ferrous-systems-joining-forces-to-support-rust&quot;&gt;Announcement from AdaCore&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;ferrous-systems.com&#x2F;blog&#x2F;ferrous-systems-adacore-joining-forces&#x2F;&quot;&gt;Announcement from Ferrous Systems&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;AUTOSAR announces &lt;a href=&quot;https:&#x2F;&#x2F;www.autosar.org&#x2F;news-events&#x2F;details&#x2F;autosar-announces-new-working-group-for-programming-language-rust-in-automotive-software-context-202&#x2F;&quot;&gt;new Working Group for Programming Language Rust in Automotive Software context&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to add it to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;newsletter-next.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;svd2rust&quot;&gt;svd2rust&lt;&#x2F;a&gt; released v0.20.0.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;The new version of the &lt;a href=&quot;https:&#x2F;&#x2F;docs.rust-embedded.org&#x2F;discovery&quot;&gt;Discovery book&lt;&#x2F;a&gt;
targeting the micro:bit development board was released.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;embedded-hal&quot;&gt;embedded-hal&lt;&#x2F;a&gt; 1.0.0-alpha.6 and 1.0.0-alpha.7 released, with a number of new features and
changes as we work towards the final 1.0 release. Most notably,
CAN (Controller Area Network) traits were added and some traits
with unconstrained associated types were removed.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;embedded-hal&quot;&gt;embedded-hal&lt;&#x2F;a&gt; 0.2.7 released, including CAN (Controller Area Network) traits which were backported.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;embedded-dma&quot;&gt;embedded-dma&lt;&#x2F;a&gt; 0.2.0 released, including const generics support and resolves some confusion around &lt;code&gt;&#x27;static&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;A project to develop asynchronous versions of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; traits has been started.
See the current &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;embedded-hal&#x2F;issues&#x2F;356&quot;&gt;roadmap&lt;&#x2F;a&gt; and please join the effort!&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;linux-embedded-hal&quot;&gt;linux-embedded-hal&lt;&#x2F;a&gt; 0.4.0-alpha.2 released updating &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; to version 1.0.0-alpha.7.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;New Rust Embedded ecosystem for the radiation-hardened Vorago VA108xx family of devices:
&lt;a href=&quot;https:&#x2F;&#x2F;egit.irs.uni-stuttgart.de&#x2F;rust&#x2F;va108xx&quot;&gt;va108xx&lt;&#x2F;a&gt; PAC,
&lt;a href=&quot;https:&#x2F;&#x2F;egit.irs.uni-stuttgart.de&#x2F;rust&#x2F;va108xx-hal&quot;&gt;va108xx-hal&lt;&#x2F;a&gt; HAL
and &lt;a href=&quot;https:&#x2F;&#x2F;egit.irs.uni-stuttgart.de&#x2F;rust&#x2F;vorago-reb1&quot;&gt;vorago-reb1&lt;&#x2F;a&gt; BSP
with &lt;a href=&quot;https:&#x2F;&#x2F;robamu.github.io&#x2F;post&#x2F;rust-ecosystem&#x2F;&quot;&gt;blogpost&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;New &lt;a href=&quot;https:&#x2F;&#x2F;egit.irs.uni-stuttgart.de&#x2F;rust&#x2F;max116xx-10bit&quot;&gt;device driver crate&lt;&#x2F;a&gt; for the MAX116xx
10-bit ADC devices with &lt;a href=&quot;https:&#x2F;&#x2F;robamu.github.io&#x2F;post&#x2F;max11619-driver-rust&#x2F;&quot;&gt;blogpost&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;The RIOT operating system now &lt;a href=&quot;https:&#x2F;&#x2F;doc.riot-os.org&#x2F;using-rust.html&quot;&gt;has upstream support for Rust applications&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;This encompasses support in the build system,
high-level &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;riot-wrappers&quot;&gt;wrappers&lt;&#x2F;a&gt; that make the OS&#x27;s C mechanisms safe and idiomatic to use,
and &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;etonomy&#x2F;riot-examples&quot;&gt;additional examples&lt;&#x2F;a&gt; maintained externally.
The wrappers implement high-level traits (e.g. from &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;embedded-hal&quot;&gt;embedded-hal&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;embedded-nal&quot;&gt;embedded-nal&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;mutex-traits&quot;&gt;mutex-traits&lt;&#x2F;a&gt;) where practical.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;A &lt;a href=&quot;https:&#x2F;&#x2F;tweedegolf.nl&#x2F;en&#x2F;blog&#x2F;65&#x2F;async-rust-vs-rtos-showdown&quot;&gt;blog post by Tweede Golf&lt;&#x2F;a&gt; about comparing Embassy with FreeRTOS.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;eeprom24x&quot;&gt;eeprom24x&lt;&#x2F;a&gt; I2C EEPROM driver 0.5.0 released, adding support for STM M24C01 and M24C02 devices as well as implementing the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded-community&#x2F;embedded-storage&quot;&gt;&lt;code&gt;embedded-storage&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; traits.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;measurements&quot;&gt;measurements&lt;&#x2F;a&gt; 0.10.4 and 0.11.0 released, most notably adding support for humidity and density.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;9names&quot;&gt;9names&lt;&#x2F;a&gt; released a platform-agnostic &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;wii-ext&quot;&gt;driver for Wii Extension Controllers&lt;&#x2F;a&gt; and published a &lt;a href=&quot;https:&#x2F;&#x2F;9names.github.io&#x2F;driver&#x2F;embedded&#x2F;rust&#x2F;2022&#x2F;02&#x2F;14&#x2F;wii-ext-rs.html&quot;&gt;blog post&lt;&#x2F;a&gt;. This driver supports Nunchuk controllers as well as the many variants of the Classic Controller (Original&#x2F;Pro&#x2F;NES&#x2F;SNES).&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Drogue Device now features an &lt;a href=&quot;https:&#x2F;&#x2F;blog.drogue.io&#x2F;bluetooth-mesh&#x2F;&quot;&gt;async Bluetooth Mesh stack&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h2&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;get-involved&quot;&gt;Get Involved&lt;&#x2F;h2&gt;
&lt;p&gt;This &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; blog is where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#rust-embedded:matrix.org&quot;&gt;#rust-embedded:matrix.org&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;newsletter-next.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, send us a pull request!&lt;&#x2F;p&gt;
</description>
            </item>
        
            <item>
                <title>This Year in Embedded Rust: 2021</title>
                <pubDate>Tue, 28 Dec 2021 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/this-year-in-embedded-rust-2021/</link>
                <guid>https://blog.rust-embedded.org/this-year-in-embedded-rust-2021/</guid>
                <description>&lt;p&gt;As 2021 draws to a close, we thought we&#x27;d take a look back at what&#x27;s happened
over the last year in Embedded Rust, both within the working group and in the
larger community.&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;h2 id=&quot;meetings&quot;&gt;Meetings&lt;&#x2F;h2&gt;
&lt;p&gt;We continued our weekly Rust Embedded Working Group meetings on &lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#rust-embedded:matrix.org&quot;&gt;our Matrix channel&lt;&#x2F;a&gt;. They take place at 8pm Berlin time every Tuesday, and are open to the public. You can find all the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;tree&#x2F;master&#x2F;minutes&quot;&gt;minutes on Github&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;newsletters&quot;&gt;Newsletters&lt;&#x2F;h2&gt;
&lt;p&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;blog.rust-embedded.org&#x2F;&quot;&gt;blog&lt;&#x2F;a&gt; saw five new newsletters posted, keeping everyone up to date with what&#x27;s hot in Embedded Rust. Make sure you bookmark or subscribe with your favourite RSS reader so you never miss an update! Please do also keep your contributions coming, as we love hearing about what everyone gets up to in Embedded Rust outside of the official Rust Embedded Working Group projects.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;platform-support&quot;&gt;Platform Support&lt;&#x2F;h2&gt;
&lt;p&gt;Outside of the working group, platform support communities provide vendor-specific support for particular microcontrollers and development boards.&lt;&#x2F;p&gt;
&lt;p&gt;2021 saw a brand-new microcontroller vendor hit the scene - Raspberry Pi! Their debut RP2040 microcontroller has two Cortex-M0 cores, and certainly made us all think about how we can try to make our software safe to use on multi-core systems. A new &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rp-rs&quot;&gt;rp-rs&lt;&#x2F;a&gt; community sprang up and continues to make good progress supporting all areas of the RP2040 with good quality examples.&lt;&#x2F;p&gt;
&lt;p&gt;This year also saw Espressif officially adopt Rust and &lt;a href=&quot;https:&#x2F;&#x2F;mabez.dev&#x2F;blog&#x2F;posts&#x2F;esp-rust-espressif&#x2F;&quot;&gt;they hired @mabez&lt;&#x2F;a&gt; from the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;esp-rs&quot;&gt;esp-rs&lt;&#x2F;a&gt; community to help out!&lt;&#x2F;p&gt;
&lt;p&gt;Other platform support communities continued to develop this year:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;atsamd-rs&quot;&gt;atsamd-rs&lt;&#x2F;a&gt; for Atmel ARM SAM-D and SAM-E microcontrollers (&lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#atsamd-rs_community:gitter.im&quot;&gt;Matrix chat&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;avr-rust&quot;&gt;avr-rust&lt;&#x2F;a&gt; for Atmel AVR microcontrollers (&lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#avr-rust_Lobby:gitter.im&quot;&gt;Matrix chat&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;esp-rs&quot;&gt;esp-rs&lt;&#x2F;a&gt; for Espressif ESP8266 and ESP32 Wi-Fi chips (&lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#esp-rs:matrix.org&quot;&gt;Matrix chat&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;imxrt-rs&quot;&gt;imxrt-rs&lt;&#x2F;a&gt; for NXP ARM iMX.RT microcontrollers&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;lpc55&quot;&gt;lpc55&lt;&#x2F;a&gt; for NXP ARM LPC55xx microcontrollers (&lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#lpc55:matrix.org&quot;&gt;Matrix chat&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nrf-rs&quot;&gt;nrf-rs&lt;&#x2F;a&gt; for Nordic ARM nRF51, 52 and 9160 Bluetooth&#x2F;LTE devices (&lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#nrf-rs:matrix.org&quot;&gt;Matrix chat&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;riscv-rust&quot;&gt;riscv-rust&lt;&#x2F;a&gt; for all kinds of RISC-V devices&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rp-rs&quot;&gt;rp-rs&lt;&#x2F;a&gt; for Raspberry Pi&#x27;s RP2040 microcontroller (&lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#rp-rs:matrix.org&quot;&gt;Matrix chat&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;stm32-rs&quot;&gt;stm32-rs&lt;&#x2F;a&gt; for all of ST Micro&#x27;s 32-bit ARM microcontrollers (&lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#stm32-rs:matrix.org&quot;&gt;Matrix chat&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If you&#x27;re a platform support community not on the list please get in touch, we&#x27;d love to hear from you!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;other-embedded-projects&quot;&gt;Other Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;While not officially part of the Embedded Working Group, the following projects all continued to develop over 2021:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;The concurrency framework &lt;a href=&quot;https:&#x2F;&#x2F;rtic.rs&quot;&gt;RTIC&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rtic-rs&quot;&gt;GitHub&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#rtic:matrix.org&quot;&gt;Matrix&lt;&#x2F;a&gt;) hit version 1.0!&lt;&#x2F;li&gt;
&lt;li&gt;The async framework &lt;a href=&quot;https:&#x2F;&#x2F;embassy.dev&quot;&gt;Embassy&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;embassy-rs&quot;&gt;GitHub&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#embassy-rs:matrix.org&quot;&gt;Matrix&lt;&#x2F;a&gt;) has been under heavy development and now supports STM32, nRF and RP2040 platforms.&lt;&#x2F;li&gt;
&lt;li&gt;The debug and programming library and tools from &lt;a href=&quot;https:&#x2F;&#x2F;probe.rs&quot;&gt;probe-rs&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;probe-rs&quot;&gt;GitHub&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#probe-rs:matrix.org&quot;&gt;Matrix&lt;&#x2F;a&gt;) released v0.11 and v0.12 of their library and tools including &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;probe-rs&#x2F;cargo-embed&quot;&gt;cargo-embed&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;knurling.ferrous-systems.com&#x2F;&quot;&gt;Knurling&lt;&#x2F;a&gt; project (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;knurling-rs&quot;&gt;GitHub&lt;&#x2F;a&gt;) has had several releases of their tools such as &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;knurling-rs&#x2F;probe-run&quot;&gt;probe-run&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;smoltcp-rs&#x2F;smoltcp&quot;&gt;smoltcp&lt;&#x2F;a&gt; embedded TCP&#x2F;IP stack released v0.7 and v0.8, with many improvements including to the DHCP client and adding IEEE 802.15.4 support.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;embedded-graphics&quot;&gt;embedded-graphics&lt;&#x2F;a&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#rust-embedded-graphics:matrix.org&quot;&gt;Matrix&lt;&#x2F;a&gt;), a graphics library for embedded applications, had a major new v0.7 release (see the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;embedded-graphics&#x2F;embedded-graphics&#x2F;blob&#x2F;master&#x2F;MIGRATING-0.6-0.7.md&quot;&gt;migration notes&lt;&#x2F;a&gt;).&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;oxidecomputer.github.io&#x2F;hubris&#x2F;&quot;&gt;Hubris&lt;&#x2F;a&gt; RTOS and its companion debugger Humility, by &lt;a href=&quot;https:&#x2F;&#x2F;oxide.computer&#x2F;&quot;&gt;Oxide Computer&lt;&#x2F;a&gt;, had their first release.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;our-repositories&quot;&gt;Our Repositories&lt;&#x2F;h2&gt;
&lt;p&gt;We continued to work on and maintain a number of key Embedded Rust repositories. The following repos all had commits during 2021:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;embedded-hal&quot;&gt;embedded-hal&lt;&#x2F;a&gt;: The Embedded Hardware Abstraction Layer is a set of traits for describing common peripherals in a hardware-independent way. It continues its march towards 1.0 status, with a series of 1.0-alpha releases. It should hit 1.0 milestone some time in 2022! 120 commits over 27 files this year.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;discovery&quot;&gt;discovery&lt;&#x2F;a&gt;: This book on Discovering Embedded Programming using Rust had a re-write this year - it&#x27;s now based around the BBC micro:Bit! 251 commits over 187 files this year.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;book&quot;&gt;book&lt;&#x2F;a&gt;: Our guide to all things Embedded Rust continues to be updated and improved, with 39 commits this year.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;embedonomicon&quot;&gt;embedonomicon&lt;&#x2F;a&gt;: Our guide to all the low-down details on how to bring-up a new &lt;code&gt;#[no_std]&lt;&#x2F;code&gt; platform with Rust saw 15 commits this year.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;svd2rust&quot;&gt;svd2rust&lt;&#x2F;a&gt;: This tool generates our &#x27;Peripheral Access Crates&#x27; from a &lt;a href=&quot;https:&#x2F;&#x2F;www.keil.com&#x2F;pack&#x2F;doc&#x2F;CMSIS&#x2F;SVD&#x2F;html&#x2F;index.html&quot;&gt;System View Description&lt;&#x2F;a&gt; file of the chip provided by the manufacturer. 122 commits over 17 files this year.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;svd&quot;&gt;svd&lt;&#x2F;a&gt;: The core libraries used by svd2rust and other tools to manipulate SVD files had 103 commits over 39 files this year.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;awesome-embedded-rust&lt;&#x2F;a&gt;: Our list of the very best in Embedded Rust keeps growing with 97 commits this year.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;cortex-m&quot;&gt;cortex-m&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;cortex-m-rt&quot;&gt;cortex-m-rt&lt;&#x2F;a&gt;, and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;cortex-m-quickstart&quot;&gt;cortex-m-quickstart&lt;&#x2F;a&gt;: Our platform support crates for the Arm Cortex-M architecture saw continued development, with 93 and 54 commits respectively, and a new v0.7 of cortex-m-rt released this year.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;cortex-a&quot;&gt;cortex-a&lt;&#x2F;a&gt;: Our platform support crate for the Arm Cortex-A architecture saw 25 commits this year.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;riscv&quot;&gt;riscv&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;riscv-rt&quot;&gt;riscv-rt&lt;&#x2F;a&gt;: Our platform support crates for the RISC-V architecture saw 74 and 12 commits respectively this year, with a v0.7 release of riscv.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;msp430&quot;&gt;msp430&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;msp430&quot;&gt;msp430-rt&lt;&#x2F;a&gt;: Our platform support crates for the MSP430 architecture.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;gpio-cdev&quot;&gt;gpio-cdev&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;rust-spidev&quot;&gt;rust-spidev&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;rust-sysfs-gpio&quot;&gt;rust-sysfs-gpio&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;rust-i2cdev&quot;&gt;rust-i2cdev&lt;&#x2F;a&gt;, and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;linux-embedded-hal&quot;&gt;linux-embedded-hal&lt;&#x2F;a&gt;: Support for embedded Linux continued with 177 commits across these projects.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;r0&quot;&gt;r0&lt;&#x2F;a&gt; was a cross-platform initialisation library, but we deprecated it this year to move such initialisation into platform-specific libraries such as cortex-m-rt.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 30</title>
                <pubDate>Tue, 16 Nov 2021 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-30/</link>
                <guid>https://blog.rust-embedded.org/newsletter-30/</guid>
                <description>&lt;!-- TODO before release set `draft` to `false` and `in_search_index` to `true` --&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dkhayes117&quot;&gt;@dkhayes117&lt;&#x2F;a&gt; joined the embedded working group&#x27;s RISC-V team&lt;&#x2F;li&gt;
&lt;li&gt;Rust std support &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;pull&#x2F;87666&quot;&gt;added for the ESP32&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;mabez.dev&#x2F;blog&#x2F;posts&#x2F;esp-rust-18-10-2021&#x2F;&quot;&gt;Rust on Espressif chips update&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;blog.drogue.io&#x2F;lorawan-update&#x2F;&quot;&gt;State of LoRaWAN support&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to add it to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;newsletter-next.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;cortex-m-rt&quot;&gt;cortex-m-rt&lt;&#x2F;a&gt; v0.7.0 was released, with a number of bug fixes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;embedded-hal&quot;&gt;embedded-hal&lt;&#x2F;a&gt; 0.2.6 released with some backports from the upcoming 1.0
release: the new Transactional SPI and I2C interface, 10-bit I2C addressing
mode, &lt;code&gt;set_state&lt;&#x2F;code&gt; method for &lt;code&gt;OutputPin&lt;&#x2F;code&gt;, and new &lt;code&gt;IoPin&lt;&#x2F;code&gt; trait.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;embedded-hal&quot;&gt;embedded-hal&lt;&#x2F;a&gt; 1.0.0-alpha.5 released, with a number of new features and
changes as we work towards the final 1.0 release.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;linux-embedded-hal&quot;&gt;linux-embedded-hal&lt;&#x2F;a&gt; 0.3.1 and 0.3.2 released with some backports and updates including
an implementation of the Transactional SPI and I2C interface and a bugfix
for active-low output pins.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;linux-embedded-hal&quot;&gt;linux-embedded-hal&lt;&#x2F;a&gt; 0.4.0-alpha.1 released adapted to the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; 1.0.0-alpha.5
release and a bugfix for active-low output pins.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;gpio-cdev&quot;&gt;gpio-cdev&lt;&#x2F;a&gt; 0.5.0 released with some updates, including updating to &lt;code&gt;tokio&lt;&#x2F;code&gt; 1.0.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;sysfs-gpio&quot;&gt;sysfs-gpio&lt;&#x2F;a&gt; 0.6.0 released with some updates, including updating to &lt;code&gt;tokio&lt;&#x2F;code&gt; 1.0.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;i2cdev&quot;&gt;i2cdev&lt;&#x2F;a&gt; 0.5.0 released with some updates.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;spidev&quot;&gt;spidev&lt;&#x2F;a&gt; 0.5.0 released with some updates.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;drogue-tls&quot;&gt;drogue-tls&lt;&#x2F;a&gt; 0.3.0 released with some updates.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h2&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;get-involved&quot;&gt;Get Involved&lt;&#x2F;h2&gt;
&lt;p&gt;This &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; blog is where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#rust-embedded:matrix.org&quot;&gt;#rust-embedded:matrix.org&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;newsletter-next.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, send us a pull request!&lt;&#x2F;p&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 29</title>
                <pubDate>Tue, 27 Jul 2021 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-29/</link>
                <guid>https://blog.rust-embedded.org/newsletter-29/</guid>
                <description>&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;flott-motion.org&#x2F;news&#x2F;last-month-in-flott-may-2021&#x2F;&quot;&gt;Last Month in Flott&lt;&#x2F;a&gt;, the monthly newsletter for Flott has been published. Flott is an open source toolkit for motion control software in Rust (designed to run everywhere, including microcontrollers).&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;microbit&quot;&gt;microbit crate&lt;&#x2F;a&gt; has released v0.9.0, moved under the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nrf-rs&#x2F;microbit&quot;&gt;nrf-rs&lt;&#x2F;a&gt; organisational umbrella, &lt;strong&gt;and&lt;&#x2F;strong&gt; gained &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nrf-rs&#x2F;microbit&#x2F;pull&#x2F;44&quot;&gt;micro:bit v2&lt;&#x2F;a&gt; support. 🎉&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;switch-hal&quot;&gt;switch-hal crate&lt;&#x2F;a&gt; released v0.4.0, adding &lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;switch-hal&#x2F;0.4.0&#x2F;switch_hal&#x2F;trait.StatefulOutputSwitch.html&quot;&gt;StatefulOutputSwitch&lt;&#x2F;a&gt; for platforms that support &lt;code&gt;StatefulOutputPin&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;probe.rs&quot;&gt;probe-rs&lt;&#x2F;a&gt; project, which provides debugging and flash programming for a variety of embedded targets, released version &lt;a href=&quot;https:&#x2F;&#x2F;probe.rs&#x2F;blog&#x2F;release-0-11-0&#x2F;&quot;&gt;v0.11.0&lt;&#x2F;a&gt;, with a number of performance and functionality improvements.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;cortex-m&quot;&gt;cortex-m&lt;&#x2F;a&gt; released version 0.7.3, improving ease-of-use for the &lt;code&gt;Delay&lt;&#x2F;code&gt; implementation and fixing native builds on non-x86 hosts.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;cortex-m-rt&quot;&gt;cortex-m-rt&lt;&#x2F;a&gt; released version 0.6.15, backporting various fixes to the linker script and helping prepare for a new 0.7 release soon.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;cross&quot;&gt;cross&lt;&#x2F;a&gt; has posted a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;cross&#x2F;issues&#x2F;574&quot;&gt;call for help&lt;&#x2F;a&gt; looking for new maintainers: if you use cross and would like to help out, please check it out!&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to add it to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2021-08-24-newsletter-30.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;windfis.ch&quot;&gt;Windfisch&lt;&#x2F;a&gt; published their &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Windfisch&#x2F;midikraken&quot;&gt;Midikraken&lt;&#x2F;a&gt;, an extensible up-to-16-port MIDI-USB-Interface that also will support standalone operation (e.g. MIDI routing) soon. The project uses Rust&#x27;s RTIC framework to drive a STM32F103 microcontroller board (a.k.a. &quot;Blue Pill&quot;) and is open-source and open-hardware. The firmware is in active development and lots of cool new features are down the way! Kits for self-assembly will likely be sold some day in the future.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h2&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository.&lt;&#x2F;p&gt;
&lt;p&gt;This is the 29th newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;get-involved&quot;&gt;Get Involved&lt;&#x2F;h2&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2021-08-24-newsletter-30.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, send us a pull request!&lt;&#x2F;p&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 28</title>
                <pubDate>Tue, 20 Apr 2021 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-28/</link>
                <guid>https://blog.rust-embedded.org/newsletter-28/</guid>
                <description>&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;flott-motion.org&#x2F;news&#x2F;last-month-in-flott-april-2021&#x2F;&quot;&gt;Last Month in Flott&lt;&#x2F;a&gt;, the monthly newsletter for Flott has been published. Flott is an open source toolkit for motion control software in Rust (designed to run everywhere, including microcontrollers).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to add it to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2021-05-07-newsletter-29.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Crate &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;device-driver&quot;&gt;device-driver&lt;&#x2F;a&gt; has released version 0.2.0!&lt;br &#x2F;&gt;
(Since 0.1.0, added customizable bit ordering and more pac-like write and modify interface)&lt;&#x2F;li&gt;
&lt;li&gt;After almost a year &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;stm32f4xx-hal&quot;&gt;stm32f4xx-hal&lt;&#x2F;a&gt; has released version 0.9.0! Get it while it&#x27;s hot. 🔥🌶️&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;embedded-graphics&#x2F;0.7.0-beta.1&quot;&gt;embedded-graphics 0.7.0-beta.1 released&lt;&#x2F;a&gt; as the first stable step towards the long awaited 0.7.0!
There should be no major&#x2F;breaking changes after this release as we work mostly on documentation, bugfixes and polish. See the release notes &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;embedded-graphics&#x2F;embedded-graphics&#x2F;releases&#x2F;tag&#x2F;embedded-graphics-v0.7.0-beta.1&quot;&gt;here&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;svd2rust&quot;&gt;svd2rust 0.18.0&lt;&#x2F;a&gt; was released, bringing a number of changes to PAC
generation; if you maintain a PAC please try it out!&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;shared-bus&quot;&gt;shared-bus 0.2.1&lt;&#x2F;a&gt; was released, with support for concurrency frameworks like RTIC.  Check the &lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;shared-bus&#x2F;latest&#x2F;shared_bus&#x2F;type.BusManagerAtomicCheck.html&quot;&gt;relevant documentation&lt;&#x2F;a&gt; for more details.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h2&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;get-involved&quot;&gt;Get Involved&lt;&#x2F;h2&gt;
&lt;p&gt;This is the 28th newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#rust-embedded:matrix.org&quot;&gt;#rust-embedded:matrix.org&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2021-05-07-newsletter-29.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, send us a pull request!&lt;&#x2F;p&gt;
&lt;!-- TODO before release add the next template! --&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 27</title>
                <pubDate>Tue, 16 Mar 2021 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-27/</link>
                <guid>https://blog.rust-embedded.org/newsletter-27/</guid>
                <description>&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;hannobraun&quot;&gt;@hannobraun&lt;&#x2F;a&gt; published &lt;a href=&quot;https:&#x2F;&#x2F;flott-motion.org&#x2F;news&#x2F;last-month-in-flott-march-2021&#x2F;&quot;&gt;Last Month in Flott - March 2021&lt;&#x2F;a&gt;, the monthly newsletter for Flott. Flott is an open source toolkit for motion control software in Rust (designed to run everywhere, including microcontrollers).&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;cortex-m&quot;&gt;cortex-m crate&lt;&#x2F;a&gt; has been
updated to 0.7, including a recent release of 0.7.2, please update your
dependencies and let us know if you encounter any issues!&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;The Embedded Rust documentation and books have moved URLs, and are now all
available from https:&#x2F;&#x2F;docs.rust-embedded.org.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;This blog has also moved URLs, and is now available at
https:&#x2F;&#x2F;blog.rust-embedded.org&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Our weekly meetings continue at 8PM Berlin Time on our Matrix channel,
&lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#rust-embedded:matrix.org&quot;&gt;#rust-embedded:matrix.org&lt;&#x2F;a&gt;. Join us to catch up on the latest developments
in the Embedded Rust ecosystem!&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to add it to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2021-04-16-newsletter-28.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;hannobraun&quot;&gt;@hannobraun&lt;&#x2F;a&gt; released &lt;a href=&quot;https:&#x2F;&#x2F;flott-motion.org&#x2F;news&#x2F;ramp-maker-0-2&#x2F;&quot;&gt;RampMaker 0.2&lt;&#x2F;a&gt;, a library for generating stepper motor acceleration profiles, and &lt;a href=&quot;https:&#x2F;&#x2F;flott-motion.org&#x2F;news&#x2F;stepper-0-5&#x2F;&quot;&gt;Stepper 0.5&lt;&#x2F;a&gt;, the universal stepper motor interface. Both libraries are part of the &lt;a href=&quot;https:&#x2F;&#x2F;flott-motion.org&#x2F;&quot;&gt;Flott&lt;&#x2F;a&gt; motion control toolkit.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;embassy-rs&#x2F;embassy&quot;&gt;embassy&lt;&#x2F;a&gt;, an async&#x2F;await executor
designed for embedded usage and currently supporting nRF and STM32F4 devices,
is nearing its first crates.io release. Feedback and testing would be welcome!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h2&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;get-involved&quot;&gt;Get Involved&lt;&#x2F;h2&gt;
&lt;p&gt;This is the 27th newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;!-- TODO uncomment --&gt;
&lt;!-- Discuss on [#rust-embedded:matrix.org], [users.rust-lang.org], [on twitter], or [on reddit]! --&gt;
&lt;!-- [#rust-embedded:matrix.org]: https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#rust-embedded:matrix.org --&gt;
&lt;!-- [users.rust-lang.org]: https:&#x2F;&#x2F;example.org&#x2F;#TODO --&gt;
&lt;!-- [on twitter]: https:&#x2F;&#x2F;example.org&#x2F;#TODO --&gt;
&lt;!-- [on reddit]: https:&#x2F;&#x2F;example.org&#x2F;#TODO --&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2021-04-16-newsletter-28.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, send us a pull request!&lt;&#x2F;p&gt;
&lt;!-- TODO before release add the next template! --&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 26</title>
                <pubDate>Tue, 16 Feb 2021 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-26/</link>
                <guid>https://blog.rust-embedded.org/newsletter-26/</guid>
                <description>&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;CecileTonglet&quot;&gt;@cecton&lt;&#x2F;a&gt; wrote a blog post targeted to experienced developers but embedded development beginners: &lt;a href=&quot;https:&#x2F;&#x2F;blog.cecton.com&#x2F;posts&#x2F;rust-and-arduino-part1&#x2F;&quot;&gt;Rust, Arduino and Embedded Development as a Beginner: Part 1&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;braincode&quot;&gt;@brainstorm&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;_joshajohnson&quot;&gt;@joshajohnson&lt;&#x2F;a&gt; Created a RTIC example for an HID mouse with a blackberry trackball &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;brainstorm&#x2F;bbtrackball-rs&quot;&gt;bbtrackball-rs&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;knurling-rs&#x2F;meta&quot;&gt;knurling-rs&lt;&#x2F;a&gt; tooling initiative by &lt;a href=&quot;https:&#x2F;&#x2F;ferrous-systems.com&quot;&gt;Ferrous Systems&lt;&#x2F;a&gt; has grown: after &lt;a href=&quot;https:&#x2F;&#x2F;ferrous-systems.com&#x2F;blog&#x2F;defmt&#x2F;&quot;&gt;&lt;code&gt;defmt&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, the project has publicly released three new tools:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;knurling-rs&#x2F;flip-link&quot;&gt;&lt;code&gt;flip-link&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, a linker wrapper that adds zero-cost stack overflow protection to your project&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;knurling-rs&#x2F;probe-run&quot;&gt;&lt;code&gt;probe-run&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, a Cargo runner that seamlessly runs embedded programs on your target device as if they were native ones&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;knurling-rs&#x2F;defmt-test&quot;&gt;&lt;code&gt;defmt-test&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, a proc-macro to write and run unit tests on embedded devices&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;The Rust Embedded Working Group&#x27;s MSRV (Minimum Supported Rust Version)
policy has been updated and now only requires that crates build on the
latest stable Rust release. See &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;pull&#x2F;523&quot;&gt;msrv&lt;&#x2F;a&gt; for more details.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to add it to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2021-03-16-newsletter-27.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;eldruin&quot;&gt;@eldruin&lt;&#x2F;a&gt; released a platform-agnostic &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;embedded-ccs811&quot;&gt;driver for the CCS811&lt;&#x2F;a&gt; indoor air quality sensor and published a &lt;a href=&quot;https:&#x2F;&#x2F;blog.eldruin.com&#x2F;ccs811-indoor-air-quality-sensor-driver-in-rust&#x2F;&quot;&gt;blog post&lt;&#x2F;a&gt; including example setups.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;diondokter&quot;&gt;@diondokter&lt;&#x2F;a&gt; released a first version of &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;device-driver&quot;&gt;device-driver&lt;&#x2F;a&gt; which can aid driver developers in developing device drivers. For now only register interfaces are supported as is laid out in &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;Geoxion&#x2F;status&#x2F;1303849776665026561&quot;&gt;this twitter thread&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;dbrgn&#x2F;&quot;&gt;@dbrgn&lt;&#x2F;a&gt; released version 0.2 of the &lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;debouncr&#x2F;&quot;&gt;debouncr&lt;&#x2F;a&gt; crate. It now supports stateful debouncing, meaning that the user can now choose whether every bouncing→stable transition should be detected as an edge, or only high↔︎low transitions.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;!-- LINK SECTION FOR HIGHLIGHTS AND EMBEDDED PROJECTS --&gt;
&lt;h2 id=&quot;get-involved&quot;&gt;Get Involved&lt;&#x2F;h2&gt;
&lt;p&gt;This is the 26th newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#rust-embedded:matrix.org&quot;&gt;#rust-embedded:matrix.org&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2021-03-16-newsletter-27.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, send us a pull request!&lt;&#x2F;p&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 25</title>
                <pubDate>Mon, 24 Aug 2020 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-25/</link>
                <guid>https://blog.rust-embedded.org/newsletter-25/</guid>
                <description>&lt;p&gt;This is the 25th newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;p&gt;As a note, some of these stories have happened over the past months. We&#x27;re still working on catching up, but wanted to share them with you!&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#rust-embedded:matrix.org&quot;&gt;#rust-embedded:matrix.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;the-embedded-working-group-newsletter-25&#x2F;47744&quot;&gt;users.rust-lang.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustembedded&#x2F;status&#x2F;1298004492475150338&quot;&gt;on twitter&lt;&#x2F;a&gt;, or &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;ifxv2h&#x2F;the_embedded_working_group_newsletter_25&#x2F;&quot;&gt;on reddit&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2020-08-31-newsletter-26.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, send us a pull request!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http:&#x2F;&#x2F;github.com&#x2F;braun-embedded&quot;&gt;@hannobraun&lt;&#x2F;a&gt; wrote an &lt;a href=&quot;https:&#x2F;&#x2F;braun-embedded.com&#x2F;dw1000&#x2F;&quot;&gt;article about his DW1000 driver&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;andre-richter&quot;&gt;@andre-richter&lt;&#x2F;a&gt; added a new tutorial to the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;rust-raspberrypi-OS-tutorials&quot;&gt;Operating System development tutorials in Rust on the Raspberry Pi&lt;&#x2F;a&gt; series:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;rust-raspberrypi-OS-tutorials&#x2F;tree&#x2F;master&#x2F;14_exceptions_part2_peripheral_IRQs&quot;&gt;Tutorial 14: Exceptions Part 2: Peripheral IRQs&lt;&#x2F;a&gt; - Including drivers for the BCM and GICv2 interrupt controllers.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;In recent nightlies,&lt;code&gt;rust-std&lt;&#x2F;code&gt; support for the two &lt;code&gt;bare-metal&lt;&#x2F;code&gt; &lt;code&gt;aarch64&lt;&#x2F;code&gt; targets &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;pull&#x2F;68334&quot;&gt;has landed&lt;&#x2F;a&gt;.
&lt;ul&gt;
&lt;li&gt;Add them using &lt;code&gt;rustup target add aarch64-unknown-none-softfloat&lt;&#x2F;code&gt; or &lt;code&gt;rustup target add aarch64-unknown-none&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;rust-raspberrypi-OS-tutorials&#x2F;commit&#x2F;c4f9432e131f6aa6dd58b9ba795d67ec3bfd3c7f&quot;&gt;See it in action here&lt;&#x2F;a&gt; for building a kernel without the need for third-party tools like &lt;code&gt;xbuild&lt;&#x2F;code&gt; or &lt;code&gt;xargo&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;therealprof&quot;&gt;@therealprof&lt;&#x2F;a&gt; wrote an &lt;a href=&quot;https:&#x2F;&#x2F;therealprof.github.io&#x2F;blog&#x2F;usb-c-pill-part1&#x2F;&quot;&gt;introduction article about the &quot;USB-C pill&quot;&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;bobmcwhirter&quot;&gt;@bobmcwhirter&lt;&#x2F;a&gt; wrote an article about using an &lt;a href=&quot;https:&#x2F;&#x2F;blog.drogue.io&#x2F;wifi-offload&#x2F;&quot;&gt;ESP8266 as a WiFi offload with an STM32F401RE&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;ferrous-systems.com&quot;&gt;Ferrous Systems&lt;&#x2F;a&gt; released &lt;a href=&quot;https:&#x2F;&#x2F;ferrous-systems.com&#x2F;blog&#x2F;defmt&#x2F;&quot;&gt;defmt&lt;&#x2F;a&gt;, a highly efficient Rust logging framework for embedded devices&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;Rubberduck203&quot;&gt;@rubberduck203&lt;&#x2F;a&gt; released the experimental &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;switch-hal&quot;&gt;switch-hal crate&lt;&#x2F;a&gt;, which provides a zero-cost abstraction over Active High&#x2F;Active Low GPIO, allowing application developers to more clearly express their intent and for drivers to avoid making runtime decisions about driving a line high or low based on the pin&#x27;s active level.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;Rubberduck203&quot;&gt;@rubberduck203&lt;&#x2F;a&gt; has also released the &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;stm32f3-discovery&quot;&gt;stm32f3-discovery board support crate&lt;&#x2F;a&gt; as an alternative to the unmaintained &lt;code&gt;f3&lt;&#x2F;code&gt; crate.&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rubberduck203&#x2F;stm32f3-discovery-quickstart&#x2F;&quot;&gt;stm32f3-discovery-quickstart&lt;&#x2F;a&gt; template has been updated to utilize both the &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;stm32f3-discovery&quot;&gt;stm32f3-discovery board support crate&lt;&#x2F;a&gt; and the &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;switch-hal&quot;&gt;switch-hal crate&lt;&#x2F;a&gt;. It also now includes VS Code tasks for cleaning, building examples, and building in release mode.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;proman21&quot;&gt;@proman21&lt;&#x2F;a&gt; has released a beta version of &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;proman21&#x2F;samd-timer&#x2F;&quot;&gt;samd-timer&lt;&#x2F;a&gt;, an abstraction for the Timer peripherals present on Atmel SAM microcontrollers. This library provides lower-level control over these timers than &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;atsamd-rs&#x2F;atsamd&#x2F;&quot;&gt;atsamd-hal&lt;&#x2F;a&gt;, while remaining compatible with the HAL clock system.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dbrgn&quot;&gt;@dbrgn&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rnestler&quot;&gt;@rnestler&lt;&#x2F;a&gt; released a first version of the &lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;shtcx&#x2F;&quot;&gt;shtcx&lt;&#x2F;a&gt; embedded-hal driver for Sensirion SHTCx series humidity&#x2F;temperature sensors. The driver is feature-complete, but currently supports only a blocking API. The crate will be updated with an alternative non-blocking API soon.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ra-kete&quot;&gt;@ra-kete&lt;&#x2F;a&gt; released the &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;microfft&quot;&gt;microfft crate&lt;&#x2F;a&gt;, a library for computing fast fourier transforms on embedded devices.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dajamante&quot;&gt;@dajamante&lt;&#x2F;a&gt; added an &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Dajamante&#x2F;avr-car&quot;&gt;obstacle avoiding robot&lt;&#x2F;a&gt; with more &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Dajamante&#x2F;avr-car&#x2F;blob&#x2F;master&#x2F;article.md&quot;&gt;details in this article&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;therealprof&quot;&gt;@therealprof&lt;&#x2F;a&gt; released the &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;display-interface&quot;&gt;display-interface crate&lt;&#x2F;a&gt;, an abstraction over the different possibilities to drive a display.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;bugadani&quot;&gt;@bugadani&lt;&#x2F;a&gt; released the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;bugadani&#x2F;embedded-text&quot;&gt;embedded-text crate&lt;&#x2F;a&gt;, a text rendering library built on top of &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jamwaffles&#x2F;embedded-graphics&quot;&gt;embedded-graphics&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;bobmcwhirter&quot;&gt;@bobmcwhirter&lt;&#x2F;a&gt; released the &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;drogue-esp8266&quot;&gt;drogue-esp8266&lt;&#x2F;a&gt;, a WiFi-offload embedded-nal implementation crate.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to add it to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2020-08-31-newsletter-26.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h2&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Diff&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#peripheral-access-crates&quot;&gt;Peripheral Access Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;47&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;33&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;38&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;52&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+7&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;85&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#no-std-crates&quot;&gt;no-std crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;41&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip-1&quot;&gt;no-std crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;3&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 24</title>
                <pubDate>Mon, 17 Aug 2020 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-24/</link>
                <guid>https://blog.rust-embedded.org/newsletter-24/</guid>
                <description>&lt;p&gt;This is the 24th newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;ve been on an unscheduled hiatus for the past six months or so, but it&#x27;s time for us to return! Today we&#x27;re doing a quick fast-forward of all of the great things that have been released while we&#x27;ve been on break.&lt;&#x2F;p&gt;
&lt;p&gt;For the next few weeks, we&#x27;ll be doing a special &quot;catch-up&quot; schedule, meaning we&#x27;ll be releasing articles weekly until we&#x27;ve caught up with all of the recent changes. Once we&#x27;ve wrapped that up, we&#x27;ll go back to a regular monthly cadence.&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;ve also added a few new folks to the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg#the-resources-team&quot;&gt;resources team&lt;&#x2F;a&gt; say hello to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;hargonix&#x2F;&quot;&gt;@hargoniX&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;eldruin&quot;&gt;@eldruin&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;kalkyl&quot;&gt;@kalkyl&lt;&#x2F;a&gt; who will be helping out with the newsletter!&lt;&#x2F;p&gt;
&lt;p&gt;Want to have your project mentioned? Make sure you &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2020-08-24-newsletter-25.md&quot;&gt;let us know&lt;&#x2F;a&gt; so we can include it!&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#rust-embedded:matrix.org&quot;&gt;#rust-embedded:matrix.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;the-embedded-working-group-newsletter-24&#x2F;47405&quot;&gt;users.rust-lang.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustembedded&#x2F;status&#x2F;1295330780688809986&quot;&gt;on twitter&lt;&#x2F;a&gt;, or &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;ibcvnz&#x2F;the_embedded_working_group_newsletter_24&#x2F;&quot;&gt;on reddit&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2020-08-24-newsletter-25.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, send us a pull request!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-great-catch-up&quot;&gt;The Great Catch-Up!&lt;&#x2F;h2&gt;
&lt;p&gt;Here&#x27;s a whirlwind overview of some of the things that have been released and changed over the past six months or so!
We&#x27;ll cover some of these updates in more detail over the coming weeks!&lt;&#x2F;p&gt;
&lt;h3 id=&quot;renames&quot;&gt;Renames&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;The RTFM framework has been renamed to RTIC - Real Time Interrupt-driven Concurrency!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;resources&quot;&gt;Resources&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;We&#x27;ve added &lt;a href=&quot;https:&#x2F;&#x2F;os.phil-opp.com&#x2F;&quot;&gt;phil&#x27;s OS blog&lt;&#x2F;a&gt; to our list of resources&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;hargonix&quot;&gt;@hargoniX&lt;&#x2F;a&gt; has added a blog post on &lt;a href=&quot;https:&#x2F;&#x2F;hboeving.dev&#x2F;blog&#x2F;rust-2c-driver-p1&#x2F;&quot;&gt;embedded driver writing&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;tooling&quot;&gt;Tooling&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;the &lt;a href=&quot;https:&#x2F;&#x2F;probe.rs&quot;&gt;probe-rs organization&lt;&#x2F;a&gt; has added a lot of wonderful new tooling, including &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;cargo-flash&quot;&gt;cargo-flash&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;cargo-embed&quot;&gt;cargo-embed&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;cargo-hf2&quot;&gt;cargo-hf2&lt;&#x2F;a&gt; for &quot;A small cargo subcommand to download cargo builds to Microsoft UF2 bootloaders via HID USB&quot;&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;knurling-rs&#x2F;meta&quot;&gt;Knurling-rs&lt;&#x2F;a&gt; project for embedded tooling has kicked off by releasing &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;knurling-rs&#x2F;probe-run&quot;&gt;probe-run&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;bindings&quot;&gt;Bindings&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;freertos-rust&quot;&gt;FreeRTOS-rust&lt;&#x2F;a&gt; as RTOS bindings (not to be confused with &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;freertos_rs&quot;&gt;FreeRTOS.rs&lt;&#x2F;a&gt; )&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;new-possibilities&quot;&gt;New Possibilities&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;It is &lt;a href=&quot;https:&#x2F;&#x2F;ferrous-systems.com&#x2F;blog&#x2F;stable-async-on-embedded&#x2F;&quot;&gt;now possible&lt;&#x2F;a&gt; to run &lt;a href=&quot;https:&#x2F;&#x2F;blog.rust-lang.org&#x2F;2020&#x2F;06&#x2F;04&#x2F;Rust-1.44.0.html&quot;&gt;async&#x2F;await on embedded&lt;&#x2F;a&gt;!&lt;&#x2F;li&gt;
&lt;li&gt;Applications can now be compiled for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;issues&#x2F;44052#issuecomment-663394401&quot;&gt;AVR in mainline Rust nightly builds&lt;&#x2F;a&gt;!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;pacs&quot;&gt;PACs&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;msp430fr2355&quot;&gt;msp430fr2355 PAC&lt;&#x2F;a&gt; has been added&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;ambiq-apollo1-pac&quot;&gt;ambiq-apollo1-pac&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;ambiq-apollo2-pac&quot;&gt;ambiq-apollo2-pac&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;ambiq-apollo3p-pac&quot;&gt;ambiq-apollo3p-pac&lt;&#x2F;a&gt; have been added&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;hals&quot;&gt;HALs&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;msp430fr2x5x-hal&quot;&gt;msp430fr2x5x-hal&lt;&#x2F;a&gt; has been added&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;bsps&quot;&gt;BSPs&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;a &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;onebitsy&quot;&gt;BSP for the onebitsy&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Several Adafruit BSPs:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;metro_m0&quot;&gt;metro_m0&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;pygamer&quot;&gt;pygamer&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;feather-f405&quot;&gt;feather-f405&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;feather_m0&quot;&gt;feather_m0&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;feather_m4&quot;&gt;feather_m4&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;circuit_playground_express&quot;&gt;circuit_playground_express&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;edgebadge&quot;&gt;edgebadge&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;gemma_m0&quot;&gt;gemma_m0&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;itsybitsy_m0&quot;&gt;itsybitsy_m0&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;itsybitsy_m4&quot;&gt;itsybitsy_m4&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;trinket_m0&quot;&gt;trinket_m0&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Several arduino BSPs:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;arduino_mkrvidor4000&quot;&gt;arduino_mkrvidor4000&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;arduino_mkrzero&quot;&gt;arduino_mkrzero&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;arduino_nano33iot&quot;&gt;arduino_nano33iot&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;samd21_mini&quot;&gt;samd21_mini BSP&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;xiao_m0&quot;&gt;xiao_m0 BSP&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;general-abstraction-crates&quot;&gt;General abstraction crates&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;BlackbirdHQ&#x2F;atat&quot;&gt;atat crate&lt;&#x2F;a&gt; for parsing AT commands&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;drivers&quot;&gt;Drivers&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;adxl313&quot;&gt;ADXL313&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;anyleaf&quot;&gt;AnyLeaf&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;dht-sensor&quot;&gt;dht-sensor&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;max6955&quot;&gt;MAX6955&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;microchip-eeprom-25lcxx&quot;&gt;MCP25LCXX&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;microchip-tc72r-rs&quot;&gt;TC72&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;http:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;st7789&quot;&gt;ST7789&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;dw1000&quot;&gt;DW1000&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;adafruit-7segment&quot;&gt;Adafruit-7segment&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;wip-drivers&quot;&gt;WIP Drivers&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;bmi160&quot;&gt;BMI160&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;epd-waveshare&quot;&gt;epd-waveshare&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;hrs3300&quot;&gt;HRS3300&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;hdc20xx&quot;&gt;HDC20xx&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;isl29125&quot;&gt;ISL29125&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;lsm9ds1&quot;&gt;LSM9DS1&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;ltr-559&quot;&gt;ltr-559&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rafaelcaricio&#x2F;lvgl-rs&quot;&gt;lvgl&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;eldruin&#x2F;max170xx-rs&quot;&gt;MAX170xx&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;max3010x&quot;&gt;MAX3010x&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;mcp4725&quot;&gt;MCP4725&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;mlx9061x&quot;&gt;MLX9061x&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;BlackbirdHQ&#x2F;ublox-cellular-rs&quot;&gt;ublox-cellular-rs&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;no-std-crates&quot;&gt;no_std crates&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;debouncr&quot;&gt;debouncr&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;embedded-crc-macros&quot;&gt;embedded-crc-macros&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;embedded-websocket&quot;&gt;embedded-websocket&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;endian_codec&quot;&gt;endian_codec&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;gdbstub&quot;&gt;gdbstub&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;microfft&quot;&gt;microfft&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;smbus-pec&quot;&gt;smbus-pec&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h2&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Diff&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#peripheral-access-crates&quot;&gt;Peripheral Access Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;46&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+4&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;33&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;38&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+17&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;45&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+9&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;84&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+13&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#no-std-crates&quot;&gt;no-std crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;41&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+7&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip-1&quot;&gt;no-std crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;3&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 23</title>
                <pubDate>Sat, 01 Feb 2020 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-23/</link>
                <guid>https://blog.rust-embedded.org/newsletter-23/</guid>
                <description>&lt;p&gt;This is the 23rd newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#rust-embedded:matrix.org&quot;&gt;#rust-embedded:matrix.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;the-embedded-working-group-newsletter-23&#x2F;37708&quot;&gt;users.rust-lang.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustembedded&#x2F;status&#x2F;1223606976527114240&quot;&gt;on twitter&lt;&#x2F;a&gt;, or &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;ex6ike&#x2F;the_23rd_embedded_working_group_newsletter&#x2F;&quot;&gt;on reddit&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2020-02-29-newsletter-24.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, send us a pull request!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;lupyuen&quot;&gt;@lupyuen&lt;&#x2F;a&gt; has been doing very cool things with Rust and the PineTime smart watch - see &lt;a href=&quot;https:&#x2F;&#x2F;medium.com&#x2F;@ly.lee&#x2F;porting-druid-rust-widgets-to-pinetime-smart-watch-7e1d5a5d977a&quot;&gt;Porting druid Rust Widgets to PineTime Smart Watch&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;medium.com&#x2F;@ly.lee&#x2F;optimising-pinetimes-display-driver-with-rust-and-mynewt-3ba269ea2f5c&quot;&gt;Optimising PineTime’s Display Driver with Rust and Mynewt&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;rust-raspi3-OS-tutorials&#x2F;tree&#x2F;master&#x2F;13_integrated_testing&quot;&gt;The Raspberry Pi OS dev tutorial&lt;&#x2F;a&gt; got a new chapter on Kernel Unit, Integration and Console tests using QEMU&lt;&#x2F;li&gt;
&lt;li&gt;Google announced &lt;a href=&quot;https:&#x2F;&#x2F;security.googleblog.com&#x2F;2020&#x2F;01&#x2F;say-hello-to-opensk-fully-open-source.html&quot;&gt;OpenSK&lt;&#x2F;a&gt;, an open source security key based on &lt;a href=&quot;https:&#x2F;&#x2F;www.tockos.org&#x2F;&quot;&gt;TockOS&lt;&#x2F;a&gt; in Embedded Rust&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;ferrous-systems.com&quot;&gt;Ferrous Systems&lt;&#x2F;a&gt; announced the second iteration of &lt;a href=&quot;https:&#x2F;&#x2F;oxidizeconf.com&quot;&gt;Oxidize&lt;&#x2F;a&gt;, an embedded Rust conference in Berlin Germany, will take place in July of 2020. Read the &lt;a href=&quot;https:&#x2F;&#x2F;ferrous-systems.com&#x2F;blog&#x2F;oxidize-2020&#x2F;&quot;&gt;Announcement Blog Post&lt;&#x2F;a&gt; for more details&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;PLCnext&#x2F;&quot;&gt;PLCnext&lt;&#x2F;a&gt; shared a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;PLCnext&#x2F;rust-sample-runtime&quot;&gt;Sample Rust Runtime&lt;&#x2F;a&gt; and a how-to guide for running deterministic real-time Rust
on an industrial Linux device&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;almindor&quot;&gt;@almindor&lt;&#x2F;a&gt; released a platform-agnostic &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;max7219&quot;&gt;driver for the MAX7219&lt;&#x2F;a&gt; segmented display and published a &lt;a href=&quot;https:&#x2F;&#x2F;blog.katona.me&#x2F;2019&#x2F;12&#x2F;22&#x2F;MAX7219-segmented-display-driver-in-Rust&#x2F;&quot;&gt;blog post&lt;&#x2F;a&gt; including a picture of an example setup.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dbrgn&#x2F;embedded-hal-mock&#x2F;&quot;&gt;embedded-hal-mock&lt;&#x2F;a&gt; has released 0.7.1 on crates.io with &lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;embedded-hal-mock&#x2F;0.7.1&#x2F;embedded_hal_mock&#x2F;i2c&#x2F;index.html#testing-error-handling&quot;&gt;support for error expectations&lt;&#x2F;a&gt;. This means that you can now unit test the error handling logic of your embedded-hal driver crates.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;Rubberduck203&quot;&gt;@rubberduck203&lt;&#x2F;a&gt; added VS Code configurations to the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;cortex-m-quickstart&quot;&gt;cortex-m-quickstart&lt;&#x2F;a&gt; and published a &lt;a href=&quot;https:&#x2F;&#x2F;christopherjmcclellan.wordpress.com&#x2F;2019&#x2F;12&#x2F;31&#x2F;debugging-rust-cortex-m-with-vs-code-take-2&#x2F;&quot;&gt;blog post&lt;&#x2F;a&gt;. Debugging Cortex-M projects in editor with VS Code now works out of the box.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;Rubberduck203&quot;&gt;@rubberduck203&lt;&#x2F;a&gt; released a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rubberduck203&#x2F;stm32f3-discovery-quickstart&quot;&gt;quickstart template for the STM32F3DISCOVERY board&lt;&#x2F;a&gt; with pre-configured linker script &amp;amp; build targets.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jkristell&quot;&gt;@jkristell&lt;&#x2F;a&gt; released version 0.6 of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jkristell&#x2F;infrared&quot;&gt;Infrared&lt;&#x2F;a&gt; crate and published a &lt;a href=&quot;https:&#x2F;&#x2F;jott.se&#x2F;blog&#x2F;infrared&quot;&gt;blog post&lt;&#x2F;a&gt; on how to add remote control support to an embedded Rust project.&lt;&#x2F;li&gt;
&lt;li&gt;Steven Walter gave a talk at &lt;a href=&quot;http:&#x2F;&#x2F;www.rust-belt-rust.com&#x2F;&quot;&gt;Rust Belt Rust&lt;&#x2F;a&gt; about &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=EoV94cg_Tug&quot;&gt;introducing Rust into an existing embedded Linux project&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;arosspope&quot;&gt;@arosspope&lt;&#x2F;a&gt; released an implementation of &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;arosspope&#x2F;usnake&quot;&gt;the game snake for the stm32f3 discovery board&lt;&#x2F;a&gt; using RTFM.&lt;&#x2F;li&gt;
&lt;li&gt;Rust firmware for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;quartiq&#x2F;stabilizer&quot;&gt;Stabilizer&lt;&#x2F;a&gt; has been released. &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sinara-hw&#x2F;Stabilizer&#x2F;wiki&quot;&gt;Stabilizer&lt;&#x2F;a&gt; is an open hardware, high speed, multi channel, STM32H743 based feedback controller for Quantum Physics applications. The firmware features &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rtfm-rs&#x2F;cortex-m-rtfm&quot;&gt;RTFM v0.5&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;m-labs&#x2F;smoltcp&quot;&gt;smoltcp&lt;&#x2F;a&gt;. Support for several analog front end mezzanines like current stabilization or Pound-Drever-Hall locks is being developed.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;42technology&quot;&gt;@42technology&lt;&#x2F;a&gt; announced they have ported Cloudflare&#x27;s Rust-language &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;QUIC&quot;&gt;QUIC&lt;&#x2F;a&gt; library (known as &#x27;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cloudflare&#x2F;quiche&quot;&gt;quiche&lt;&#x2F;a&gt;&#x27;) to the Nordic nRF9160, producing possibly the world&#x27;s first QUIC demonstration on that platform.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;atsamd-rs&#x2F;atsamd&quot;&gt;atsamd-hal&lt;&#x2F;a&gt; 0.8.2 released, which includes work by &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;twitchyliquid64&quot;&gt;@twitchyliquid64&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jacobrosenthal&quot;&gt;@jacobrosenthal&lt;&#x2F;a&gt; implementing USB support for SAMD21 and SAMD51 devices.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Disasm&quot;&gt;@Disasm&lt;&#x2F;a&gt; released &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;riscv-rust&#x2F;longan-nano&#x2F;&quot;&gt;longan-nano&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;riscv-rust&#x2F;seedstudio-gd32v&quot;&gt;seedstudio-gd32v&lt;&#x2F;a&gt; board support crates with examples for the corresponding RISC-V boards.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;!-- LINK SECTION FOR HIGHLIGHTS AND EMBEDDED PROJECTS --&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to add it to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2020-02-29-newsletter-24.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h2&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Diff&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#peripheral-access-crates&quot;&gt;Peripheral Access Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;42&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+3&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;32&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;21&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+2&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;36&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+3&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;71&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+4&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#no-std-crates&quot;&gt;no-std crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;34&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+2&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip-1&quot;&gt;no-std crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;3&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 22</title>
                <pubDate>Wed, 01 Jan 2020 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-22/</link>
                <guid>https://blog.rust-embedded.org/newsletter-22/</guid>
                <description>&lt;p&gt;This is the 22nd newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#rust-embedded:matrix.org&quot;&gt;#rust-embedded:matrix.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;the-embedded-working-group-newsletter-22&#x2F;36377&quot;&gt;users.rust-lang.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustembedded&#x2F;status&#x2F;1212379226231492614&quot;&gt;on twitter&lt;&#x2F;a&gt;, or &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;eiisk9&#x2F;the_22nd_embedded_working_group_newsletter&#x2F;&quot;&gt;on reddit&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2020-01-30-newsletter-23.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, send us a pull request!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;andre-richter&quot;&gt;@andre-richter&lt;&#x2F;a&gt; added a new tutorial for the &lt;code&gt;Operating System development tutorials in Rust on the Raspberry Pi&lt;&#x2F;code&gt; series:
&lt;ul&gt;
&lt;li&gt;Tutorial 13: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;rust-raspi3-OS-tutorials&#x2F;tree&#x2F;master&#x2F;13_integrated_testing&quot;&gt;Integrated Testing&lt;&#x2F;a&gt; - Kernel &lt;code&gt;Unit tests&lt;&#x2F;code&gt;, &lt;code&gt;Integration tests&lt;&#x2F;code&gt; and &lt;code&gt;Console tests&lt;&#x2F;code&gt; using &lt;code&gt;QEMU&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;bitshiftmask&quot;&gt;@jamesmunns&lt;&#x2F;a&gt; sketched out a few introductory notes about foundational Embedded Rust Crates like &lt;code&gt;r0&lt;&#x2F;code&gt;, &lt;code&gt;cortex-m&lt;&#x2F;code&gt;, &lt;code&gt;PAC&lt;&#x2F;code&gt;s, and &lt;code&gt;HAL&lt;&#x2F;code&gt;s. See &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;bitshiftmask&#x2F;status&#x2F;1210714309124186112&quot;&gt;part 1&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;bitshiftmask&#x2F;status&#x2F;1211031300531986432&quot;&gt;part 2&lt;&#x2F;a&gt; on Twitter!&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;bitshiftmask&quot;&gt;@jamesmunns&lt;&#x2F;a&gt; wrote about the cost of &lt;a href=&quot;https:&#x2F;&#x2F;jamesmunns.com&#x2F;blog&#x2F;fmt-unreasonably-expensive&#x2F;&quot;&gt;Formatting in Embedded Rust&lt;&#x2F;a&gt; as part of the &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;hashtag&#x2F;rust2020&quot;&gt;#rust2020&lt;&#x2F;a&gt; effort, and how to reduce code size while maintaining panic debug-ability&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;craigjb&quot;&gt;Craig Bishop&lt;&#x2F;a&gt; wrote an overview of &lt;a href=&quot;https:&#x2F;&#x2F;craigjb.com&#x2F;2019&#x2F;12&#x2F;31&#x2F;stm32l0-rust&#x2F;&quot;&gt;Getting Started on the STM32L0&lt;&#x2F;a&gt;, which contains an excellent breakdown of what makes up an Embedded Rust project&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;andre-richter&quot;&gt;@andre-richter&lt;&#x2F;a&gt; released v0.1.0 of &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;qemu-exit&quot;&gt;&lt;code&gt;qemu-exit&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;. This library provides functions to gracefully exit a running QEMU session from within your Rust binary with an user-defined exit code. This can be used for unit or integration tests that run inside QEMU. Currently supports &lt;code&gt;aarch64&lt;&#x2F;code&gt; and &lt;code&gt;x86_64&lt;&#x2F;code&gt; architectures.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;eldruin&quot;&gt;@eldruin&lt;&#x2F;a&gt; released a platform-agnostic &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;si4703&quot;&gt;driver for the Si4703&lt;&#x2F;a&gt; FM radio turner (receiver) and published a &lt;a href=&quot;https:&#x2F;&#x2F;blog.eldruin.com&#x2F;si4703-fm-radio-receiver-driver-in-rust&#x2F;&quot;&gt;blog post&lt;&#x2F;a&gt; including a picture of an example setup.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;eldruin&quot;&gt;@eldruin&lt;&#x2F;a&gt; released a platform-agnostic &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;pwm-pca9685&quot;&gt;driver for the PCA9685&lt;&#x2F;a&gt; PWM LED&#x2F;Servo controller driver and published a &lt;a href=&quot;https:&#x2F;&#x2F;blog.eldruin.com&#x2F;pca9685-pwm-led-servo-controller-driver-in-rust&#x2F;&quot;&gt;blog post&lt;&#x2F;a&gt; including a video of the device controlling RGB LEDs and several Servo motors simultaneously.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;eldruin&quot;&gt;@eldruin&lt;&#x2F;a&gt; released a platform-agnostic &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;veml6030&quot;&gt;driver for Vishay&#x27;s VEML6030 and VEML7700&lt;&#x2F;a&gt; ambient light sensors and published a &lt;a href=&quot;https:&#x2F;&#x2F;blog.eldruin.com&#x2F;veml6030-ambient-light-sensor-driver-in-rust&#x2F;&quot;&gt;blog post&lt;&#x2F;a&gt; about it.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nickray&quot;&gt;@nickray&lt;&#x2F;a&gt; released &lt;code&gt;salty&lt;&#x2F;code&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;api.salty.rs&quot;&gt;API&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;book.salty.rs&quot;&gt;book&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;code.salty.rs&quot;&gt;code&lt;&#x2F;a&gt;), a library for fast Ed25519 signatures on Cortex-M4 and Cortex-M33 microcontrollers. It presents the &lt;code&gt;ed25519-dalek&lt;&#x2F;code&gt; API, but is self-contained and uses the fastest currently published field operations implementation, due to Bjoern Haase, based on the &lt;code&gt;UMAAL&lt;&#x2F;code&gt; DSP instruction &lt;code&gt;(a: u32, b: u32, c: u32, d: u32) -&amp;gt; (a * b + c + d): u64&lt;&#x2F;code&gt;. Testing is done on the &lt;code&gt;musca-b1&lt;&#x2F;code&gt; Cortex-M33 microcontroller, simulated in QEMU v4. Additionally, a C API is included.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nickray&quot;&gt;@nickray&lt;&#x2F;a&gt; released &lt;code&gt;littlefs2&lt;&#x2F;code&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;littlefs2&quot;&gt;API&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nickray&#x2F;littlefs2&quot;&gt;code&lt;&#x2F;a&gt;), an idiomatic Rust API for the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ARMmbed&#x2F;littlefs&quot;&gt;&lt;code&gt;littlefs&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; filesystem for microcontrollers, modeled after &lt;code&gt;std::fs&lt;&#x2F;code&gt;. The upstream library claims to be resilient against power-loss, and supports features like dynamic wear-leveling with bad block detection, inline files for efficient use of storage, and custom user attributes on files and directories.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nickray&quot;&gt;@nickray&lt;&#x2F;a&gt; released &lt;code&gt;nisty&lt;&#x2F;code&gt; (&lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;nisty&quot;&gt;API&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nickray&#x2F;nisty&quot;&gt;code&lt;&#x2F;a&gt;), a companion library to &lt;code&gt;salty&lt;&#x2F;code&gt; with similar API, but for NIST P-256 signatures on Cortex-M4 and Cortex-M33 microcontrollers. It offers deterministic signatures, idiomatic conversions, and uses &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;kmackay&#x2F;micro-ecc&quot;&gt;&lt;code&gt;micro-ecc&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; as backend implementation, which also has &lt;code&gt;UMAAL&lt;&#x2F;code&gt; DSP instruction optimizations.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;probe-rs&#x2F;probe-rs&quot;&gt;probe-rs&lt;&#x2F;a&gt; has finally released 0.3.0 on crates.io. Its &lt;code&gt;cargo-flash&lt;&#x2F;code&gt; extension has improved by a large margin! Flashing speed has increased 10x and it is possible to virtually flash any ARM core thanks to the use of CMSIS-Pack flash algorithms.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;You can create your own target description from a CMSIS-Pack with the use of &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;probe-rs&#x2F;target-gen&quot;&gt;target-gen&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Built in algorithms support the &lt;strong&gt;nRF51xxx, nRF91xxx, nRF52xxx, STM32F1xx, LPC8xx and LPC55S66 and LPC55S69&lt;&#x2F;strong&gt; series using a &lt;strong&gt;DAPLink&lt;&#x2F;strong&gt; or an &lt;strong&gt;ST-Link&lt;&#x2F;strong&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Please file a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;probe-rs&#x2F;probe-rs&#x2F;pulls&quot;&gt;PR&lt;&#x2F;a&gt; if you extracted an algorithm for your chip and tested it!&lt;&#x2F;li&gt;
&lt;li&gt;We are looking for contributors. We have lots of non-ARM-specific stuff to do as well, such as improving erroring, useability and documentation including a webpage on the newly acquired &lt;a href=&quot;https:&#x2F;&#x2F;probe.rs&quot;&gt;probe.rs&lt;&#x2F;a&gt; domain.&lt;&#x2F;li&gt;
&lt;li&gt;Join us on &lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#probe-rs:matrix.org&quot;&gt;#probe-rs:matrix.org&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;0.4.0 will finally feature GDB support :) Stay tuned!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to add it to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2020-01-30-newsletter-23.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h2&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Diff&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#peripheral-access-crates&quot;&gt;Peripheral Access Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;39&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+7&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;31&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+2&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;19&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;33&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+3&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;67&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;-2&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#no-std-crates&quot;&gt;no-std crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;32&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+2&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip-1&quot;&gt;no-std crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;3&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 21</title>
                <pubDate>Sat, 30 Nov 2019 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-21/</link>
                <guid>https://blog.rust-embedded.org/newsletter-21/</guid>
                <description>&lt;p&gt;This is the 21st newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#rust-embedded:matrix.org&quot;&gt;#rust-embedded:matrix.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;the-embedded-working-group-newsletter-21&#x2F;35191&quot;&gt;users.rust-lang.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustembedded&#x2F;status&#x2F;1200762672117166081&quot;&gt;on twitter&lt;&#x2F;a&gt;, or &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;e3w3bz&#x2F;the_21st_embedded_working_group_newsletter&#x2F;&quot;&gt;on reddit&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2019-12-26-newsletter-22.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, send us a pull request!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Don&#x27;t forget to join our &lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#rust-embedded:matrix.org&quot;&gt;Community Chat on Matrix&lt;&#x2F;a&gt;, with more than 250 Embedded Rustaceans!&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;andre-richter&quot;&gt;@andre-richter&lt;&#x2F;a&gt; added two new tutorials for the &lt;code&gt;Operating System development tutorials in Rust on the Raspberry Pi&lt;&#x2F;code&gt; series:
&lt;ul&gt;
&lt;li&gt;Tutorial 11: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;rust-raspi3-OS-tutorials&#x2F;tree&#x2F;master&#x2F;11_virtual_memory&quot;&gt;Virtual Memory&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Tutorial 12: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;rust-raspi3-OS-tutorials&#x2F;tree&#x2F;master&#x2F;12_cpu_exceptions_part1&quot;&gt;CPU Exceptions: Part 1&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jamesmunns&quot;&gt;@jamesmunns&lt;&#x2F;a&gt; streamed some work on developing interrupt and panic code &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=KT6VnwuouPY&quot;&gt;on youtube&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;eldruin&quot;&gt;@eldruin&lt;&#x2F;a&gt; released a platform-agnostic &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;opt300x&quot;&gt;driver for the OPT300x&lt;&#x2F;a&gt; family of ambient light sensors and published a &lt;a href=&quot;https:&#x2F;&#x2F;blog.eldruin.com&#x2F;opt300x-ambient-light-sensor-driver-in-rust&#x2F;&quot;&gt;blog post&lt;&#x2F;a&gt; with a picture of the device taking lux measurements.&lt;&#x2F;li&gt;
&lt;li&gt;@mciantyre published a custom runtime and peripheral access crates to support development on the Teensy 4. Check out &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;mciantyre&#x2F;teensy4-rs&quot;&gt;the repo&lt;&#x2F;a&gt; to see how it works, discuss the approach, and try it out.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&quot;&gt;@japaric&lt;&#x2F;a&gt; released version v0.1.0 of &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;ufmt&#x2F;0.1.0&quot;&gt;&lt;code&gt;ufmt&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, a smaller (6-40x) and faster (2-9x) alternative to &lt;code&gt;core::fmt&lt;&#x2F;code&gt; that&#x27;s free of dynamic dispatch, recursion (where possible) and panicking branches. &lt;code&gt;ufmt&lt;&#x2F;code&gt; is &lt;em&gt;not&lt;&#x2F;em&gt; a drop-in replacement for &lt;code&gt;core::fmt&lt;&#x2F;code&gt; but it provides &lt;code&gt;uDebug&lt;&#x2F;code&gt; and &lt;code&gt;uDisplay&lt;&#x2F;code&gt; traits and a family of &lt;code&gt;uwrite!&lt;&#x2F;code&gt; macros. In this release the &lt;code&gt;uwrite!&lt;&#x2F;code&gt; macros, and the rest of the crate, work on the stable channel.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jamesmunns&quot;&gt;@jamesmunns&lt;&#x2F;a&gt; released two embedded crates:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;panic-persist&quot;&gt;&lt;code&gt;panic-persist&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;: A panic handler crate inspired by &lt;code&gt;panic-ramdump&lt;&#x2F;code&gt; that logs panic messages to a region of RAM defined by the user, allowing for discovery of panic messages post-mortem using normal program control flow.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;cmim&quot;&gt;&lt;code&gt;cmim&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, or Cortex-M Interrupt Move: A crate for Cortex-M devices to move data to interrupt context, without needing a critical section to access the data within an interrupt, and to remove the need for the &quot;mutex dance&quot;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tarcieri&quot;&gt;@tarcieri&lt;&#x2F;a&gt; released &lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;aead&quot;&gt;&lt;code&gt;aead&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; v0.2, providing generic traits for Authenticated Encryption with Associated Data (AEAD) ciphers, which now supports &lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;chacha20poly1305&#x2F;0.3.0&#x2F;chacha20poly1305&#x2F;#in-place-usage-eliminates-alloc-requirement&quot;&gt;ergonomic &lt;code&gt;alloc&lt;&#x2F;code&gt;-free operation&lt;&#x2F;a&gt; via an integration with the &lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;heapless&quot;&gt;&lt;code&gt;heapless&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; crate. This trait is now implemented by &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rustcrypto&#x2F;aeads#crates&quot;&gt;several crates providing pure Rust implementations of AEAD modes&lt;&#x2F;a&gt; which may be interesting to embedded users seeking to encrypt&#x2F;data data in &lt;code&gt;heapless&lt;&#x2F;code&gt; buffers, including the &lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;chacha20poly1305&#x2F;&quot;&gt;&lt;code&gt;chacha20poly1305&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;aes-siv&#x2F;&quot;&gt;&lt;code&gt;aes-siv&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; crates (and forthcoming support in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;martindisch&#x2F;aes-ccm&#x2F;issues&#x2F;2&quot;&gt;&lt;code&gt;aes-ccm&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; crate).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to add it to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2019-12-26-newsletter-22.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h2&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Diff&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#peripheral-access-crates&quot;&gt;Peripheral Access Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;32&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;29&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;19&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;30&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;69&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;-1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#no-std-crates&quot;&gt;no-std crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;30&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+2&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip-1&quot;&gt;no-std crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;3&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 20</title>
                <pubDate>Tue, 05 Nov 2019 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-20/</link>
                <guid>https://blog.rust-embedded.org/newsletter-20/</guid>
                <description>&lt;p&gt;This is the 20th newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;the-embedded-working-group-newsletter-20&#x2F;34341&quot;&gt;users.rust-lang.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustembedded&#x2F;status&#x2F;1191816369798561793&quot;&gt;on twitter&lt;&#x2F;a&gt;, or &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;ds55s6&#x2F;the_20th_embedded_rust_working_group_newsletter&#x2F;&quot;&gt;on reddit&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2019-11-28-newsletter-21.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, send us a pull request!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ctron&#x2F;&quot;&gt;Jens Reimann&lt;&#x2F;a&gt; has assembled a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ctron&#x2F;rust-esp-container&#x2F;&quot;&gt;docker image&lt;&#x2F;a&gt; for developing Rust on the ESP8266 and ESP32 series of devices, including stable &lt;code&gt;alloc&lt;&#x2F;code&gt; support!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http:&#x2F;&#x2F;github.com&#x2F;lucasbrendel&#x2F;&quot;&gt;Lucas Brendel&lt;&#x2F;a&gt; working on peripheral access crates as well as a shared embedded HAL for the Infineon XMC4 series of microcontrollers in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;xmc-rs&#x2F;&quot;&gt;xmc-rs organization&lt;&#x2F;a&gt;. Peripheral access crates are available and the HAL is in the very early stages of development.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.42technology.com&quot;&gt;42 Technology&lt;&#x2F;a&gt; have published the source code for their Nordic &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;42-technology-ltd&quot;&gt;nRF9160 demonstration application&lt;&#x2F;a&gt;, along with a Rust crate which wraps up Nordic&#x27;s proprietary C driver library. They also have a piece comparing Embedded Rust and Embedded C published in the German language magazine &lt;a href=&quot;https:&#x2F;&#x2F;www.iot-design.de&#x2F;allgemein&#x2F;robuste-entwicklung-mit-rust&#x2F;&quot;&gt;IOT Design&lt;&#x2F;a&gt; this month.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;thejpster&quot;&gt;theJPster&lt;&#x2F;a&gt;&#x27;s &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;thejpster&#x2F;monotron&quot;&gt;Monotron&lt;&#x2F;a&gt; got a write-up in &lt;a href=&quot;https:&#x2F;&#x2F;hackaday.com&#x2F;2019&#x2F;10&#x2F;05&#x2F;the-monotron-a-rusty-retrocomputer&#x2F;&quot;&gt;Hackaday&lt;&#x2F;a&gt;. Moves are also afoot for a next-generation Monotron - codename &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Neotron-Compute&#x2F;Neotron-Book&#x2F;blob&#x2F;master&#x2F;src&#x2F;SUMMARY.md&quot;&gt;Neotron 1000&lt;&#x2F;a&gt; - complete with a book! Check it out if you&#x27;re interested developing a modern-day version of CP&#x2F;M, written in Rust.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;probe-rs&#x2F;probe-rs&quot;&gt;probe-rs&lt;&#x2F;a&gt; finally has released on crates.io. The library enables you to inspect, debug and flash ARM cores. Flash the ARM core your future embedded Rust project with &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;probe-rs&#x2F;probe-rs&#x2F;tree&#x2F;master&#x2F;cargo-flash&quot;&gt;cargo-flash&lt;&#x2F;a&gt;, fully integrated into cargo. Flashing works for the &lt;strong&gt;nRF51822, nRF52832, nRF52840, STMF042 and STMF429xI&lt;&#x2F;strong&gt; using a &lt;strong&gt;DAPLink&lt;&#x2F;strong&gt; or an &lt;strong&gt;ST-Link&lt;&#x2F;strong&gt;.
The upcomming 0.3.0 release will also enable your to flash any ARM core (provided an an ARM CMSIS-Pack exists in a known registry).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to add it to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2019-11-28-newsletter-21.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h2&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;!-- TODO fill in the numbers before release --&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Diff&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#peripheral-access-crates&quot;&gt;Peripheral Access Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;31&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;28&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+2&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;19&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;28&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;70&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+2&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#no-std-crates&quot;&gt;no-std crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;28&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip-1&quot;&gt;no-std crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;3&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+3&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 19</title>
                <pubDate>Thu, 03 Oct 2019 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-19/</link>
                <guid>https://blog.rust-embedded.org/newsletter-19/</guid>
                <description>&lt;p&gt;This is the 19th newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;the-embedded-working-group-newsletter-19&#x2F;33253&quot;&gt;users.rust-lang.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustembedded&#x2F;status&#x2F;1179902902116241410&quot;&gt;on twitter&lt;&#x2F;a&gt;, or &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;dcz96x&#x2F;the_embedded_working_group_newsletter_19&#x2F;&quot;&gt;on reddit&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2019-10-31-newsletter-20.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, send us a pull request!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Google is working on a &lt;a href=&quot;https:&#x2F;&#x2F;www.coreboot.org&#x2F;&quot;&gt;Coreboot&lt;&#x2F;a&gt; replacement called &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;oreboot&#x2F;oreboot&quot;&gt;Oreboot&lt;&#x2F;a&gt;, i.e. Coreboot minus the &#x27;C&#x27;. Slides for a talk &lt;a href=&quot;https:&#x2F;&#x2F;osfc.io&#x2F;uploads&#x2F;talk&#x2F;paper&#x2F;23&#x2F;Oreboot.pdf&quot;&gt;about oreboot&lt;&#x2F;a&gt; are also available.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;eldruin&quot;&gt;@eldruin&lt;&#x2F;a&gt; released a platform-agnostic &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;veml6075&quot;&gt;driver for the VEML6075&lt;&#x2F;a&gt; UVA and UVB light sensor (so you can optimize your suntan) and published a &lt;a href=&quot;https:&#x2F;&#x2F;blog.eldruin.com&#x2F;veml6075-uva-uvb-uv-index-light-sensor-driver-in-rust&#x2F;&quot;&gt;blog post&lt;&#x2F;a&gt; with some pictures of the device in action.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;therealprof&quot;&gt;@therealprof&lt;&#x2F;a&gt; wrote a &lt;a href=&quot;https:&#x2F;&#x2F;therealprof.github.io&#x2F;blog&#x2F;digital-v1-to-digital-v2&#x2F;&quot;&gt;blog post&lt;&#x2F;a&gt; about porting an &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;embedded-hal&#x2F;&quot;&gt;Embedded HAL&lt;&#x2F;a&gt; impl of the digital::v1 traits for GPIOs to digital::v2.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to add it to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2019-10-31-newsletter-20.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h2&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Diff&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#peripheral-access-crates&quot;&gt;Peripheral Access Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;30&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+8&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;26&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;19&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;27&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+2&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;68&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#no-std-crates&quot;&gt;no-std crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;28&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+2&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 18</title>
                <pubDate>Tue, 02 Jul 2019 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-18/</link>
                <guid>https://blog.rust-embedded.org/newsletter-18/</guid>
                <description>&lt;p&gt;This is the eighteenth newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;!-- TODO uncomment --&gt;
&lt;!-- Discuss on [users.rust-lang.org], [on twitter], or [on reddit]! --&gt;
&lt;!-- [users.rust-lang.org]: https:&#x2F;&#x2F;example.org&#x2F;#TODO --&gt;
&lt;!-- [on twitter]: https:&#x2F;&#x2F;example.org&#x2F;#TODO --&gt;
&lt;!-- [on reddit]: https:&#x2F;&#x2F;example.org&#x2F;#TODO --&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;!-- If you want to mention something in [the next newsletter], send us a pull request! --&gt;
&lt;!-- [the next newsletter]: https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;${TODO}.md --&gt;
&lt;h2 id=&quot;the-winner-of-the-chat-vote-matrix&quot;&gt;The winner of the Chat Vote: Matrix&lt;&#x2F;h2&gt;
&lt;p&gt;About a month ago, due to Mozilla&#x27;s plans to discontinue Mozilla IRC, we released &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;blob&#x2F;master&#x2F;rfcs&#x2F;0351-chat-vote.md&quot;&gt;RFC 0351: Chat Vote&lt;&#x2F;a&gt; and started a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;357&quot;&gt;public vote&lt;&#x2F;a&gt; on which chat platform to use for the Rust Embedded Working Group in the future.&lt;&#x2F;p&gt;
&lt;p&gt;The winner of that vote was &lt;strong&gt;Matrix&lt;&#x2F;strong&gt;, with 160 votes, followed by IRC with 103 votes and Discord with 74 votes. As Matrix has won by more than 3 votes, it will become the new official chat platform for Rust Embedded! The name of our new channel is &lt;a href=&quot;https:&#x2F;&#x2F;matrix.to&#x2F;#&#x2F;#rust-embedded:matrix.org&quot;&gt;&lt;code&gt;#rust-embedded:matrix.org&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, and you can join it right now using a client like &lt;a href=&quot;https:&#x2F;&#x2F;about.riot.im&#x2F;&quot;&gt;Riot&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;We will be trialling the new Matrix channel for the next two weeks, using it as our primary and official communication channel. After the trial period, we will evaluate any issues that came up during it, and decide how to proceed. More details about the organization of the channel can be found in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;blob&#x2F;matrix&#x2F;ops&#x2F;matrix.md&quot;&gt;operational notes&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Since IRC ended in second place, and it&#x27;s our current platform, we&#x27;ll also be establishing a bridge between the Matrix channel and IRC during the trial. This way, users have the option to continue using IRC if they so desire.&lt;&#x2F;p&gt;
&lt;p&gt;To avoid the administrative overhead of having to switch bridged channels later, we will soon bridge directly to the &lt;code&gt;#rust-embedded&lt;&#x2F;code&gt; channel on Freenode, &lt;em&gt;not&lt;&#x2F;em&gt; to the Mozilla IRC channel. The bridge will be activated once we&#x27;ve worked out the Freenode channel registration.&lt;&#x2F;p&gt;
&lt;p&gt;While Matrix is a federated protocol, we are not planning on running our own infrastructure for now - instead, we will be using the &lt;code&gt;matrix.org&lt;&#x2F;code&gt; IRC bridge, and users are free to register on &lt;code&gt;matrix.org&lt;&#x2F;code&gt; or any other homeserver of their choosing. If this turns out to be a problem during the trial period, we may reconsider this decision.&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;re also looking into a static log viewer, that would allow us to publish search-engine-indexable channel logs for public reading, similar to the public logs that we currently have. This may require us to self-host a static log generator such as &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;matrix-org&#x2F;matrix-static&quot;&gt;matrix-static&lt;&#x2F;a&gt;. Suggestions for other solutions are welcome!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;We&#x27;ve had a bunch of Embedded Rust related events over the past couple of months. EWG member @thejpster was at ACCU 2019 (the Association of C and C++ Users Annual Conference), in Bristol, UK, on 12 April, delivering a talk on Embeddded Rust and the Monotron. Jonathan was then speaking at the Centre for Computing History in Cambridge, UK on 18 April, followed by hosting Oxidize at the end of April! Next up, Monotron is visiting Rust Conf in Portland, USA in late August. Don&#x27;t forget, if you&#x27;ve been giving or attending Embedded Rust talks, drop us a line for the next newsletter!&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;rust-embedded.github.io&#x2F;showcase&#x2F;&quot;&gt;The embedded showcase&lt;&#x2F;a&gt; gained 3 new entries! We are still looking for cool embedded projects to serve that can serve as examples of what can be done in Rust. Don&#x27;t hesitate to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;showcase#submit-your-project&quot;&gt;submit yours&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;laanwj&quot;&gt;@laanwj&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Disasm&quot;&gt;@Disasm&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;burrbull&quot;&gt;@burrbull&lt;&#x2F;a&gt; are working on &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;riscv-rust&#x2F;k210-crates&quot;&gt;Rust support for the Kendryte K210 RISC-V chips&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Disasm&quot;&gt;@Disasm&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;almindor&quot;&gt;@almindor&lt;&#x2F;a&gt; updated &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;riscv-rust&#x2F;riscv-rust-quickstart&quot;&gt;riscv-rust-quickstart&lt;&#x2F;a&gt;: now you can run Rust on the HiFive1 Rev B board.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Disasm&quot;&gt;@Disasm&lt;&#x2F;a&gt; released &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;stm32-usbd&quot;&gt;stm32-usbd&lt;&#x2F;a&gt;: a fork of &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;mvirkkunen&#x2F;stm32f103xx-usb&quot;&gt;stm32f103xx-usb&lt;&#x2F;a&gt; adopted for multiple STM32 device families.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h2&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;!-- TODO fill in the numbers before release --&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Diff&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#peripheral-access-crates&quot;&gt;Peripheral Access Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;22&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+4&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;25&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+6&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;18&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+5&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;25&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+4&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;67&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+4&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#no-std-crates&quot;&gt;no-std crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;26&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
</description>
            </item>
        
            <item>
                <title>Embedded Rust in 2019</title>
                <pubDate>Tue, 07 May 2019 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/embedded-rust-in-2019/</link>
                <guid>https://blog.rust-embedded.org/embedded-rust-in-2019/</guid>
                <description>&lt;p&gt;It&#x27;s been a busy year for many of the members of the Embedded-WG this year, and we had a chance to catch up at OxidizeConf a few weeks ago. We discussed two main things, Moving off of Mozilla IRC, and our goals for (part of) 2019.&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;h2 id=&quot;goals-for-2019&quot;&gt;Goals for 2019&lt;&#x2F;h2&gt;
&lt;p&gt;In 2018, the Embedded WG pushed hard to get the Cortex-M targets supported as stable targets in the upstream Rust project. Since then, due to work and life responsibilities, a number of us have been particularly busy in 2019.&lt;&#x2F;p&gt;
&lt;p&gt;At Oxidize, we discussed what our 2019 goals should be. There were suggestions to get some the foundational level crates like &lt;code&gt;cortex-m&lt;&#x2F;code&gt;, &lt;code&gt;cortex-m-rt&lt;&#x2F;code&gt;, and tools like &lt;code&gt;svd2rust&lt;&#x2F;code&gt; to a &quot;1.0 state&quot;. However, while there were a number of improvements we could think of, we couldn&#x27;t draw any clear lines of what it would take for us to be comfortable cutting a 1.0 release of these projects.&lt;&#x2F;p&gt;
&lt;p&gt;Based on the two points above, we discussed a slightly different plan: &lt;strong&gt;Focusing on building out the ecosystem in 2019&lt;&#x2F;strong&gt;, by building more &quot;fun&quot; stuff, like example projects, cool applications, and extracting and publishing reusable components from these projects to fill in the embedded Rust ecosystem.&lt;&#x2F;p&gt;
&lt;p&gt;By focusing on building out, instead of trying to perfect what we already have, we hope to find out the things we don&#x27;t know we are missing, and inspire other members of the community to begin working and building with Embedded Rust. We&#x27;ll keep this as a focus through the summer (until September or October 2019). This can be thought of as a parallel to the upstream &lt;a href=&quot;https:&#x2F;&#x2F;blog.rust-lang.org&#x2F;2017&#x2F;05&#x2F;05&#x2F;libz-blitz.html&quot;&gt;&quot;Libs Blitz&quot;&lt;&#x2F;a&gt; that the Rust project successfully completed in 2017.&lt;&#x2F;p&gt;
&lt;p&gt;Our weekly meetings will likely relax a bit, and will generally change focus to quickly discuss any high priority issues, then open up to a more informal &quot;show and tell&quot;, where people can discuss the things they have been building and would like to share. We hope you&#x27;ll all join us to share the wonderful things you build this summer in embedded Rust!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;moving-off-mozilla-irc&quot;&gt;Moving off Mozilla IRC&lt;&#x2F;h2&gt;
&lt;p&gt;At the end of April, Mozilla announced that they would be shutting down &lt;code&gt;irc.mozilla.org&lt;&#x2F;code&gt;. The Rust project as a whole will generally be moving on to other platforms such as Discord and Zulip.&lt;&#x2F;p&gt;
&lt;p&gt;The Embedded Working Group is actually one of the few (if not only) working groups that still primarily rely on IRC. We have a few hundred people who idle in the room, and tend to have fairly active discussions there, including our weekly status meetings. We have discussed moving to other platforms previously, but have been unable to get any sort of consensus on what to move to instead. Those discussions lead to a fruitful evaluation of alternatives and led to a pre-selection of suitable services.&lt;&#x2F;p&gt;
&lt;p&gt;To move things forward &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;blob&#x2F;master&#x2F;rfcs&#x2F;0351-chat-vote.md&quot;&gt;RFC 0351 Chat Vote&lt;&#x2F;a&gt; has been proposed and accepted by the WG which was subsequently implemented by opening &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;357&quot;&gt;voting issue&lt;&#x2F;a&gt; to poll the public opinion on this matter. Anyone with a GitHub account is invited to cast vote(s) until &lt;strong&gt;23:59 CEST on Sunday, 2019-06-23&lt;&#x2F;strong&gt;, the detailed rules are explained in the issue and fair discussion is very welcome.&lt;&#x2F;p&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 17</title>
                <pubDate>Fri, 22 Mar 2019 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-17/</link>
                <guid>https://blog.rust-embedded.org/newsletter-17/</guid>
                <description>&lt;p&gt;This is the seventeenth newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;the-embedded-working-group-newsletter-17&#x2F;26551&quot;&gt;users.rust-lang.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustembedded&#x2F;status&#x2F;1109141455510097922&quot;&gt;on twitter&lt;&#x2F;a&gt;, or &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;b47pl7&#x2F;embedded_wg_newsletter_17_the_embedded_rust&#x2F;&quot;&gt;on reddit&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2019-04-05.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, send us a pull request!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;rust-embedded.github.io&#x2F;showcase&#x2F;&quot;&gt;embedded showcase&lt;&#x2F;a&gt; gained its first entry! The &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;TeXitoi&#x2F;rusty-clock&quot;&gt;rusty clock&lt;&#x2F;a&gt; project, an alarm clock that features pressure, temperature and humidity on an e-paper display and 5 programmable alarms. We are still looking for cool embedded projects to serve that can serve as examples of what can be done in Rust. Don&#x27;t hesitate to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;showcase#submit-your-project&quot;&gt;submit&lt;&#x2F;a&gt; yours!&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;oxidizeconf.com&quot;&gt;OxidizeConf&lt;&#x2F;a&gt;, the first embedded Rust conference, has announced speakers! Check out &lt;a href=&quot;https:&#x2F;&#x2F;oxidizeconf.com&#x2F;schedule&#x2F;&quot;&gt;the lineup here&lt;&#x2F;a&gt;!&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;antvangelder&quot;&gt;Antoine van Gelder&lt;&#x2F;a&gt; wrote about using Peripheral Access Crates to &lt;a href=&quot;https:&#x2F;&#x2F;flowdsp.io&#x2F;blog&#x2F;stm32f3-01-interrupts&#x2F;&quot;&gt;program interrupts&lt;&#x2F;a&gt; on the STM32F3 Discovery board&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jamesmunns&quot;&gt;James Munns&lt;&#x2F;a&gt; gave a talk at Rust Berlin about what happens &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=RIHVoNDxNuk&quot;&gt;before &lt;code&gt;main()&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; in embedded Rust projects&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jjkt&quot;&gt;@jjkt&lt;&#x2F;a&gt; is working on &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jjkt&#x2F;zmu&quot;&gt;&lt;code&gt;zmu&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, an emulator for microcontroller based systems. Zmu is work in progress but can already emulate substantial parts of Cortex M - based MCUs core architecture features.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&quot;&gt;@japaric&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;japaricious&#x2F;status&#x2F;1105368938018267136&quot;&gt;released&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;cargo-call-stack&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md#v012---2019-03-12&quot;&gt;v0.1.2&lt;&#x2F;a&gt; of &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;cargo-call-stack&#x2F;0.1.2&quot;&gt;&lt;code&gt;cargo-call-stack&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, a static stack usage analyzer, and published a &lt;a href=&quot;https:&#x2F;&#x2F;blog.japaric.io&#x2F;stack-analysis&#x2F;&quot;&gt;blog post&lt;&#x2F;a&gt; with details about its implementation.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;wezm&quot;&gt;Wesley Moore&lt;&#x2F;a&gt; wrote &lt;a href=&quot;https:&#x2F;&#x2F;www.wezm.net&#x2F;technical&#x2F;2019&#x2F;03&#x2F;sensortag-embedded-rust-coding-retreat&#x2F;&quot;&gt;a blog post&lt;&#x2F;a&gt; about getting Rust running on the TI SensorTag, see the &lt;a href=&quot;https:&#x2F;&#x2F;git.sr.ht&#x2F;~wezm&#x2F;sensortag&quot;&gt;project on sourcehut&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tarcieri&quot;&gt;@tarcieri&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;bascule&#x2F;status&#x2F;1105455019959058433&quot;&gt;released&lt;&#x2F;a&gt; a board support crate for the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;286&quot;&gt;Adafruit NeoTrellis M4&lt;&#x2F;a&gt; along with a platform-independent driver for its &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;atsamd-rs&#x2F;atsamd&#x2F;pull&#x2F;47&quot;&gt;adxl343&lt;&#x2F;a&gt; accelerometer and support for using the accelerometer to detect the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;atsamd-rs&#x2F;atsamd&#x2F;pull&#x2F;48&quot;&gt;device&#x27;s orientation&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to add it to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2019-04-05.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h2&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;!-- TODO fill in the numbers before release --&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Diff&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#peripheral-access-crates&quot;&gt;Peripheral Access Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;18&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;~&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;19&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;~&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;13&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;~&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;21&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;63&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+2&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#no-std-crates&quot;&gt;no-std crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;25&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 16</title>
                <pubDate>Wed, 06 Mar 2019 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-16/</link>
                <guid>https://blog.rust-embedded.org/newsletter-16/</guid>
                <description>&lt;p&gt;This is the sixteenth newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;the-embedded-working-group-newsletter-16&#x2F;25987&quot;&gt;users.rust-lang.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustembedded&#x2F;status&#x2F;1103416332786302977&quot;&gt;on twitter&lt;&#x2F;a&gt;, or &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;ay4js3&#x2F;embedded_wg_newsletter_16_not_yet_awesome&#x2F;&quot;&gt;on reddit&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2019-03-20-newsletter-17.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, send us a pull request!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Know of something that isn&#x27;t awesome in embedded Rust yet? Let us know by adding it to the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;not-yet-awesome-embedded-rust&quot;&gt;Not &lt;em&gt;Yet&lt;&#x2F;em&gt; Awesome Embedded Rust List&lt;&#x2F;a&gt;!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;The Embedded WG continues to receive &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;showcase#submit-your-project&quot;&gt;submissions&lt;&#x2F;a&gt; for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;showcase&quot;&gt;the embedded showcase&lt;&#x2F;a&gt;. We are looking for cool embedded Rust projects (applications, not libraries or tools) with visuals (pictures or videos) that can serve as examples of what can be done in Rust.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.42technology.com&quot;&gt;42 Technology&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;42Technology&#x2F;status&#x2F;1099009843967471617&quot;&gt;announced&lt;&#x2F;a&gt; that they have got Rust running on the new Cortex-M33 powered &lt;a href=&quot;https:&#x2F;&#x2F;www.nordicsemi.com&#x2F;Products&#x2F;Low-power-cellular-IoT&#x2F;nRF9160&quot;&gt;Nordic nRF9160 LTE SiP&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;bitshiftmask&quot;&gt;James Munns&lt;&#x2F;a&gt; has posted the &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=S0VI70nY6Vo&quot;&gt;first video&lt;&#x2F;a&gt; of a &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;playlist?list=PLX44HkctSkTewrL9frlUz0yeKLKecebT1&quot;&gt;series of streams&lt;&#x2F;a&gt; developing a home wireless sensor node network. The stream focuses on teaching embedded, Rust, and IoT topics.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;hannobraun&quot;&gt;@hannobraun&lt;&#x2F;a&gt; published &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;dwm1001&quot;&gt;&lt;code&gt;dwm1001&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, a board support crate for the Decawave DWM1001 module, which features a Nordic nRF52832 microcontroller and a Decawave DW1000 radio transceiver.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;The RTFM (Real Time For the Masses) team has released &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;cortex-m-rtfm&quot;&gt;&lt;code&gt;cortex-m-rtfm&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;cortex-m-rtfm&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md#v042---2019-02-27&quot;&gt;v0.4.2&lt;&#x2F;a&gt;; the most important new feature in this release are reproducible builds. They are also looking for user input on several open &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;cortex-m-rtfm&#x2F;issues?q=is%3Aissue+is%3Aopen+label%3ARFC&quot;&gt;RFCs&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;&quot;&gt;@japaric&lt;&#x2F;a&gt; has &lt;a href=&quot;https:&#x2F;&#x2F;mobile.twitter.com&#x2F;japaricious&#x2F;status&#x2F;1102275637606338562&quot;&gt;released&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;cargo-call-stack&quot;&gt;&lt;code&gt;cargo-call-stack&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;cargo-call-stack&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md#v011---2019-03-03&quot;&gt;v0.1.1&lt;&#x2F;a&gt;. &lt;code&gt;cargo-call-stack&lt;&#x2F;code&gt; is a static, whole program stack analysis tool; this version ships many new improvements: filtering, cleaner graphs, support for programs that use recursion, dynamic dispatch or function pointer calls, plus numerous bug fixes.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jamwaffles&quot;&gt;@jamwaffles&lt;&#x2F;a&gt; has published version v0.4.7 of the &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;embedded-graphics&#x2F;0.4.7&quot;&gt;&lt;code&gt;embedded-graphics&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; crate. This version ships with BMP support! For more details read &lt;a href=&quot;https:&#x2F;&#x2F;wapl.es&#x2F;rust&#x2F;2019&#x2F;03&#x2F;04&#x2F;embedded-graphics-0.4.7-bmp-support.html&quot;&gt;the announcement blog post&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tarcieri&quot;&gt;@tarcieri&lt;&#x2F;a&gt; extracted the &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;micromath&quot;&gt;&lt;code&gt;micromath&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; crate out of the &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;accelerometer&quot;&gt;&lt;code&gt;accelerometer&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; crate. It provides a fast, embedded-friendly arithmetic library (utilizing approximations which trade precision for improved performance and reduced code size), 2D&#x2F;3D vector types, and statistical analysis functions.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;shella&quot;&gt;@shella&lt;&#x2F;a&gt; created &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;atsamd-rs&#x2F;atsamd&#x2F;pull&#x2F;55&quot;&gt;&lt;code&gt;pyportal&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, a board support crate for the &lt;a href=&quot;https:&#x2F;&#x2F;www.adafruit.com&#x2F;product&#x2F;4116&quot;&gt;Adafruit PyPortal&lt;&#x2F;a&gt;, which features an ILI9341 LCD touchscreen and ESP32 Wifi controller.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the next Embedded WG Newsletter, make sure to add it to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2019-03-20-newsletter-17.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h2&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Diff&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#peripheral-access-crates&quot;&gt;Peripheral Access Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;19&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+3&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;18&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+3&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;13&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;~&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;20&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;61&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+2&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#no-std-crates&quot;&gt;no-std crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;24&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 15</title>
                <pubDate>Wed, 20 Feb 2019 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-15/</link>
                <guid>https://blog.rust-embedded.org/newsletter-15/</guid>
                <description>&lt;p&gt;This is the fifteenth newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;the-embedded-working-group-newsletter-15&#x2F;25481&quot;&gt;users.rust-lang.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustembedded&#x2F;status&#x2F;1098218372469268480&quot;&gt;on twitter&lt;&#x2F;a&gt;, or &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;asohul&#x2F;embedded_wg_newsletter_15_ewg_all_hands_the&#x2F;&quot;&gt;on reddit&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2019-03-06-newsletter-16.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, send us a pull request!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;embedded-at-rust-all-hands-2019&quot;&gt;Embedded at Rust All Hands 2019&lt;&#x2F;h2&gt;
&lt;p&gt;Some members of the Embedded Working Group attended the Rust All Hands two weeks ago. There they had the chance to discuss the needs of the embedded community (as identified in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;256&quot;&gt;this survey&lt;&#x2F;a&gt;) with the different Rust teams and other WGs. Here&#x27;s a summary of what was discussed:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&quot;const generics&quot;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The ability to parameterize over values, for example you could use this feature to write a fixed capacity &lt;code&gt;Vec&lt;&#x2F;code&gt;: &lt;code&gt;struct Vec&amp;lt;T, const N: usize&amp;gt; { buffer: [T; N], len: usize }&lt;&#x2F;code&gt;. There are a few compiler refactors going on that are required to land this in nightly so the status is &quot;WIP&quot;. We&#x27;ll have future meetings with the compiler team to try to identify and prioritize the parts of the feature that embedded developers need.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;const fn&lt;&#x2F;code&gt; with trait bounds on stable.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;For example, &lt;code&gt;impl&amp;lt;T&amp;gt; Struct&amp;lt;T&amp;gt; where T: Trait { pub const fn new() -&amp;gt; Self { .. } }&lt;&#x2F;code&gt;. A lengthy &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-rfcs&#x2F;const-eval&#x2F;pull&#x2F;8&quot;&gt;pre-RFC discussion&lt;&#x2F;a&gt; has concluded and a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rfcs&#x2F;pull&#x2F;2632&quot;&gt;proper RFC has been proposed&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;core::mem::MaybeUninit&lt;&#x2F;code&gt; on stable.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The plan is to stabilize a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;issues&#x2F;53491#issuecomment-463753719&quot;&gt;minimal, uncontroversial subset of the API&lt;&#x2F;a&gt; to make this available on stable ASAP.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;std::io&lt;&#x2F;code&gt; in &lt;code&gt;core&lt;&#x2F;code&gt; &#x2F; &lt;code&gt;alloc&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;It&#x27;s not possible to move &lt;code&gt;std::io::{Read,Write}&lt;&#x2F;code&gt; into &lt;code&gt;alloc&lt;&#x2F;code&gt; or &lt;code&gt;core&lt;&#x2F;code&gt; because the API depends on OS specific bits (e.g. &lt;code&gt;last_os_error&lt;&#x2F;code&gt;). An option may be to add a new set of &lt;code&gt;Read&lt;&#x2F;code&gt; &#x2F; &lt;code&gt;Write&lt;&#x2F;code&gt; traits to &lt;code&gt;core&lt;&#x2F;code&gt;, maybe with associated error types, and then try to bridge these to &lt;code&gt;std::io::{Read,Write}&lt;&#x2F;code&gt; using blanket implementations &#x2F; super traits, but this needs more research.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;fix &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;cargo&#x2F;issues&#x2F;5730&quot;&gt;rust-lang&#x2F;cargo#5730&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;This bug breaks &lt;code&gt;no_std&lt;&#x2F;code&gt; builds that use build scripts unless the authors of the build dependencies are aware of the issue and actively work around it. The Cargo team is well aware of the problem. Unfortunately, it&#x27;s hard to fix and the fix will likely be opt-in because it changes the current semantics.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Stabilize RFC 2282 - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;issues&#x2F;48683&quot;&gt;&quot;Cargo profile dependencies&quot;&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;This feature lets you optimize dependencies when using the &lt;code&gt;dev&lt;&#x2F;code&gt; profile; useful to keep &lt;code&gt;dev&lt;&#x2F;code&gt; binaries small enough to fit in Flash without sacrificing all debuggability. A new &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;cargo&#x2F;pull&#x2F;6577&quot;&gt;&lt;code&gt;build&lt;&#x2F;code&gt; profile&lt;&#x2F;a&gt; will be added to cover the configuration of proc macros, build scripts, compiler plugins and their dependencies. The new profile solves the remaining unresolved question around RFC 2282.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Stabilize &lt;code&gt;core::arch::arm&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;This module contains functions for instructions like &lt;code&gt;wfi&lt;&#x2F;code&gt; and &lt;code&gt;nop&lt;&#x2F;code&gt;, and SIMD instructions; stabilizing this removes the pressure for stable inline assembly (&lt;code&gt;asm!&lt;&#x2F;code&gt;). A member of the libs team is interested in this and will help us push it towards the finish line. &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;stdsimd&#x2F;pull&#x2F;557&quot;&gt;A PR in this space&lt;&#x2F;a&gt; has recently landed.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Asserts in &lt;code&gt;const fn&lt;&#x2F;code&gt; context become compiler errors.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;We understood that there are still several design &#x2F; implementation issues that need to be discussed before this is stabilized, but in the meantime you can use the perma-unstable &lt;code&gt;-Z unleash-the-miri-inside-of-you&lt;&#x2F;code&gt; flag to do all sort of stuff in const context.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;std-aware Cargo.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jamesmunns&quot;&gt;@jamesmunns&lt;&#x2F;a&gt; has written a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jamesmunns&#x2F;rfcs&#x2F;pull&#x2F;1&quot;&gt;pre-rfc&lt;&#x2F;a&gt; for an incremental implementation of this feature based on our discussions with people from the libs and Cargo teams and the WASM WG.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Improve searching for &lt;code&gt;no_std&lt;&#x2F;code&gt; crates on crates.io.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The backend supports searching within a category (like the &lt;code&gt;no_std&lt;&#x2F;code&gt; category) but there&#x27;s no UI for it right now. This and fixing a bug where searches only return items found until a exact match was found (instead of returning all relevant matches) are in the crates.io team TODO list.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Fix: infinite loops (e.g. &lt;code&gt;loop {}&lt;&#x2F;code&gt;) are lowered to an abort instruction.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Ideally, this should be fixed in LLVM proper but it&#x27;s hard to fix. It&#x27;s possible to fix this in rustc but the fix is likely to regress the performance of &lt;code&gt;loop&lt;&#x2F;code&gt;s. The compiler team will follow up with two unstable flags to evaluate the (performance) impact of fixing this. The first flag applies the fix to only &lt;code&gt;loop&lt;&#x2F;code&gt;s in return position of divergent function and the second flag applies the fix to all &lt;code&gt;loop&lt;&#x2F;code&gt;s.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Math support in core&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;That is &lt;code&gt;0f32.sin()&lt;&#x2F;code&gt; should &quot;Just Work&quot; in &lt;code&gt;no_std&lt;&#x2F;code&gt; crates. There are a few questions about how to best implement this without degrading performance of applications that link to &lt;code&gt;std&lt;&#x2F;code&gt; (we want those to use the arch optimized routines in e.g. glibc&#x27;s libm instead of the generic Rust implementation) and we need a champion to do the research.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Cargo build hooks&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;This refers to the ability to run custom code after &lt;code&gt;cargo build&lt;&#x2F;code&gt;. We covered use cases, their requirements and discussed the trade-offs of a more general Cargo tasks (e.g. &lt;code&gt;cargo $task&lt;&#x2F;code&gt;) mechanism vs a more targeted post-build script (e.g. &lt;code&gt;post-build.rs&lt;&#x2F;code&gt;) mechanism. Expect more news (a (pre-)RFC) from the WASM WG on this front.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Slimmer &lt;code&gt;core::fmt&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The current implementation of &lt;code&gt;core::fmt&lt;&#x2F;code&gt; uses trait objects and function pointers to make all uses of &lt;code&gt;core::fmt&lt;&#x2F;code&gt; fast to compile but this makes &lt;code&gt;core::fmt&lt;&#x2F;code&gt; impossible to inline which makes &lt;code&gt;no_std&lt;&#x2F;code&gt; programs that use formatting large in (binary) size. It might be possible to leverage std-aware Cargo to fix this: we could add a Cargo feature to &lt;code&gt;core&lt;&#x2F;code&gt; to replace the current implementation with one that&#x27;s fully inlineable but as featureful as the current one -- this should produce smaller binaries.&lt;&#x2F;p&gt;
&lt;p&gt;For a bit more of detail you can check the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;blob&#x2F;master&#x2F;minutes&#x2F;2019-02-12.irc.log&quot;&gt;logs&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;blob&#x2F;master&#x2F;minutes&#x2F;2019-02-12.md#notes-from-rust-all-hands&quot;&gt;minutes&lt;&#x2F;a&gt; from two meetings ago; they include our notes from the All Hands&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;The Embedded WG has started receiving &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;showcase#submit-your-project&quot;&gt;submissions&lt;&#x2F;a&gt; for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;showcase&quot;&gt;the embedded showcase&lt;&#x2F;a&gt;! We are looking for cool embedded Rust projects with visuals (pictures or videos) that can serve as examples of what can be done in Rust.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;stm32-rs&quot;&gt;stm32-rs&lt;&#x2F;a&gt; organization has emerged to collate work on STM32 crates.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;Similarly, the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;lpc-rs&quot;&gt;lpc-rs&lt;&#x2F;a&gt; organization has emerged to work on LPC microcontrollers by NXP.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;Also, the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nrf-rs&quot;&gt;nrf-rs&lt;&#x2F;a&gt; organization has emerged to focus on the nRF family of microcontrollers by Nordic Semiconductors.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;adamgreig&quot;&gt;@adamgreig&lt;&#x2F;a&gt; has released an experimental PAC (Peripheral Access Crate) alternative for STM32 microcontrollers: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;adamgreig&#x2F;stm32ral&quot;&gt;stm32ral&lt;&#x2F;a&gt; that compiles in about 3 seconds. (PACs are known for compile times in the order of hundreds of seconds.)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;As of &lt;code&gt;nightly-2019-02-05&lt;&#x2F;code&gt; the &lt;a href=&quot;https:&#x2F;&#x2F;docs.rust-embedded.org&#x2F;book&#x2F;index.html&quot;&gt;embedded Rust Book&lt;&#x2F;a&gt; is included as part of the docs shipped with the Rust toolchain! &lt;a href=&quot;https:&#x2F;&#x2F;doc.rust-lang.org&#x2F;nightly&#x2F;#embedded-systems&quot;&gt;This is the online version&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;The Rust compiler now has &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;pull&#x2F;58406&quot;&gt;cross compilation support for 64-bit RISCV&lt;&#x2F;a&gt;. Install the bare metal targets with &lt;code&gt;rustup target&lt;&#x2F;code&gt; (see &lt;code&gt;rustup target list&lt;&#x2F;code&gt;).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;The Rust compiler also gained &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;pull&#x2F;56769&quot;&gt;compilation support for x86_64 UEFI&lt;&#x2F;a&gt; in the form of the &lt;code&gt;x86_64-unknown-uefi&lt;&#x2F;code&gt; target.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;Formatting numbers with &lt;code&gt;core::fmt&lt;&#x2F;code&gt; has &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;pull&#x2F;58272&quot;&gt;become slimmer&lt;&#x2F;a&gt;. Some users have reported binary size reductions of up to 26% (800B) in ARMv6-M binaries.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;copterust&#x2F;&quot;&gt;copterust org&lt;&#x2F;a&gt; has &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&#x2F;pull&#x2F;142&quot;&gt;shared a bunch of driver crates&lt;&#x2F;a&gt; for interfacing sensors commonly found in flight controllers (drones).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to add it to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;edit&#x2F;master&#x2F;content&#x2F;2019-03-06-newsletter-16.md&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Version v0.4.1 of &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;cortex-m-rtfm&quot;&gt;Real Time For the Masses&lt;&#x2F;a&gt; (RTFM), a concurrency framework for building real time systems, has been released! This version &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;cortex-m-rtfm&#x2F;pull&#x2F;140&quot;&gt;fixes a soundness hole&lt;&#x2F;a&gt; and includes a &lt;a href=&quot;https:&#x2F;&#x2F;japaric.github.io&#x2F;cortex-m-rtfm&#x2F;book&#x2F;ru&#x2F;index.html&quot;&gt;Russian translation&lt;&#x2F;a&gt; of the RTFM book.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jamwaffles&quot;&gt;@jamwaffles&lt;&#x2F;a&gt; has &lt;a href=&quot;https:&#x2F;&#x2F;mobile.twitter.com&#x2F;jam_waffles&#x2F;status&#x2F;1095784282189189121&quot;&gt;published&lt;&#x2F;a&gt; a driver crate for the SH1106, an OLED display, and an &lt;a href=&quot;https:&#x2F;&#x2F;wapl.es&#x2F;electronics&#x2F;rust&#x2F;2019&#x2F;02&#x2F;13&#x2F;sh1106-driver.html&quot;&gt;introduction blog post&lt;&#x2F;a&gt; for their crate.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;thejpster&quot;&gt;@thejpster&lt;&#x2F;a&gt; has &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;ascvls&#x2F;introducing_embeddedsdmmc_a_purerust_no_std_sd&#x2F;&quot;&gt;released&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;embedded-sdmmc&quot;&gt;&lt;code&gt;embedded-sdmmc&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, a pure-Rust #[no_std] SD card and FAT16&#x2F;FAT32 library&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;hannobraun&quot;&gt;@hannobraun&lt;&#x2F;a&gt; has published two crates: &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;ieee802154&quot;&gt;&lt;code&gt;ieee802154&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, a partial implementation of the IEEE 802.15.4 standard, and &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;dw1000&quot;&gt;&lt;code&gt;dw1000&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, an embedded-hal driver for the Decawave DW1000 wireless transceiver chip.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h2&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Diff&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#device-crates&quot;&gt;Device Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;16&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;15&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+2&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;13&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+2&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;19&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+3&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;59&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+13&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#no-std-crates&quot;&gt;no-std crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;23&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+6&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
</description>
            </item>
        
            <item>
                <title>This Year in Embedded Rust</title>
                <pubDate>Wed, 14 Nov 2018 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/this-year-in-embedded-rust/</link>
                <guid>https://blog.rust-embedded.org/this-year-in-embedded-rust/</guid>
                <description>&lt;p&gt;This year the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; set out to build the solid foundation that the
embedded Rust ecosystem requires to thrive. As we approach the date of the 2018
edition release we reflect on our progress and share our achievements with you
in this post.&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;the-embedded-wg-this-year-in-embedded-rust&#x2F;22263&quot;&gt;users.rust-lang.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustembedded&#x2F;status&#x2F;1062664608538918913&quot;&gt;on twitter&lt;&#x2F;a&gt;, or &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;9wz716&#x2F;the_embedded_wg_this_year_in_embedded_rust&#x2F;&quot;&gt;on reddit&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;h2 id=&quot;embedded-rust-on-stable&quot;&gt;Embedded Rust on stable&lt;&#x2F;h2&gt;
&lt;p&gt;Stability -- AKA &quot;my crate should not break when moving to a newer toolchain&quot; --
was the single most requested feature by the embedded community during the 2018
roadmap planning phase.&lt;&#x2F;p&gt;
&lt;p&gt;Embedded development has been tied to the nightly
channel since its very beginning, and the people that have been doing embedded
development for a while have endured many breaking changes. Thankfully, those
days are over: Rust 1.30 marks the first stable release where you can build
fully working embedded programs without relying on unstable features.&lt;&#x2F;p&gt;
&lt;p&gt;Furthermore, we now have some &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;pull&#x2F;53996&quot;&gt;unit&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;pull&#x2F;53190&quot;&gt;tests&lt;&#x2F;a&gt; that check embedded code in the
compiler test suite so unintentional breakage will be caught before it makes its
way into the nightly channel.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;a-smooth-starting-point&quot;&gt;A smooth starting point&lt;&#x2F;h2&gt;
&lt;p&gt;&quot;How do I get started with embedded Rust?&quot; has been a common question on IRC for
a long time. It has not been an easy question to answer, though: maintaining
documentation that relies on unstable features for a long period of time has
been an uphill battle so newcomers have often run into outdated docs.&lt;&#x2F;p&gt;
&lt;p&gt;But now that stable embedded Rust is here we have put together an authoritative
resource for getting started with embedded Rust: &lt;a href=&quot;https:&#x2F;&#x2F;docs.rust-embedded.org&#x2F;book&quot;&gt;The Embedded Rust Book&lt;&#x2F;a&gt;. We
have put a lot of effort in making the first experience as frictionless as
possible with the help of &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;cortex-m-quickstart&quot;&gt;templates&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;cargo-binutils&quot;&gt;tooling&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;The embedded Rust book is not just a getting started guide; it&#x27;s also meant
to be the document that teaches you how to effectively use the language to write
correct embedded software. We are currently amassing all our hard earned
experience into patterns and tips that we are adding to this book.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;resources-for-everyone&quot;&gt;Resources for everyone&lt;&#x2F;h2&gt;
&lt;p&gt;The Embedded Rust Book is aimed at people that have some experience with
embedded development, but we recognize that Rust has great potential for
becoming people&#x27;s first choice for getting their feet wet with embedded
development so we have updated and will continue to work on resources, like &lt;a href=&quot;https:&#x2F;&#x2F;docs.rust-embedded.org&#x2F;discovery&quot;&gt;the
Discovery book&lt;&#x2F;a&gt;, that are aimed at that demographic.&lt;&#x2F;p&gt;
&lt;p&gt;We also recognize that the target audience for embedded Rust has different
levels of expertise with embedded systems and a varied set of interests
so we are also building advances resources like &lt;a href=&quot;https:&#x2F;&#x2F;docs.rust-embedded.org&#x2F;embedonomicon&quot;&gt;the embedonomicon&lt;&#x2F;a&gt;
and collecting more targeted resources, like crates, in the
&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;awesome-embedded-rust&lt;&#x2F;a&gt; list. You can find these and other of our resources in
our &lt;a href=&quot;https:&#x2F;&#x2F;docs.rust-embedded.org&quot;&gt;docs webpage&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;an-organized-community-effort&quot;&gt;An organized community effort&lt;&#x2F;h2&gt;
&lt;p&gt;All this has been accomplished with the hard work of many volunteers, both &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg#organization&quot;&gt;WG
members&lt;&#x2F;a&gt; and other community members. The WG members, in particular, are
committed to maintaining the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg#projects-1&quot;&gt;core crates&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg#projects-8&quot;&gt;documentation&lt;&#x2F;a&gt; that the
ecosystem relies on. All these resources have been taken under the umbrella of
the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&quot;&gt;rust-embedded&lt;&#x2F;a&gt; organization.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;wg-teams&quot;&gt;WG teams&lt;&#x2F;h2&gt;
&lt;p&gt;The embedded space is huge: there are several architectures used in
this space, many application areas, and embedded developers work with different
sets of constraints: real-time constraints, memory constraints, energy &#x2F; power
constraints, etc.&lt;&#x2F;p&gt;
&lt;p&gt;For this reason we have been creating and growing specialized teams within the
WG by adding members with different areas of expertise. This ensures that we
have different perspectives when making API design decisions in core crates and
when communicating the needs of the embedded community to the other Rust teams.
Having specialized teams also means that the crates developed by the org can be
assigned to the people with the right technical background.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;on-the-upcoming-2018-edition&quot;&gt;On the upcoming 2018 edition&lt;&#x2F;h2&gt;
&lt;p&gt;In this last sprint towards the 2018 edition we are focusing our efforts in
our &lt;a href=&quot;https:&#x2F;&#x2F;docs.rust-embedded.org&quot;&gt;documentation&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;p&gt;You can help us by proofreading our docs, reporting errors, giving feedback on
the existing content, requesting new topics and writing about topics that have
not yet been covered. Every little bit of help is greatly appreciated!&lt;&#x2F;p&gt;
&lt;p&gt;One important note: our documentation makes use of the 2018 edition which
requires you to use the beta channel until 1.31 is released in early December.
We suggest that you use the beta channel until then to get the best experience.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;beyond-2018&quot;&gt;Beyond 2018&lt;&#x2F;h2&gt;
&lt;p&gt;Our work doesn&#x27;t stop the day Rust 1.31 comes out; the 2018 edition is just the
starting line of embedded Rust. As we continue to learn how to effectively use
Rust for embedded development we&#x27;ll continue to refine and expand our
documentation as well as the core crates we maintain and develop.&lt;&#x2F;p&gt;
&lt;p&gt;Also, at this point in time ARM Cortex-M is our most mature target architecture
and the majority of crates on crates.io target this architecture, but we have
laid the groundwork for supporting other targets like bare metal ARM Cortex-A,
ARM Cortex-R, MSP430 and RISCV. We&#x27;ll continue to work on getting these
targets on parity with the ARM Cortex-M target during the next year.&lt;&#x2F;p&gt;
&lt;p&gt;Finally, we&#x27;d love to hear what &lt;strong&gt;you&lt;&#x2F;strong&gt; would like to see happen in the embedded
space in 2019. We are collecting a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;256&quot;&gt;&quot;wishlist&quot;&lt;&#x2F;a&gt; of things the embedded community
would like to see get done, fixed and &#x2F; or stabilized in 2019. Need some API in
core to be stabilized? Would like to get some Cargo bug &#x2F; papercut fixed? Let us
know and we&#x27;ll look into making it happen! We&#x27;ll use this data to set out an
embedded Rust roadmap for 2019.&lt;&#x2F;p&gt;
&lt;p&gt;Here&#x27;s to a 2019 with &lt;em&gt;more&lt;&#x2F;em&gt; embedded Rust success stories (yes, &quot;more&quot;; wait
for the upcoming revamped rust-lang website ;-)). Happy embedded hacking!&lt;&#x2F;p&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 14</title>
                <pubDate>Sun, 28 Oct 2018 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-14/</link>
                <guid>https://blog.rust-embedded.org/newsletter-14/</guid>
                <description>&lt;p&gt;This is the fourteenth newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;p&gt;This is a special &quot;spotlight&quot; edition of the newsletter, where we look at a few topics in a bit more detail. Let us know what you think of the new format, and if there is anything you&#x27;d like to see included in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;issues&#x2F;22&quot;&gt;the next newsletter&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;the-embedded-working-group-newsletter-14&#x2F;21795&quot;&gt;users.rust-lang.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustembedded&#x2F;status&#x2F;1057222850787053568&quot;&gt;on twitter&lt;&#x2F;a&gt;, or &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;9smq6f&#x2F;embedded_wg_newsletter_14_spotlight_edition&#x2F;&quot;&gt;on reddit&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;h2 id=&quot;embedded-rust-applications-on-stable&quot;&gt;Embedded Rust Applications on Stable!&lt;&#x2F;h2&gt;
&lt;hr&gt;
&lt;blockquote class=&quot;twitter-tweet&quot; data-lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Rust 1.30 is here! Proc macros, no_std binaries, and a progress bar for cargo! 🎊🎉🦀 &lt;a href=&quot;https:&#x2F;&#x2F;t.co&#x2F;IXm5xFYlhU&quot;&gt;https:&#x2F;&#x2F;t.co&#x2F;IXm5xFYlhU&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;&amp;mdash; Rust Language (@rustlang) &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustlang&#x2F;status&#x2F;1055499747056852993?ref_src=twsrc%5Etfw&quot;&gt;October 25, 2018&lt;&#x2F;a&gt;&lt;&#x2F;blockquote&gt;
&lt;script async src=&quot;https:&#x2F;&#x2F;platform.twitter.com&#x2F;widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;&#x2F;script&gt;
&lt;p&gt;Now that &lt;code&gt;#[panic_handler]&lt;&#x2F;code&gt; is stabilized in &lt;a href=&quot;https:&#x2F;&#x2F;blog.rust-lang.org&#x2F;2018&#x2F;10&#x2F;25&#x2F;Rust-1.30.0.html&quot;&gt;1.30&lt;&#x2F;a&gt;, you can write Cortex-M bare-metal applications with the stable compiler. All our Rust Embedded crates, such as &lt;code&gt;cortex-m&lt;&#x2F;code&gt;, &lt;code&gt;cortex-m-rt&lt;&#x2F;code&gt; and &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; should be ready to use on stable, but please note our two tutorial books &lt;a href=&quot;https:&#x2F;&#x2F;rust-embedded.github.io&#x2F;discovery&#x2F;&quot;&gt;Discovery&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;rust-embedded.github.io&#x2F;book&#x2F;&quot;&gt;The Embedded Rust Book&lt;&#x2F;a&gt; still require 1.30 beta or 1.31 beta as they use 2018 edition syntax (which isn&#x27;t stabilized until the 1.31 release).&lt;&#x2F;p&gt;
&lt;p&gt;If you are able to trial 1.31 beta, you can help us test:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Minimal &lt;code&gt;const&lt;&#x2F;code&gt; functions (useful for initializing static variables)&lt;&#x2F;li&gt;
&lt;li&gt;2018 edition syntax (including changes to &lt;code&gt;use&lt;&#x2F;code&gt; and &lt;code&gt;extern crate&lt;&#x2F;code&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;the-newest-embedded-wg-team-cortex-a&quot;&gt;The Newest Embedded WG Team: Cortex-A!&lt;&#x2F;h2&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;..&#x2F;screenshot-cortex-a.png&quot; alt=&quot;Screenshot of Cortex-A RFC&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;The Embedded Working Group has launched a Cortex-A team, to focus on supporting developers working on bare-metal, micro kernel, and other low-level tasks using ARM&#x27;s Cortex-A series of microprocessors.&lt;&#x2F;p&gt;
&lt;p&gt;The team kicked off with four members: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;andre-richter&quot;&gt;@andre-richter&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;parched&quot;&gt;@parched&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;raw-bin&quot;&gt;@raw-bin&lt;&#x2F;a&gt;, and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wizofe&quot;&gt;@wizofe&lt;&#x2F;a&gt;, and have already started assembling initial &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;milestone&#x2F;5&quot;&gt;goals for their team&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-monotron-visits-rust-belt-rust&quot;&gt;The Monotron Visits Rust Belt Rust&lt;&#x2F;h2&gt;
&lt;hr&gt;
&lt;blockquote class=&quot;twitter-tweet&quot; data-conversation=&quot;none&quot; data-lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Astonishing. Smashed my high score! &lt;a href=&quot;https:&#x2F;&#x2F;t.co&#x2F;WG9FXc8Kao&quot;&gt;pic.twitter.com&#x2F;WG9FXc8Kao&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;&amp;mdash; Jonathan Pallant (@therealjpster) &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;therealjpster&#x2F;status&#x2F;1053698944360951813?ref_src=twsrc%5Etfw&quot;&gt;October 20, 2018&lt;&#x2F;a&gt;&lt;&#x2F;blockquote&gt;
&lt;script async src=&quot;https:&#x2F;&#x2F;platform.twitter.com&#x2F;widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;&#x2F;script&gt;
&lt;p&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;thejpster&quot;&gt;@thejpster&lt;&#x2F;a&gt;&#x27;s project, the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;thejpster&#x2F;monotron&quot;&gt;monotron&lt;&#x2F;a&gt;, travelled to Ann Arbor Michigan for &lt;a href=&quot;https:&#x2F;&#x2F;rust-belt-rust.com&#x2F;&quot;&gt;Rust Belt Rust 2018&lt;&#x2F;a&gt;. Since its &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=pTEYqpcQ6lg&quot;&gt;last conference appearance&lt;&#x2F;a&gt;, it has gained a whole new &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;therealjpster&#x2F;status&#x2F;1055187256091332608&quot;&gt;list of features&lt;&#x2F;a&gt;, including a serial application loader, a 3 channel wave table synthesizer, Atari Joystick support, and more!&lt;&#x2F;p&gt;
&lt;p&gt;Check out the video above for a demo of Snake on the monotron hardware.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;peripheral-ownership-woes-not-with-shared-bus&quot;&gt;Peripheral Ownership Woes? Not With &lt;code&gt;shared-bus&lt;&#x2F;code&gt;!&lt;&#x2F;h2&gt;
&lt;hr&gt;
&lt;pre data-lang=&quot;rust&quot; style=&quot;background-color:#2b303b;color:#c0c5ce;&quot; class=&quot;language-rust &quot;&gt;&lt;code class=&quot;language-rust&quot; data-lang=&quot;rust&quot;&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;extern crate&lt;&#x2F;span&gt;&lt;span&gt; shared_bus;
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#65737e;&quot;&gt;&#x2F;&#x2F; Create your bus peripheral as usual:
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#65737e;&quot;&gt;&#x2F;&#x2F; let i2c = I2c::i2c1(dp.I2C1, (scl, sda), 90.khz(), clocks, &amp;amp;mut rcc.apb1);
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; manager = shared_bus::CortexMBusManager::new(i2c);
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#65737e;&quot;&gt;&#x2F;&#x2F; You can now acquire bus handles:
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;let mut&lt;&#x2F;span&gt;&lt;span&gt; handle = manager.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#96b5b4;&quot;&gt;acquire&lt;&#x2F;span&gt;&lt;span&gt;();
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#65737e;&quot;&gt;&#x2F;&#x2F; handle implements `i2c::{Read, Write, WriteRead}`, depending on the
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#65737e;&quot;&gt;&#x2F;&#x2F; implementations of the underlying peripheral
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#65737e;&quot;&gt;&#x2F;&#x2F; Now, this works! :+1:
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; port_a = Pcf8574(manager.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#96b5b4;&quot;&gt;acquire&lt;&#x2F;span&gt;&lt;span&gt;(), &lt;&#x2F;span&gt;&lt;span style=&quot;color:#d08770;&quot;&gt;0x39&lt;&#x2F;span&gt;&lt;span&gt;).&lt;&#x2F;span&gt;&lt;span style=&quot;color:#96b5b4;&quot;&gt;unwrap&lt;&#x2F;span&gt;&lt;span&gt;();
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; port_b = Pcf8574(manager.&lt;&#x2F;span&gt;&lt;span style=&quot;color:#96b5b4;&quot;&gt;acquire&lt;&#x2F;span&gt;&lt;span&gt;(), &lt;&#x2F;span&gt;&lt;span style=&quot;color:#d08770;&quot;&gt;0x38&lt;&#x2F;span&gt;&lt;span&gt;).&lt;&#x2F;span&gt;&lt;span style=&quot;color:#96b5b4;&quot;&gt;unwrap&lt;&#x2F;span&gt;&lt;span&gt;();
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;In most &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; compatible drivers, the driver takes either ownership or a mutable reference to the peripheral used to interact with a component, such as I2C or SPI. For some protocols, such as I2C, which might have multiple devices connected to the same peripheral, managing ownership can be difficult (see &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;embedded-hal&#x2F;issues&#x2F;35&quot;&gt;embedded-hal&#x2F;35&lt;&#x2F;a&gt; for discussion).&lt;&#x2F;p&gt;
&lt;p&gt;To address this, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Rahix&quot;&gt;@Rahix&lt;&#x2F;a&gt; developed &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Rahix&#x2F;shared-bus&quot;&gt;shared-bus&lt;&#x2F;a&gt;, a crate which provides safe shared access to these peripherals through the use of a mutex. This allows for access of the underlying peripheral in as many drivers as you need! Check out the &lt;a href=&quot;https:&#x2F;&#x2F;blog.rahix.de&#x2F;001-shared-bus&#x2F;&quot;&gt;release blog post&lt;&#x2F;a&gt; for more details, and for examples on how to use this for your projects.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-embedded-rust-community-is-growing&quot;&gt;The Embedded Rust Community is Growing!&lt;&#x2F;h2&gt;
&lt;hr&gt;
&lt;blockquote class=&quot;twitter-tweet&quot; data-lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Happy Tuesday! Quick poll: What are you using &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;hashtag&#x2F;embedded?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#embedded&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustlang?ref_src=twsrc%5Etfw&quot;&gt;@rustlang&lt;&#x2F;a&gt; for right now?&lt;br&gt;&lt;br&gt;RTs appreciated!&lt;&#x2F;p&gt;&amp;mdash; Rust Embedded Working Group (@rustembedded) &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustembedded&#x2F;status&#x2F;1052189142065405952?ref_src=twsrc%5Etfw&quot;&gt;October 16, 2018&lt;&#x2F;a&gt;&lt;&#x2F;blockquote&gt;
&lt;script async src=&quot;https:&#x2F;&#x2F;platform.twitter.com&#x2F;widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;&#x2F;script&gt;
&lt;p&gt;As we get closer to our goal of stable embedded development with Rust for the 2018 edition launch, the embedded community is ramping up. We did a quick twitter poll which received hundreds of responses, and heard from developers using or evaluating embedded rust for personal and work projects.&lt;&#x2F;p&gt;
&lt;p&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; has also grown, starting off this year with 8 developers on a single team, to a group of &lt;strong&gt;27 developers&lt;&#x2F;strong&gt; across &lt;strong&gt;11 teams&lt;&#x2F;strong&gt;, each with their own area of focus within the embedded rust space.&lt;&#x2F;p&gt;
&lt;p&gt;Now is a great time to start working with Embedded Rust, and we can&#x27;t wait to see what the next year brings!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h2&gt;
&lt;hr&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Diff&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#device-crates&quot;&gt;Device Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;16&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;13&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;11&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;16&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;46&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+6&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#no-std-crates&quot;&gt;no-std crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;17&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+3&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 13</title>
                <pubDate>Tue, 09 Oct 2018 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-13/</link>
                <guid>https://blog.rust-embedded.org/newsletter-13/</guid>
                <description>&lt;p&gt;This is the thirteenth newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;the-embedded-working-group-newsletter-13&#x2F;21137&quot;&gt;users.rust-lang.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustembedded&#x2F;status&#x2F;1049739952601395201&quot;&gt;on twitter&lt;&#x2F;a&gt;, or &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;9ms5jk&#x2F;embedded_wg_newsletter_13_industrial_io_bluetooth&#x2F;&quot;&gt;on reddit&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;issues&#x2F;17&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, make sure to leave a comment on the issue.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;min_const_fn&lt;&#x2F;code&gt; feature &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;pull&#x2F;54835&quot;&gt;has landed&lt;&#x2F;a&gt;, allowing for stable use of &lt;code&gt;const fn&lt;&#x2F;code&gt; functions in an embedded context in the upcoming 1.31 release of Rust!&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;fpagliughi&quot;&gt;Frank Pagliughi&lt;&#x2F;a&gt; has kicked off &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;fpagliughi&#x2F;rust-industrial-io&quot;&gt;&lt;code&gt;rust-industrial-io&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, a crate providing an interface to &lt;code&gt;libiio&lt;&#x2F;code&gt; on linux, which is used for communication with industrial sensors and actuators&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gregokent&quot;&gt;gregokent&lt;&#x2F;a&gt; has started development on &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gregokent&#x2F;cortex-r-rt&quot;&gt;&lt;code&gt;cortex-r-rt&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, a runtime crate for Cortex-R processors&lt;&#x2F;li&gt;
&lt;li&gt;The HAL Impl crate for the Texas Instruments TM4C123 now &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;therealjpster&#x2F;status&#x2F;1047872901628792832&quot;&gt;works on 1.30-beta&lt;&#x2F;a&gt;! &lt;strong&gt;Now is a great time to ensure that your embedded crates will work flawlessly with the 2018 Edition of Rust!&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to mention it on the tracking issue for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;issues&#x2F;17&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;e-matteson&quot;&gt;e-matteson&lt;&#x2F;a&gt; has released their &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;e-matteson&#x2F;keypad&quot;&gt;&lt;code&gt;keypad&lt;&#x2F;code&gt; driver&lt;&#x2F;a&gt;, which can be used with keypad matrix circuits. Check out more &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;9j42o9&#x2F;weekly_driver_keypad_matrix_circuits&#x2F;&quot;&gt;details on reddit&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;danielgallagher0&quot;&gt;Daniel Gallagher&lt;&#x2F;a&gt; has recently released two handy Bluetooth crates in an &lt;a href=&quot;https:&#x2F;&#x2F;219design.com&#x2F;bluetooth-low-energy-with-rust&#x2F;&quot;&gt;intro blog&lt;&#x2F;a&gt; post:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;bluenrg&quot;&gt;&lt;code&gt;bluenrg&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, an embedded-hal crate used to interface with STMicro&#x27;s series of microcontrollers&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;bluetooth-hci&quot;&gt;Bluetooth HCI&lt;&#x2F;a&gt;, a helper crate for interfacing with the Bluetooth Host-Controller interface&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h3&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Diff&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#device-crates&quot;&gt;Device Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;16&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;13&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;11&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+2&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;15&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+3&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;40&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#no-std-crates&quot;&gt;no-std crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;14&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;help-wanted&quot;&gt;Help Wanted&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Interested in implementing a new target for Embedded Rust? Nuvoton has a &lt;a href=&quot;https:&#x2F;&#x2F;direct.nuvoton.com&#x2F;de&#x2F;numaker-pfm-m2351&quot;&gt;development board&lt;&#x2F;a&gt; for the Cortex-M23. Check out the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;88&quot;&gt;thumbv8m tracking issue&lt;&#x2F;a&gt; if you want to help!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 12</title>
                <pubDate>Tue, 25 Sep 2018 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-12/</link>
                <guid>https://blog.rust-embedded.org/newsletter-12/</guid>
                <description>&lt;p&gt;This is the twelfth newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;the-embedded-working-group-newsletter-12&#x2F;20749&quot;&gt;users.rust-lang.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustembedded&#x2F;status&#x2F;1044930201925439490&quot;&gt;on twitter&lt;&#x2F;a&gt;, or &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;9j2620&#x2F;the_embedded_working_group_newsletter_12&#x2F;&quot;&gt;on reddit&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;issues&#x2F;15&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, make sure to leave a comment on the issue.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;We now have a category for Embedded on the &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;c&#x2F;embedded&quot;&gt;users.rust-lang.org forum&lt;&#x2F;a&gt;! This is a great place to ask larger questions, or to share more details about your projects!&lt;&#x2F;li&gt;
&lt;li&gt;You can now build embedded &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;japaricious&#x2F;status&#x2F;1042440110418153473&quot;&gt;binaries on stable&lt;&#x2F;a&gt; with the &lt;code&gt;1.30-beta&lt;&#x2F;code&gt; release of Rust! Check it out and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&quot;&gt;open an issue&lt;&#x2F;a&gt; if you run in to any issues with your projects!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to mention it on the tracking issue for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;issues&#x2F;15&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;eldruin&quot;&gt;Diego Barrios Romero&lt;&#x2F;a&gt; has released his &lt;a href=&quot;https:&#x2F;&#x2F;blog.eldruin.com&#x2F;24x-serial-eeprom-driver-in-rust&#x2F;&quot;&gt;eeprom24x&lt;&#x2F;a&gt; crate, an &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; compatible driver for EEPROM memory chips such as the Microchip&#x2F;Atmel &lt;code&gt;AT24C32&lt;&#x2F;code&gt;, &lt;code&gt;24AA32A&lt;&#x2F;code&gt;, &lt;code&gt;AT24C256&lt;&#x2F;code&gt;, or STMicroelectronics&#x27; &lt;code&gt;M24C32&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;trangar&#x2F;&quot;&gt;Trangar&lt;&#x2F;a&gt; managed to drive &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;victorkoenders&#x2F;status&#x2F;1042786930335903745&quot;&gt;56 ArtNet Torches&lt;&#x2F;a&gt; using Rust, based on his &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Trangar&#x2F;artnet_protocol&quot;&gt;ArtNet Protocol&lt;&#x2F;a&gt; crate&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;code&gt;no_std&lt;&#x2F;code&gt; synthesizer from the last newsletter has been implemented on-hardware by &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;thejpster&quot;&gt;Jonathan Pallant&lt;&#x2F;a&gt;, giving the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;thejpster&#x2F;monotron&quot;&gt;Monotron&lt;&#x2F;a&gt; a &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;therealjpster&#x2F;status&#x2F;1043942194015555584&quot;&gt;PWM audio driver&lt;&#x2F;a&gt;!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h3&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Diff&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#device-crates&quot;&gt;Device Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;16&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;12&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;9&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;12&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;40&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;-1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#no-std-crates&quot;&gt;no-std crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;13&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;help-wanted&quot;&gt;Help Wanted&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Interested in implementing a new target for Embedded Rust? Nuvoton has a &lt;a href=&quot;https:&#x2F;&#x2F;direct.nuvoton.com&#x2F;de&#x2F;numaker-pfm-m2351&quot;&gt;development board&lt;&#x2F;a&gt; for the Cortex-M23. Check out the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;88&quot;&gt;thumbv8m tracking issue&lt;&#x2F;a&gt; if you want to help!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 11</title>
                <pubDate>Sun, 09 Sep 2018 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-11/</link>
                <guid>https://blog.rust-embedded.org/newsletter-11/</guid>
                <description>&lt;p&gt;This is the eleventh newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;internals.rust-lang.org&#x2F;t&#x2F;the-embedded-working-group-newsletter-11&#x2F;8377&quot;&gt;internals.rust-lang.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustembedded&#x2F;status&#x2F;1039055481946492928&quot;&gt;on twitter&lt;&#x2F;a&gt;, or &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;9eku70&#x2F;rust_embedded_working_group_newsletter_11_cortexr&#x2F;&quot;&gt;on reddit&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;issues&#x2F;12&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, make sure to leave a comment on the issue.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;rustc&lt;&#x2F;code&gt; now supports 4 &lt;strong&gt;Cortex-R&lt;&#x2F;strong&gt; targets thanks to the work of &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paoloteti&quot;&gt;paoloteti&lt;&#x2F;a&gt; in the Cortex-R space! You can build programs for these targets using nothing but the Rust toolchain&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jamesmunns&quot;&gt;James Munns&lt;&#x2F;a&gt; gave a talk &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=t99L3JHhLc0&quot;&gt;at RustConf 2018&lt;&#x2F;a&gt;, covering the basics of embedded systems, and how Rust&#x27;s Zero Cost Abstractions are a perfect match for bare metal systems&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to mention it on the tracking issue for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;issues&#x2F;12&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Support for the Arduino MKRZERO board &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;gonadic_io&#x2F;status&#x2F;1035916949287575552&quot;&gt;has landed&lt;&#x2F;a&gt; in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;wez&#x2F;atsamd21-rs&quot;&gt;atsamd21-rs&lt;&#x2F;a&gt; repository! This is a Board Support Crate for various development board based on the Atmel&#x2F;Microchip samd21 Cortex-M microcontroller&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;branan&quot;&gt;Branan Riley&lt;&#x2F;a&gt; is working on the &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;branan&#x2F;status&#x2F;1038222375790161920&quot;&gt;fourth chapter&lt;&#x2F;a&gt; of his &lt;a href=&quot;https:&#x2F;&#x2F;branan.github.io&#x2F;teensy&#x2F;&quot;&gt;Exploring Rust on Teensy&lt;&#x2F;a&gt; series, which will focus on using &lt;code&gt;futures-rs&lt;&#x2F;code&gt; to represent DMA transfers&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;korken89&quot;&gt;Emil Fresk&lt;&#x2F;a&gt; shared some shots of his next &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;korken89&#x2F;status&#x2F;1038494310830952449&quot;&gt;Visual Inertial PCB&lt;&#x2F;a&gt;, which includes an STM32 running control algorithms written in Rust!&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;thejpster&quot;&gt;Jonathan Pallant&lt;&#x2F;a&gt; added a bare-metal &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;therealjpster&#x2F;status&#x2F;1036298070022086656&quot;&gt;four-channel synthesizer&lt;&#x2F;a&gt; for his Monotron project, and even included a short &lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=NvfyFhFK11g&quot;&gt;demo audio clip&lt;&#x2F;a&gt;!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h3&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Diff&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#device-crates&quot;&gt;Device Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;16&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+2&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;12&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;9&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;11&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;41&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+2&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#no-std-crates&quot;&gt;no-std crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;13&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;help-wanted&quot;&gt;Help Wanted&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Take a minute to check out the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;search?q=org%3Arust-embedded+is%3Aissue+is%3Aopen+milestone%3Arc1+label%3A%22help+wanted%22&amp;amp;type=Issues&quot;&gt;wg help wanted issues&lt;&#x2F;a&gt; as labeled on our issue tracker!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
            </item>
        
            <item>
                <title>PSA: Cortex-M Breakage (LLD as the default linker)</title>
                <pubDate>Tue, 28 Aug 2018 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/2018-08-2x-psa-cortex-m-breakage/</link>
                <guid>https://blog.rust-embedded.org/2018-08-2x-psa-cortex-m-breakage/</guid>
                <description>&lt;p&gt;The default linker for the 4 ARM Cortex-M targets listed below has changed from
&lt;code&gt;arm-none-eabi-gcc&lt;&#x2F;code&gt; to &lt;code&gt;rust-lld&lt;&#x2F;code&gt; in the latest nightly.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;thumbv6m-none-eabi&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;thumbv7m-none-eabi&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;thumbv7em-none-eabi&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;thumbv7em-none-eabihf&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;This will break the builds of &lt;em&gt;binaries&lt;&#x2F;em&gt; and &lt;em&gt;cdylibs&lt;&#x2F;em&gt; that were using the
old default linker (&lt;code&gt;arm-none-eabi-gcc&lt;&#x2F;code&gt;) &lt;em&gt;and&lt;&#x2F;em&gt; additionally pass extra flags to
the linker using any of these rustc flags: &lt;code&gt;-C link-arg&lt;&#x2F;code&gt;, &lt;code&gt;-C link-args&lt;&#x2F;code&gt;, &lt;code&gt;-Z pre-link-arg&lt;&#x2F;code&gt; or &lt;code&gt;-Z pre-link-args&lt;&#x2F;code&gt;. Building libraries (&lt;code&gt;rlib&lt;&#x2F;code&gt;s and
&lt;code&gt;staticlib&lt;&#x2F;code&gt;s) is not affected by this change.&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;This change won&#x27;t affect stable users when it reaches the 1.30 release because,
as of 1.28, it&#x27;s not possible to build binaries or cdylibs for those targets on
the stable channel. Building libraries for those targets is possible on stable
but it&#x27;s not affected by this change.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;rationale&quot;&gt;Rationale&lt;&#x2F;h3&gt;
&lt;p&gt;This breaking change was intentional.&lt;&#x2F;p&gt;
&lt;p&gt;We, the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;embedded WG&lt;&#x2F;a&gt;, wanted to reduce the number of external tools required to
build embedded programs for the ARM Cortex-M architecture. By switching the
default linker to the LLD linker that&#x27;s shipped with the Rust toolchain the user
no longer needs to install an ARM linker (like &lt;code&gt;arm-none-eabi-gcc&lt;&#x2F;code&gt; or
&lt;code&gt;arm-none-eabi-ld&lt;&#x2F;code&gt;) to build Rust programs.&lt;&#x2F;p&gt;
&lt;p&gt;Before landing this change we first &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;160&quot;&gt;consulted&lt;&#x2F;a&gt; with the community if they
thought this breaking change was worth it. We received over 20 positive responses
representing the Cortex-M team (part of the embedded WG), the Tock OS project,
the embed-rs organization and independent developers.&lt;&#x2F;p&gt;
&lt;p&gt;The consensus was that it was worth to make the default configuration more self
contained and that if we were to make the change it had to be made before it
became possible to build binaries on stable otherwise it wouldn&#x27;t be possible
to make this change without breaking stable builds.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;how-to-fix-your-build&quot;&gt;How to fix your build&lt;&#x2F;h3&gt;
&lt;p&gt;If you are affected by this change you&#x27;ll observe a linker error with a message
similar to one shown below:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;console&quot; style=&quot;background-color:#2b303b;color:#c0c5ce;&quot; class=&quot;language-console &quot;&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span&gt;$ # these are the custom linker flags of the project
&lt;&#x2F;span&gt;&lt;span&gt;$ cat .cargo&#x2F;config
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;pre data-lang=&quot;toml&quot; style=&quot;background-color:#2b303b;color:#c0c5ce;&quot; class=&quot;language-toml &quot;&gt;&lt;code class=&quot;language-toml&quot; data-lang=&quot;toml&quot;&gt;&lt;span&gt;[target.thumbv7m-none-eabi]
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;runner &lt;&#x2F;span&gt;&lt;span&gt;= &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;arm-none-eabi-gdb&lt;&#x2F;span&gt;&lt;span&gt;&amp;#39;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;rustflags &lt;&#x2F;span&gt;&lt;span&gt;= [
&lt;&#x2F;span&gt;&lt;span&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;-C&lt;&#x2F;span&gt;&lt;span&gt;&amp;quot;, &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;link-arg=-Wl,-Tlink.x&lt;&#x2F;span&gt;&lt;span&gt;&amp;quot;,
&lt;&#x2F;span&gt;&lt;span&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;-C&lt;&#x2F;span&gt;&lt;span&gt;&amp;quot;, &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;link-arg=-nostartfiles&lt;&#x2F;span&gt;&lt;span&gt;&amp;quot;,
&lt;&#x2F;span&gt;&lt;span&gt;]
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span&gt;[build]
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;target &lt;&#x2F;span&gt;&lt;span&gt;= &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;thumbv7m-none-eabi&lt;&#x2F;span&gt;&lt;span&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;pre style=&quot;background-color:#2b303b;color:#c0c5ce;&quot;&gt;&lt;code&gt;&lt;span&gt;$ cargo build
&lt;&#x2F;span&gt;&lt;span&gt;error: linking with `rust-lld` failed: exit code: 1
&lt;&#x2F;span&gt;&lt;span&gt;  |
&lt;&#x2F;span&gt;&lt;span&gt;  = note: &amp;quot;rust-lld&amp;quot; &amp;quot;-flavor&amp;quot; &amp;quot;gnu&amp;quot; (..)
&lt;&#x2F;span&gt;&lt;span&gt;  = note: rust-lld: error: unknown argument: -Wl,-Tlink.x
&lt;&#x2F;span&gt;&lt;span&gt;          rust-lld: error: unknown argument: -nostartfiles
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;There are two ways to fix the problem.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;option-a-switch-back-to-gcc&quot;&gt;Option A: switch back to GCC&lt;&#x2F;h4&gt;
&lt;p&gt;The easiest way is to switch back to using &lt;code&gt;arm-none-eabi-gcc&lt;&#x2F;code&gt; as the linker. To
do so pass the flag &lt;code&gt;-C linker=arm-none-eabi-gcc&lt;&#x2F;code&gt; to rustc. In the above example
you can do that in the &lt;code&gt;.cargo&#x2F;config&lt;&#x2F;code&gt; file.&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;console&quot; style=&quot;background-color:#2b303b;color:#c0c5ce;&quot; class=&quot;language-console &quot;&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span&gt;$ # these are the custom linker flags of the project
&lt;&#x2F;span&gt;&lt;span&gt;$ cat .cargo&#x2F;config
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;pre data-lang=&quot;toml&quot; style=&quot;background-color:#2b303b;color:#c0c5ce;&quot; class=&quot;language-toml &quot;&gt;&lt;code class=&quot;language-toml&quot; data-lang=&quot;toml&quot;&gt;&lt;span&gt;[target.thumbv7m-none-eabi]
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;runner &lt;&#x2F;span&gt;&lt;span&gt;= &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;arm-none-eabi-gdb&lt;&#x2F;span&gt;&lt;span&gt;&amp;#39;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;rustflags &lt;&#x2F;span&gt;&lt;span&gt;= [
&lt;&#x2F;span&gt;&lt;span&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;-C&lt;&#x2F;span&gt;&lt;span&gt;&amp;quot;, &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;linker=arm-none-eabi-gcc&lt;&#x2F;span&gt;&lt;span&gt;&amp;quot;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#65737e;&quot;&gt;# ADDED
&lt;&#x2F;span&gt;&lt;span&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;-C&lt;&#x2F;span&gt;&lt;span&gt;&amp;quot;, &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;link-arg=-Wl,-Tlink.x&lt;&#x2F;span&gt;&lt;span&gt;&amp;quot;,
&lt;&#x2F;span&gt;&lt;span&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;-C&lt;&#x2F;span&gt;&lt;span&gt;&amp;quot;, &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;link-arg=-nostartfiles&lt;&#x2F;span&gt;&lt;span&gt;&amp;quot;,
&lt;&#x2F;span&gt;&lt;span&gt;]
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span&gt;[build]
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;target &lt;&#x2F;span&gt;&lt;span&gt;= &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;thumbv7m-none-eabi&lt;&#x2F;span&gt;&lt;span&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;pre style=&quot;background-color:#2b303b;color:#c0c5ce;&quot;&gt;&lt;code&gt;&lt;span&gt;$ cargo build &amp;amp;&amp;amp; echo It works now
&lt;&#x2F;span&gt;&lt;span&gt;It works now
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h4 id=&quot;option-b-tweak-the-additional-linker-arguments&quot;&gt;Option B: tweak the additional linker arguments&lt;&#x2F;h4&gt;
&lt;p&gt;The other option is to tweak the additional linker arguments so they&#x27;ll be
accepted by LLD. In the above example the &lt;code&gt;-nostartfiles&lt;&#x2F;code&gt; flag can be dropped
because that&#x27;s the default behavior of LLD, and the flags prefixed by &lt;code&gt;-Wl,&lt;&#x2F;code&gt;
will have to lose their prefix.&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;console&quot; style=&quot;background-color:#2b303b;color:#c0c5ce;&quot; class=&quot;language-console &quot;&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span&gt;$ # these are the custom linker flags of the project
&lt;&#x2F;span&gt;&lt;span&gt;$ cat .cargo&#x2F;config
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;pre data-lang=&quot;toml&quot; style=&quot;background-color:#2b303b;color:#c0c5ce;&quot; class=&quot;language-toml &quot;&gt;&lt;code class=&quot;language-toml&quot; data-lang=&quot;toml&quot;&gt;&lt;span&gt;[target.thumbv7m-none-eabi]
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;runner &lt;&#x2F;span&gt;&lt;span&gt;= &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;arm-none-eabi-gdb&lt;&#x2F;span&gt;&lt;span&gt;&amp;#39;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;rustflags &lt;&#x2F;span&gt;&lt;span&gt;= [
&lt;&#x2F;span&gt;&lt;span&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;-C&lt;&#x2F;span&gt;&lt;span&gt;&amp;quot;, &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;link-arg=-Tlink.x&lt;&#x2F;span&gt;&lt;span&gt;&amp;quot;, &lt;&#x2F;span&gt;&lt;span style=&quot;color:#65737e;&quot;&gt;# CHANGED
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#65737e;&quot;&gt;# &amp;quot;-C&amp;quot;, &amp;quot;link-arg=-nostartfiles&amp;quot;, # REMOVED
&lt;&#x2F;span&gt;&lt;span&gt;]
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span&gt;[build]
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;target &lt;&#x2F;span&gt;&lt;span&gt;= &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;thumbv7m-none-eabi&lt;&#x2F;span&gt;&lt;span&gt;&amp;quot;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;pre data-lang=&quot;console&quot; style=&quot;background-color:#2b303b;color:#c0c5ce;&quot; class=&quot;language-console &quot;&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span&gt;$ cargo build &amp;amp;&amp;amp; echo It works now
&lt;&#x2F;span&gt;&lt;span&gt;It works now
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;With this approach your build will no longer depend on an external linker.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;should-i-prefer-option-a-or-b&quot;&gt;Should I prefer option A or B?&lt;&#x2F;h4&gt;
&lt;p&gt;If you are linking to a system installed C library like &lt;code&gt;newlib-arm-none-eabi&lt;&#x2F;code&gt;
then you should continue to use GCC. The default library search path of
&lt;code&gt;arm-none-eabi-gcc&lt;&#x2F;code&gt; includes the path to those libraries.&lt;&#x2F;p&gt;
&lt;p&gt;If you are not linking to any C code then you should prefer LLD then you won&#x27;t
need to install the &lt;code&gt;arm-none-eabi&lt;&#x2F;code&gt; toolchain.&lt;&#x2F;p&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 10</title>
                <pubDate>Tue, 28 Aug 2018 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-10/</link>
                <guid>https://blog.rust-embedded.org/newsletter-10/</guid>
                <description>&lt;p&gt;This is the tenth newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;p&gt;Discuss on &lt;a href=&quot;https:&#x2F;&#x2F;internals.rust-lang.org&#x2F;t&#x2F;the-10th-embedded-wg-newsletter-and-a-new-blog&#x2F;8326&quot;&gt;internals.rust-lang.org&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustembedded&#x2F;status&#x2F;1034765727423717376&quot;&gt;on twitter&lt;&#x2F;a&gt;, or &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;9b8gry&#x2F;the_10th_embedded_wg_newsletter_and_a_new_blog&#x2F;&quot;&gt;on reddit&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;issues&#x2F;6&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, make sure to leave a comment on the issue.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;We have &lt;a href=&quot;https:&#x2F;&#x2F;rust-embedded.github.io&#x2F;blog&#x2F;&quot;&gt;a blog&lt;&#x2F;a&gt;! We&#x27;ll be posting newsletters, notices for upcoming changes, and embedded related articles there in the upcoming future. Use RSS? It has an &lt;a href=&quot;https:&#x2F;&#x2F;rust-embedded.github.io&#x2F;blog&#x2F;rss.xml&quot;&gt;RSS feed&lt;&#x2F;a&gt;! Check out the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&quot;&gt;blog on github&lt;&#x2F;a&gt; to make any corrections or to contribute an article&lt;&#x2F;li&gt;
&lt;li&gt;Nightly Rust has &lt;a href=&quot;https:&#x2F;&#x2F;rust-embedded.github.io&#x2F;blog&#x2F;2018-08-2x-psa-cortex-m-breakage&#x2F;&quot;&gt;switched to &lt;code&gt;lld&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; for Cortex-M targets as a default. See the blog post for how to handle this change&lt;&#x2F;li&gt;
&lt;li&gt;There have been updates to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;cortex-m&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md#v056---2018-08-27&quot;&gt;&lt;code&gt;cortex-m&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;cortex-m-rt&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md#v053---2018-08-27&quot;&gt;&lt;code&gt;cortex-m-rt&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;cortex-m-quickstart&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md#v034---2018-08-27&quot;&gt;&lt;code&gt;cortex-m-quickstart&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;! Check out the linked changelogs to see what is new. Also, the latest release of each of these no longer require &lt;code&gt;arm-none-eabi-gcc&lt;&#x2F;code&gt;!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to mention it on the tracking issue for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;blog&#x2F;issues&#x2F;6&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Support for &lt;code&gt;aarch64-unknown-none&lt;&#x2F;code&gt; has &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;commit&#x2F;898950caf1a7bc9b6c41e74bbfac9591724f307c&quot;&gt;landed upstream&lt;&#x2F;a&gt;! It is now possible to write bare-metal Rust code for 64-bit ARM architectures&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h3&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Diff&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#device-crates&quot;&gt;Device Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;14&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;12&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;9&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;11&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;39&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#no-std-crates&quot;&gt;no-std crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;13&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;help-wanted&quot;&gt;Help Wanted&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Take a minute to check out the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;search?q=org%3Arust-embedded+is%3Aissue+is%3Aopen+milestone%3Arc1+label%3A%22help+wanted%22&amp;amp;type=Issues&quot;&gt;wg help wanted issues&lt;&#x2F;a&gt; as labeled on our issue tracker!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 9</title>
                <pubDate>Sun, 12 Aug 2018 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-9/</link>
                <guid>https://blog.rust-embedded.org/newsletter-9/</guid>
                <description>&lt;p&gt;This is the ninth newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;164&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, make sure to leave a comment on the issue.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;The Embedded Working Group has moved! You can find our new coordination repo at &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&quot;&gt;rust-embedded&#x2F;wg&lt;&#x2F;a&gt; on GitHub, and crates maintained by the working group in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&quot;&gt;rust-embedded&lt;&#x2F;a&gt; organization&lt;&#x2F;li&gt;
&lt;li&gt;The Embedded Working Group has grown! We are now 18 people grouped in the following 6 teams to allow for better focus on these topics:
&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;Cortex-M&lt;&#x2F;strong&gt; team develops and maintains the core of the Cortex-M crate ecosystem&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;strong&gt;HAL team&lt;&#x2F;strong&gt; develops and maintains crates that ease the development of Hardware Abstraction Layers, Board Support Crates and drivers&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;strong&gt;MS430 team&lt;&#x2F;strong&gt; develops and maintains the core of the MSP430 crate ecosystem&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;strong&gt;RISCV team&lt;&#x2F;strong&gt; develops and maintains the core of the RISCV crate ecosystem&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;strong&gt;Resources team&lt;&#x2F;strong&gt; develops, maintains and curates resources on embedded Rust&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;strong&gt;Tools team&lt;&#x2F;strong&gt; maintains and develops core embedded tools&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to mention it on the tracking issue for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;164&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;pull&#x2F;52787&quot;&gt;rust-lang&#x2F;rust#52787&lt;&#x2F;a&gt; has landed, adding support in &lt;code&gt;nightly&lt;&#x2F;code&gt; for the RISC-V architecture as a bare-metal target!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h3&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Diff&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#device-crates&quot;&gt;Device Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;14&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;11&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;9&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+1&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;11&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;38&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+3&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#no-std-crates&quot;&gt;no-std crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;12&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;help-wanted&quot;&gt;Help Wanted&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;We&#x27;re considering changing to LLD as the default linker for &lt;code&gt;thumb&lt;&#x2F;code&gt; targets. Check out the RFC at &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;wg&#x2F;issues&#x2F;160&quot;&gt;rust-embedded&#x2F;wg#160&lt;&#x2F;a&gt;, and let us know what you think&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 8</title>
                <pubDate>Sun, 29 Jul 2018 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-8/</link>
                <guid>https://blog.rust-embedded.org/newsletter-8/</guid>
                <description>&lt;p&gt;This is the eighth newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;134&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, make sure to leave a comment on the issue.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;libm#libm&quot;&gt;libm&lt;&#x2F;a&gt;, the &lt;code&gt;no_std&lt;&#x2F;code&gt; port of MUSL&#x27;s math library led by &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&quot;&gt;japaric&lt;&#x2F;a&gt; has finished its&#x27; first release! It can now be used by embedded (or &lt;code&gt;wasm&lt;&#x2F;code&gt;!) targets that need support for math functions.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;droogmic&quot;&gt;droogmic&lt;&#x2F;a&gt; is working on &lt;a href=&quot;https:&#x2F;&#x2F;droogmic.github.io&#x2F;microrust&quot;&gt;microrust&lt;&#x2F;a&gt;, a port of &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&quot;&gt;japaric&lt;&#x2F;a&gt;&#x27;s Discovery book for the BBC MicroBit, based on the Nordic nRF51&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sekineh&quot;&gt;Hideki Sekine&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nerdyvaishali&quot;&gt;Vaishali Thakkar&lt;&#x2F;a&gt; have landed initial support for an &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;pull&#x2F;52465&quot;&gt;Embedded CI Harness&lt;&#x2F;a&gt; in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&quot;&gt;&lt;code&gt;rust-lang&#x2F;rust&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; repo as part of the &lt;a href=&quot;http:&#x2F;&#x2F;reach.rust-lang.org&#x2F;&quot;&gt;Increasing Rust&#x27;s Reach&lt;&#x2F;a&gt; project. This opens the door for tests that will help prevent regressions in &lt;code&gt;rustc&lt;&#x2F;code&gt; and &lt;code&gt;cargo&lt;&#x2F;code&gt; for ARM Cortex-M targets&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;stdsimd&#x2F;pull&#x2F;518&quot;&gt;CMSIS intrinsics&lt;&#x2F;a&gt; for ARM Cortex processors have landed in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;stdsimd&quot;&gt;stdsimd&lt;&#x2F;a&gt;. Check out the &lt;a href=&quot;https:&#x2F;&#x2F;doc.rust-lang.org&#x2F;nightly&#x2F;core&#x2F;arch&#x2F;arm&#x2F;index.html&quot;&gt;the docs&lt;&#x2F;a&gt; in nightly soon&lt;sup&gt;†&lt;&#x2F;sup&gt; for info, thanks to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paoloteti&quot;&gt;Paolo Teti&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&quot;&gt;japaric&lt;&#x2F;a&gt;!&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ashleygwilliams&quot;&gt;Ashley Williams&lt;&#x2F;a&gt; released &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;cargo-generate&quot;&gt;cargo-generate&lt;&#x2F;a&gt;, a CLI tool for generating Cargo projects from a template, reducing the need to manually write boilerplate code. If you write some embedded templates, &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustembedded&quot;&gt;let us know&lt;&#x2F;a&gt;!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;†: The CMSIS intrinsics will show up in the docs after the next successful nightly build (after 2018-07-30)&lt;&#x2F;p&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to mention it on the tracking issue for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;134&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;djmcgill&quot;&gt;David McGillicuddy&lt;&#x2F;a&gt; has released his crate, &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;eight-segment&quot;&gt;eight-segment&lt;&#x2F;a&gt;, an &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; driver for displaying digits on 8 segment displays like the HDSP H-101&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jamwaffles&quot;&gt;James Waples&lt;&#x2F;a&gt; announced the newest release of his &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;embedded-graphics&quot;&gt;embedded-graphics&lt;&#x2F;a&gt; library &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;jam_waffles&#x2F;status&#x2F;1022837939041132545&quot;&gt;in a tweet&lt;&#x2F;a&gt;. This version fixes some small issues, as well as provides functionality to save memory&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;roosmaa&quot;&gt;Mart Roosmaa&lt;&#x2F;a&gt; released &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;roosmaa&#x2F;bolos-rs&quot;&gt;bolos-rs&lt;&#x2F;a&gt;, a 3rd party Rust SDK for the Ledger Nano cryptocurrency wallet. Check out his &lt;a href=&quot;https:&#x2F;&#x2F;medium.com&#x2F;@roosmaa&#x2F;bringing-rust-to-ledger-hardware-wallet-ccf1356a7de1&quot;&gt;Medium post&lt;&#x2F;a&gt; for more info!&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;cc1101&quot;&gt;cc1101&lt;&#x2F;a&gt; crate can now recieve radio packets! Check out &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;8zk03w&#x2F;cc1101_crate_can_now_receive_radio_packets&#x2F;&quot;&gt;the reddit post&lt;&#x2F;a&gt; by &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dsvensson&quot;&gt;Daniel Svensson&lt;&#x2F;a&gt;, as well as &lt;a href=&quot;https:&#x2F;&#x2F;dsvensson.github.io&#x2F;posts&#x2F;2018-07-13-Electrosmog-trapping-with-CC1101.html#article&quot;&gt;his blog post&lt;&#x2F;a&gt; for more info&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h3&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Diff&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#device-crates&quot;&gt;Device Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;14&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;11&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;8&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+2&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;11&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+2&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;35&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+5&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#no-std-crates&quot;&gt;no-std crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;12&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;+12&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;help-wanted&quot;&gt;Help Wanted&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;The Embedded-WG is looking for someone to write an &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;63#issuecomment-408509178&quot;&gt;RFC for ARM Intrinsics&lt;&#x2F;a&gt; to get them stabilized&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;thejpster&quot;&gt;Jonathan Pallant&lt;&#x2F;a&gt; is looking for ideas to implement for the Monotron project. Check out the &lt;a href=&quot;http:&#x2F;&#x2F;railwayelectronics.blogspot.com&#x2F;2018&#x2F;07&#x2F;where-next-for-monotron.html&quot;&gt;monotron blog post&lt;&#x2F;a&gt; for more details!&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;libm#libm&quot;&gt;libm&lt;&#x2F;a&gt; project is looking for help with &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;libm&#x2F;milestone&#x2F;3&quot;&gt;refactoring&lt;&#x2F;a&gt; in order to better support chips without hardware double-floating-point support&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 7</title>
                <pubDate>Sun, 15 Jul 2018 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-7/</link>
                <guid>https://blog.rust-embedded.org/newsletter-7/</guid>
                <description>&lt;p&gt;This is the seventh newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;121&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, make sure to leave a comment on the issue.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;We have launched the &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;rustembedded&quot;&gt;Embedded WG Twitter&lt;&#x2F;a&gt;! We&#x27;ll be publishing things like our newsletter here, so go ahead and follow to stay up to date. If you have something you&#x27;re working on and want to share, feel free to @ us so we can retweet it!&lt;&#x2F;li&gt;
&lt;li&gt;Work started on &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;libm&quot;&gt;porting&lt;&#x2F;a&gt; MUSL&#x27;s &lt;code&gt;libm&lt;&#x2F;code&gt; (for math functions like &lt;code&gt;sin&lt;&#x2F;code&gt;, &lt;code&gt;cos&lt;&#x2F;code&gt;, etc.) has started, and already has &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;libm&#x2F;issues?q=is%3Aopen+is%3Aissue+milestone%3Awasm&quot;&gt;26 of 32 functions&lt;&#x2F;a&gt; ported! This crate will hopefully be included in the &lt;code&gt;core&lt;&#x2F;code&gt; of Rust, so it can be used by &lt;code&gt;no_std&lt;&#x2F;code&gt; targets such as embedded or wasm.&lt;&#x2F;li&gt;
&lt;li&gt;The Atomic*.{load,store} API is &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;pull&#x2F;51953&quot;&gt;now available&lt;&#x2F;a&gt; for the thumbv6m and msp430 targets.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to mention it on the tracking issue for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;121&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;This week we have two Multirotor Flight Controller projects starting in Rust! They are both based on the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;stm32f30x-hal&quot;&gt;stm32f3&lt;&#x2F;a&gt; family of chips from STMicro.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;korken89&quot;&gt;Emil Fresk&lt;&#x2F;a&gt; posted &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;korken89&#x2F;status&#x2F;1016975023930830848&quot;&gt;on Twitter&lt;&#x2F;a&gt; about his project &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;korken89&#x2F;trustflight_firmware&quot;&gt;TrustFlight&lt;&#x2F;a&gt;, which is an open source, Rust based software library for controlling the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;korken89&#x2F;trustflight_hardware&quot;&gt;TrustFlight HW&lt;&#x2F;a&gt; he designed.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;JoshMcguigan&quot;&gt;Josh Mcguigan&lt;&#x2F;a&gt; announced in his &lt;a href=&quot;https:&#x2F;&#x2F;www.joshmcguigan.com&#x2F;blog&#x2F;betafpv-drone-flight-controller-hello-rust&#x2F;&quot;&gt;Blog Post&lt;&#x2F;a&gt; that he is planning to develop a firmware package for the &lt;a href=&quot;https:&#x2F;&#x2F;betafpv.com&#x2F;products&#x2F;beta75-bnf-tiny-whoop-quadcopter&quot;&gt;BetaFPV F3&lt;&#x2F;a&gt;, which is an off the shelf flight controller&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;We also have two projects aiming to make use of Rust on the Raspberry Pi a little easier:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;AGausmann&quot;&gt;Adam Gausmann&lt;&#x2F;a&gt; shared his &lt;a href=&quot;https:&#x2F;&#x2F;gitlab.com&#x2F;AGausmann&#x2F;rustberry&quot;&gt;Rustberry&lt;&#x2F;a&gt; project &lt;a href=&quot;https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;8x1ayd&#x2F;calling_all_raspberry_pi_owners_rustberry_010_has&#x2F;&quot;&gt;on Reddit&lt;&#x2F;a&gt;, which includes register maps and an I&#x2F;O library for the Raspberry Pi&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rahul-thakoor&quot;&gt;Rahul Thakoor&lt;&#x2F;a&gt; shared his &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rahul-thakoor&#x2F;rust_gpiozero&quot;&gt;rust_gpiozero&lt;&#x2F;a&gt; crate &lt;a href=&quot;https:&#x2F;&#x2F;medium.com&#x2F;@rahulthakoor&#x2F;physical-computing-with-rust-on-raspberry-pi-a7b6f34261a6&quot;&gt;on Medium&lt;&#x2F;a&gt;, which is based on the Python library of similar name. He has also started writing &lt;a href=&quot;https:&#x2F;&#x2F;rahul-thakoor.github.io&#x2F;physical-computing-rust&#x2F;&quot;&gt;a series of tutorials&lt;&#x2F;a&gt; for developers new to working with physical hardware.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h3&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Diff&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#device-crates&quot;&gt;Device Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;14&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;11&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;6&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;9&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;30&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;0&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;help-wanted&quot;&gt;Help Wanted&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Help contribute to development of &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;libm&quot;&gt;Rust&#x27;s libm&lt;&#x2F;a&gt; to get math functions built in to &lt;code&gt;core&lt;&#x2F;code&gt; for &lt;code&gt;no_std&lt;&#x2F;code&gt; targets!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 6</title>
                <pubDate>Sun, 01 Jul 2018 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-6/</link>
                <guid>https://blog.rust-embedded.org/newsletter-6/</guid>
                <description>&lt;p&gt;This is the sixth newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;This newsletter covers the past ~6 weeks.&lt;&#x2F;p&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;103&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, make sure to leave a comment on the issue.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jcreedon&quot;&gt;Jacob Creedon&lt;&#x2F;a&gt; gave an introduction talk about using Rust with embedded systems at the &lt;a href=&quot;https:&#x2F;&#x2F;www.crowdsupply.com&#x2F;teardown&#x2F;portland-2018&quot;&gt;Teardown Conference&lt;&#x2F;a&gt; in Portland, check out &lt;a href=&quot;http:&#x2F;&#x2F;github.jcreedon.com&#x2F;static&#x2F;EmbeddedWithRustSlidesTeardown2018.pdf&quot;&gt;Jacob&#x27;s Slides&lt;&#x2F;a&gt; or the &lt;a href=&quot;http:&#x2F;&#x2F;youtu.be&#x2F;g25xsK3HKkE&quot;&gt;Video of Jacob&#x27;s Talk&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt;&#x27;s own &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;thejpster&quot;&gt;theJPster&lt;&#x2F;a&gt; talked about the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;thejpster&#x2F;monotron&quot;&gt;Monotron&lt;&#x2F;a&gt; at &lt;a href=&quot;https:&#x2F;&#x2F;paris.rustfest.eu&#x2F;&quot;&gt;RustFest Paris&lt;&#x2F;a&gt;, you can see &lt;a href=&quot;http:&#x2F;&#x2F;railwayelectronics.blogspot.co.uk&#x2F;2018&#x2F;05&#x2F;talking-about-monotron-at-rustfest.html&quot;&gt;JP&#x27;s Slides&lt;&#x2F;a&gt;, or check out the &lt;a href=&quot;https:&#x2F;&#x2F;media.ccc.de&#x2F;v&#x2F;rustfest18-11-monotron_making_a_80s_style_computer_with_a_20_dev_kit&quot;&gt;Video of JP&#x27;s Talk&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&quot;&gt;Jorge Aparicio&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;pftbest&quot;&gt;Vadzim Dambrouski&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;hannobraun&quot;&gt;Hanno Braun&lt;&#x2F;a&gt; from the embedded WG also attended RustFest Paris and the following impl days. They worked towards embedded Rust on stable, better embedded Rust tooling and better MSP430 support; gave away some hardware; and chatted with lots of people interested in embedded Rust.&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;code&gt;#[panic_implementation]&lt;&#x2F;code&gt; feature has &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;pull&#x2F;50338&quot;&gt;landed&lt;&#x2F;a&gt; and has been proposed for stabilization (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;issues&#x2F;44489#issuecomment-398965878&quot;&gt;FCP merge&lt;&#x2F;a&gt;). This feature lets you define the behavior of &lt;code&gt;panic!&lt;&#x2F;code&gt; in &lt;code&gt;#[no_std]&lt;&#x2F;code&gt; context and it&#x27;s the final piece for making embedded Rust development possible on the stable channel. :tada:&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;discovery&quot;&gt;Discovery&lt;&#x2F;a&gt; book has been updated to work with the &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;cortex-m-library-development-now-possible-on-beta-and-the-path-towards-stable-embedded-rust&#x2F;17420&quot;&gt;preview of stable embedded Rust&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;A new &lt;a href=&quot;https:&#x2F;&#x2F;internals.rust-lang.org&#x2F;t&#x2F;llvm-tools-a-new-rustup-component-for-binary-inspection-objdump-nm-size-and-profiling-prota&#x2F;7830&quot;&gt;&lt;code&gt;llvm-tools&lt;&#x2F;code&gt; rustup component&lt;&#x2F;a&gt; is now available on recent nightly releases. It contains LLVM tools to inspect Rust binaries regardless of their target architecture. One set of tools for ARM Cortex-M, MSP430, x86_64 and other architectures!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to mention it on the tracking issue for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;103&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rudihorn&quot;&gt;rudihorn&lt;&#x2F;a&gt; shared &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rudihorn&#x2F;light-cli&quot;&gt;light-cli&lt;&#x2F;a&gt;, a lightweight, no_std, and heapless CLI tool&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paoloteti&quot;&gt;Paolo Teti&lt;&#x2F;a&gt; shared &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paoloteti&#x2F;ti-hercules-bsp&quot;&gt;ti-hercules-bsp&lt;&#x2F;a&gt;, a board support package for Texas Instruments TMS570 MCUs, used by safety critical industries such as automotive and aerospace&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;marcelbuesing&quot;&gt;Marcel Buesing&lt;&#x2F;a&gt; posted their driver crate for the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;marcelbuesing&#x2F;bme680&quot;&gt;bme680&lt;&#x2F;a&gt; environmental sensor&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;roysmeding&quot;&gt;Roy Smeding&lt;&#x2F;a&gt; is working on support for the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;roysmeding&#x2F;stm32f334&#x2F;&quot;&gt;stm32f334&lt;&#x2F;a&gt; chip from STMicro&lt;&#x2F;li&gt;
&lt;li&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt;&#x27;s own &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jcsoo&quot;&gt;Jonathan Soo&lt;&#x2F;a&gt; announced his project, &lt;a href=&quot;http:&#x2F;&#x2F;www.bobbin.io&#x2F;blog&#x2F;post&#x2F;bobbin_sdk_richer_hardware&#x2F;&quot;&gt;Bobbin SDK&lt;&#x2F;a&gt;, a set of tools to make it easier to share code between different chips from the same or different vendors&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;emosenkis&quot;&gt;Eitan Mosenkis&lt;&#x2F;a&gt; did &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;rust-on-esp8266&#x2F;12933&#x2F;8&quot;&gt;a major update&lt;&#x2F;a&gt; of their &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;emosenkis&#x2F;esp-rs&quot;&gt;esp-rs&lt;&#x2F;a&gt; script which produces a project to compile Rust code for the ESP8266 via the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;thepowersgang&#x2F;mrustc&quot;&gt;mrustc&lt;&#x2F;a&gt; Rust to C compiler.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;hannobraun&quot;&gt;Hanno Braun&lt;&#x2F;a&gt; released v0.2 of &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;braun-robotics&#x2F;rust-lpc82x-hal&quot;&gt;lpc82x-hal&lt;&#x2F;a&gt;, which includes a radical simplification of the API, allowing for stronger compile-time state guarantees. Check out the &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;lpc82x-hal-0-2-rust-on-lpc82x-microcontrollers&#x2F;18144&quot;&gt;lpc82x-hal announcement&lt;&#x2F;a&gt; for more info!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h3&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#device-crates&quot;&gt;Device Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;14&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;11&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;6&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;9&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;30&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;help-wanted&quot;&gt;Help Wanted&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;We are seeking &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;cargo-binutils&#x2F;issues&quot;&gt;input about the user interface&lt;&#x2F;a&gt; the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;cargo-binutils&quot;&gt;&lt;code&gt;cargo-binutils&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; subcommands should expose. These subcommands provide access to the LLVM tools provided by the &lt;code&gt;llvm-tools&lt;&#x2F;code&gt; rustup component mentioned above.&lt;&#x2F;li&gt;
&lt;li&gt;Are you using embedded Rust in production? We are &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;108&quot;&gt;collecting commercial testimonials&lt;&#x2F;a&gt; about embedded Rust for the webpage the embedded WG will have on the revamped rust-lang.org website. Even if you can&#x27;t give details about the product you are building we would still love to hear from you!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 5</title>
                <pubDate>Tue, 15 May 2018 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-5/</link>
                <guid>https://blog.rust-embedded.org/newsletter-5/</guid>
                <description>&lt;p&gt;This is the fifth bi-weekly newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;98&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, make sure to leave a comment on the issue.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;We had a bonus Embedded-WG Newsletter this week about the &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;cortex-m-library-development-now-possible-on-beta-and-the-path-towards-stable-embedded-rust&#x2F;17420&quot;&gt;path forward&lt;&#x2F;a&gt; towards stable Embedded Rust, and what you can do as a crate maintainer to help with the effort!&lt;&#x2F;li&gt;
&lt;li&gt;The Tock-OS project posted about their &lt;a href=&quot;https:&#x2F;&#x2F;www.tockos.org&#x2F;blog&#x2F;2018&#x2F;mmio-registers&#x2F;&quot;&gt;MMIO Registers&lt;&#x2F;a&gt;, contrasting them to crates generated by &lt;code&gt;svd2rust&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;There were a couple of great posts about developing with Rust on Embedded targets from &lt;a href=&quot;https:&#x2F;&#x2F;www.219design.com&#x2F;rust-on-the-stmicro-nucleo&#x2F;&quot;&gt;219 Design&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;nercury.github.io&#x2F;rust&#x2F;embedded&#x2F;experiments&#x2F;2018&#x2F;04&#x2F;29&#x2F;rust-embedded-01-discovery-vl-flipping-bits.html&quot;&gt;nercury&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;If Game Boy Advance development with Rust sounds interesting to you, make sure you check out the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tbelaire&#x2F;rusty-TONC&quot;&gt;rusty-TONC&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jkarns275&#x2F;stdgba&quot;&gt;stdgba&lt;&#x2F;a&gt; projects&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to mention it on the tracking issue for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;98&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;kjetilkjeka&quot;&gt;Kjetil Kjeka&lt;&#x2F;a&gt; shared their crate &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;ux&quot;&gt;uX&lt;&#x2F;a&gt; pronounced as &quot;unsigned X&quot; for working with non standard integer types (like &lt;code&gt;u7&lt;&#x2F;code&gt;, &lt;code&gt;u63&lt;&#x2F;code&gt;, etc) which act like the built in unsigned integer types&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;adamgreig&quot;&gt;Adam Greig&lt;&#x2F;a&gt; shared two crates:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;adamgreig&#x2F;stm32-rs&quot;&gt;stm32-rs&lt;&#x2F;a&gt;, a tool for cleaning up Chip Support Crates for STM32 microcontrollers and making it easier to work between multiple devices&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;AirborneEngineering&#x2F;blethrs&quot;&gt;blethrs&lt;&#x2F;a&gt;, an ethernet bootloader for STM32F4 chips, using the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;m-labs&#x2F;smoltcp&quot;&gt;smoltcp&lt;&#x2F;a&gt; networking stack&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jamwaffles&quot;&gt;James Waples&lt;&#x2F;a&gt; released a driver for &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;ssd1306&quot;&gt;ssd1306&lt;&#x2F;a&gt; based OLED displays, read the &lt;a href=&quot;https:&#x2F;&#x2F;wapl.es&#x2F;electronics&#x2F;rust&#x2F;2018&#x2F;04&#x2F;30&#x2F;ssd1306-driver.html&quot;&gt;announcement blog&lt;&#x2F;a&gt; for more info&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jscarrott&quot;&gt;John Scarrott&lt;&#x2F;a&gt; released a Chip Support Crate for the &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;nrf52840&quot;&gt;nRF52840&lt;&#x2F;a&gt; chip from Nordic Semiconductor&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;krk&quot;&gt;Kerem&lt;&#x2F;a&gt; posted a new Chip Support Crate for the Nordic Semiconductor nRF51, and joined development of the existing &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;nrf51-hal&quot;&gt;nrf51-hal&lt;&#x2F;a&gt; HAL Impl Crate&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;teozkr&quot;&gt;Teo Röijezon&lt;&#x2F;a&gt; released a combo of a &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;stm32f0x0&quot;&gt;stm32f0x0&lt;&#x2F;a&gt; Chip Support Crate, as well as a &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;stm32f0x0-hal&quot;&gt;stm32f0x0-hal&lt;&#x2F;a&gt; HAL Impl Crate&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rahul-thakoor&quot;&gt;Rahul Thakoor&lt;&#x2F;a&gt; shipped a driver crate for &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;mma7660fc&quot;&gt;mma7660fc&lt;&#x2F;a&gt; based 3-axis accelerometers. Check out the &lt;a href=&quot;https:&#x2F;&#x2F;rahul-thakoor.github.io&#x2F;an-i2c-rust-driver-for-mma7660fc-based-3-axis-digital-accelerometer&#x2F;&quot;&gt;mma7660fc blog&lt;&#x2F;a&gt; announcement&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;whitequark&quot;&gt;whitequark&lt;&#x2F;a&gt; shared their &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;whitequark&#x2F;rust-log_buffer&quot;&gt;log_buffer&lt;&#x2F;a&gt; crate for storing UTF-8 text in a ring buffer, and accessing it as &lt;code&gt;&amp;amp;str&lt;&#x2F;code&gt;s&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;memoryruins&quot;&gt;Michael&lt;&#x2F;a&gt; shared &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;AltSysrq&#x2F;proptest&quot;&gt;proptest&lt;&#x2F;a&gt;, a tool for performing Property Based Testing, which now has no_std support thanks to a PR from &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ZackPierce&quot;&gt;Zack Pierce&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;thejpster&quot;&gt;theJPster&lt;&#x2F;a&gt; has been working on &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;thejpster&#x2F;monotron&quot;&gt;Monotron&lt;&#x2F;a&gt; - a small 8-bit style home computer with a ROM written in Rust - ready for his talk at &lt;a href=&quot;https:&#x2F;&#x2F;paris.rustfest.eu&#x2F;&quot;&gt;RustFest&lt;&#x2F;a&gt;. For this, he&#x27;s been working on crates for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;thejpster&#x2F;vga-framebuffer-rs&quot;&gt;generating VGA video&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;thejpster&#x2F;pc-keyboard&quot;&gt;decoding PS&#x2F;2 keyboard scancodes&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;thejpster&#x2F;menu&quot;&gt;interactive text-based menu systems&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h3&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#device-crates&quot;&gt;Device Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;12&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;10&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;6&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;9&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;29&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;help-wanted&quot;&gt;Help Wanted&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Make sure to check out the &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;cortex-m-library-development-now-possible-on-beta-and-the-path-towards-stable-embedded-rust&#x2F;17420&quot;&gt;path forward&lt;&#x2F;a&gt; post, and report any issues you find!&lt;&#x2F;li&gt;
&lt;li&gt;Raspberry Fields is a festival of digital making, centered around the Raspberry Pi. It&#x27;s taking place on Saturday 30 June and Sunday 1 July, in Cambridge, England. &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;thejpster&quot;&gt;theJPster&lt;&#x2F;a&gt; would love to set up a Rust stall, to talk to everyone about the advantages Rust offers and how they can get in to Rust on the Raspberry Pi. But to make that work, he needs your help! If you&#x27;re interested, contact &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;therealjpster&quot;&gt;@therealjpster&lt;&#x2F;a&gt; on Twitter or email &lt;a href=&quot;mailto:pi@thejpster.org.uk&quot;&gt;pi@thejpster.org.uk&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Some members of the embedded WG will attend the &lt;a href=&quot;https:&#x2F;&#x2F;paris.rustfest.eu&#x2F;&quot;&gt;RustFest&lt;&#x2F;a&gt; impl days in two weeks. If you want to make Rust awesome for embedded development come help us! We have &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;90#issuecomment-389321129&quot;&gt;tasks with mentors and some hardware to give away!&lt;&#x2F;a&gt;. Let us know if you are interested in helping out by commenting on that issue.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
            </item>
        
            <item>
                <title>The Path Towards Stable</title>
                <pubDate>Sun, 13 May 2018 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/the-path-towards-stable/</link>
                <guid>https://blog.rust-embedded.org/the-path-towards-stable/</guid>
                <description>&lt;h2 id=&quot;cortex-m-library-development-now-possible-on-beta-and-the-path-towards-stable-embedded-rust&quot;&gt;Cortex-M library development now possible on beta and the path towards stable embedded Rust&lt;&#x2F;h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;1.27 = embedded (Cortex-M) &lt;em&gt;library&lt;&#x2F;em&gt; development on stable&lt;&#x2F;li&gt;
&lt;li&gt;1.28 or 1.29 = embedded (Cortex-M) &lt;em&gt;application&lt;&#x2F;em&gt; development on stable&lt;&#x2F;li&gt;
&lt;li&gt;We are making breaking changes in the ecosystem in order to move towards development on the
stable channel&lt;&#x2F;li&gt;
&lt;li&gt;If you are a crate maintainer &#x2F; author, make sure you test your crates with the new versions of
&lt;code&gt;cortex-m&lt;&#x2F;code&gt; (and similar) on the current &lt;code&gt;beta&lt;&#x2F;code&gt; release of Rust&lt;&#x2F;li&gt;
&lt;li&gt;If the latest version of a dependency doesn&#x27;t compile on &lt;code&gt;beta&lt;&#x2F;code&gt;, file an issue and&#x2F;or ping us on
the #rust-embedded IRC channel&lt;&#x2F;li&gt;
&lt;li&gt;Thanks for your patience!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;We are happy to announce that &lt;em&gt;library&lt;&#x2F;em&gt; development for the Cortex-M targets is now possible on the
beta channel! :tada:&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;For example, to cross compile a library crate for the Cortex-M3 you would run these commands:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;console&quot; style=&quot;background-color:#2b303b;color:#c0c5ce;&quot; class=&quot;language-console &quot;&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span&gt;$ # switch to the beta channel
&lt;&#x2F;span&gt;&lt;span&gt;$ rustup default beta
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span&gt;$ # install the rust-std component (pre-compiled core) for the target
&lt;&#x2F;span&gt;&lt;span&gt;$ rustup target add thumbv7m-none-eabi
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span&gt;$ # get some source to build
&lt;&#x2F;span&gt;&lt;span&gt;$ cargo clone cortex-m --vers 0.5.0 &amp;amp;&amp;amp; cd cortex-m
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span&gt;$ # then It Just Works
&lt;&#x2F;span&gt;&lt;span&gt;$ cargo build --target thumbv7m-none-eabi
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;What about embedded &lt;em&gt;application&lt;&#x2F;em&gt; development? There is just a single unstable feature that prevents
us from building a &lt;code&gt;no_std&lt;&#x2F;code&gt; binary on stable: the &lt;code&gt;panic_fmt&lt;&#x2F;code&gt; lang item. This unstable feature will
soon be removed in favor of the &lt;code&gt;#[panic_implementation]&lt;&#x2F;code&gt; feature (&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;pull&#x2F;50338&quot;&gt;implementation PR&lt;&#x2F;a&gt;), which is
slated for stabilization in time for the edition release (we are hoping to stabilize it as early as
1.28 but we&#x27;ll see).&lt;&#x2F;p&gt;
&lt;h2 id=&quot;making-the-cortex-m-ecosystem-work-on-stable&quot;&gt;Making the Cortex-M ecosystem work on stable&lt;&#x2F;h2&gt;
&lt;p&gt;&quot;&lt;code&gt;no_std&lt;&#x2F;code&gt; binaries are &lt;em&gt;possible&lt;&#x2F;em&gt; on stable&quot; is very different from &quot;&lt;em&gt;my&lt;&#x2F;em&gt; embedded application
builds on stable&quot;. The later requires all the dependencies to also compile on stable. So we are
starting to migrate the Cortex-M ecosystem to work on stable. All the crates listed below are now
compiling on the beta channel.&lt;&#x2F;p&gt;
&lt;p&gt;Legend: &lt;code&gt;crate-name&lt;&#x2F;code&gt; - link to CHANGELOG - link to stabilization PR - &lt;del&gt;removed unstable features&lt;&#x2F;del&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;cortex-m-quickstart&#x2F;~0.3&quot;&gt;&lt;code&gt;cortex-m-quickstart&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;cortex-m-quickstart&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md#v030---2018-05-12&quot;&gt;CHANGELOG&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;cortex-m-quickstart&#x2F;pull&#x2F;29&quot;&gt;PR&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;cortex-m-rt&#x2F;0.5.0&quot;&gt;&lt;code&gt;cortex-m-rt&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;cortex-m-rt&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md#v050---2018-05-12&quot;&gt;CHANGELOG&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;cortex-m-rt&#x2F;pull&#x2F;69&quot;&gt;PR&lt;&#x2F;a&gt; - &lt;del&gt;asm!&lt;&#x2F;del&gt; &lt;del&gt;core_intrinsics&lt;&#x2F;del&gt; &lt;del&gt;global_asm!&lt;&#x2F;del&gt;
&lt;del&gt;lang_items&lt;&#x2F;del&gt; &lt;del&gt;linkage&lt;&#x2F;del&gt; &lt;del&gt;naked_functions&lt;&#x2F;del&gt; &lt;del&gt;used&lt;&#x2F;del&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;cortex-m-semihosting&#x2F;0.3.0&quot;&gt;&lt;code&gt;cortex-m-semihosting&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;cortex-m-semihosting&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md#v030---2018-05-10&quot;&gt;CHANGELOG&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;cortex-m-semihosting&#x2F;pull&#x2F;16&quot;&gt;PR&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;cortex-m&#x2F;0.5.0&quot;&gt;&lt;code&gt;cortex-m&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;cortex-m&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md#v050---2018-05-11&quot;&gt;CHANGELOG&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;cortex-m&#x2F;pull&#x2F;88&quot;&gt;PR&lt;&#x2F;a&gt; - &lt;del&gt;asm!&lt;&#x2F;del&gt; &lt;del&gt;const_fn&lt;&#x2F;del&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;embedded-hal&#x2F;0.2.0&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;embedded-hal&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md#v020---2018-05-12&quot;&gt;CHANGELOG&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;embedded-hal&#x2F;pull&#x2F;80&quot;&gt;PR&lt;&#x2F;a&gt; - &lt;del&gt;never_type&lt;&#x2F;del&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;f3&#x2F;0.6.0&quot;&gt;&lt;code&gt;f3&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;f3&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md#v060---2018-05-12&quot;&gt;CHANGELOG&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;f3&#x2F;pull&#x2F;93&quot;&gt;PR&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;l3gd20&#x2F;0.2.0&quot;&gt;&lt;code&gt;l3gd20&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;l3gd20&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md#v020---2018-05-12&quot;&gt;CHANGELOG&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;l3gd20&#x2F;pull&#x2F;4&quot;&gt;PR&lt;&#x2F;a&gt; - &lt;del&gt;Unsized&lt;&#x2F;del&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;lsm303dlhc&#x2F;0.2.0&quot;&gt;&lt;code&gt;lsm303dlhc&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;lsm303dlhc&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md#v020---2018-05-12&quot;&gt;CHANGELOG&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;lsm303dlhc&#x2F;pull&#x2F;4&quot;&gt;PR&lt;&#x2F;a&gt; - &lt;del&gt;Unsized&lt;&#x2F;del&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;stm32f103xx&#x2F;0.10.0&quot;&gt;&lt;code&gt;stm32f103xx&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;stm32f103xx&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md#v0100---2018-05-12&quot;&gt;CHANGELOG&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;stm32f103xx&#x2F;pull&#x2F;24&quot;&gt;PR&lt;&#x2F;a&gt; - &lt;del&gt;const_fn&lt;&#x2F;del&gt; &lt;del&gt;global_asm!&lt;&#x2F;del&gt; &lt;del&gt;try_from&lt;&#x2F;del&gt;
&lt;del&gt;use_extern_macros&lt;&#x2F;del&gt; &lt;del&gt;used&lt;&#x2F;del&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;stm32f30x-hal&#x2F;0.2.0&quot;&gt;&lt;code&gt;stm32f30x-hal&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;stm32f30x-hal&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md#v020---2018-05-12&quot;&gt;CHANGELOG&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;stm32f30x-hal&#x2F;pull&#x2F;25&quot;&gt;PR&lt;&#x2F;a&gt; - &lt;del&gt;never_type&lt;&#x2F;del&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;stm32f30x&#x2F;0.7.0&quot;&gt;&lt;code&gt;stm32f30x&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;stm32f30x&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md#v070---2018-05-12&quot;&gt;CHANGELOG&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;stm32f30x&#x2F;pull&#x2F;16&quot;&gt;PR&lt;&#x2F;a&gt; - &lt;del&gt;const_fn&lt;&#x2F;del&gt; &lt;del&gt;global_asm!&lt;&#x2F;del&gt; &lt;del&gt;try_from&lt;&#x2F;del&gt;
&lt;del&gt;use_extern_macros&lt;&#x2F;del&gt; &lt;del&gt;used&lt;&#x2F;del&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;svd2rust&#x2F;0.13.0&quot;&gt;&lt;code&gt;svd2rust&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; (output of) - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;svd2rust&#x2F;blob&#x2F;master&#x2F;CHANGELOG.md#v0130---2018-05-12&quot;&gt;CHANGELOG&lt;&#x2F;a&gt; - &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;svd2rust&#x2F;pull&#x2F;203&quot;&gt;PR&lt;&#x2F;a&gt; - &lt;del&gt;const_fn&lt;&#x2F;del&gt; &lt;del&gt;global_asm!&lt;&#x2F;del&gt;
&lt;del&gt;try_from&lt;&#x2F;del&gt; &lt;del&gt;use_extern_macros&lt;&#x2F;del&gt; &lt;del&gt;used&lt;&#x2F;del&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;There&#x27;s a lot of breaking changes there but the most visible one is &lt;code&gt;cortex-m-rt&lt;&#x2F;code&gt; because it changes
how applications are structured. Check the &lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;cortex-m-quickstart&#x2F;~0.3&quot;&gt;&lt;code&gt;cortex-m-quickstart&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; template for instructions on
how to set up an embedded application using the latest versions of everything.&lt;&#x2F;p&gt;
&lt;p&gt;There are still a lot of crates that will need to be updated to work on beta. Among the more general
purpose ones we have &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;heapless&quot;&gt;&lt;code&gt;heapless&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;cortex-m-rtfm&quot;&gt;&lt;code&gt;cortex-m-rtfm&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, which needs to be update to work with
&lt;code&gt;cortex-m-rt&lt;&#x2F;code&gt; v0.5.0.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;how-you-can-help-us&quot;&gt;How you can help us&lt;&#x2F;h3&gt;
&lt;p&gt;Try to compile your Cortex-M crate using the beta channel! If your crate is an application the build
will certainly fail, but check if all the dependencies, excluding the &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;keywords&#x2F;panic-impl&quot;&gt;panic handler crate&lt;&#x2F;a&gt;,
compile on beta. If any dependency doesn&#x27;t compile on the beta channel let the author know, but
first check if there&#x27;s a new version of the crate that already compiles on the beta channel. And if
you feel up to the task you could even send a PR to the dependency to make it compile on beta -- the
list of stabilization PRs in the previous section may give you a clue on how to move the crate to
beta.&lt;&#x2F;p&gt;
&lt;p&gt;If you are the author of a Cortex-M device crate, a crate generated using &lt;code&gt;svd2rust&lt;&#x2F;code&gt;, moving it to
stable only requires regenerating it using &lt;code&gt;svd2rust&lt;&#x2F;code&gt; v0.13.0. Do note that the generation process
&lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;svd2rust&#x2F;0.13.0&#x2F;svd2rust&#x2F;#usage&quot;&gt;has changed&lt;&#x2F;a&gt; for the Cortex-M target; also make sure you bump the minor version when you publish a
new version.&lt;&#x2F;p&gt;
&lt;p&gt;If you are the author of a driver crate or a HAL implementation, please update your crate to use
v0.2.0 of &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; and test that it builds on beta. Make sure you bump the minor version when
you publish a new version of your crate -- bumping the version of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; dependency is a
breaking change (drivers that depend on &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; v0.1.0 can&#x27;t be used with HAL implementation
crates that depend on &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; v0.2.0).&lt;&#x2F;p&gt;
&lt;p&gt;If you are porting an application to the newest &lt;code&gt;cortex-m-*&lt;&#x2F;code&gt; crates you may hit these errors:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&quot;error: requires &lt;code&gt;start&lt;&#x2F;code&gt; lang_item&quot; on binary crates. You need to switch from the standard &lt;code&gt;main&lt;&#x2F;code&gt;
interface to &lt;code&gt;#![no_main]&lt;&#x2F;code&gt; + &lt;code&gt;entry!&lt;&#x2F;code&gt;. Use the &lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;cortex-m-quickstart&#x2F;0.3.0&#x2F;cortex_m_quickstart&#x2F;examples&#x2F;_0_minimal&#x2F;index.html&quot;&gt;examples&lt;&#x2F;a&gt; in the quickstart template as a
reference.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;ul&gt;
&lt;li&gt;&quot;error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple
variants&quot;. &lt;code&gt;const fn&lt;&#x2F;code&gt; is not a stable feature so it&#x27;s not used in the API by default. The
&lt;code&gt;cortex-m&lt;&#x2F;code&gt; provides a &lt;code&gt;&quot;const-fn&quot;&lt;&#x2F;code&gt; feature to opt into this unstable feature and expose &lt;code&gt;const&lt;&#x2F;code&gt;
functions in the API; other dependencies should &#x2F; probably provide a similar feature.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;what-does-this-all-mean-for-you&quot;&gt;What does this all mean for you?&lt;&#x2F;h2&gt;
&lt;p&gt;To those of you who have been doing embedded development on nightly: things will get &lt;em&gt;much easier&lt;&#x2F;em&gt;
from now on. We have reduced the number of unstable features in core crates of the Cortex-M
ecosystem to &lt;strong&gt;zero&lt;&#x2F;strong&gt;. Although you will have to continue to use nightly for application development
you can expect zero breakage from these crates when updating the nightly compiler. There is one
expected breakage coming soon though: &lt;code&gt;panic_fmt&lt;&#x2F;code&gt; will be removed as announced above. This will
break the &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;keywords&#x2F;panic-impl&quot;&gt;panic handler crates&lt;&#x2F;a&gt;; however, the breakage will be isolated to those crates and
the fix will consist of simply updating the dependency version.&lt;&#x2F;p&gt;
&lt;p&gt;To those of you who have been meaning to dive into embedded Rust development: we&#x27;ll soon be done
with our &quot;embedded Rust on stable&quot; tasks and we&#x27;ll move our focus to documenting the embedded
development process, tooling and ecosystem. The &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;blob&#x2F;master&#x2F;books&#x2F;embedded-rust-book&#x2F;README.md&quot;&gt;embedded Rust book&lt;&#x2F;a&gt; will become the resource
to get started on embedded Rust, but it doesn&#x27;t quite exist right now.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-about-architectures-other-than-arm-cortex-m&quot;&gt;What about architectures other than ARM Cortex-M?&lt;&#x2F;h2&gt;
&lt;p&gt;The path carved for ARM Cortex-M can be followed by the other architectures (ARM Cortex-R, AVR,
MSP430, RISCV, etc.). Each architecture presents its own extra set of challenges though:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;MSP430 being the second oldest embedded &#x2F; &lt;code&gt;no_std&lt;&#x2F;code&gt; target is the closest one to make it to stable
(as a tier 2 target) by the edition release. The main blocker is that &lt;code&gt;extern &quot;msp430-interrupt&quot;&lt;&#x2F;code&gt;
is not available on stable but I think that may be possible to work around using external C &#x2F;
assembly files + FFI.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Both AVR and RISCV are blocked from being included in the Rust compiler due to either the
immaturity of the LLVM backend or LLVM backend bugs. Not many (embedded) Rust developers can also
hack LLVM backends so we are short handed on the AVR front; OTOH, the RISCV is being actively
developed by third parties so it&#x27;s probably just a matter of time before we add it to rustc.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;ARM Cortex-R LLVM backend is probably in good shape due to the similarities between its
instruction set and the ARM Cortex-M instruction set, so adding the target to the compiler should
be straightforward. However, the crate ecosystem is nonexistent at this point so there&#x27;s a lot of
work to be done on that front.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;This work is part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&quot;&gt;embedded WG&lt;&#x2F;a&gt; effort towards &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&quot;&gt;making embedded development possible on
the stable channel&lt;&#x2F;a&gt;. (We are almost done! :tada:)&lt;&#x2F;p&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 4</title>
                <pubDate>Sat, 28 Apr 2018 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-4/</link>
                <guid>https://blog.rust-embedded.org/newsletter-4/</guid>
                <description>&lt;p&gt;This is the fourth bi-weekly newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;93&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, make sure to leave a comment on the issue.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; IRC meetings are now explicitly public, and the agendas for the next meeting can be found in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&quot;&gt;WG Issues&lt;&#x2F;a&gt;, like &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;91&quot;&gt;this issue&lt;&#x2F;a&gt; for the next meeting&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;djmcgill&quot;&gt;David&lt;&#x2F;a&gt; shared his utility &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;djmcgill&#x2F;form&quot;&gt;&lt;code&gt;Form&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, which takes a single &lt;code&gt;lib.rs&lt;&#x2F;code&gt; (like those created by &lt;code&gt;svd2rust&lt;&#x2F;code&gt; or &lt;code&gt;bindgen&lt;&#x2F;code&gt;), and splits it into structured modules. Check out the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jamesmunns&#x2F;nrf52&#x2F;tree&#x2F;master&#x2F;src&quot;&gt;&lt;code&gt;nrf52&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; Chip Support Crate as an example, and try it out for your generated projects!&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;astro&quot;&gt;astro&lt;&#x2F;a&gt; shared &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;managed&quot;&gt;&lt;code&gt;managed&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, A library that provides a way to logically own objects, whether or not heap allocation is available&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to mention it on the tracking issue for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;93&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;danielgallagher0&quot;&gt;Daniel&lt;&#x2F;a&gt; started work on &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;danielgallagher0&#x2F;bluetooth-hci&quot;&gt;&lt;code&gt;bluetooth-hci&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, an abstraction layer for HCI based Bluetooth Controllers, and is using it in his &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;danielgallagher0&#x2F;bluenrg&quot;&gt;&lt;code&gt;bluenrg&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; crate for STMicro&#x27;s BlueNRG RF modules&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cr1901&quot;&gt;cr1901&lt;&#x2F;a&gt; shared his &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cr1901&#x2F;AT2XT&quot;&gt;&lt;code&gt;AT2XT&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; project, an adapter that allows use of low cost PS2 keyboards with older computers that expect (now very expensive) XT keyboards. The firmware for this project is based on &lt;code&gt;rtfm&lt;&#x2F;code&gt;, and runs on an &lt;code&gt;msp430&lt;&#x2F;code&gt; microcontroller. Check out the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;pull&#x2F;94#issuecomment-385172043&quot;&gt;short blurb&lt;&#x2F;a&gt; by &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cr1901&quot;&gt;cr1901&lt;&#x2F;a&gt; summarizing the project&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;hannobraun&quot;&gt;hannobraun&lt;&#x2F;a&gt; released v0.3 of his &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;lpc82x&quot;&gt;&lt;code&gt;lpc82x&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; Chip Support Crate for NXP&#x27;s LPC82x family of microcontrollers, as well as v0.1 of &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;lpc82x-hal&quot;&gt;&lt;code&gt;lpc82x-hal&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;. Check out the &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;lpc82x-hal-0-1-hardware-abstraction-layer-for-nxp-lpc82x-mcus&#x2F;17116&quot;&gt;lpc82x-hal announcement&lt;&#x2F;a&gt; here!&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&quot;&gt;japaric&lt;&#x2F;a&gt; released v0.3.1 of &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;heapless&quot;&gt;&lt;code&gt;heapless&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; which now contains fixed capacity implementations of &lt;code&gt;HashMap&lt;&#x2F;code&gt; and &lt;code&gt;HashSet&lt;&#x2F;code&gt; that work on &lt;code&gt;no_std&lt;&#x2F;code&gt;, do not require an allocator, and use &lt;code&gt;u32&lt;&#x2F;code&gt; hashes (instead of the default &lt;code&gt;u64&lt;&#x2F;code&gt;).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h3&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#device-crates&quot;&gt;Device Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;12&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;10&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#board-support-crates&quot;&gt;Board Support Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;6&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;7&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;27&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;help-wanted&quot;&gt;Help Wanted&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; is looking for contributors for the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;90&quot;&gt;Rustfest Impl Period&lt;&#x2F;a&gt;. If you will be attending RustFest in Paris, let us know!&lt;&#x2F;li&gt;
&lt;li&gt;Progress is being made towards &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;42#issuecomment-384524779&quot;&gt;Stable Embedded Rust&lt;&#x2F;a&gt;, try out the current preview, and we would love some feedback!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 3</title>
                <pubDate>Sat, 14 Apr 2018 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-3/</link>
                <guid>https://blog.rust-embedded.org/newsletter-3/</guid>
                <description>&lt;p&gt;This is the third bi-weekly newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;84&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, make sure to leave a comment on the issue.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Crates for the Embedded Rust Ecosystem are now being tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository&lt;&#x2F;li&gt;
&lt;li&gt;Progress has been made as part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;42&quot;&gt;Embedded Rust on Stable&lt;&#x2F;a&gt; initiative, including:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;extern crate compiler_builtins&lt;&#x2F;code&gt; is &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;psa-breaking-change-extern-crate-compiler-builtins-is-now-included-in-no-std-crates&#x2F;16704&quot;&gt;now included in the no_std prelude&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;psa-you-no-longer-need-xargo-to-do-arm-cortex-m-development&#x2F;16703&quot;&gt;xargo no longer needed&lt;&#x2F;a&gt; for ARM Cortex-M development&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;We also made some progress on simplifying the embedded development setup: You can now link Embedded Rust programs &lt;a href=&quot;https:&#x2F;&#x2F;users.rust-lang.org&#x2F;t&#x2F;cortex-m-rt-v0-4-0-now-you-can-link-arm-cortex-m-programs-using-lld&#x2F;16751&quot;&gt;using lld&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ithinuel&quot;&gt;Wilfried&lt;&#x2F;a&gt; kicked off a blog series about &lt;a href=&quot;http:&#x2F;&#x2F;ithinuel.me&#x2F;embedded-rust-why&#x2F;&quot;&gt;using embedded rust&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;andre-richter&quot;&gt;Andre Richter&lt;&#x2F;a&gt; is writing a tutorial for using Rust to write &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;andre-richter&#x2F;rust-raspi3-tutorial&quot;&gt;bare metal Raspberry Pi 3&lt;&#x2F;a&gt; applications&lt;&#x2F;li&gt;
&lt;li&gt;The Embedonomicon and the Embedded Rust Books are &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;pull&#x2F;78&quot;&gt;now kept&lt;&#x2F;a&gt; in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; repository, and pull requests are welcome!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to mention it on the tracking issue for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;84&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&quot;&gt;japaric&lt;&#x2F;a&gt; released an initial version of &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;cargo-binutils&quot;&gt;cargo-binutils&lt;&#x2F;a&gt;, which will allow you to use LLVM&#x27;s binutils (like &lt;code&gt;nm&lt;&#x2F;code&gt;, &lt;code&gt;size&lt;&#x2F;code&gt;, &lt;code&gt;objcopy&lt;&#x2F;code&gt;, etc.) in the format &lt;code&gt;cargo objcopy&lt;&#x2F;code&gt; (once &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;issues&#x2F;49584&quot;&gt;issue 49584&lt;&#x2F;a&gt; has landed)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;myeisha&quot;&gt;myeisha&lt;&#x2F;a&gt; released the first version of their &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;thumb2-stack-size&quot;&gt;thumb2-stack-size&lt;&#x2F;a&gt; tool, which helps determine the maximum stack size used in embedded code&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;embedded-hal-ecosystem-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Ecosystem Crates&lt;&#x2F;h3&gt;
&lt;p&gt;As part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;, crates that are part of the &lt;code&gt;embedded-hal&lt;&#x2F;code&gt; ecosystem are now tracked in the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust&quot;&gt;Awesome Embedded Rust&lt;&#x2F;a&gt; repository. Here is a current snapshot of what is available there:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style=&quot;text-align: left&quot;&gt;Type&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Status&lt;&#x2F;th&gt;&lt;th style=&quot;text-align: left&quot;&gt;Count&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#device-crates&quot;&gt;Device Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;13&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#hal-implementation-crates&quot;&gt;HAL Impl Crates&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;10&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#driver-crates&quot;&gt;Driver Crates Released&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;released&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;7&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-embedded&#x2F;awesome-embedded-rust#wip&quot;&gt;Driver Crates WIP&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;WIP&lt;&#x2F;td&gt;&lt;td style=&quot;text-align: left&quot;&gt;26&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;help-wanted&quot;&gt;Help Wanted&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;We need help working on &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;issues&#x2F;44489#issuecomment-381324623&quot;&gt;RFC2070&lt;&#x2F;a&gt;, stabilizing usage of custom Panic behavior. &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nagisa&quot;&gt;nagisa&lt;&#x2F;a&gt; is willing to mentor!&lt;&#x2F;li&gt;
&lt;li&gt;If you use inline assembly in your Embedded Rust programs, help us capture what assembly operations are &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;63#issue-305114817&quot;&gt;used most often&lt;&#x2F;a&gt; so we can stabilize them as intrinsics&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 2</title>
                <pubDate>Thu, 29 Mar 2018 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-2/</link>
                <guid>https://blog.rust-embedded.org/newsletter-2/</guid>
                <description>&lt;p&gt;This is the second bi-weekly newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;72&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, make sure to leave a comment on the issue.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dbrgn&quot;&gt;dbrgn&lt;&#x2F;a&gt; has kicked off an investigation on how to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;70&quot;&gt;mock embedded-hal&lt;&#x2F;a&gt; to make testing sensors easier&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Emilgardis&quot;&gt;emilgardis&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ryankurte&quot;&gt;ryankurte&lt;&#x2F;a&gt; are busy &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;svd&#x2F;issues&#x2F;46&quot;&gt;refactoring&lt;&#x2F;a&gt; the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;svd&quot;&gt;svd-parser&lt;&#x2F;a&gt; crate&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&quot;&gt;japaric&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;hannobraun&quot;&gt;hannobraun&lt;&#x2F;a&gt;, and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jamesmunns&quot;&gt;jamesmunns&lt;&#x2F;a&gt; from the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt; attended the 2018 Rust All Hands in Berlin, working on our goal to make &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;42&quot;&gt;stable embedded rust development&lt;&#x2F;a&gt; possible in 2018. See the bottom of this post for more details!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to mention it on the tracking issue for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;72&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;h3 id=&quot;embedded-hal-drivers&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; drivers&lt;&#x2F;h3&gt;
&lt;p&gt;This is a list of recently released drivers that are part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;. There are currently 5 Released Drivers, 14 WIP Drivers, and lots of TODOs!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;danielgallagher0&quot;&gt;danielgallagher0&lt;&#x2F;a&gt; has released their &lt;a href=&quot;https:&#x2F;&#x2F;medium.com&#x2F;@pdanielgallagher&#x2F;hts221-humidity-and-temperature-sensor-88056ea9e5fa&quot;&gt;hts221&lt;&#x2F;a&gt; humidity and temperature sensor driver&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MrBuddyCasino&quot;&gt;MrBuddyCasino&lt;&#x2F;a&gt; has released their I2C based &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;mcp9808&quot;&gt;mcp9808&lt;&#x2F;a&gt; temperature sensor driver&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ilya-epifanov&quot;&gt;Ilya Epifanov&lt;&#x2F;a&gt; has released their I2C based &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ilya-epifanov&#x2F;si5351&quot;&gt;si5351&lt;&#x2F;a&gt; CMOS clock generator driver, check out the &lt;a href=&quot;https:&#x2F;&#x2F;docs.rs&#x2F;si5351&#x2F;0.1.5&#x2F;si5351&#x2F;&quot;&gt;si5351 docs&lt;&#x2F;a&gt; for more info&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;RandomInsano&quot;&gt;Edwin Amsler&lt;&#x2F;a&gt; is working on their &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;RandomInsano&#x2F;axp209-rs&quot;&gt;axp209&lt;&#x2F;a&gt; PMIC driver&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dbrgn&quot;&gt;dbrgn&lt;&#x2F;a&gt; is working on their Sensirion &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dbrgn&#x2F;sgp30-rs&quot;&gt;sgp30&lt;&#x2F;a&gt; low-power gas sensor driver&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;pcein&quot;&gt;pcein&lt;&#x2F;a&gt; has started work on their &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;pcein&#x2F;pcd8544&quot;&gt;pcd8544&lt;&#x2F;a&gt; for SPI based LCD controllers used in displays like the Nokia 5110&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nordmoen&quot;&gt;nordmoen&lt;&#x2F;a&gt; is working on their driver for the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nordmoen&#x2F;hc-sr04&quot;&gt;hc-sr04&lt;&#x2F;a&gt; ultrasonic distance sensor&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;embedded-hal-board-chip-support-crates&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; Board&#x2F;Chip Support Crates&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;DoumanAsh&quot;&gt;DoumanAsh&lt;&#x2F;a&gt; has started work on their &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;DoumanAsh&#x2F;stm32l4x6_hal&quot;&gt;stm32l4x6-hal&lt;&#x2F;a&gt; chip support crate&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;thanks&quot;&gt;Thanks&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Thanks to all of the Rust Team and Working Group members who took time at the All Hands to tackle some important Embedded Issues&lt;&#x2F;li&gt;
&lt;li&gt;Thanks to &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;alexcrichton&quot;&gt;Alex Chrichton&lt;&#x2F;a&gt; who pushed a fix to a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;pull&#x2F;49316&quot;&gt;linker issue&lt;&#x2F;a&gt; mentioned in our &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;blob&#x2F;master&#x2F;newsletters&#x2F;2018-03-15.md&quot;&gt;last newsletter&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;help-wanted&quot;&gt;Help Wanted&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;SimonSapin&quot;&gt;Simon Sapin&lt;&#x2F;a&gt; posted some working code for the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;39#issuecomment-375262785&quot;&gt;DS3234&lt;&#x2F;a&gt; SPI RTC, and is looking for someone to turn it into a maintained crate!&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If you have an embedded project that could use contributors or maintainers, leave a comment for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;72&quot;&gt;the next newsletter&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;h1 id=&quot;special-feature-the-embedded-wg-at-the-2018-rust-all-hands&quot;&gt;Special Feature: The Embedded WG at the 2018 Rust All Hands&lt;&#x2F;h1&gt;
&lt;p&gt;This week 15 or so Rust teams&#x2F;working groups met for the Rust All Hands event in Berlin. Some members of the embedded WG were present and we had a chance to talk to the compiler, core and infra teams.&lt;&#x2F;p&gt;
&lt;p&gt;These are the highlights of our talks.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;embedded-rust-on-stable&quot;&gt;Embedded Rust on stable&lt;&#x2F;h2&gt;
&lt;p&gt;We had previously identified 3 unstable features &#x2F; issues that tie embedded development to the nightly channel in https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;stable-embedded-rust. We talked to the other Rust teams about the possibility of addressing these issues in time for the 2018 edition release and the conclusion was that they thought that the timeline was possible. These are the 3 unstable features we are referring to:&lt;&#x2F;p&gt;
&lt;h3 id=&quot;unstable-feature-1-xargo&quot;&gt;Unstable Feature #1: &lt;code&gt;xargo&lt;&#x2F;code&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We&#x27;ll ship a rust-std component (pre-compiled &lt;code&gt;core&lt;&#x2F;code&gt;+&lt;code&gt;compiler-builtins&lt;&#x2F;code&gt;) for the &lt;code&gt;thumb*&lt;&#x2F;code&gt; and &lt;code&gt;msp430&lt;&#x2F;code&gt; targets. This removes the need for &lt;code&gt;xargo&lt;&#x2F;code&gt; so people will be able to do something like the following to cross compile to ARM Cortex-M:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;bash&quot; style=&quot;background-color:#2b303b;color:#c0c5ce;&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;rustup&lt;&#x2F;span&gt;&lt;span&gt; target add thumb7m-none-eabi
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;cargo&lt;&#x2F;span&gt;&lt;span&gt; build&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt; --target&lt;&#x2F;span&gt;&lt;span&gt; thumbv7m-none-eabi
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Tracking issue&lt;&#x2F;strong&gt;: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;issues&#x2F;49382&quot;&gt;rust-lang&#x2F;rust#49382&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;unstable-feature-2-compiler-builtins&quot;&gt;Unstable Feature #2: &lt;code&gt;compiler-builtins&lt;&#x2F;code&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;code&gt;extern crate compiler_builtins&lt;&#x2F;code&gt; is unstable to directly use. The fix we have decided on is to inject that as part of the prelude you get from &lt;code&gt;#![no_std]&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;So, today &lt;code&gt;#![no_std]&lt;&#x2F;code&gt; expands to something like this:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;rust&quot; style=&quot;background-color:#2b303b;color:#c0c5ce;&quot; class=&quot;language-rust &quot;&gt;&lt;code class=&quot;language-rust&quot; data-lang=&quot;rust&quot;&gt;&lt;span&gt;#![&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;no_std&lt;&#x2F;span&gt;&lt;span&gt;]
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;extern crate&lt;&#x2F;span&gt;&lt;span&gt; core;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;With our change the expansion will run like this:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;rust&quot; style=&quot;background-color:#2b303b;color:#c0c5ce;&quot; class=&quot;language-rust &quot;&gt;&lt;code class=&quot;language-rust&quot; data-lang=&quot;rust&quot;&gt;&lt;span&gt;#![&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;no_std&lt;&#x2F;span&gt;&lt;span&gt;]
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;extern crate&lt;&#x2F;span&gt;&lt;span&gt; core;
&lt;&#x2F;span&gt;&lt;span&gt;
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#65737e;&quot;&gt;&#x2F;&#x2F; but this doesn&amp;#39;t #![feature(compiler_builtins_lib)]
&lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;extern crate&lt;&#x2F;span&gt;&lt;span&gt; compiler_builtins;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;In the future we might want to merge &lt;code&gt;compiler-builtins&lt;&#x2F;code&gt; into &lt;code&gt;core&lt;&#x2F;code&gt; but that requires more effort and can still be done if we do the &lt;code&gt;#![no_std]&lt;&#x2F;code&gt; prelude approach right now.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Tracking issue:&lt;&#x2F;strong&gt; &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;issues&#x2F;49380&quot;&gt;rust-lang&#x2F;rust#49380&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;unstable-feature-3-panic-fmt&quot;&gt;Unstable Feature #3: &lt;code&gt;panic_fmt&lt;&#x2F;code&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;There&#x27;s an accepted RFC (#2070) for a stable mechanism to select the behavior of &lt;code&gt;panic!&lt;&#x2F;code&gt; in &lt;code&gt;no_std&lt;&#x2F;code&gt; context, and there&#x27;s a know issue where the arguments of &lt;code&gt;panic_fmt&lt;&#x2F;code&gt; are kept in the binary even when they are unused by the &lt;code&gt;panic_fmt&lt;&#x2F;code&gt; implementation (cf. &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;41&quot;&gt;rust-lang&#x2F;embedded-wg#41&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;p&gt;The main concern here was whether we&#x27;ll be able to fix the binary size problem with the accepted design or if we&#x27;ll need some new design. The compiler team thinks that this can be fixed with the existing design using MIR only rlibs but it&#x27;s unlikely this will get fixed in time for the edition release. &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;nagisa&quot;&gt;nagisa&lt;&#x2F;a&gt; will likely propose an alternate solution that involves having Cargo select the panic provider crate.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;non-critical-unstable-features&quot;&gt;Non critical unstable features&lt;&#x2F;h2&gt;
&lt;p&gt;There are some other unstable features that don&#x27;t prevent you from doing embedded development, however they come up often when doing no-std development. We had a chat with people on the compiler team about them.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;unstable-feature-4-const-fn&quot;&gt;Unstable Feature #4: &lt;code&gt;const fn&lt;&#x2F;code&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;This feature has been proposed for stabilization (cf. &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;issues&#x2F;24111#issuecomment-376649804&quot;&gt;rust-lang&#x2F;rust#24111&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;h3 id=&quot;unstable-feature-5-asm&quot;&gt;Unstable Feature #5: &lt;code&gt;asm!&lt;&#x2F;code&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;strong&gt;Background&lt;&#x2F;strong&gt;: Some assembly operations can be implemented as external assembly files that are then called into using FFI; other ops though do need to be inlined into the function from which they are called to prevent losing semantics. Using external assembly file can be done on the stable channel. The second type of operation requires the unstable &lt;code&gt;asm!&lt;&#x2F;code&gt; macro.&lt;&#x2F;p&gt;
&lt;p&gt;The compiler team is not 100% sure on whether they want to stabilize inline assembly for the edition release. The embedded WG has proposed an alternative proposal: expose &lt;em&gt;some&lt;&#x2F;em&gt; assembly operations that need to be inlined as &quot;Rust intrinsics&quot; -- in a similar fashion to how SIMD is being implemented; these intrinsics would be in the &lt;code&gt;core::asm::$ARCH&lt;&#x2F;code&gt; module and they could either be implemented by lowering to a LLVM intrinsic or using inline assembly. For example:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;rust&quot; style=&quot;background-color:#2b303b;color:#c0c5ce;&quot; class=&quot;language-rust &quot;&gt;&lt;code class=&quot;language-rust&quot; data-lang=&quot;rust&quot;&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;pub mod &lt;&#x2F;span&gt;&lt;span&gt;asm {
&lt;&#x2F;span&gt;&lt;span&gt;    &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;pub mod &lt;&#x2F;span&gt;&lt;span&gt;arm {
&lt;&#x2F;span&gt;&lt;span&gt;        #[&lt;&#x2F;span&gt;&lt;span style=&quot;color:#bf616a;&quot;&gt;inline&lt;&#x2F;span&gt;&lt;span&gt;(always)]
&lt;&#x2F;span&gt;&lt;span&gt;        &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;pub fn &lt;&#x2F;span&gt;&lt;span style=&quot;color:#8fa1b3;&quot;&gt;cpsid&lt;&#x2F;span&gt;&lt;span&gt;() {
&lt;&#x2F;span&gt;&lt;span&gt;            &lt;&#x2F;span&gt;&lt;span style=&quot;color:#b48ead;&quot;&gt;unsafe &lt;&#x2F;span&gt;&lt;span&gt;{
&lt;&#x2F;span&gt;&lt;span&gt;                asm!(&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;cpsid i&lt;&#x2F;span&gt;&lt;span&gt;&amp;quot; ::: &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;memory&lt;&#x2F;span&gt;&lt;span&gt;&amp;quot; : &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color:#a3be8c;&quot;&gt;volatile&lt;&#x2F;span&gt;&lt;span&gt;&amp;quot;);
&lt;&#x2F;span&gt;&lt;span&gt;            }
&lt;&#x2F;span&gt;&lt;span&gt;        }
&lt;&#x2F;span&gt;&lt;span&gt;    }
&lt;&#x2F;span&gt;&lt;span&gt;}
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;These would be stable APIs with an unstable implementation. If LLVM assembler syntax changes, the implementations of these functions would have to be updated.&lt;&#x2F;p&gt;
&lt;p&gt;The embedded WG will submit an RFC proposing the &lt;code&gt;asm&lt;&#x2F;code&gt; module and that will include a list of assembly operations that (a) are common and (b) need to be inlined for different architectures.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;unstable-feature-6-used&quot;&gt;Unstable Feature #6: &lt;code&gt;#[used]&lt;&#x2F;code&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;This experimental feature has been in the compiler for a while and it&#x27;s required in some scenarios when using LTO to prevent the compiler from dead-stripping some function &#x2F; &lt;code&gt;static&lt;&#x2F;code&gt; that needs to be in the final binary.&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;ll try to get it stabilized by the edition release but it&#x27;s not a high priority feature.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;stability-of-the-embedded-targets&quot;&gt;Stability of the Embedded Targets&lt;&#x2F;h2&gt;
&lt;p&gt;We don&#x27;t only want to make embedded Rust possible on stable; we also want to make sure the embedded targets don&#x27;t regress. So we are going to add tests to rust-lang&#x2F;rust CI to make sure regression block PRs from landing.&lt;&#x2F;p&gt;
&lt;p&gt;That effectively will make some of the embedded targets into the tier 1 platform. The core team is fine with adding the &lt;code&gt;thumb*&lt;&#x2F;code&gt; targets (ARM Cortex-M) to tier 1. Less maintained, still in development and not fully mature targets like AVR, MSP430 and RISCV will become tier 2 -- they&#x27;ll be tested but won&#x27;t block PRs and rust-std binaries will be produced but it&#x27;s not guaranteed there will be binaries available for all nightly &#x2F; beta &#x2F; stable releases.&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;ll open an issue to discuss with the infra team the exact tests we want to add and track progress on that, but have already told them about the kind of tests we want to add and they thought those kind of tests are possible to implement. The kind of tests we discussed were:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;It compiles and links&lt;&#x2F;li&gt;
&lt;li&gt;Runs the cross compiled binary in QEMU doesn&#x27;t crash and exits with exit code 0.&lt;&#x2F;li&gt;
&lt;li&gt;Tracking the binary size of a program compiled with &lt;code&gt;-Os&lt;&#x2F;code&gt; &#x2F; &lt;code&gt;-Oz&lt;&#x2F;code&gt; and notify someone or fail the build if the size changes by +&#x2F;- 5-10% or something.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;llvm-backends-that-are-not-yet-in-rustc&quot;&gt;LLVM backends that are not yet in rustc&lt;&#x2F;h2&gt;
&lt;p&gt;There are two embedded LLVM backends that have not yet been enabled in rustc for different reasons: AVR and RISCV.&lt;&#x2F;p&gt;
&lt;p&gt;In the case of AVR the main reason is that some LLVM codegen bugs prevent you from building core for AVR. These bugs are related to 128-bit integers and formatting floats. The libs team discussed this some time ago and they decided they are fine with landing arch specific &lt;code&gt;#[cfg]&lt;&#x2F;code&gt; attributes to remove 128-bit integers and other things like float APIs.&lt;&#x2F;p&gt;
&lt;p&gt;In the case of RISCV the LLVM backend is currently under active development and our current version of LLVM doesn&#x27;t fully support RISCV. We would have to backport several patches to make RISCV work on our LLVM version. The core team feels OK with backporting those patches as long as they have already landed in upstream LLVM, and are not still under review.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;tooling&quot;&gt;Tooling&lt;&#x2F;h2&gt;
&lt;p&gt;Getting tooling for e.g. binary inspection (e.g. &lt;code&gt;objdump&lt;&#x2F;code&gt;) can be hard on some platforms (e.g. Windows) specially for architecture which currently are not too widely used (e.g. RISCV). We can improve the situation here by shipping llvm tools with the Rust toolchain -- with one set of those tools you can inspect all the architectures that Rust supports. These are the thoughts of the core &#x2F; infra team regarding this:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;We put these tools in the sysroot and have them always shipped with the Rust toolchain so no &lt;code&gt;rustup component add&lt;&#x2F;code&gt; required -- this is already the case with &lt;code&gt;lld&lt;&#x2F;code&gt;. It might not be possible to provide these tools on all platforms but it&#x27;s very likely they&#x27;ll be available on tier 1 platforms.&lt;&#x2F;li&gt;
&lt;li&gt;We do &lt;em&gt;not&lt;&#x2F;em&gt; add these tools to the user &lt;code&gt;$PATH&lt;&#x2F;code&gt;. Instead some Cargo subcommand will be created by the embedded WG (e.g. &lt;code&gt;cargo objdump&lt;&#x2F;code&gt;) and that subcommand will look for &lt;code&gt;llvm-objdump&lt;&#x2F;code&gt; in the  sysroot and do the right thing.&lt;&#x2F;li&gt;
&lt;li&gt;We make no guarantees about the semantics and interface of these tools being preserved over time (e.g. CLI changes, user facing output format changes, etc.).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;the-embedded-rust-book&quot;&gt;The Embedded Rust Book&lt;&#x2F;h3&gt;
&lt;p&gt;We decided on an initial audience for the embedded book; we will be targeting people that know some embedded stuff &lt;em&gt;and&lt;&#x2F;em&gt; some Rust. The main reason for this is that if someone knows one and not the
other then they can go and read existing Rust documentation or the Discovery book and then read the embedded book. For more details check &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;56&quot;&gt;rust-lang-nursery&#x2F;embedded-wg#56&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</description>
            </item>
        
            <item>
                <title>The Embedded Working Group Newsletter - 1</title>
                <pubDate>Thu, 15 Mar 2018 00:00:00 +0000</pubDate>
                <link>https://blog.rust-embedded.org/newsletter-1/</link>
                <guid>https://blog.rust-embedded.org/newsletter-1/</guid>
                <description>&lt;p&gt;This is the first newsletter of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&quot;&gt;Embedded WG&lt;&#x2F;a&gt;! We will be releasing this newsletter on a bi-weekly basis, and we are looking to highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;p&gt;If you want to mention something in &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;65&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, make sure to leave a comment on the issue!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;helena-project&#x2F;tock&quot;&gt;Tock-OS&lt;&#x2F;a&gt; has released the &lt;a href=&quot;https:&#x2F;&#x2F;www.tockos.org&#x2F;blog&#x2F;2018&#x2F;talking-tock-35&#x2F;&quot;&gt;1.0 of their kernel&lt;&#x2F;a&gt;, gotten the Rust Userspace library back in order, and are working on a &lt;a href=&quot;https:&#x2F;&#x2F;www.tockos.org&#x2F;blog&#x2F;2018&#x2F;talking-tock-36&#x2F;&quot;&gt;new register interface&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Emilgardis&quot;&gt;Emilgardis&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;jamesmunns&quot;&gt;jamesmunns&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ryankurte&quot;&gt;ryankurte&lt;&#x2F;a&gt; have become collaborators of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;svd&quot;&gt;svd&lt;&#x2F;a&gt; and &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;svd2rust&quot;&gt;svd2rust&lt;&#x2F;a&gt; projects.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;hannobraun&quot;&gt;hannobraun&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ilya-epifanov&quot;&gt;ilya-epifanov&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;thejpster&quot;&gt;thejpster&lt;&#x2F;a&gt;, &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;therealprof&quot;&gt;therealprof&lt;&#x2F;a&gt; have become collaborators of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;embedded-hal&quot;&gt;embedded-hal&lt;&#x2F;a&gt; project.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dvc94ch&quot;&gt;dvc94ch&lt;&#x2F;a&gt; has created the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;riscv-rust&quot;&gt;riscv-rust&lt;&#x2F;a&gt; organization for all your embedded RISCV needs!&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dylanmckay&quot;&gt;dylanmckay&lt;&#x2F;a&gt; has begun &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;avr-rust&#x2F;rust&#x2F;pull&#x2F;91&quot;&gt;rebasing&lt;&#x2F;a&gt; the avr-rust&#x2F;rust fork onto a recent rust-lang&#x2F;rust version, bringing in LLVM 6.0 support.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;embedded-projects&quot;&gt;Embedded Projects&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to mention it on the tracking issue for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;65&quot;&gt;the next newsletter&lt;&#x2F;a&gt;, we would love to show it off!&lt;&#x2F;p&gt;
&lt;h3 id=&quot;embedded-hal-drivers&quot;&gt;&lt;code&gt;embedded-hal&lt;&#x2F;code&gt; drivers&lt;&#x2F;h3&gt;
&lt;p&gt;This is a list of recently released drivers that are part of the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;39&quot;&gt;Weekly Driver Initiative&lt;&#x2F;a&gt;. There are currently 5 Released Drivers, 14 WIP Drivers, and lots of TODOs!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;pcein&quot;&gt;pcein&lt;&#x2F;a&gt; has &lt;a href=&quot;http:&#x2F;&#x2F;pramode.in&#x2F;2018&#x2F;02&#x2F;24&#x2F;an-introduction-to-writing-embedded-hal-based-drivers-in-rust&#x2F;&quot;&gt;released&lt;&#x2F;a&gt; the third weekly driver for the &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;adc-mcp3008&quot;&gt;&lt;code&gt;adc-mcp3008&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, an 8-channel 10-bit ADC.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&quot;&gt;japaric&lt;&#x2F;a&gt; has &lt;a href=&quot;http:&#x2F;&#x2F;blog.japaric.io&#x2F;wd-4-enc28j60&#x2F;&quot;&gt;released&lt;&#x2F;a&gt; the fourth weekly driver for the &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;enc28j60&quot;&gt;&lt;code&gt;enc28j60&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, an Ethernet controller with SPI interface.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dbrgn&quot;&gt;dbrgn&lt;&#x2F;a&gt; has &lt;a href=&quot;https:&#x2F;&#x2F;blog.dbrgn.ch&#x2F;2018&#x2F;3&#x2F;13&#x2F;rust-mcp3425-driver&#x2F;&quot;&gt;released&lt;&#x2F;a&gt; the fifth weekly driver for the &lt;a href=&quot;https:&#x2F;&#x2F;crates.io&#x2F;crates&#x2F;mcp3425&quot;&gt;&lt;code&gt;mcp3425&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;, a 16-bit ADC with I2C interface.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;thanks&quot;&gt;Thanks&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Thanks to everyone who has been commenting on the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&quot;&gt;Embedded WG Issues&lt;&#x2F;a&gt;, especially for the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;56&quot;&gt;Embedded Rust Book&lt;&#x2F;a&gt; tracking issue!&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;varkor&quot;&gt;varkor&lt;&#x2F;a&gt; has fixed a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;issues&#x2F;41315&quot;&gt;long standing LLVM bug&lt;&#x2F;a&gt;, that artificially increased the binary size of Rust programs, and backported the patch to rustc.&lt;&#x2F;li&gt;
&lt;li&gt;LLD is now being shipped with the Rust toolchain. &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;FenrirWolf&quot;&gt;FenrirWolf&lt;&#x2F;a&gt; &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;xargo&#x2F;pull&#x2F;200&quot;&gt;patched Xargo&lt;&#x2F;a&gt; so that Xargo users can make use of it too.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;help-wanted&quot;&gt;Help Wanted&lt;&#x2F;h2&gt;
&lt;p&gt;If you have an embedded project that could use contributors or maintainers, leave a comment for &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;65&quot;&gt;the next newsletter&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;We are &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;cortex-m-rt&#x2F;issues&#x2F;53&quot;&gt;pretty close&lt;&#x2F;a&gt; to being able to use LLD to link Rust programs compiled for ARM Cortex-M but there are some &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;japaric&#x2F;cortex-m-rt&#x2F;issues&#x2F;53#issuecomment-371972935&quot;&gt;LLD bugs&lt;&#x2F;a&gt; that still need to be fixed. Help reporting these bugs upstream would be greatly appreciated!&lt;&#x2F;li&gt;
&lt;li&gt;Incremental compilation is in the roadmap for this year but it doesn&#x27;t work with &lt;code&gt;no_std&lt;&#x2F;code&gt; binaries due to an &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;issues&#x2F;18807&quot;&gt;old rustc bug&lt;&#x2F;a&gt; related to linking. Help us fix it! There&#x27;s a proposed solution &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rust&#x2F;issues&#x2F;47074#issuecomment-354588718&quot;&gt;here&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;We want to explore stabilizing some assembly operations in core as an alternative to the unstable asm! macro. We would love some help identifying the assembly operations that need to be provided this way as some can be implemented in external assembly files without losing
semantics. Details in issue &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rust-lang-nursery&#x2F;embedded-wg&#x2F;issues&#x2F;63&quot;&gt;#63&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
            </item>
        
    </channel>
</rss>
