De tu iPad al bare metal
Ferric genera binarios UF2 reales y los flashea por USB — sin drivers, sin herramientas extra. Ya probado: entra en modo BOOTSEL, la placa se monta como almacenamiento masivo, Ferric copia el UF2 y listo. Un emulador integrado te deja verificar el firmware antes de tocar una placa. Desbloqueo único — tuyo para siempre.
De la plantilla al LED parpadeando
Todo hasta el UF2 ocurre en el iPad — puedes escribir, compilar y verificar firmware sin ningún hardware. Solo necesitas una placa y un cable para el flasheo final.
-
Elige placa y plantilla
Elige la Pico (RP2040) o la Pico 2 (RP2350) y arranca desde una plantilla oficial — embassy (async) o rp-rs (HAL). Ferric configura el target y el layout de memoria correctos por ti.
-
Escribe tu firmware
Edita el firmware no_std en el mismo editor real — resaltado, diagnósticos y la barra de teclado Rust. El primer programa clásico alterna el LED de la placa.
-
Verifica en el emulador
Ejecuta el firmware en el emulador integrado de la Pico para confirmar que el LED de verdad parpadea — caza un nivel invertido o un bucle que nunca duerme en el iPad, no en la mesa.
-
Genera el UF2
Ferric compila y enlaza un .uf2 real — el formato de firmware de arrastrar y soltar que entiende el bootloader de la Pico. Toda la toolchain corre en el iPad, y una caché de dependencias precompilada deja la primera build de embassy en unos 10 segundos.
-
Flashea por USB-C
Mantén BOOTSEL y conecta la Pico al iPad; se monta como unidad. Con Ferric Link conectado, BOOTSEL entra solo, sin botón que mantener. Copia el UF2, la placa se reinicia y ejecuta tu firmware — el LED parpadea igual que en el emulador.
Una consola serie, por USB-C
Ferric Link corre Ethernet sobre el mismo cable USB-C, así que la salida serie de la Pico aparece en una pestaña Serial junto a tu consola, y el WiFi de tu iPad sigue conectado todo el tiempo.
Silicio de Raspberry Pi, dos placas
Ferric ya conoce el triple del target y el layout de memoria de cada una — elegir la placa es toda la configuración que haces.
El blinky clásico, y verificado
Esto es firmware no_std real — sin sistema operativo, sin std, un bucle que nunca retorna porque tu programa es lo único que corre. Escrito con el framework async embassy.
#![no_std] #![no_main] use embassy_rp::gpio::{Level, Output}; use embassy_time::Timer; use embassy_executor::Spawner; #[embassy_executor::main] async fn main(_s: Spawner) { let p = embassy_rp::init(Default::default()); let mut led = Output::new(p.PIN_25, Level::Low); loop { led.toggle(); Timer::after_millis(500).await; } }
src/main.rs — firmware no_std para la Pico
Cargando blinky · RP2040
GPIO 25 → HIGH (LED encendido)
GPIO 25 → LOW (LED apagado)
El LED está parpadeando ✓
El emulador verifica y observa firmware — nunca simula el hardware de forma interactiva por ti.
Crates embebidos reales, no un subconjunto de juguete
Construyes sobre los mismos crates no_std que usa a diario la comunidad de Rust embebido.
Empieza con el blinky, llega más lejos
US$4.99 aparte, gratis con Pro
Embebido añade el target de placas, las plantillas, el emulador, el flasheo por USB-C y Ferric Link. Cómpralo una vez en Free, o consíguelo incluido sin costo extra si tienes Pro. ¿Quieres probar el flujo antes? El curso gratuito Aprende Rust tiene un track embebido cuyo LED verificas en el mismo emulador, sin comprar nada.