Skip to the content
PCBKitNew board
2 layers55.5 × 57 mmMobility aid, the printed circuit board in 3D

An embedded style system designed to assist visually impaired individuals using real-time proximity sensing and traffic light recognition.

Size
55.5 × 57 mm
Copper layers
2
Thickness
1.6 mm
Parts
20
Nets
38
Pads
77
Tracks, vias
87, 5
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
9 Jun 2025
Updated
3 Sep 2025

Overview

Mobility aid is an open-source printed circuit board by TF2113, from the TF2113/mobility-aid repository on GitHub. It is a 2-layer board of 55.5 × 57 mm with 20 parts on 38 nets, routed with 87 tracks and 5 vias.

It is built around the HC-SR04 and PN2222A. Its parts include 7 resistors, 3 capacitors, 1 diode, 1 transistor and 1 connector.

Main components

2

README

README.md

Huia Echo 🐸

👁️‍🗨️ Mobility Aid for Visually Impaired Users

A low-cost embedded system designed to assist visually impaired individuals using real-time proximity sensing and traffic light recognition. Built on a Raspberry Pi, the system integrates ultrasonic sensors, a camera, and a lightweight machine learning model (YOLOv11n) to detect environmental conditions and provide haptic feedback.


📌 Overview

This mobility aid project helps users safely navigate streets, particularly at pedestrian crossings. The system combines:

  • Ultrasonic sensing to detect nearby obstacles
  • Traffic light recognition using a camera and an efficient YOLOv11n model
  • Feedback mechanism via vibration, triggered based on proximity and light state

📁 Key File Structure

text
mobility-aid/
│
├── include/                  # C header files
│   ├── config_loader.h       # Loads external config values
│   ├── gpio_functions.h      # GPIO pin setup and control
│   └── tick.h                # Timing utilities
│
├── src/                      # C source files
│   ├── configs/              # Config database using data generated by web app
│   │   └── config.db
│   └── sys_controller.c      # Ultrasonic sensor and control loop                         
│
├── ml/                       # Machine learning module
│   ├── augmentation.ipynb    # Data augmentation and preprocessing
│   ├── train_model.ipynb     # YOLOv11n training logic
│   └── models/
│       └── best.pt           # Trained YOLOv11n model weights
│
├── test/                     # Test cases, mocks and framework files for testing C & Python
│
├── web/                      # Web interface (Flask app)
│   └── app.py                # Local dashboard
│
├── Makefile                  # Compiles the C code

🚀 Features

  • 📡 Ultrasonic Sensing
    Detects objects and measures distance with HC-SR04 sensor.

  • 🧠 Traffic Light Recognition (YOLOv11n)
    Recognizes red/green pedestrian and traffic lights from a camera feed.

  • 🔊 Feedback System
    Triggers vibration when objects are too close or crossing is unsafe.

  • ⚙️ Modular Design
    Split into embedded C for performance and Python for AI tasks.

  • 🪛 Easily Configurable
    Adjust logic thresholds via external config files.


🧠 Machine Learning

  • Model: YOLOv11n (Ultralytics)
  • Dataset: Custom images gathered and augmented to increase dataset size
  • Use Case: Detect green/red pedestrian signals in real time
  • Output: Torch .pt model located at ml/models/best.pt
  • Trained Using:
    • augmentation.ipynb: Image resizing, color shifts, flips
    • train_model.ipynb: Fine-tuning YOLOv11n with labeled traffic light data

🖥️ Requirements

Hardware

  • Raspberry Pi 4 (or newer)
  • HC-SR04 Ultrasonic sensor
  • Pi Camera Module
  • Vibration motor or buzzer

Parts

20
QtyValueFootprintReferences
3330Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR5, R6, R7
3LEDLED_THT:LED_D5.0mmAMB1, GRN1, RED1
2CCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mmC1, C2
2MountingHole_PadMountingHole:MountingHole_2.5mm_PadNeg1, Pos1
110kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1
11N4007Diode_THT:D_DO-41_SOD81_P10.16mm_HorizontalD1
11kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR4
120kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR2
122Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR3
1CCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC3
1HC-SR04Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_HorizontalHCSR04
1LOGOLogos:frogG***
1PN2222APackage_TO_SOT_THT:TO-92_InlineQ2
1Raspberry_Pi_4Connector_PinSocket_2.54mm:PinSocket_2x20_P2.54mm_VerticalJ1

Questions

How big is the Mobility aid PCB?

It measures 55.5 × 57 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Mobility aid use?

20 parts, built around the HC-SR04 and PN2222A. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Mobility aid KiCad files?

From the TF2113/mobility-aid repository on GitHub, at the commit this page was made from: the board is docs/pcb/mobility_aid.kicad_pcb and its schematic docs/pcb/mobility_aid.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Mobility aid design in my own project?

Its repository states no licence, so its author keeps all rights: ask TF2113 before reusing the design.

Similar boards

  • 2 layers40.6 × 39.4 mmAutoDistance, the printed circuit board in 3D

    AutoDistance

    AlexDom513/autoDistance

    FPGA project to automatically control the position of a cart on a ramp

    8 partsMIT
  • 2 layers80 × 60 mmEnvMonitor, the printed circuit board in 3D

    EnvMonitor

    kennySzhucheng/EnvMonitor

    🌡️ 智能环境监测站 | STM32F103C8T6 + FreeRTOS + ESP8266 | 温湿度/光照/测距/OLED菜单/ThingSpeak上云 | 从裸机到RTOS到KiCad PCB全流程

    27 parts10
  • 2 layers120.7 × 184.1 mmBeachRover circuit, the printed circuit board in 3D

    BeachRover circuit

    wizardofrobots/roverCode

    Jetson Nano powered Arduino Rover

    11 parts10
  • 2 layers110 × 80 mmNoko 2, the printed circuit board in 3D

    Noko 2

    NikolaiRadke/Noko_2

    The do-it-yourself Arduino-based Noko monster. Version 2 with PCB and 3D printed casing.

    51 parts3Apache-2.0
  • 2 layers150 × 100 mmMaze kiCad, the printed circuit board in 3D

    Maze kiCad

    billtsol/Maze

    This project demonstrates how to use an Arduino board, IR sensors, and a motor driver shield to create a maze-solving robot.

    39 parts2
  • 2 layers111.5 × 102 mmWall e, the printed circuit board in 3D

    Wall e

    c-lydia/ESP-ROS2

    A tiny robot with IMU (MPU5060) and an ultrasonic sensor (HC-SR04), running on micro-ROS, communicating over UDP.

    12 parts2Apache-2.0
  • 2 layers25.2 × 27.3 mmCf2-hcsr04, the printed circuit board in 3D

    Cf2-hcsr04

    dbrgn/crazyflie2-hcsr04

    Ultrasonic sensor (HC-SR04) extension board for the Crazyflie 2.0

    9 parts2
  • 2 layersAegis, the printed circuit board in 3D

    Aegis

    YousefAliAicha/aegis-embedded-system

    Networked rotating ultrasonic radar system built on the Deneyap Kart 1A (ESP32-S3), with a real-time web dashboard served directly from the board.

    9 parts2MIT