Build a Full-Stack Printing Management System With Raspberry Pi
by Orange Digital Center in Workshop > 3D Printing
492 Views, 4 Favorites, 0 Comments
Build a Full-Stack Printing Management System With Raspberry Pi


Welcome to our project! At the Orange Digital Center Rabat , Morocco FabLab, we embarked on an exciting
journey to create a full-stack printing management system. This project integrates 2D and 3D printing capabilities using Raspberry Pi and modern web technologies. Whether you're a maker, developer, or tech enthusiast, this guide will walk you through the process of building a similar system.
Our team of full-stack developers: Alae-Eddine Sahbou, Ali Belahmidi, Mehdi Boudar, and Mosaab Lachhab, worked under the guidance of our supervisor Meryem Eddib to bring this project to life.
Together, we combined our skills in hardware, software, and system integration to create a scalable and efficient solution .
What You'll Learn
By following this guide, you'll learn how to:
- Set up a Raspberry Pi for embedded system operations
- Install and configure OctoPrint for 3D printing management
- Use CUPS for 2D printing services
- Build a unified API layer with Node.js
- Optimize and monitor your system for continuous operation
Project Overview
Our project consists of three main components:
1 . Raspberry Pi Setup: Core embedded system configuration and OS installation
2 . OctoPrint Integration: 3D printing management via API
3 . CUPS Integration: 2D printing services via API
Supplies


To get started, you'll need:
Raspberry Pi 4 Model B (4GB+ RAM recommended)
MicroSD Card (32GB minimum, Class 10)
Power Supply (5V 3A offi cial adapter)
Ethernet cable or WiFi connectivity
Heat sinks and cooling fan for continuous operation
Install Raspberry Pi OS Using Raspberry Pi Imager

1. Download Raspberry Pi Imager:
- Visit Raspberry Pi Software and download the Imager for Windows.
- Install the application and launch it.
2 . Flash the OS:
- Insert your MicroSD card into your computer.
- Open Raspberry Pi Imager and click CHOOSE OS.
- Select Raspberry Pi OS Lite (64-bit) for a headless setup.
- Click CHOOSE STORAGE and select your MicroSD card.
- Click the gear icon ( ) to confi gure advanced options:
- Enable SSH and set a username/password.
- Confi gure WiFi by entering your SSID and password.
- Set the locale to Morocco (MA) for timezone and keyboard layout.
- Click WRITE and wait for the process to complete.
3 . Insert the SD Card:
- Once the flashing process is complete, eject the SD card and insert it into your Raspberry Pi.
First Boot and SSH Access
1 . Power on your Raspberry Pi and wait for it to boot (2-3 minutes).
2 . Find your Raspberry Pi on the network:
- Open Command Prompt or PowerShell on Windows.
- Use ping fablab-pi.local (if mDNS is enabled) or check your router's connected
devices.
3 . SSH into the Raspberry Pi:
- Open a terminal or use PuTTY.
- Run: ssh pi@fablab-pi.local or ssh pi@<IP_ADDRESS> .
- Enter the password you set during the flashing process
Configure the System
Run the following command to launch the Raspberry Pi confi guration tool:
Make the following changes:
1 . Change the default password.
2 . Enable SSH (if not already enabled).
3 . Expand the fi lesystem.
4 . Set the timezone and keyboard layout.
Update the system:
Install OctoPrint (for 3D Printing)


1. Create a dedicated user for OctoPrint:
2 . Install Python dependencies:
3 . Switch to the OctoPrint user and set up a virtual environment:
Configure OctoPrint As a Service
1. Create a systemd service fi le:
Add the following content:
2 . Enable and start the service:
Install and Configure CUPS (For 2D Printing)
1. Install CUPS:
2 . Add the pi user to the lpadmin group:
3 . Confi gure CUPS to allow remote access:
Modify the following lines:
4 . Restart CUPS:
Set Up the Node.js Environment
1. Install Node.js:
2 . Create a project directory:
Create the API Server
1. Create a fi le named server.js :
2 . Add the following content:
3 . Start the server:
Monitoring and Optimization
System Monitoring Script
Add the following content:
Make it executable:
Conclusion
.jpeg)
This project demonstrates how to integrate 2D and 3D printing into a unified system using Raspberry Pi and modern web technologies.
Final Presentation

In this final step, we complete the installation of the 3D printing management system using the Raspberry Pi. After configuring network settings, installing control software such as OctoPrint, and connecting the 3D printer, we test the system's functionality. The video presents a live demonstration: sending an STL file, remotely starting the print job, and monitoring the printing parameters in real time via the web interface.
This module wraps up our project by showing how to automate, monitor, and efficiently manage a 3D printer remotely using a Raspberry Pi.