De una placa ESP32 en blanco a un dispositivo que envía datos a su teléfono, de una sentada. Scripts en lenguaje llano en vez de C, sin cadena de herramientas, sin servidor propio y sin recompilar. Lo bastante rápido para probar una idea y lo bastante simple para una primera clase.
Primer flasheo desde el navegador por USB. A partir de ahí, todo va por el aire.
R1BBIT convierte una placa ESP32 en un dispositivo conectado terminado, sin cadena de herramientas, sin servidor propio y sin una sola línea de C.
Encaja especialmente bien en tres cosas: llevar un producto a su primera versión que funcione, comprobar si una idea se sostiene antes de invertir en ella de verdad, y aprender electrónica y robótica, esto último sobre todo si empieza de cero.
El catálogo recoge hardware que hemos verificado a mano, pero el ecosistema funciona en casi cualquier ESP32.
El firmware lleva un intérprete, así que la placa ejecuta un archivo de texto corriente en vez de un binario compilado. Sus 298 comandos cubren pines, sensores, displays, sonido, cámara y red: sin C, sin cadena de herramientas, sin compilar.
Escriba en el navegador con autocompletado para cada comando y una comprobación que detecta errores mientras teclea. Un asistente puede escribirle o arreglarle el script, y una galería de ejemplos listos le ahorra la página en blanco. Incluso el primerísimo flasheo ocurre aquí, por un cable USB.
Las placas se conectan solas por un canal cifrado. Las lecturas se guardan y se dibujan como gráfico, los scripts y el firmware nuevos llegan por el aire, y cada dispositivo tiene una consola y un explorador de archivos que puede abrir desde donde esté.
Un valor que publica la placa se convierte en una ficha de su teléfono; mueva allí un deslizador y la placa reacciona. La app lleva además el editor, la consola, la documentación y el mismo asistente, y puede avisarle cuando algo va mal.
CONFIG
PSRAM_SIZE 8
PSRAM_TYPE OCTAL
I2C_SDA 16
I2C_SCL 15
SPI_MOSI 11
SPI_MISO 13
SPI_CLK 12
DISPLAY_DRIVER ILI9341
DISPLAY_CS 10
DISPLAY_DC 46
DISPLAY_BL 45
DISPLAY_WIDTH 320
DISPLAY_HEIGHT 240
TOUCH_DRIVER FT6x36
TOUCH_INT 17
END_CONFIG
DISPLAY_INIT
DISPLAY_WIDGET(1, "label", 20, 24, 280, 36)
DISPLAY_WIDGET(2, "arc", 90, 76, 140, 140)
VAR T, F
VAR A[1]
DS1820_INIT(A, 1000)
VARS_PUBLISH(T, F)
WHILE(1)
T = A[0]
F = T * 9 / 5 + 32 ' to Fahrenheit
UI_TEXT(1, "Temperature " + T + " C")
UI_VALUE(2, T)
IF T > 30 THEN SEND_NOTIFY("Greenhouse", "Too hot: " + T)
PAUSE 1000
WEND
El flasheador web escribe el firmware desde el navegador por USB. Sin cadena de herramientas y sin buscar controladores.
En el IDE web o en la app móvil, con autocompletado, pistas de parámetros en la propia línea y una comprobación que valida los tipos de argumento mientras escribe.
Pulse Run y el script está en la placa en segundos: por el aire, por un enlace cifrado, sin cable. También puede llegar desde una tarjeta SD o por la consola. La placa lo guarda en su flash y AUTOSTART lo arranca de nuevo al siguiente encendido.
Ahora se ve funcionando: las lecturas llegan al panel y a su teléfono aproximadamente una vez por segundo, y el terminal muestra todo lo que el script imprime. ¿Algo va mal? Corrija la línea y envíela otra vez. Mientras tanto la placa gana comandos nuevos, porque las actualizaciones de firmware también llegan por el aire.
Si llegó al ESP32 por el Arduino IDE, conoce el precio de cada cambio: recompilar, enchufar el cable, volver a grabar, y otra vez hasta que la lógica se asiente. Blynk y Arduino Cloud le dan un panel y una nube, pero la lógica de debajo sigue siendo C++ que hay que reconstruir y subir en cada edición. R1BBIT conserva el control y elimina la reconstrucción: la lógica es un script de texto que la placa lee, y el panel son simplemente las variables que publica.
Su programa es un archivo de texto que la placa lee y ejecuta. Cambie una línea en el navegador, envíela a la placa y surte efecto: el firmware en sí no cambia nunca. Hasta el conexionado se describe en texto: cambiar de display o mover un sensor a otros pines es una edición, no una compilación nueva.
Con el IDE de Arduino cada cambio es un ciclo de compilar y reflashear por cable.
No hay nada que instalar ni que alojar. Los dispositivos se conectan a cloud.r1bbit.com de fábrica, la telemetría aterriza en una base de datos de series temporales y se dibuja sola, y cada dispositivo tiene terminal remoto y gestor de archivos. ¿Necesita datos de internet? HTTP_GET los trae directamente desde la placa, sin intermediarios.
Con Blynk o Arduino Cloud el panel ya está, pero el sketch que hay detrás sigue siendo C++ que se reconstruye y se sube en cada cambio.
Describa lo que debe hacer el dispositivo y el asistente incorporado escribe el R1BBIT-BASIC correspondiente. Ve el script que ya tiene, así que puede ampliarlo, explicarle un comando o cazar el error que usted no encuentra. Vive tanto en el IDE web como en la app móvil.
Un chatbot genérico se inventa alegremente comandos que este lenguaje nunca ha tenido.
27 tipos de widget se dibujan en la propia pantalla del dispositivo: gráficos, agujas, deslizadores, incluso mapas de OpenStreetMap. Publique una variable y se convierte en una ficha de la app móvil; mueva allí el deslizador y en la placa se dispara ON_VAR. Una notificación es un solo comando.
En la práctica es un solo paso: añada un widget en la app y señale una variable; el dispositivo se suscribe a ella automáticamente y empieza a enviar los datos.
El intérprete está aislado del firmware. Un error en ejecución detiene el script; la placa conserva su conexión y acepta la corrección por el aire.
Hasta 15 tareas en segundo plano además del bucle principal, con variables compartidas y un planificador cooperativo, sin código de RTOS.
Añada un módulo SIM y la placa mantiene viva la telemetría, el terminal y la entrega de scripts cuando cae el wifi.
Reproducir MP3 y música de tracker, grabar, ejecutar una FFT, transmitir una cámara a un navegador o a otra placa.
16 capítulos, cada comando con sus argumentos y un ejemplo, en inglés, ruso, español, francés y alemán.
Una galería oficial de plantillas dentro del IDE y un foro donde se comparten scripts y conexionados.
El trabajo embebido rara vez es solo código. Hay archivos que llevar a la placa, imágenes que el display pueda leer de verdad, fuentes que tienen que caber en la flash, y mucho que es mejor que nunca llegue a la placa. Todo eso vive en la misma pestaña del navegador que el editor: sin utilidades aparte, sin trasiego de tarjetas SD.
Abra el diálogo de archivos del dispositivo y estará mirando la flash de una placa que puede estar en otro edificio. Recórrala, arrastre un archivo a la ventana para subirlo, tráigase otro de vuelta, renombre, borre, cree carpetas, y guarde el script que está editando directamente en el dispositivo. El medidor de espacio libre muestra lo que queda antes de que suba una fuente grande o un sonido.
Una placa tiene menos de un megabyte de flash: una sola foto se come la mitad. Deje los medios en la nube: suba el archivo una vez, póngale un nombre corto y escriba ese nombre con una @ delante. La placa lo trae cuando el script lo pide, al tamaño que el script pide, y no guarda nada.
Abra una imagen, recórtela, pinte encima, elija la profundidad de color que quiere el display y llévese el resultado como un array pegado en su script o como un archivo enviado directamente a la placa. El contador de abajo le dice de antemano lo que costará en bytes.
Cargue cualquier TTF, elija qué rangos de caracteres conservar y arregle a mano, píxel a píxel, el glifo que se resista. La línea de abajo cuenta la memoria que ocupará y avisa cuando la mayor parte es espacio vacío, que es la razón habitual de que una fuente no quepa.
Ponga el lienzo al tamaño de su display, arrastre encima etiquetas, botones, deslizadores, agujas, gráficos y listas y colóquelos sobre una rejilla. Pulse un botón y obtiene el script que dibuja exactamente esa pantalla; además relee un script existente, así que una disposición se puede rehacer después.
Los módulos de tracker suenan igual en el navegador que en la placa. Abra uno y tendrá la rejilla de patrones con cada nota y cada efecto, la lista de canales y todas las muestras: edítelo aquí y ese mismo archivo suena desde su script.
Un clip se convierte en una tira de fotogramas que puede editar uno a uno: dibujar en uno, duplicarlo, recortar un tramo. Después reducirlo a lo que admite una pantalla pequeña: blanco y negro de un bit con tramado, o color comprimido.
Suelte una pista y ve la forma de onda: seleccionar un trozo, cortarlo, quedarse solo con lo que hace falta. Después elija la tasa de bits, y la línea de abajo le dice el precio por adelantado: una pista de dos minutos y medio pasó de 15 MB a 1,3, lo bastante pequeña para guardarla en la placa.
Lo que haga aquí va directo a la placa, o se queda en el servidor, donde un script lo encuentra por su nombre.
La app móvil no es un mando a distancia añadido al final: es el mismo flujo de trabajo que el navegador. Monte el panel, escriba y edite scripts, mueva archivos hacia la placa y de vuelta, abra un terminal, vea valores en vivo, lea la documentación y pregunte al asistente. Inicie sesión y todos los dispositivos de su cuenta ya estarán ahí.
Editor
Widgets
Terminal Audio y vídeo en un microcontrolador suelen significar códecs, búferes y una semana de hojas de datos. Aquí son comandos. Radio, un flujo de cámara, un canal de intercomunicador entre placas y teléfonos: cada uno son unas pocas líneas, y la nube se encarga del tráfico.
Apunte el comando a un archivo de la flash, a un archivo guardado en el servidor o directamente a una emisora de radio por internet: la placa lo descodifica y lo reproduce. También puede decirle qué está sonando ahora mismo, porque lee la información de pista de la emisora.
VAR title$
PLAY_AUDIO("https://mangoradio.stream.laut.fm/mangoradio")
WHILE 1
AUDIO_TITLE(title$)
PRINT "Now playing: " + title$
PAUSE 5000
WEND
Ponga varias placas en la misma sala y se oyen entre ellas. Mantenga pulsado para hablar, suelte para escuchar. Los teléfonos pueden entrar en esa misma sala, así que un dispositivo y una persona acaban en un solo canal: útil para un taller, una cancela, un invernadero al fondo de la parcela.
CONFIG
IN1 4
IN1_PULL UP
END_CONFIG
JOIN_AUDIO_ROOM("myteam", 16)
WHILE 1
IF IN1 = 0 THEN PTT(1)
IF IN1 = 1 THEN PTT(0)
PAUSE 50
WEND
Abra una sala de vídeo y la cámara se pone en directo. Véala en la app móvil o en el navegador, y una segunda placa con pantalla puede entrar en esa misma sala como espectadora: un timbre que se muestra a sí mismo en el panel de la cocina, sin servidor propio de por medio.
CAM_INIT
CAM_RESOLUTION(320, 240)
START_VIDEO_ROOM("frontdoor", 10)
// on the board with the screen:
// JOIN_VIDEO_ROOM("frontdoor")
La voz y el vídeo van por un canal de baja latencia, con salto automático si se bloquea. El sonido añade además reproducción de notas y melodías, módulos de tracker, grabación en WAV y MP3 y un analizador de espectro en vivo.
Todos los comandos de sonido y vídeoEl firmware se compila para seis destinos: ESP32-S3, ESP32-P4, ESP32-C6, ESP32-C3, el ESP32 clásico y el S3 sin PSRAM. Las placas de abajo son las que hemos verificado en mano. Traiga una placa de desarrollo de la misma familia y tendrá igualmente su propio bloque CONFIG.
La plataforma de referencia: las novedades llegan aquí primero
The big-screen one
Wi-Fi 6 en un tamaño mínimo
The smallest and cheapest
También se compila para el ESP32 clásico (D0WD) y el ESP32-S3 sin PSRAM: mismo lenguaje, misma nube, menos periféricos.
El ecosistema ya está listo para el trabajo comercial. Construya un dispositivo sobre un ESP32 y el mismo firmware, la misma nube y las mismas apps que mueven la primera placa de su mesa moverán cien de ellas sobre el terreno. No hay que reescribir nada el día en que el proyecto deja de ser un pasatiempo.
R1BBIT funciona sobre módulos ESP32 estándar que los distribuidores venden por lotes. Pasar de una unidad a mil es una decisión de compra, no un rediseño, y el mismo script corre en todas ellas.
Un script corregido o una nueva compilación del firmware sale por el aire a todas las placas a la vez. Nadie conduce hasta la instalación con un portátil y un cable.
Cada dispositivo escribe sus lecturas en la nube, guardadas por aparato y listas para graficar meses atrás. No hay backend que escribir ni base de datos que mantener.
Las apps de iOS y Android están publicadas y listas. Un dispositivo pertenece a la cuenta de su dueño y sus widgets aparecen allí solos: nadie construye una segunda app.
El dispositivo está ligado a una cuenta, y todo lo que intercambia con la nube — telemetría, comandos, scripts y firmware — viaja por un enlace cifrado.
El catálogo recoge hardware verificado a mano, pero el firmware se compila para seis objetivos ESP32, así que una placa de diseño propio entra en el mismo ecosistema.
Estadísticas de equipos de refrigeración y cámaras frigoríficas, calefacción y climatización de edificios, vigilancia de taller e invernadero: detrás de todo ello está la misma pila.
R1BBIT para empresasEl primer día con un microcontrolador se va casi entero en cosas que no son programar: instalar un entorno, buscar controladores, elegir la placa en un menú, esperar a que compile. R1BBIT elimina ese día. Un navegador, una placa barata y un cable USB, y la clase está escribiendo lógica en la primera mitad de la hora, no en la tercera.
CONFIG
OUT1 2
END_CONFIG
WHILE 1
OUT1 1
PAUSE 500
OUT1 0
PAUSE 500
WEND
CONFIG
I2C_SCL 7
I2C_SDA 6
END_CONFIG
VAR T, H
SI7021_INIT(T, H, 2000)
WHILE 1
PRINT "temp " + T + " hum " + H
PAUSE 2000
WEND
CONFIG
I2C_SCL 7
I2C_SDA 6
END_CONFIG
VAR T, H
SI7021_INIT(T, H, 2000)
VARS_PUBLISH(T, H)
WHILE 1
IF T > 27 THEN
SEND_NOTIFY("Too warm", STR$(T) + " C")
ENDIF
PAUSE 60000
WEND
Cada script de aquí es el programa entero: no hay archivo de configuración oculto ni proyecto que preparar.
Todo ocurre en un navegador: en un ordenador del centro sin permisos de administrador, en un portátil, incluso en una tableta. Nada que descargar, ninguna licencia, ninguna versión que solo funcione en una máquina del aula.
Los comandos dicen lo que hacen: DHT_INIT, PRINT, PAUSE, IF … THEN. Un alumno lee una línea y la entiende, así que la clase puede tratar de bucles y condiciones en vez de puntos y comas y llaves.
El script corre en un intérprete aislado. Una línea equivocada lo detiene y escribe por qué; la placa sigue funcionando y acepta la corrección un segundo después. Ni hardware inutilizado ni clase perdida.
Los chips compatibles más pequeños cuestan unos pocos dólares, y una placa con un sensor ya es un proyecto que funciona. Un juego para toda una clase no necesita una subvención.
Sin permisos de administrador, sin licencias y sin una imagen de aula que alguien tenga que mantener.
La documentación está en inglés, ruso, español, francés y alemán.
Una placa entra en la nube una sola vez, y esa activación trae consigo tres meses de Starter. Después elige un plan o se queda en Free: la placa sigue funcionando igual.
Se paga una vez por placa, no cada mes. La activación vincula la placa a su cuenta y abre tres meses del plan Starter: el editor, la nube, las apps móviles y el asistente, todo ello.
Gratis
$6.99 / mes
o $69.99 al año
$19.99 / mes
o $199 al año
Los precios son por cuenta en dólares estadounidenses y vienen directamente de nuestro sistema de facturación. Pagar por año cuesta menos que doce cargos mensuales. Free no necesita tarjeta alguna.
Abra la nube, lea la documentación o pregunte en el foro: la primera placa lleva una tarde, no un fin de semana.
IDE web, galería de plantillas, paneles y un terminal a cada placa, en el navegador.
Abrir la nube16 capítulos, cada comando con sus argumentos y un ejemplo, en cinco idiomas.
Leer la documentaciónHaga una pregunta o comparta un script o un esquema de conexión en el foro.
Entrar al foro