Week 15 - System Integration

This week we have the following task to complete:

  • Design and document the system integration for your final project

System Diagram

The project consists of the following subassemblies:
System Diagram

The electronic assemblies are shown here:
Electronics 01

Time Table

I allocated more time than estimated for each task. If something seems like it would take 0.75 to 1 day, I scheduled 2 days. If a task could be done in 2 hours, I planned for one full day. This is based on the consistent observation that everything tends to take longer than initially expected.
Timetable

Spiral Development Plan

The project is divided into three main areas, each consisting of smaller work packages. Each package includes design, manufacturing, testing, and evaluation phases.

Mechanical Construction

  • Spool Holder 1 + Load Cell 1
  • Baseplate + User Interface Housing
  • Spool Holders 2–5 + Load Cells 2–5
  • Active Drying / Heating Elements

Electronics

  • PCB for Load Cell 1 + Load Cell Interface
  • Processing Unit + User Interface
  • Active Drying / Heating Module 1
  • Load Cells 2–5 + Active Drying / Heating Module 2

Software

  • Load Cell Data Analysis
  • Communication between Load Cell Interface and Processing Unit
  • User Interface Integration
  • Menu Design
  • Environmental Sensor and Drying/Heating Integration

Wiring Harness

One of the first design questions was: How should all components be interconnected? Various approaches exist, but the least desirable would be to have loose, unmanaged cables. To avoid this, I plan to route wires through designated channels, such as within the baseplate.
The load cells will connect to a primary Xiao ESP32C3 microcontroller acting as the Load Cell Interface. This component will be placed outside the enclosure for better ventilation. To improve modularity, I plan to integrate a PCB into the baseplate to act as a distribution hub. Later, pogo pins can be added to allow for easy disconnection.
In a discussion with Ferdi, we considered replacing the PCB with copper EMF shielding tape. This tape can be cut with a vinyl cutter, which supports a larger working area than the CNC mill, making it suitable for the Eurobox size. This method avoids the need to interconnect multiple small PCBs.
The Load Cell Interface and the Processing Unit will ideally be mounted on the same PCB. If possible, all UI components (display, rotary encoder, status LEDs) will also be mounted similarly. If not, a short ribbon cable with socket or Dupont connectors will be used.

Power Supply

The device will be powered externally via a barrel jack or optionally through a USB-C connector. A standard laptop charger is sufficient. Power from the USB port will be distributed between heating modules and electronics via the main PCB. Voltage regulators will be added where needed.

Spool Holder

The spool holder is designed for simplicity and minimal fasteners. It consists of three parts: a baseplate and two identical side panels. The spool will rotate on four 608 bearings, which snap into the side panels—no extra hardware needed.
To support different spool widths, the side panels will be adjustable using slotted holes in the spool holder baseplate. Small positioning features will prevent panel rotation, and two screws per panel will secure them in place.
Initial prototypes will be FFF 3D-printed; final versions will be SLA-printed or cast for better surface finish. The baseplate will be laser-cut from acrylic for cost-effectiveness and precision.

Load Cell Integration

Each load cell will be mounted between the baseplate and spool holder baseplate using two screws and a laser-cut spacer on each side. The spacer ensures the load cell can flex properly for accurate weight measurements.

User Interface

The user will be able to view and calibrate the weight of each spool via a 128x64 OLED display and a rotary encoder with an integrated push-button for menu navigation.
To enhance user experience, status LEDs will indicate the approximate remaining filament per spool—green to red color gradient. The UI front panel will preferably be milled or cast; the rear side will likely be 3D-printed or milled.

Passive Drying

To maintain low humidity without active components, open containers for silica beads will be embedded in the baseplate. These will absorb moisture passively and can be easily refilled.
A BME688 environmental sensor (tested in Week 09) will monitor humidity and temperature. It will be mounted centrally at the front to simplify wiring to the Processing Unit.

Active Drying / Heating

For better control of humidity and temperature, one or two heaters with small fans and shrouds will be added to the back of the enclosure (time permitting). Shrouds will be printed in ASA to prevent melting, offering an opportunity to experiment with this material.
eaters and fans will be controlled via a MOSFET, optionally supported by a bipolar transistor stage if additional current amplification is required, and will be powered directly from the main power supply.

On/Off Switches

A main power switch will be located on the back next to the power connector. The front panel will have a switch for the User Interface to extend the life of the display and LEDs. An automatic sleep mode may be implemented if time permits; otherwise, a manual switch will suffice.

User Interface Concept

The UI is designed for quick and detailed filament status checks. Neopixel LEDs will show approximate levels at a glance, while detailed data will be available on the OLED display. The display uses I2C and offers sufficient resolution for the required information.

Weights will be displayed in grams (g), following SI unit standards.

What I learn this week

  • Much of my system integration knowledge stems from previous projects, which has proven invaluable for this one. The experience and solutions developed in the past significantly contributed to overcoming current challenges.

What I want to improve next week

  • I need to prioritize my personal well-being and allocate time for rest and recovery.


To create this page, I used ChatGPT to check my syntax and grammar.

Copyright 2025 < Benedikt Feit > - Creative Commons Attribution Non Commercial

Source code hosted at gitlab.fabcloud.org