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. 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.
-
Flashea por USB-C
Mantén BOOTSEL y conecta la Pico al iPad; se monta como unidad. Copia el UF2, la placa se reinicia y ejecuta tu firmware — el LED parpadea igual que en el emulador.
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
Un desbloqueo aparte de US$4.99
Embebido añade el target de placas, las plantillas, el emulador y el flasheo por USB-C. Es independiente de Pro — cómpralo por su cuenta, incluso en el modo gratis. ¿Quieres probar el flujo antes? El curso gratuito Aprende Rust tiene un track embebido cuyo LED verificas en el mismo emulador.