Braille Display
A mini e-reader for Braille alphabet
Author: Alexandra Prigoreanu
GitHub Project Link: https://github.com/UPB-PMRust-Students/acs-project-2026-aprigoreanu20
Description
The purpose of the project is to build a Braille display, which loads content from an SD card and outputs the coresponding Braille letters on the display. The goal is to allow visually impaired people to read file contents using a device that has similar functionalities to that of a classic e-reader.
Motivation
Over the last 20 years, E-readers have become a practical solution to encourage reading. Their lightweight design and ease of use made them a convenient alternative to purchasing and storing a large collection of printed books. This is especially relevant for blind people, as they require specially produced books using the Braille alphabet. This process can be both time-consuming, as well as expensive. E-readers offer an efficient solution by providing access to a wide range of books for visually impaired people.
Architecture

Software achitecture:
Software will be written in Rust, using Embassy. The main logic components are:
- input: read button input (next / previous page logic), read data source (from SD card)
- Braille encoder: convert ASCII characters to Braille letter pattern
- Display: convert Braille pattern to GPIO signals
Log
Week 20 - 26 April
Researched mechanical solutions for Braille pins
Week 5 - 11 May
- Purchased components
- Built the circuit
Week 12 - 18 May
Week 19 - 25 May
Hardware
Hardware Components:
- microcontroller: STM32 Nucleo-U545RE-Q with ARM Cortex-M33 core
- input system: SD card (and a SD card module for communication with the MCU), user input buttons (next / previous page)
- LCD display: displays the character currently shown on the Braille display for easy testing
- actuation system: 6 push-pull solenoids per Braille letter
- power system: 12V external supply for powering the solenoids
Schematics

Bill of Materials
| Device | Usage | Price |
|---|---|---|
| STM32 Nucleo-U545RE-Q | Microcontroller | Provided by university |
| 12V Push Pull Solenoids | The actuation system for raising and lowering the Braille pins | 6x24 RON |
| IRLZ44NPBF N-MOSFET TRANSISTOR | Acts as a switch between the 12V power system for the solenoids and the logical control from the MCU | 6x4.52 RON |
| 1N4007 Flyback Diode | Protects the MCU from higher current coming from 12V power supply | 6x4.52 RON |
| External Power Supply | Provides external power to the 6 solenoids | 37 RON |
| MicroSD Module | Bridges communication over I2C between MCU and microSD card | 4.38 RON |
| LCD Screen | Displays the same character on screen for as the one on the Braille display | ≈23 RON |
| Breadboard | Links components | 6.68 RON |
Software
| Library | Description | Usage |
|---|---|---|
| embassy-stm32 | Hardware Abstraction Layer | HAL for bridging interaction between STM32 MCU and Rust software |
| embassy-executor | Async executor | Schedules and runs async tasks |
| defmt | Console printing | Allows printing to console for debug purposes |