# BambuLuc v1.3.0 🖨️
**Control completo para impresoras Bambu Lab via conexión de red**
[](https://www.python.org/downloads/)
[](https://pypi.org/project/bambuluc/)
[](LICENSE)
## 🌟 Características
BambuLuc es una librería Python completa para controlar impresoras Bambu Lab de forma programática. Incluye todas las funciones necesarias para automatizar completamente el proceso de impresión 3D.
### ✅ **Control Manual Completo**
- 🏠 HOME de ejes (individual o todos)
- 🌡️ Control de temperaturas (nozzle y cama)
- 🎯 Movimientos precisos de ejes X/Y/Z
- 💧 Control de extrusión y retracción
- 💡 Control de LED de cámara
- 🌪️ Control de ventiladores
### ✅ **Sistema AMS (Automatic Material System)**
- 🔧 Configuración automática de slots
- 📋 Detección de filamentos requeridos
- 🔄 Cambio automático de materiales
- 🎨 Gestión de filamentos multicolor
### ✅ **Transferencia de Archivos**
- 📁 Subida de archivos .3mf/.gcode por FTP SSL
- 🚀 Proceso de subida optimizado y seguro
- 📤 Gestión automática de conexiones
### ✅ **Automatización Completa**
- ⚡ Proceso completo en una función
- 🎯 AMS automático + subida + impresión
- 📝 Envío de comandos personalizados
### ✅ **Monitoreo de Estados**
- 📊 Consulta de estado de impresión en tiempo real
- 🌡️ Monitoreo de temperaturas
- 📈 Progreso de impresión
- 🔍 Estados detallados de la máquina
## 🚀 Instalación
```bash
pip install bambuluc
```
## 📖 Uso Básico
### Configuración Inicial
```python
from bambuluc import BambuLuc
# Configuración de conexión
printer = BambuLuc(
ip="IP_IMPRESORA", # ej: 192.168.1.100
access_code="CODIGO_ACCESO", # Código de acceso de la impresora
serial="SERIE_IMPRESORA" # Número de serie de la impresora
)
```
> **Nota:** Configura tu impresora con `IP_IMPRESORA`, `CODIGO_ACCESO` y `SERIE_IMPRESORA` con los valores reales de tu impresora Bambu Lab.
### Control Manual
```python
import asyncio
async def control_manual():
printer = BambuLuc("IP_IMPRESORA", "CODIGO_ACCESO", "SERIE_IMPRESORA")
try:
# Conectar
await printer.connect()
# Hacer HOME de todos los ejes
await printer.home_all()
# Calentar nozzle a 210°C
await printer.set_nozzle_temperature(210)
# Calentar cama a 60°C
await printer.set_bed_temperature(60)
# Mover a posición
await printer.move_x(100)
await printer.move_y(100)
await printer.move_z(50)
# Extruir filamento
await printer.extrude(10)
finally:
await printer.disconnect()
# Ejecutar
asyncio.run(control_manual())
```
### Configuración AMS y Subida de Archivo
```python
async def configurar_ams_y_subir():
printer = BambuLuc("IP_IMPRESORA", "CODIGO_ACCESO", "SERIE_IMPRESORA")
try:
await printer.connect()
# Configurar AMS (4 slots con diferentes filamentos)
filamentos_requeridos = ["PLA", "PETG", "ABS", "TPU"]
await printer.configure_ams(filamentos_requeridos)
# Subir archivo 3MF por FTP
resultado = await printer.upload_file("mi_modelo.3mf")
if resultado:
print("✅ Archivo subido exitosamente")
else:
print("❌ Error al subir archivo")
finally:
await printer.disconnect()
asyncio.run(configurar_ams_y_subir())
```
### 📊 Consulta de Estados
```python
async def consultar_estados():
printer = BambuLuc("IP_IMPRESORA", "CODIGO_ACCESO", "SERIE_IMPRESORA")
try:
await printer.connect()
# Estado general de impresión
estado = await printer.get_print_status()
print(f"Estado: {estado}")
# Progreso de impresión (0-100%)
progreso = await printer.get_print_progress()
print(f"Progreso: {progreso}%")
# Temperaturas actuales
temp_nozzle = await printer.get_nozzle_temperature()
temp_bed = await printer.get_bed_temperature()
print(f"Nozzle: {temp_nozzle}°C, Cama: {temp_bed}°C")
# Estado de la cama (nivelación, etc.)
estado_cama = await printer.get_bed_status()
print(f"Estado cama: {estado_cama}")
# Información del filamento actual
filamento_info = await printer.get_current_filament()
print(f"Filamento: {filamento_info}")
finally:
await printer.disconnect()
asyncio.run(consultar_estados())
```
### Proceso Completo Automatizado
```python
async def proceso_completo():
printer = BambuLuc("IP_IMPRESORA", "CODIGO_ACCESO", "SERIE_IMPRESORA")
try:
await printer.connect()
# AMS + Subida + Impresión en un solo paso
resultado = await printer.auto_print(
archivo="modelo.3mf",
filamentos_requeridos=["PLA", "PETG"]
)
if resultado:
print("🎉 ¡Proceso completo exitoso!")
# Monitorear progreso
while True:
estado = await printer.get_print_status()
progreso = await printer.get_print_progress()
print(f"Estado: {estado} - Progreso: {progreso}%")
if estado in ["FINISH", "FAILED"]:
break
await asyncio.sleep(30) # Revisar cada 30 segundos
else:
print("❌ Error en el proceso")
finally:
await printer.disconnect()
# Ejecutar proceso completo
if __name__ == "__main__":
result = asyncio.run(proceso_completo())
```
## 🔧 Control Avanzado
### Movimientos Precisos
```python
async def movimientos_avanzados():
printer = BambuLuc("IP_IMPRESORA", "CODIGO_ACCESO", "SERIE_IMPRESORA")
try:
await printer.connect()
# Movimiento coordinado XYZ
await printer.move_xyz(x=150, y=150, z=100)
# Movimiento relativo
await printer.move_relative(x=10, y=-5)
# Control de velocidad de extrusión
await printer.set_extrusion_rate(110) # 110% velocidad
# Retraer filamento
await printer.retract(2) # Retraer 2mm
finally:
await printer.disconnect()
asyncio.run(movimientos_avanzados())
```
### Control de Ventiladores y LED
```python
async def control_ventiladores():
printer = BambuLuc("IP_IMPRESORA", "CODIGO_ACCESO", "SERIE_IMPRESORA")
try:
await printer.connect()
# Encender ventilador de capa al 80%
await printer.set_part_fan(80)
# Ventilador auxiliar al 50%
await printer.set_aux_fan(50)
# Encender LED de cámara
await printer.set_camera_led(True)
# Apagar LED después de 10 segundos
await asyncio.sleep(10)
await printer.set_camera_led(False)
finally:
await printer.disconnect()
asyncio.run(control_ventiladores())
```
## 📋 Requisitos
- Python 3.7+
- Impresora Bambu Lab compatible (A1 mini, A1, X1C, P1P, P1S, etc.)
- Conexión de red con la impresora
- Código de acceso de la impresora habilitado
## ⚠️ Configuración Requerida
Antes de usar BambuLuc, configura tu impresora:
1. **Habilitar acceso LAN**:
- Menú impresora → Configuración → LAN → Habilitar
2. **Obtener código de acceso**:
- Menú impresora → Configuración → LAN → Código de acceso
3. **Obtener número de serie**:
- Menú impresora → Configuración → General → Información del dispositivo
### Parámetros de Configuración
- `IP_IMPRESORA`: Dirección IP de tu impresora (ej: 192.168.1.100)
- `CODIGO_ACCESO`: Código de 8 dígitos de acceso LAN
- `SERIE_IMPRESORA`: Número de serie de 15 caracteres
## 🛠️ Métodos Disponibles
### Conexión
- `connect()` - Conectar a la impresora
- `disconnect()` - Desconectar de la impresora
### Control Manual
- `home_all()` - HOME todos los ejes
- `home_x()`, `home_y()`, `home_z()` - HOME ejes individuales
- `move_x(pos)`, `move_y(pos)`, `move_z(pos)` - Movimientos absolutos
- `move_xyz(x, y, z)` - Movimiento coordinado
- `move_relative(x, y)` - Movimiento relativo
### Temperaturas
- `set_nozzle_temperature(temp)` - Establecer temperatura nozzle
- `set_bed_temperature(temp)` - Establecer temperatura cama
- `get_nozzle_temperature()` - Obtener temperatura actual nozzle
- `get_bed_temperature()` - Obtener temperatura actual cama
### Extrusión
- `extrude(length)` - Extruir filamento
- `retract(length)` - Retraer filamento
- `set_extrusion_rate(rate)` - Velocidad de extrusión (%)
### Control de Ventiladores/LED
- `set_part_fan(speed)` - Ventilador de capa (0-100%)
- `set_aux_fan(speed)` - Ventilador auxiliar (0-100%)
- `set_camera_led(on)` - LED de cámara (True/False)
### Sistema AMS
- `configure_ams(filaments)` - Configurar slots AMS
- `get_current_filament()` - Información filamento actual
### Transferencia y Control
- `upload_file(filepath)` - Subir archivo por FTP
- `auto_print(archivo, filamentos)` - Proceso completo automatizado
### Estados y Monitoreo
- `get_print_status()` - Estado de impresión actual
- `get_print_progress()` - Progreso de impresión (%)
- `get_bed_status()` - Estado de la cama
- `get_machine_status()` - Estado general de la máquina
## 🐛 Solución de Problemas
### Error de Conexión
- Verificar que la impresora está encendida y conectada a la red
- Comprobar la IP de la impresora
- Verificar que el acceso LAN está habilitado
### Error de Autenticación
- Verificar el código de acceso de 8 dígitos
- Verificar el número de serie de 15 caracteres
- Regenerar código de acceso si es necesario
### Error de Subida FTP
- Verificar que el archivo existe
- Comprobar formato del archivo (.3mf o .gcode)
- Verificar espacio disponible en la impresora
## 🤝 Contribuir
1. Fork del repositorio
2. Crear rama para nueva característica
3. Commit de cambios
4. Push a la rama
5. Crear Pull Request
## 📄 Licencia
Este proyecto está bajo una **Licencia Comercial Personalizada**:
- ✅ **GRATIS** para uso personal, educativo e investigación
- ❌ **USO COMERCIAL PROHIBIDO** sin licencia separada
- 💰 **ROYALTIES** requeridos para uso comercial
Para **licencias comerciales**, contacta:
- GitHub: [AngelBarbero](https://github.com/AngelBarbero)
- Issues: [bambuluc/issues](https://github.com/AngelBarbero/bambuluc/issues) con etiqueta "Commercial License Request"
Ver `LICENSE` para términos completos.
## 🆘 Soporte
- **GitHub Issues**: [Reportar bugs](https://github.com/AngelBarbero/bambuluc/issues)
- **Documentación**: Este README
- **GitHub**: [AngelBarbero](https://github.com/AngelBarbero)
## 🏷️ Versiones
### v1.3.0 (Actual)
- ✅ Control manual completo
- ✅ Sistema AMS automático
- ✅ Transferencia FTP SSL
- ✅ Proceso automatizado completo
- ✅ Monitoreo de estados en tiempo real
- ✅ Control avanzado de ventiladores y LED
---
**Desarrollado con ❤️ por Angel Luis Barbero Guerras**
*¡Automatiza tu impresión 3D con BambuLuc!* 🚀
Raw data
{
"_id": null,
"home_page": null,
"name": "bambuluc",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "bambu, 3d printer, mqtt, ftp, automation, 3mf, gcode",
"author": "Angel Luis Barbero Guerras",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/db/35/11a04d85ca72c8dfe3d1d405181c756ac8467840f520cf93644190aeb6ed/bambuluc-1.3.0.tar.gz",
"platform": null,
"description": "# BambuLuc v1.3.0 \ud83d\udda8\ufe0f\r\n\r\n**Control completo para impresoras Bambu Lab via conexi\u00f3n de red**\r\n\r\n[](https://www.python.org/downloads/)\r\n[](https://pypi.org/project/bambuluc/)\r\n[](LICENSE)\r\n\r\n## \ud83c\udf1f Caracter\u00edsticas\r\n\r\nBambuLuc es una librer\u00eda Python completa para controlar impresoras Bambu Lab de forma program\u00e1tica. Incluye todas las funciones necesarias para automatizar completamente el proceso de impresi\u00f3n 3D.\r\n\r\n### \u2705 **Control Manual Completo**\r\n- \ud83c\udfe0 HOME de ejes (individual o todos)\r\n- \ud83c\udf21\ufe0f Control de temperaturas (nozzle y cama)\r\n- \ud83c\udfaf Movimientos precisos de ejes X/Y/Z\r\n- \ud83d\udca7 Control de extrusi\u00f3n y retracci\u00f3n\r\n- \ud83d\udca1 Control de LED de c\u00e1mara\r\n- \ud83c\udf2a\ufe0f Control de ventiladores\r\n\r\n### \u2705 **Sistema AMS (Automatic Material System)**\r\n- \ud83d\udd27 Configuraci\u00f3n autom\u00e1tica de slots\r\n- \ud83d\udccb Detecci\u00f3n de filamentos requeridos\r\n- \ud83d\udd04 Cambio autom\u00e1tico de materiales\r\n- \ud83c\udfa8 Gesti\u00f3n de filamentos multicolor\r\n\r\n### \u2705 **Transferencia de Archivos**\r\n- \ud83d\udcc1 Subida de archivos .3mf/.gcode por FTP SSL\r\n- \ud83d\ude80 Proceso de subida optimizado y seguro\r\n- \ud83d\udce4 Gesti\u00f3n autom\u00e1tica de conexiones\r\n\r\n### \u2705 **Automatizaci\u00f3n Completa**\r\n- \u26a1 Proceso completo en una funci\u00f3n\r\n- \ud83c\udfaf AMS autom\u00e1tico + subida + impresi\u00f3n\r\n- \ud83d\udcdd Env\u00edo de comandos personalizados\r\n\r\n### \u2705 **Monitoreo de Estados**\r\n- \ud83d\udcca Consulta de estado de impresi\u00f3n en tiempo real\r\n- \ud83c\udf21\ufe0f Monitoreo de temperaturas\r\n- \ud83d\udcc8 Progreso de impresi\u00f3n\r\n- \ud83d\udd0d Estados detallados de la m\u00e1quina\r\n\r\n## \ud83d\ude80 Instalaci\u00f3n\r\n\r\n```bash\r\npip install bambuluc\r\n```\r\n\r\n## \ud83d\udcd6 Uso B\u00e1sico\r\n\r\n### Configuraci\u00f3n Inicial\r\n\r\n```python\r\nfrom bambuluc import BambuLuc\r\n\r\n# Configuraci\u00f3n de conexi\u00f3n\r\nprinter = BambuLuc(\r\n ip=\"IP_IMPRESORA\", # ej: 192.168.1.100\r\n access_code=\"CODIGO_ACCESO\", # C\u00f3digo de acceso de la impresora\r\n serial=\"SERIE_IMPRESORA\" # N\u00famero de serie de la impresora\r\n)\r\n```\r\n\r\n> **Nota:** Configura tu impresora con `IP_IMPRESORA`, `CODIGO_ACCESO` y `SERIE_IMPRESORA` con los valores reales de tu impresora Bambu Lab.\r\n\r\n### Control Manual\r\n\r\n```python\r\nimport asyncio\r\n\r\nasync def control_manual():\r\n printer = BambuLuc(\"IP_IMPRESORA\", \"CODIGO_ACCESO\", \"SERIE_IMPRESORA\")\r\n \r\n try:\r\n # Conectar\r\n await printer.connect()\r\n \r\n # Hacer HOME de todos los ejes\r\n await printer.home_all()\r\n \r\n # Calentar nozzle a 210\u00b0C\r\n await printer.set_nozzle_temperature(210)\r\n \r\n # Calentar cama a 60\u00b0C\r\n await printer.set_bed_temperature(60)\r\n \r\n # Mover a posici\u00f3n\r\n await printer.move_x(100)\r\n await printer.move_y(100)\r\n await printer.move_z(50)\r\n \r\n # Extruir filamento\r\n await printer.extrude(10)\r\n \r\n finally:\r\n await printer.disconnect()\r\n\r\n# Ejecutar\r\nasyncio.run(control_manual())\r\n```\r\n\r\n### Configuraci\u00f3n AMS y Subida de Archivo\r\n\r\n```python\r\nasync def configurar_ams_y_subir():\r\n printer = BambuLuc(\"IP_IMPRESORA\", \"CODIGO_ACCESO\", \"SERIE_IMPRESORA\")\r\n \r\n try:\r\n await printer.connect()\r\n \r\n # Configurar AMS (4 slots con diferentes filamentos)\r\n filamentos_requeridos = [\"PLA\", \"PETG\", \"ABS\", \"TPU\"]\r\n await printer.configure_ams(filamentos_requeridos)\r\n \r\n # Subir archivo 3MF por FTP\r\n resultado = await printer.upload_file(\"mi_modelo.3mf\")\r\n if resultado:\r\n print(\"\u2705 Archivo subido exitosamente\")\r\n else:\r\n print(\"\u274c Error al subir archivo\")\r\n \r\n finally:\r\n await printer.disconnect()\r\n\r\nasyncio.run(configurar_ams_y_subir())\r\n```\r\n\r\n### \ud83d\udcca Consulta de Estados\r\n\r\n```python\r\nasync def consultar_estados():\r\n printer = BambuLuc(\"IP_IMPRESORA\", \"CODIGO_ACCESO\", \"SERIE_IMPRESORA\")\r\n \r\n try:\r\n await printer.connect()\r\n \r\n # Estado general de impresi\u00f3n\r\n estado = await printer.get_print_status()\r\n print(f\"Estado: {estado}\")\r\n \r\n # Progreso de impresi\u00f3n (0-100%)\r\n progreso = await printer.get_print_progress()\r\n print(f\"Progreso: {progreso}%\")\r\n \r\n # Temperaturas actuales\r\n temp_nozzle = await printer.get_nozzle_temperature()\r\n temp_bed = await printer.get_bed_temperature()\r\n print(f\"Nozzle: {temp_nozzle}\u00b0C, Cama: {temp_bed}\u00b0C\")\r\n \r\n # Estado de la cama (nivelaci\u00f3n, etc.)\r\n estado_cama = await printer.get_bed_status()\r\n print(f\"Estado cama: {estado_cama}\")\r\n \r\n # Informaci\u00f3n del filamento actual\r\n filamento_info = await printer.get_current_filament()\r\n print(f\"Filamento: {filamento_info}\")\r\n \r\n finally:\r\n await printer.disconnect()\r\n\r\nasyncio.run(consultar_estados())\r\n```\r\n\r\n### Proceso Completo Automatizado\r\n\r\n```python\r\nasync def proceso_completo():\r\n printer = BambuLuc(\"IP_IMPRESORA\", \"CODIGO_ACCESO\", \"SERIE_IMPRESORA\")\r\n \r\n try:\r\n await printer.connect()\r\n \r\n # AMS + Subida + Impresi\u00f3n en un solo paso\r\n resultado = await printer.auto_print(\r\n archivo=\"modelo.3mf\",\r\n filamentos_requeridos=[\"PLA\", \"PETG\"]\r\n )\r\n \r\n if resultado:\r\n print(\"\ud83c\udf89 \u00a1Proceso completo exitoso!\")\r\n \r\n # Monitorear progreso\r\n while True:\r\n estado = await printer.get_print_status()\r\n progreso = await printer.get_print_progress()\r\n \r\n print(f\"Estado: {estado} - Progreso: {progreso}%\")\r\n \r\n if estado in [\"FINISH\", \"FAILED\"]:\r\n break\r\n \r\n await asyncio.sleep(30) # Revisar cada 30 segundos\r\n else:\r\n print(\"\u274c Error en el proceso\")\r\n \r\n finally:\r\n await printer.disconnect()\r\n\r\n# Ejecutar proceso completo\r\nif __name__ == \"__main__\":\r\n result = asyncio.run(proceso_completo())\r\n```\r\n\r\n## \ud83d\udd27 Control Avanzado\r\n\r\n### Movimientos Precisos\r\n\r\n```python\r\nasync def movimientos_avanzados():\r\n printer = BambuLuc(\"IP_IMPRESORA\", \"CODIGO_ACCESO\", \"SERIE_IMPRESORA\")\r\n \r\n try:\r\n await printer.connect()\r\n \r\n # Movimiento coordinado XYZ\r\n await printer.move_xyz(x=150, y=150, z=100)\r\n \r\n # Movimiento relativo\r\n await printer.move_relative(x=10, y=-5)\r\n \r\n # Control de velocidad de extrusi\u00f3n\r\n await printer.set_extrusion_rate(110) # 110% velocidad\r\n \r\n # Retraer filamento\r\n await printer.retract(2) # Retraer 2mm\r\n \r\n finally:\r\n await printer.disconnect()\r\n\r\nasyncio.run(movimientos_avanzados())\r\n```\r\n\r\n### Control de Ventiladores y LED\r\n\r\n```python\r\nasync def control_ventiladores():\r\n printer = BambuLuc(\"IP_IMPRESORA\", \"CODIGO_ACCESO\", \"SERIE_IMPRESORA\")\r\n \r\n try:\r\n await printer.connect()\r\n \r\n # Encender ventilador de capa al 80%\r\n await printer.set_part_fan(80)\r\n \r\n # Ventilador auxiliar al 50%\r\n await printer.set_aux_fan(50)\r\n \r\n # Encender LED de c\u00e1mara\r\n await printer.set_camera_led(True)\r\n \r\n # Apagar LED despu\u00e9s de 10 segundos\r\n await asyncio.sleep(10)\r\n await printer.set_camera_led(False)\r\n \r\n finally:\r\n await printer.disconnect()\r\n\r\nasyncio.run(control_ventiladores())\r\n```\r\n\r\n## \ud83d\udccb Requisitos\r\n\r\n- Python 3.7+\r\n- Impresora Bambu Lab compatible (A1 mini, A1, X1C, P1P, P1S, etc.)\r\n- Conexi\u00f3n de red con la impresora\r\n- C\u00f3digo de acceso de la impresora habilitado\r\n\r\n## \u26a0\ufe0f Configuraci\u00f3n Requerida\r\n\r\nAntes de usar BambuLuc, configura tu impresora:\r\n\r\n1. **Habilitar acceso LAN**: \r\n - Men\u00fa impresora \u2192 Configuraci\u00f3n \u2192 LAN \u2192 Habilitar\r\n \r\n2. **Obtener c\u00f3digo de acceso**:\r\n - Men\u00fa impresora \u2192 Configuraci\u00f3n \u2192 LAN \u2192 C\u00f3digo de acceso\r\n \r\n3. **Obtener n\u00famero de serie**:\r\n - Men\u00fa impresora \u2192 Configuraci\u00f3n \u2192 General \u2192 Informaci\u00f3n del dispositivo\r\n\r\n### Par\u00e1metros de Configuraci\u00f3n\r\n\r\n- `IP_IMPRESORA`: Direcci\u00f3n IP de tu impresora (ej: 192.168.1.100)\r\n- `CODIGO_ACCESO`: C\u00f3digo de 8 d\u00edgitos de acceso LAN \r\n- `SERIE_IMPRESORA`: N\u00famero de serie de 15 caracteres\r\n\r\n## \ud83d\udee0\ufe0f M\u00e9todos Disponibles\r\n\r\n### Conexi\u00f3n\r\n- `connect()` - Conectar a la impresora\r\n- `disconnect()` - Desconectar de la impresora\r\n\r\n### Control Manual\r\n- `home_all()` - HOME todos los ejes\r\n- `home_x()`, `home_y()`, `home_z()` - HOME ejes individuales\r\n- `move_x(pos)`, `move_y(pos)`, `move_z(pos)` - Movimientos absolutos\r\n- `move_xyz(x, y, z)` - Movimiento coordinado\r\n- `move_relative(x, y)` - Movimiento relativo\r\n\r\n### Temperaturas\r\n- `set_nozzle_temperature(temp)` - Establecer temperatura nozzle\r\n- `set_bed_temperature(temp)` - Establecer temperatura cama\r\n- `get_nozzle_temperature()` - Obtener temperatura actual nozzle\r\n- `get_bed_temperature()` - Obtener temperatura actual cama\r\n\r\n### Extrusi\u00f3n\r\n- `extrude(length)` - Extruir filamento\r\n- `retract(length)` - Retraer filamento\r\n- `set_extrusion_rate(rate)` - Velocidad de extrusi\u00f3n (%)\r\n\r\n### Control de Ventiladores/LED\r\n- `set_part_fan(speed)` - Ventilador de capa (0-100%)\r\n- `set_aux_fan(speed)` - Ventilador auxiliar (0-100%)\r\n- `set_camera_led(on)` - LED de c\u00e1mara (True/False)\r\n\r\n### Sistema AMS\r\n- `configure_ams(filaments)` - Configurar slots AMS\r\n- `get_current_filament()` - Informaci\u00f3n filamento actual\r\n\r\n### Transferencia y Control\r\n- `upload_file(filepath)` - Subir archivo por FTP\r\n- `auto_print(archivo, filamentos)` - Proceso completo automatizado\r\n\r\n### Estados y Monitoreo\r\n- `get_print_status()` - Estado de impresi\u00f3n actual\r\n- `get_print_progress()` - Progreso de impresi\u00f3n (%)\r\n- `get_bed_status()` - Estado de la cama\r\n- `get_machine_status()` - Estado general de la m\u00e1quina\r\n\r\n## \ud83d\udc1b Soluci\u00f3n de Problemas\r\n\r\n### Error de Conexi\u00f3n\r\n- Verificar que la impresora est\u00e1 encendida y conectada a la red\r\n- Comprobar la IP de la impresora\r\n- Verificar que el acceso LAN est\u00e1 habilitado\r\n\r\n### Error de Autenticaci\u00f3n\r\n- Verificar el c\u00f3digo de acceso de 8 d\u00edgitos\r\n- Verificar el n\u00famero de serie de 15 caracteres\r\n- Regenerar c\u00f3digo de acceso si es necesario\r\n\r\n### Error de Subida FTP\r\n- Verificar que el archivo existe\r\n- Comprobar formato del archivo (.3mf o .gcode)\r\n- Verificar espacio disponible en la impresora\r\n\r\n## \ud83e\udd1d Contribuir\r\n\r\n1. Fork del repositorio\r\n2. Crear rama para nueva caracter\u00edstica\r\n3. Commit de cambios\r\n4. Push a la rama\r\n5. Crear Pull Request\r\n\r\n## \ud83d\udcc4 Licencia\r\n\r\nEste proyecto est\u00e1 bajo una **Licencia Comercial Personalizada**:\r\n\r\n- \u2705 **GRATIS** para uso personal, educativo e investigaci\u00f3n\r\n- \u274c **USO COMERCIAL PROHIBIDO** sin licencia separada \r\n- \ud83d\udcb0 **ROYALTIES** requeridos para uso comercial\r\n\r\nPara **licencias comerciales**, contacta:\r\n- GitHub: [AngelBarbero](https://github.com/AngelBarbero)\r\n- Issues: [bambuluc/issues](https://github.com/AngelBarbero/bambuluc/issues) con etiqueta \"Commercial License Request\"\r\n\r\nVer `LICENSE` para t\u00e9rminos completos.\r\n\r\n## \ud83c\udd98 Soporte\r\n\r\n- **GitHub Issues**: [Reportar bugs](https://github.com/AngelBarbero/bambuluc/issues)\r\n- **Documentaci\u00f3n**: Este README\r\n- **GitHub**: [AngelBarbero](https://github.com/AngelBarbero)\r\n\r\n## \ud83c\udff7\ufe0f Versiones\r\n\r\n### v1.3.0 (Actual)\r\n- \u2705 Control manual completo\r\n- \u2705 Sistema AMS autom\u00e1tico\r\n- \u2705 Transferencia FTP SSL\r\n- \u2705 Proceso automatizado completo\r\n- \u2705 Monitoreo de estados en tiempo real\r\n- \u2705 Control avanzado de ventiladores y LED\r\n\r\n---\r\n\r\n**Desarrollado con \u2764\ufe0f por Angel Luis Barbero Guerras**\r\n\r\n*\u00a1Automatiza tu impresi\u00f3n 3D con BambuLuc!* \ud83d\ude80\r\n",
"bugtrack_url": null,
"license": null,
"summary": "Control completo para impresoras Bambu Lab ",
"version": "1.3.0",
"project_urls": {
"Bug Reports": "https://github.com/AngelBarbero/bambuluc/issues",
"Documentation": "https://github.com/AngelBarbero/bambuluc/blob/main/README.md",
"Homepage": "https://github.com/AngelBarbero/bambuluc",
"Source": "https://github.com/AngelBarbero/bambuluc"
},
"split_keywords": [
"bambu",
" 3d printer",
" mqtt",
" ftp",
" automation",
" 3mf",
" gcode"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "a8382c8474cc0f64cf3f50672b6367f36cc8fe65b9a1bec5eb3975572cb9168b",
"md5": "2c1f219c40f95e8d4819a67108b9f4a1",
"sha256": "7badd71028bc7d0e6741fecf2ddbcc53bb48a07a8c0f888d6cb273b42a36fa23"
},
"downloads": -1,
"filename": "bambuluc-1.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2c1f219c40f95e8d4819a67108b9f4a1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 863206,
"upload_time": "2025-07-23T05:50:24",
"upload_time_iso_8601": "2025-07-23T05:50:24.596367Z",
"url": "https://files.pythonhosted.org/packages/a8/38/2c8474cc0f64cf3f50672b6367f36cc8fe65b9a1bec5eb3975572cb9168b/bambuluc-1.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "db3511a04d85ca72c8dfe3d1d405181c756ac8467840f520cf93644190aeb6ed",
"md5": "de10bdafb37317148ba0395038ed031f",
"sha256": "331d63d94ad1da705fd56daa8f57e19ec907ca5958ebd67f71318c01c7831cee"
},
"downloads": -1,
"filename": "bambuluc-1.3.0.tar.gz",
"has_sig": false,
"md5_digest": "de10bdafb37317148ba0395038ed031f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 860098,
"upload_time": "2025-07-23T05:50:25",
"upload_time_iso_8601": "2025-07-23T05:50:25.811679Z",
"url": "https://files.pythonhosted.org/packages/db/35/11a04d85ca72c8dfe3d1d405181c756ac8467840f520cf93644190aeb6ed/bambuluc-1.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-23 05:50:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "AngelBarbero",
"github_project": "bambuluc",
"github_not_found": true,
"lcname": "bambuluc"
}