4 comments

  • teaearlgraycold1 hour ago
    I love the Pico product line and think they are severely underutilized. Many Pi 3/4/5 projects can be performed with one of these little guys. Don’t chain yourself to a whole Linux distro unless you really need it.
    • zxexz1 hour ago
      What I'll never understand about this whole thing is why most people seem to easily tolerate the rigamarole of maintaining an entire host SBC OS and sending or even cross compiling binaries to it, for microprocessor work. I much prefer maintaining a dev env on machine(s) and sending and flashing a binary over the wire. Maybe I just dislike state, but the pico (and several other MCU ecosystems these days) make it so easy to
      • teaearlgraycold1 hour ago
        I'm sure you're aware, but for the record the Pico has state. That's one of the best things about it. You have a very fully featured Python environment (or rust, or C) with a read/write filesystem. The WiFi SDK is also super useful. They can make HTTP requests (and HTTPS without full CA validation), host an HTTP server, even host an access point.
  • LoganDark1 hour ago
    Languages:<p>75.4% Linker Script<p>18.2% Rust<p>6.4% Shell<p>About sums up embedded development in Rust.
    • mkj4 minutes ago
      It looks like github is just buggy in this case.
    • nevi-me1 hour ago
      Most of the code is already in libraries. rs-matter includes a lot of batteries, so for simple clusters you end up writing little code.
  • melastmohican6 hours ago
    Hi HN,<p>I’ve been experimenting with the new Raspberry Pi Pico 2 W (RP2350) and wanted to see how difficult it would be to build a fully compliant Matter smart device from scratch using Rust.<p>I put together a complete &quot;Blinky&quot; example using the rs-matter stack and the embassy async framework. It uses BLE for the initial commissioning phase and Wi-Fi for network connectivity. Once flashed, you can provision it directly into Apple Home, Google Home, or Home Assistant using your smartphone—no cloud accounts required. It exposes a standard Matter On&#x2F;Off cluster that toggles a physical LED wired to the GPIO pins.<p>A few interesting technical notes from the build:<p>Bare Metal: It runs entirely no_std on bare metal using embassy-rp. Radio Coexistence: Getting the CYW43439 wireless chip to handle concurrent BLE (for commissioning) and Wi-Fi (for Matter IP traffic) on the RP2350 took some tweaking. We actually had to dial back the PIO SPI clock divider specifically because the RP2350&#x27;s faster 150MHz core clock was causing bus corruption when the radio was saturated! Async Rust: The repo includes the full async CoEx (coexistence) runner setup to safely multiplex the radio between the Bluetooth and Wi-Fi stacks concurrently. If you’ve been wanting to build local-only smart home devices but felt intimidated by the massive official C++ Matter SDK, doing it in Rust is actually becoming incredibly approachable.<p>Would love to hear if anyone else is building custom smart home gear in Rust.
    • DazWilkin4 hours ago
      This looks very interesting. Thanks for sharing!
    • MrBuddyCasino4 hours ago
      &gt; <i>bus corruption when the radio was saturated</i><p>How do you even diagnose this?
      • melastmohican2 hours ago
        The initial approach was to run BLE and Wi-Fi simultaneously. Provisioning sometimes worked. It seems like there was some interference. Then switched to run BLE with Wi-FI off. When I got Wi-Fi credentials, switched BLE off, and turned Wi-Fi on. It still had some issues. Turned out when slowed down SPI bus, it started working. Only tested with Home Assistant and have to fork and patch rs-matter-embassy
        • mrlambchop1 hour ago
          re: wifi&#x2F;ble together<p>That sounds like the crate didn&#x27;t have coexistence enabled or the defaults were really odd - so much boring stuff to write about BLE&#x2F;WiFi Coex, but the short is &quot;the default settings&quot; are pretty good for low bandwidth IoT devices.<p>I&#x27;ll peek at the code out of interest :)
      • taneq1 hour ago
        Use a digital storage scope, many of them can directly decode protocols like SPI . Then a lot of trial and error to figure out when exactly the issue happens and what else is happening around that time.
  • jkwang3 hours ago
    [flagged]