Skip to main content
Version: FILS English

Optical Currency Identifier

An assistive device that identifies Romanian Lei banknotes using RGB color scanning, mechanical transport, and audio feedback.

info

Author: Polojan Stefan-Alexandru
GitHub Project Link: https://github.com/UPB-PMRust-Students/fils-project-2026-PolojanStefan

Description

The Optical Currency Identifier is a complex assistive device designed to help visually impaired individuals identify Romanian Lei banknotes. The device automates the process by mechanically pulling the banknote through a slot, scanning its color profile with an RGB sensor, and announcing the value out loud using a speaker.

Motivation

Physical currency remains a vital part of daily life, but it presents a significant accessibility challenge for the visually impaired. While coins have tactile differences, banknotes are extremely difficult to distinguish by touch. This project aims to provide financial independence by combining optical recognition with a mechanical transport system and audio feedback, eliminating the need to rely on another person for verification.

Architecture

schematic

Kicad

Hardware

The system is divided into four main subsystems coordinated by the RP2350 microcontroller:

  1. Processing System: Olimex RP2350-PICO2-XXL running bare-metal software written in Rust.
  2. Portable Power System: A Li-Ion 18650 battery managed by a TP4056 charging module, and an MT3608 step-up converter to ensure stable 5V power for the motor and audio.
  3. Transport & Detection System: A 28BYJ-48 stepper motor (with ULN2003 driver) for moving the banknote, and a TCST1103 optocoupler to detect when a note is inserted.
  4. Acquisition & Output System: A TCS34725 RGB sensor for color reading, and a DFR0954 audio module with a Visaton speaker for vocal announcements.

Log

Week 5 - 11 May

Established the project topic, researched the color palettes of Romanian banknotes, and defined the hardware requirements.

Week 12 - 18 May

Acquired the Olimex RP2350-PICO2-XXL board and the TCS34725 RGB sensor. Began initial hardware testing.

Week 19 - 25 May

Hardware

The hardware consists of a main RP2350 processing unit handling I2C communication for sensors, UART for audio playback, and GPIO sequencing for motor control, all powered by a boosted portable Li-Ion circuit.

Schematics

Bill of Materials

DeviceUsagePrice
Olimex RP2350-PICO2-XXLThe main microcontroller50 RON
TCS34725 ModuleI2C RGB Color Sensor35 RON
Samsung INR18650-29ELi-Ion Battery (2750mAh, 3.6V)20 RON
TP4056 ModuleLi-Ion Micro USB battery charging5 RON
MT3608 ModuleStep-up boost converter (raises 3.6V to 5V)5 RON
28BYJ-48 + ULN2003Stepper motor and driver for note transport15 RON
DFROBOT DFR0954Audio playback module for voice feedback30 RON
Visaton 2945Audio speaker15 RON
TCST1103Optocoupler for note insertion detection5 RON

Software

LibraryDescriptionUsage
rp235x-halHardware Abstraction LayerUsed to configure clocks, GPIO pins, and I2C/UART hardware on the RP2350
cortex-m-rtARM Cortex-M runtimeProvides the startup code and critical CPU entry points
usb-deviceCore USB stackUsed to implement native USB device functionality
usbd-serialUSB CDC implementationUsed for debugging and streaming sensor data to the PC
embedded-halEmbedded hardware traitsProvides standard traits for blocking I2C and UART communication

1.-https://www.youtube.com/watch?v=Fy4IUyWjFX4 2.-https://www.youtube.com/watch?v=zByu_-Q0F7E 3.-