SATOFFEE⚡️ Lightning Coffee

Satoffee⚡️ (satoshi + coffee) es el nombre de este proyecto que consiste de una cafetera doméstica activada por pagos realizados con Bitcoin usando la Lightning Network. ¿Se puede hacer algo más cool que esto?

A grandes rasgos lo que he realizado fue hacer un pequeño hack a la cafetera para deshabilitar el único botón que tiene, el de servir café. Ese botón se habilita luego con la ayuda de un relé controlado por un pequeño controlador tipo ESP32.

El funcionamiento base del controlador está basado en BitcoinSwitch de Ben Arc, el creador de LNbits.

El objetivo de este proyecto es demostrar una posibilidad de uso conectando pagos en Bitcoin con el mundo físico.

Valor x valor⚡️

Si el contenido te ha sido útil, por favor considera apoyarme para que pueda crear más artículos como este.

Materiales

  • Una cafetera para hackear
  • Lilygo T-Display-S3 (~24 €)
  • Liligo T-Display S3 Shell (~7 €)
  • Relé de estado sólido 5V / 1 Way Low (~2 €)
  • Un trozo de velcro para pegar el dispositivo (~1 €)
  • Conectores JST-SH 1.0MM, 4P, 100MM (~1 €)
  • Cables
  • Interruptor de palanca, 3 pines, 2 posiciones, SPDT
  • Cable USB-C
  • Soldador, estaño, destornillador, etc.

Hackear la cafetera

Comenzando a redactar este proyecto y revisando el twitter me he dado cuenta que la idea del proyecto comenzó a gestarse allí por octubre de 2022 y el proyecto se ha materializado en junio de 2023, casi 8 meses después…

Lo primero que vamos a hacer es hackear la cafetera, la parte más divertida y la más complicada… Para ello he usado una Bosch Tassimo 1202 que tenía almacenada en casa.

⚠️ Peligro de electrocución

No realices esta parte si no tienes conocimientos eléctricos ya que puedes morir en el intento, y sinceramente no vale la pena. Mejor dejarla para los profesionales.

Siempre que manipules aparatos eléctricos asegúrate que tu instalación cuenta con un interruptor diferencial, ante una descarga puede salvarte la vida.

No se si has desmontado aparatos de plástico alguna vez, pero sucede lo mismo en todos, te terminas cargando pequeños trozos de plástico. También puede sucederte que estés 1 hora para desmontar y entender cómo coño se desmonta.

Otro tema es volver a montar todo como estaba (créeme) y para ello es bueno tomar varias fotografías de varios ángulos, o cada vez que desbloquees una parte complicada 😉

⚠️ Antes que nada desconecta la cafetera de la electricidad.

Lo básico es buscar tornillos, los quitamos y luego viene la parte complicada, comenzar a hacer algunas fuerzas y ver por donde cede la estructura. Para esto puedes ayudarte con unas pequeñas herramientas de plástico o metal que te ayudan a no romperte los dedos o a no usar destornilladores que terminan por dañar el plástico.

Una vez tienes la cafetera desmontada, toca investigar cómo está conectado el botón e investigar el voltaje de control. También es un buen momento para pensar cómo quieres hacer el hack del botón, resolver si la vas a usar en el futuro sin pagos (bypass o anulación), etc.

El bypass o anulación: básicamente es una pequeña palanca que desactiva el hackeo de la cafetera. Recordemos que es una cafetera doméstica y puede que algún día quieras servirte un café sin pagarte a ti mismo 😉

A continuación te cuento dos ideas que se me ocurrieron al momento de hacer el hack.

Idea 1 – Presionar el botón por software

En esta idea básicamente lo que haríamos es hackear el botón de tal manera que simule una persona presionando el botón. Sería la opción más automática de todas.

Pero tiene algunas contras, la cafetera doméstica siempre necesita interacción de una persona, abrirla, ponerle una cápsula, cerrarla, poner una taza, revisar que tenga agua…

El problema que le veo a esta idea es, si te imaginas a alguien escaneando y haciendo el pago sin haber realizado todos los pasos anteriores, el sistema funciona (se presionaría el botón por software) pero probablemente no servirá café. Antes la persona debería hacer una serie de pasos y si falla en alguno pueden suceder situaciones indeseadas.

Esta idea sería ideal para cafeteras tipo vending o automáticas, que no necesitan casi interacción con la persona (lo hacen todo, hasta poner el vaso).

Idea 2 – Habilitar el botón por software

Esta idea fue la elegida para evitar todos los problemas anteriores mencionados ya que contamos con una cafetera doméstica y no 100% automática.

La persona debe realizar todos los pasos antes de realizar el pago, de esta forma nos aseguramos que si falla en alguno, tendría tiempo suficiente (40 seg) para presionar el botón.

La idea es siempre acompañar la cafetera con un pequeño instructivo que indique cómo utilizarla.

Alteramos el circuito del botón

Antes que nada exploremos mediante algunos diagramas como está conectado el botón en la cafetera y como serían las futuras conexiones.

En el primer diagrama vemos el simple circuito del botón en estado natural, sin alterar la cafetera.

En el segundo diagrama vemos la introducción del relé en serie, provocando una interrupción en el circuito del botón. De esta manera si el relé no está activado por el ESP32, el botón no tendrá ningún efecto y quedará desactivado.

El tercer diagrama muestra exactamente el mismo circuito anterior agregando la anulación/bypass de nuestro circuito controlador. Esto nos permitirá añadir un pequeño interruptor de palanca en la cafetera para anular por completo el hackeo y utilizar nuestra cafetera de manera doméstica nuevamente (y que no nos corran de casa).

Imágenes del proyecto en construcción donde se muestra el hack del botón en la placa de la cafetera, el interruptor de palanca instalado en la parte posterior de la cafetera y una vista interna de la misma ya casi ensamblada.

Prototipos iniciales

Para llegar al producto final, el proyecto ha pasado por varios prototipos, realizando pruebas tanto de hardware como de software.

Inicialmente el proyecto comenzó con una ESP32 de las más económicas, una pantalla LCD externa, un módulo de relé mecánico, y muchas conexiones.

Uno de los grandes problemas como puedes apreciar en las fotos es la cantidad de cables y dispositivos que se necesitaron para los primeros prototipos. La idea era compactar y facilitar al máximo todo el dispositivo para hacerlo más atractivo y funcional.

Tampoco veía muy claro cómo integrar todo eso en la cafetera… ¿Crearía una PCB específica para ello? ¿Me metería en ese baile sin haber creado nunca una?

La respuesta fue sí, me puse a estudiar y crear algunos planos para crear una PCB, pero claro, eso no resolvería todos mis problemas…

Prototipos finales

Luego de explorar varios caminos y alternativas sin que ninguna me llegue a convencer del todo, llegó la Liligo S3 Display, esta maravillosa máquina ya trae integrada una pantalla y dos botones, también un pequeño conector con dos GPIO.

Este descubrimiento soluciona muchos inconvenientes de los comentados antes, y hasta tienes la posibilidad de comprarla con una carcasa muy chula. Ya no necesitaba diseñar ni producir una PCB, me ahorraba varias piezas, tamaño y mejoraba el diseño final del producto.

Software

El software utilizado partió del proyecto de BitcoinSwitch BitcoinSwitch de Ben Arc.

Inicialmente reescribí el proyecto para agregarle un display y utilizarlo con BTCPay Server, pero el resultado que obtenía no era el esperado, demoraba mucho en detectar los pagos y buscaba que sea instantáneo.

Para que tengas una idea general del software, lo que hace es mostrar un QR en pantalla y una vez que se hace un pago efectivo, el relé se activa, activando a su vez la cafetera para su uso. ¿Parece simple no?

Una vez más, reescribí casi todo el proyecto para que interactúe con LNbits y con una extensión increíble llamada LNURLDevice.

Si aumentamos un poco el nivel, Satoffee⚡️ se conecta mediante websockets a LNbits, manteniendo una conexión en tiempo real. Si se detecta un pago, instantáneamente se activa el relé por 40 segundos.

Te dejo una pequeña demostración de algunas pantallas que incluye el software.

Conexión con LNbits

Satoffee⚡️ está conectado con LNbits utilizando la extensión LNURLDevice. Esta te permite «crear» un dispositivo en LNbits que «activarás» mediante un pago a una LNURL.

Los pasos que tienes que seguir son:

  • Instalar una instancia de LNbits conectada con tu nodo (o en su defecto usar legend.lnbits.com que es el servidor de pruebas)
  • Ingresar y crear una wallet (si no lo hiciste antes)
  • Instalar la extensión LNURLDevice
  • Crear un nuevo dispositivo y completar la información
    • Title: satoffe-test
    • Wallet: tu-wallet
    • Fiat currency: EUR
    • Tipo: switch
    • Amount: 2 (2 EUR)
    • Duration: 40000ms (40s)
    • GPIO pin: 44

Carga del software en la ESP32

Para cargar el software en la LILYGO T-Display-S3 puedes utilizar el navegador Chrome desde tu ordenador siguiendo las instrucciones en https://satoffee.danielpcostas.dev.

Ten en cuenta que si cambias el importe o el tiempo del dispositivo en LNbits, esto te generará un nuevo QR y debes cargar nuevamente el valor de LNURL (puedes usar https://satoffee.danielpcostas.dev).

Mira el proyecto en GitHub.

Satoffee⚡️ haciendo su trabajo

El siguiente video muestra una interacción completa con la cafetera, se puede ver como a partir del escaneo y pago de una factura de Lightning se activa la cafetera y la misma sirve el café.

El botón de la cafetera que sirve el café está deshabilitado hasta que se realiza el pago. Una vez habilitado, permanece activo por 40 segundos. Tiempo suficiente para servir el café y permitir presionar el botón nuevamente para que siga tirando café (por si le quieres agregar más agua).

Futuras implementaciones

Luego de tener el primer prototipo completado, se me ocurren algunas modificaciones futuras para implementar, entre ellas:

  • ✅ Agregar la opción de configuración mediante un navegador web
  • ✅ Permitir usar el dispositivo en horizontal o vertical
  • Crear una version offline que no necesite conexión a internet
  • Agregar una batería recargable tipo li-po dentro de la carcasa
  • Personalizar los mensajes en pantalla
  • Crear un kit con todos los materiales necesarios para que lo puedas montar en casa
  • ¿Algo que se te ocurra?

Este artículo se irá modificando con los nuevos cambios y novedades que se vayan aplicando al proyecto.

Proyectos utilizando Satoffee⚡️

Publicaciones Similares

2 comentarios

  1. Inventazo, enhorabuena eres un crack

    Otra posible variación sería con una nespresso que tiene botón de café largo o café corto y así una vez pulsado el botón ya no hay que hacer nada más.

    Pero vamos me parece perfecto el invento, esto con un Bleskomat al lado y podemos empezar ha dar formaciones a futuros Bitcoiners de una forma rápida y sencilla

    1. Hola Nomad! El hackeo y adaptación a una Nespresso está en proceso 🤪 estoy justo luchando con unos transistores jeje.
      Y exacto, la idea es usarla con un cajero al lado y que la gente pueda aprender de manera simple como intercambiar bitcoin y luego lo fácil que es usarlo 🚀 (de hecho en el video que se ve al final, lo que esta a la derecha es un cajero)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *