3D Printer Managment Web Interface and Video Stream

by flappydunk in Circuits > Arduino

28 Views, 0 Favorites, 0 Comments

3D Printer Managment Web Interface and Video Stream

Screenshot 2025-07-01 144046.png
Screenshot 2025-07-01 144335.png
Screenshot 2025-07-01 163750.png
Screenshot 2025-07-03 102809.png
Screenshot 2025-07-01 161530.png

ESP32-CAM and Printer Manager

This provides a fully function camera monitor and management interface for a 3D printer. This can be powered by the printer or separately. This has been fully tested using a ultimaker style home made printer, REPRAP RAMPS 1.6 and Marlin firmware with a single extruder and heated bed.

The hardware is based on a ESP32-CAM (AI thinker ESP32-CAM) The software was developed with the Arduino IDE

The original camera streaming video software for the camera was developed by Rui Santos & Sara Santos - Random Nerd Tutorials. This I have adapted to provide to include a reliable interrupt driven serial interface from the printer, real time video stream from the ESP32 camera and a web server to provide a fully functional management interface. I have tried to modularise it so it can be adapted for other printers and web interfaces.

Particular attention has been developed to ensure simultanious camera and serial performance. This project then provides a Octoprint style functionality with some additions.

A fully functional web interface covering:

ESP32-CAM reset, light.

Real time image stream of the printer.

Real time Bed and extruder temperatures.

SD Card support, reading and SD file printing.

A Action panel having various controls for the management of the printer.

A Command panel to provide the operator full command capability and logging of all data (both rx and tx) of the printer interface.

Supplies

printer_CAM.png

The Hardware

Veroboard 95 x 65 mm

ESP32-CAM with camera and wifi aerial (AI thinker ESP32 CAM with camera)

level shifter (4 Channel IIC I2C Logic Level 5V 3.3V Converter)

buck power module LM2596 (converter 12v printer PSU to 5.6V for ESP)

FTDI module FT232RL 3.3v for programming and debug.

Isolation switch for printer interface.

Programming push button (external).

Power switch.

header sockets for level shifter and ESP

Isolation Diode IN5819

Jumper field (used for revearse engineering and testing to read or listen to messages from the printer or computer interface)

Create Circuit Board

20250703_123906.jpg

The camera and components are mounted on a veroboard, see photo. I expect you may need to modify this layout depending on the physical characteristics of your printer.

My printer is built on a 20x20mm frame so I will be building a bracket and case to hold the camera.

First mount all the headers and then drill then cut strips as seen in the diagram.

check all the cuts, ensure they are clean and no loose copper strips. gently clean the surface with a wire brush.

Mount Components

20250703_123023.jpg

Mount the components as seen in the diagram.

The switches are not shown however they will be fitted later.

Voltage Adjustment

Voltage adjustment

UNPLUG the ESP32-CAM module from the board.

Connect 12v ( in my case) to the LM2596 and put a voltmeter on the output. Adjust this voltage to about 5.6v.

The ESP32-CAM 5V is sensitive to this voltage. I found it would not work reliably at 5v. So it is necessay to adjust this to at least 5.6v. Do not proceed until you have this set or you may damage the components.

Power off replace the ESP32_CAM.




Testing

500px-RAMPS1-6connectors.jpg

To test the unit you will need a arduino IDE environment.

Upload all the files from

https://github.com/flappydunk/Printer_CAM_Manager


Select the board AI thinker ESP32 CAM


Software

Modify the arduino code and replace this

// Replace with your network credentials

const char* ssid = "SSID";

const char* password = "PASSWORD";

with your own SSID and password for your router


Connect the pc to FTDI module and open the usb debug window.

Power up the board with the reset button pressed, then release. The debug window should show waiting for download.

Upload the program. If all OK power down the board.

( you may have to disconnect the USB cable as well depending on the type of USB adapter you used.)


Reconnect the usb cable and open the debug window again.

Turn the power on to the board.

The LED should flash when a WiFi connection is established.

Look at the debug window and it should show you the ip address that is being used.

Paste this into you browser and you should see the web pages above.


If thats working now connect the printer.

Turn off the power.

My printer is a arduino mega and Ramps 1.6, with a single extruder and heated bed.

The coms interface is available from the ramps board on a the aux-1 pins, see diagram and breakout

5v,Gnd,D1 (tx) ,D0 (rx).

Make up a cable and connect to your board.

Power back up and refresh the web page.


Test the connection to the ESP first.

On the command page test the Light.

Check temps page and you should start seeing temperature readings.

On the SD page. If a SD card is fitted you can, after a small delay, list the files.

On the action page you can manipulate the printer with a series of common actions.

The command page allows you to send adhoc command the Marlin software. It also provides a log of all messages to and from the printer by pressing theLog button.


I am hoping now this basic interface has shown it is possible to use the ESP32-CAM simulatiously have a video stream as well as having the ability to manage the printer. The cost is now only a few pounds rather than buying raspberry pi etc.


I hope the code is modular enough that you can extend it for your own printers and develop new web pages for them.