Felipe Balbi

Felipe Balbi

@balbi.sh

34 followers26 following30 posts

I decided to make my own keyboard. I've been an urchin for a few years and, before that, a ferris sweep. Now I have a redesign of the urchin on a reversible PCB and 36 keys instead of 34. It will run RMK, at least that's what I'll flash on mine. Once it's tested, I'll make the designs public.

Felipe Balbi reposted

Device-driver release time! Version 2.2.0 introduces the LSP support I've been teasing for a while. This is coupled with a vscode extension. But the LSP should work anywhere you can hook it up to. Lots of internal changes too, probably the biggest MIR change since 1.0.

Few more interesting PRs from yours truly. Added support to all mcxa2 and mcxa5 variants to probe-rs. Generated metapac for all those variants. Added mcxa287 examples to embassy. The PAC needs some work to avoid carrying so much duplication. That’s next.

In all fairness, the clock code @jamesmunns.com wrote is so darn flexible and NXP made the variants so darn similar that adding mcxa287 support was a noop. Just examples needed. Even deep sleep worked.

Please, install and test the latest probe-rs. @dbuga.bsky.social merged all of my proposed fixes/improvements. If you have cortex-m devices, make sure to check that there are no known regressions. I checked with STM32G071RB, MCXA266, MSPM0G3519, and STM32F405.

Felipe Balbi reposted

I've got 2 bugs and 2 enhancements for sequential-storage that require a "disk-breaking" change. So at some point I'll come with a properly breaking release. I don't think I want to maintain two disk formats. So if you have an idea for a (disk) breaking change, please open an issue!

I'm torn. I pushed a few PRs to `probe-rs` which improve stability and performance of MCXA targets. There's even a new proposed API for faster image verification which skips a read-back if the HW supports a verification command. The problem: several inconsistencies in vendor documentation :(

Must say, seeing folks outside my team at work using pico de gallo is a really nice feeling :-) Cheers @galactic-forensics.space

reto@galactic-forensics.space

My first real Pico de Gallo test: successfully set the voltage on an LTC2686 DAC. Development with Pico de Gallo is going to be very fun :) Next thing up: write an actual Rust driver with Device Driver v2. Thanks to @balbi.sh and @diondokter.nl for these amazing tools! #EmbeddedRust #Rust

Excited to see device-driver moving forward! It’s an amazing crate.

Dion Dokter@diondokter.nl

Ok, putting it out there so there's a higher chance of me getting it actually done :P It's my aim to release device-driver v2 this month

Norbert tries hard to not carry a per-chip table. It always looks for the SFDP, if it exists, it will use that to carry out its tasks.

Forgot to post here, but a little while back, Pico de Gallo got an MCP server. I was surprised when an agent was able to figure out what the tools did and, given datasheet, even wrote a simple driver for tmp117: balbi.sh/posts/gallo-...

balbi.shAgentic Gallo: Introducing gallo-mcpgallo-mcp is a new Model Context Protocol server that hands a Pico de Gallo board to the AI agent writing your driver — one tool per peripheral operation across I²C, SPI, UART, GPIO, PWM, ADC, and 1-W...

Little note: I’m working on a small update to support multiple pico de gallos attached to same machine. Every tool will get the serial number of the target pico de gallo. Couldn’t get it done by Friday and it’s the weekend. Hopefully by next week. Meanwhile, single pico de gallo works well.

Super glad to see this getting more love. Thanks @jamesmunns.com for all the fish :-)

James Munns@jamesmunns.com

github.com/embassy-rs/e... I love a checklist and this checklist is the best guide I am aware of "how to effectively write async embedded rust drivers for microcontrollers" I am aware of today. Parts written by myself and @balbi.sh for MCX-A, expanded by @dirbaio.bsky.social for all of embassy.

I’ve been tinkering with Clash and wondered if I could make validating eSPI controller drivers easier. That idea became Tamal. 😊 Clash core + Rust tools! It’s experimental, but should be useful. Why I built it: balbi.sh/posts/tamal-... Code: github.com/felipebalbi/... #haskell #clashlang #fpga

balbi.shTamal: an eSPI exerciserIntroducing Tamal — mole's idea retargeted to Intel's eSPI. An experimental FPGA exerciser that plays eSPI controller, drives legal and illegal cycles with deterministic timing, and captures everythin...

Spent a few weeks bringing up an I3C target driver for NXP MCXA in Rust/embassy. Three gotchas each took a day to diagnose and a line to fix — a 4× slow clock, a FIFO race, and a sneaky Stop that wrecked my framing. Wrote it up to make sure I never fall for these again 👇 balbi.sh/posts/i3c-ta...

balbi.shI3C target mode on MCXA: three things the datasheet didn't warn me aboutA single-chip, single-driver bring-up story for I3C target mode on NXP MCXA. Three concrete gotchas, three diagnoses, three fixes, and the checklist I wish I'd had on day one.

More metapacs, that's exactly what we need. Hopefully an embassy HAL can be built on top of this work :-) Amazing.

Andres Vahter 🦀@andres.vahter.me

For all Silicon Labs EFR32 Rust fans I just published crates.io/crates/silab.... It follows the same idea as crates.io/crates/stm32...

Write embedded drivers without the MCU in your dev loop. Pico de Gallo turns a Pi Pico 2 into a USB-attached I²C/SPI/UART/GPIO/ADC/1-Wire bridge, so your driver is just a cargo run binary talking to real silicon from your laptop. Build one for your chip → balbi.sh/posts/writin...

balbi.shWriting embedded drivers without an MCUTreating a sensor driver like normal software: a real I²C bus on your laptop, the upstream driver crate unmodified, and a live ratatui dashboard around it.

You are up to date.