Skip to main content
Version: FILS English

Sorty the conveyor belt

A conveyor belt that sorts items based on multiple tests .

info

Author: Preda Razvan-Ilie
GitHub Project Link: https://github.com/UPB-PMRust-Students/fils-project-2026-xrazvan06

Description

Sorty is a smart conveyor belt system that automatically sorts objects based on their properties, such as color, weight, height, and whether they contain metal. The system uses different sensors to detect these characteristics and an STM32 microcontroller to process the data . It uses a series of servo-motors to push the objects into a box which corresponds to their properties .

Motivation

I chose this project because conveyor belts are used in many real-life applications like factories, airports, supermarkets and many others.To increase the difficulty of the project, I decided to improve a simple conveyor belt by adding sensors and an automatic sorting system, so it can detect and classify objects based on different properties. Also it seemed interesting to try and build one from scratch .

Architecture

schematic

Log

Week 21 - 27 April

Ordered most of the sensors and motors needed for the project. Thought of a few ways of implementing the project.

Week 28 April - 4 May

Week 5 - 11 May

Week 12 - 18 May

Week 19 - 25 May

Hardware

STM32U545 (NUCLEO): The microcontroller . Buck Converter (12V → 5V): Powers the STM32 and low-voltage components. Stepper Motor + Driver: Drives the conveyor belt. Servo Motors (x2): Used for sorting or gate control. Sensors: Color sensor (TCS34725), metal detector, weight sensor (load cell + HX711), and distance sensor for object detection. User Interface: LEDs, buttons, and buzzer for feedback and control. Hardware

Schematics

Kicad Schematic

Bill of Materials

DeviceUsagePrice
STM32 Nucleo-U545RE-QThe microcontroller110 RON
TCS34725RGB Color sensor19.73 RON
Load cell + HX711Weight sensor 5kg27.16 RON
VL53L0X (GY-530)Measures height30 RON
IR Obstacle Sensor (LM393)Detects objects20 RON x 2
Inductive Sensor LJ12A34Z/BXDetects metals15 RON
BuzzerIt is used as an alarm1 RON
LM2596 step-downLowers the voltage from ~12V to 5V13 RON

Software

LibraryDescriptionUsage
embassy-stm32HAL for STM32 microcontrollersUsed to configure peripherals (GPIO, I2C, timers, ADC)
embassy-executorAsync task executorUsed to run concurrent tasks (sensors, motors, logic)
embassy-timeAsync timers and delaysUsed for delays, timeouts, and scheduling
embassy-syncSynchronization primitivesUsed for communication between tasks (signals, channels)
embassy-futuresAsync utilitiesUsed for select/join between events (e.g. sensor vs timer)
embedded-halHardware abstraction traitsStandard interface used by drivers (I2C, GPIO, PWM)
embedded-hal-asyncAsync HAL traitsUsed with Embassy async drivers
cortex-mCortex-M support crateLow-level MCU access
cortex-m-rtRuntime for Cortex-MStartup code and interrupt handling
defmtLogging frameworkUsed for debugging over RTT
defmt-rttRTT transport for defmtSends logs to host PC
panic-probePanic handlerPrints panic messages using defmt
  1. https://youtube.com/shorts/HdYP6mvLWew?si=p890I0Eqb_ZgoHAU
  2. https://youtu.be/o7VVmtX7SKs?si=MxJZP-G2SN3kIiRf
  3. https://www.youtube.com/watch?v=zFARtdGX9TY
  4. https://www.youtube.com/watch?v=PjL9drjZAQU ...