Bridging the visual world with real-time, cyber-physical tactile reading.
Netra-Setu is an advanced, standalone embedded system designed to provide real-time, offline tactile reading for the visually impaired. Built on the dual-architecture of the Arduino Uno Q, the system leverages a Linux-based AI vision core to perform Optical Character Recognition (OCR). It dynamically multiplexes micro-servos through an Arduino C++ firmware to physically render a 6-dot Braille cell.
Aligning with the Viksit Bharat vision, this project creates an accessible, high-precision technological solution that operates entirely offline, ensuring privacy, speed, and independence for the user.
- 🧠 Headless Edge AI: Runs complete PaddleOCR/Edge Impulse vision models locally without relying on cloud processing or internet connectivity.
- ⚡ RPC Bridge Architecture: Seamless, high-speed communication between the Linux vision environment and the Arduino microcontroller.
- 🦾 Real-Time Actuation: Drives 6 independent SG90 micro-servos to push physical Braille pins in real-time.
- 🚦 Visual Feedback Matrix: Utilizes the onboard 13x8 LED Matrix to display the currently translated character for sighted assistants or debugging.
- 🖨️ Custom 3D Printed Mechanism: A miniaturized, custom-designed FDM 3D-printed Braille cell mechanism to convert rotational servo movement into linear pin actuation.
- Microcontroller: Arduino Uno Q
- Vision Sensor: 1080p USB Webcam
- Actuation: 6x SG90 Micro-Servos
- Hardware Structure: Custom 3D Printed Braille Cell & Enclosure (PLA/PETG)
To replicate the physical Braille cell, navigate to the /3D_Models directory.
- Print the components using PLA or PETG at a
0.12mmor0.16mmlayer height for precision. - The
braille_cell_base.stlrequires supports for the internal pin channels and component housing. - Attach the servo horns to the
push_rods.stland mount the 6 SG90 servos into theservo_mount_bracket.stl. - Secure the mounted servos inside the
servo_mount_holder.stlbox and align the push rods with the base.
Here is the visual wiring diagram illustrating the connections between the Arduino Uno Q, the 6-servo multiplexing array, and the physical hardware UI:
| Component | Function | Arduino Digital Pin |
|---|---|---|
| Servo 1 | Top Left Dot | Pin 2 |
| Servo 2 | Middle Left Dot | Pin 4 |
| Servo 3 | Bottom Left Dot | Pin 6 |
| Servo 4 | Top Right Dot | Pin 3 |
| Servo 5 | Middle Right Dot | Pin 5 |
| Servo 6 | Bottom Right Dot | Pin 7 |
Netra-Setu-Vision-Firmware/
│
├── Deploy/ # Ready-to-run App Lab payload
│ └── Netra-Setu-Vision-Firmware.zip # The zipped AI Core (Upload this directly to Uno Q)
│
├── 3D_Models/ # STL files for 3D printing
│ ├── braille_cell_base.stl # Main housing for the 6 pins, board and other components
│ ├── push_rods.stl # Linear actuation pins
│ ├── servo_mount_bracket.stl # Mount for the SG90 servos
│ └── servo_mount_holder.stl # Box for mounted SG90 servos
│
├── models/ # Compiled Edge Impulse / PaddleOCR .eim models
│
├── utils/
│ ├── __init__.py # Package initializer
│ └── mock_dependencies.py # Bypasses unsupported Linux audio dependencies
│
├── headless.py # Main autonomous AI vision pipeline
├── web_inference.py # Model loader and inference engine
├── netrasetu_bridge.ino # C++ Firmware for RPC, Servos, and LED Matrix
├── app.yaml # Manifest for Arduino App Lab container
├── requirements.txt # Python dependencies
└── README.md # Project documentation
1. Microcontroller Setup (C++ Core)
Upload the netrasetu_bridge.ino sketch to the Arduino partition of the Uno Q board using the Arduino IDE.
2. Linux Vision Setup (App Lab) The AI vision core is packaged as a ready-to-deploy bundle.
- Locate the
Netra-Setu-Vision-Firmware.zipfile inside the/Deployfolder of this repository. - Upload this ZIP file directly into your Arduino App Lab environment. The App Lab will automatically mount the container and handle the extraction.
3. Launch the Pipeline Start the application from the App Lab interface. If using the CLI over SSH, trigger the uploaded app bundle:
arduino-app-cli app start Netra-Setu-Vision-Firmware.zip4. Operation Place any printed text in front of the connected webcam. The system will autonomously scan, recognize the characters, display them on the LED matrix, and physically actuate the 3D-printed Braille pins.
Autonomous Edge-AI Vision Pipeline for Real-Time Optical Character Recognition and Tensor Alignment (headless.py)
Copyright (c) 2026 Hiten Dharpure. All rights reserved.
Software Architecture registration filed with the Copyright Office, Government of India.
Firmware for Real-Time Tactile Braille Translation and Servo Multiplexing (netrasetu_bridge.ino)
Copyright (c) 2026 Hiten Dharpure. All rights reserved.
Firmware Architecture registration filed with the Copyright Office, Government of India.
🔓 Open Source Software: The software, AI pipeline, and C++ firmware in this repository are officially open-source and distributed under the GNU GPLv3 License. See the LICENSE file for details.
(Note: The open-source license applies ONLY to the software/codebase, not the 3D STL models).
- 3D Hardware Base: The 3D printed Braille cell mechanism (matrix box, pins, and holder) is a modified, custom-edited derivative based on the original mechanical design from the BrailleBot project by Mukesh Sankhla. The STLs were heavily adapted to house the specific servo multiplexing array and custom hardware used in Netra-Setu.
