Skip to content
adriiicrrPublic

About

Automatización end-to-end de impresión 3D Elegoo Centauri Carbon bajo demanda: WooCommerce → API Python → impresora, con protocolo reverse-engineered.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Printly — Impresión 3D bajo demanda con auto-print

Printly es un sistema de automatización end-to-end que conecta una tienda online con una impresora 3D física: un cliente compra un modelo, y la impresión se lanza automáticamente sin intervención manual.

Nació como Trabajo de Fin de Grado (Grado Medio SMR, IES Fidiana), con la intención de convertirlo en un negocio real.

Arquitectura

Diagrama de arquitectura

El sistema conecta cuatro piezas que normalmente no hablan entre sí: una tienda WooCommerce en hosting compartido, un túnel a internet, una API local en Python, y el protocolo propietario de una impresora Elegoo — todo reverse-engineered desde cero.

Flujo end-to-end

  1. El cliente compra en la tienda (WordPress + WooCommerce, hosteado en AlwaysData)
  2. Un plugin PHP personalizado detecta el cambio de estado del pedido a "processing"
  3. El plugin llama, vía un túnel ngrok, a una API Flask corriendo en casa
  4. La API sube el gcode correspondiente a la impresora
  5. La API lanza la impresión mediante WebSocket

El reto técnico: reverse engineering de la API de la impresora

La Elegoo Centauri Carbon no expone una API pública documentada. Usando las DevTools del navegador mientras se interactuaba con su interfaz web, se reconstruyó el protocolo:

  • Subida de archivo: POST /uploadFile/upload — multipart con campos TotalSize, Uuid, Offset, Check y S-File-MD5 para verificar la integridad del gcode subido
  • Lanzar impresión: WebSocket en el puerto 3030, comando Cmd 128 con el Filename del gcode ya subido, confirmado por una respuesta Ack:0

Este proceso sustituyó un enfoque inicial basado en Docker + OctoEverywhere, descartado por limitaciones para exponer la API Moonraker de forma fiable.

Componentes

Componente Descripción
printly_api.py API Flask local que recibe la orden de impresión y habla con la impresora
elegoo-woocommerce-autoprint.php Plugin de WordPress que engancha el flujo de pedidos de WooCommerce con la API

Stack

  • Tienda: WordPress + WooCommerce (AlwaysData)
  • Backend local: Python (Flask)
  • Comunicación: ngrok (túnel), WebSocket, HTTP multipart
  • Impresora: Elegoo Centauri Carbon

Estado

Automatización end-to-end funcionando: desde la compra hasta la impresión lanzada, sin intervención manual.

Configuración

Este proyecto usa variables de entorno para las credenciales. Copia .env.example a .env y rellena tus propios valores antes de ejecutar la API.

pip install -r requirements.txt
cp .env.example .env
python printly_api.py

Notas sobre licencias de modelos 3D

Para uso comercial de modelos de terceros, son válidas las licencias CC0, BY y BY-SA. BY-ND permite su uso pero no modificar ni escalar el modelo. BY-NC queda excluida por ser explícitamente no comercial.

About

Automatización end-to-end de impresión 3D Elegoo Centauri Carbon bajo demanda: WooCommerce → API Python → impresora, con protocolo reverse-engineered.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages