The Bambu Poop Conveyor is an application designed to manage the waste output of a Bambu X1 3D printer. It utilizes WiFi and MQTT protocols to monitor the printer's status and control a motor that moves waste material away from the printing area.
IMG_1297.mov
IMG_1299.mov
-
Conveyor: https://makerworld.com/en/models/148083#profileId-161573
-
Motor box (I made my own but this one works): https://makerworld.com/en/models/164413#profileId-180494
-
Conveyor Extension: https://makerworld.com/en/models/249714#profileId-359905
-
The custom box I used: https://makerworld.com/en/models/576315#profileId-496900
- WiFi and MQTT Connectivity: Connects to a local WiFi network and communicates with the printer via MQTT.
- Motor Control: Activates a motor to manage the printer's waste output based on the printer's status.
- Web Server: Hosts a web server to provide manual control and configuration of the system.
- Stage Monitoring: Monitors various stages of the printer to determine when to activate the motor.
Enter your WiFi and MQTT credentials in the following variables:
// WiFi credentials
char ssid[40] = "your-ssid";
char password[40] = "your-password";
// MQTT credentials
char mqtt_server[40] = "your-mqtt-server-ip";
char mqtt_password[30] = "your-mqtt-password";
char serial_number[20] = "your-printer-serial-number";
The application uses the following GPIO pins for motor and LED control:
#define BLED 2
const int greenLight = 19;
const int redLight = 4;
const int yellowLight = 18;
int motor1Pin1 = 23;
int motor1Pin2 = 21;
int enable1Pin = 15;
Configure the motor run time and wait time:
int motorRunTime = 15000; // Motor runs for 15 seconds by default
int motorWaitTime = 25000; // Wait 25 seconds before running the motor
int delayAfterRun = 50000; // Delay after running the motor to avoid duplicate detection
Set the PWM properties for motor control:
const int freq = 5000;
const int pwmChannel = 0;
const int resolution = 8;
int dutyCycle = 220;
The application hosts a web server to provide manual control and configuration. Access the following URLs for different functionalities:
- Root URL: Activates the motor (
/
) - Control URL: Manual motor control page (
/control
) - Config URL: Configuration page to update settings (
/config
)
The application monitors the printer's stages and activates the motor when necessary. The stages are identified using MQTT messages from the printer.
- Connect the ESP32 to your computer.
- Open the code in the Arduino IDE.
- Enter your WiFi and MQTT credentials in the respective variables.
- Upload the code to the ESP32.
- Access the web server via the IP address assigned to the ESP32 to configure and control the application.
- Breakout board for ESP32: https://amzn.to/4dcUunc
- ESP32 board: https://amzn.to/4fBjh5L
- 12 Volt power supply: https://amzn.to/3AfIm6a
- Motor Controller: https://amzn.to/3yBPqcM
- 12V 10RPM Motor: https://amzn.to/3M24VOd
Not listed
- Wires
- LEDs (Standard dev kit leds)
This project is licensed under the MIT License. See the LICENSE file for details.