Imagine walking into a grocery store and realizing that nearly every package is silent to your sense of touch. In the United States, unlike public signage covered by the ADA, there is no universal requirement for Braille on food products. Prescription drugs have some best-practice guidelines, but for everyday items like milk, soda, or cereal, Braille is virtually nonexistent.
As a result, millions of visually impaired Americans rely on workarounds like QR codes, talking label devices, or smartphone apps just to identify something as simple as a can of soup. Labels, the most basic gateway to information, remain out of reach.
Dotify was created to close this gap. It translates the visual world into concise, meaningful messages at the click of a button – and automatically prints out the corresponding Braille.
Dotify is an AI-powered portable device that captures an image, understands its content, and prints out a short label/sticker that can be read by touch. This is a super easy way to make shops, households, and other places in our community more accessible for the visually impaired.
Capture: The user points the device at an object or scene and takes a picture. Understand: The image is processed by our software and analyzed through the Google Gemini API, which generates a concise text description (e.g., "a blue ceramic mug with a flower on it"). Translate: The Arduino receives this description and converts it into Braille character data. Feel: Servo motors actuate pins to emboss the Braille dots, and a DC motor advances the paper for the next character.
Dotify combines hardware, software, and AI into a single mechatronic system:
Power System: 4×AA batteries powering the Arduino, motor driver, and six servos. Arduino UNO R4: The "brain" of the device, managing servo motions and motor timing. Google Gemini API: Web app takes photo and interprets visual data into descriptive text. Micro Servos (x6): Actuate Braille pins to emboss dots. DC Motor + Motor Driver: Feeds paper consistently between letters. 3D-Printed Housing: Keeps all components aligned in a compact, functional case.
- Node.js and npm
- Python 3
- Arduino IDE
- Google Gemini API key
- Visit Google AI Studio
- Create a new project
- Generate your API key
- Copy the key for the next step
Replace the placeholder in run_python_server.bat:
set GEMINI_API_KEY=your_actual_api_key_herenpm installFrontend (React app):
npm run devAccess at: http://localhost:5173
Backend (Python AI server):
npm run serve
# OR manually:
python simple_server.pyAccess at: http://localhost:8000
- Upload
arduino/dotify_braille.inoto your Arduino Uno R4 - Connect Arduino to computer via USB
- In the web app, navigate to "Serial Connection"
- Select your Arduino's COM port
- Click "Connect"
- Take Photo: Use the camera interface or upload an image
- AI Analysis: The system analyzes the image and generates a concise description
- Review Description: Ensure the description is clear and under 4 words for optimal Braille printing
- Print Label: Send the description to the Arduino for Braille embossing
- Apply Label: The resulting Braille label can be applied to products or objects
- Arduino Uno R4: Main controller
- 6x Micro Servos: Braille pin actuation
- DC Motor + Driver: Paper feed mechanism
- Braille Paper: Standard Braille paper or label stock
- 3D-Printed Housing: Component enclosure
- 4x AA Batteries: Power supply
- USB Cable: Communication with computer
- Frontend: React + TypeScript + Tailwind CSS
- Backend: Python + Google Gemini AI
- Arduino: C++ for servo and motor control
- Communication: Web Serial API for browser-to-Arduino communication