Project Info
This project did not submit a demo video on Devpost.
What inspired you? The inspiration behind this project came from my grandmother, who has struggled with poor vision for years. Growing up, I witnessed firsthand how her limited sight made daily tasks and walking in unfamiliar environments increasingly difficult for her. I remember one specific instance when she tripped on an uneven curb outside the grocery store. Though she wasn’t hurt, the fall shook her confidence, and she became hesitant to go on walks or run errands by herself. This incident helped spark the idea of creating something that could help people like her feel safer and more secure while navigating their surroundings. I wanted to develop a solution that would give visually impaired individuals not just mobility but confidence. The goal became clear: to create a product that could intuitively guide users through their environment, detecting obstacles like curbs, steps, and uneven terrain, and providing feedback they could easily understand. By incorporating haptic feedback, pressure-based sensors, and infrared technology, this system is designed to give users more control and awareness over their movements, helping them move through the world with greater independence and assurance. My hope is that this technology can empower people like my grandmother to reclaim their confidence and enjoy everyday activities without fear.
What it does
This project is a smart shoe system designed to help visually impaired individuals safely navigate their surroundings by detecting obstacles and terrain changes. It uses infrared sensors located on both the front and bottom of the shoe to detect the distance to obstacles like curbs and stairs. When the user approaches an obstacle, the system provides real-time feedback through 5 servos. 3 servos are responsible for haptic feedback related to the distance from the ground, and distance in front of them, while the remaining servos are related to help guiding the user through navigation. The infrared sensors detect how far the foot is off the ground, and the servos respond accordingly. The vibrational motors, labeled 1a and 2a, are used when the distance exceeds 6 inches, delivering pulsating signals to inform the user of upcoming terrain changes. This real-time feedback ensures users can sense potential dangers and adjust their steps to prevent falls or missteps. Additionally the user would connect to the shoe based off of bluetooth. The shoe system operates using three key zones of detection: the walking range (0-6 inches), the far walking range (6-12 inches), and the danger zone (12+ inches). In the walking range, the haptic feedback is minimal but precise, giving users gentle vibrations when the shoe detects small changes, such as a flat surface or minor elevation shifts. As the shoe moves into the far walking range (6-12 inches), where curbs or stairs may appear, the intensity of the feedback increases, and the vibrational motors start to pulse more frequently. This alert serves as a warning that the user is approaching a significant elevation change. When the distance exceeds 12 inches—the danger zone—the vibrational motors deliver intense, rapid feedback to indicate a drop-off or large obstacle, ensuring the user knows to take caution and adjust their step. These zones are carefully mapped to provide a seamless understanding of the terrain without overwhelming the user. The system also integrates seamlessly with a mobile app, offering GPS-based navigation via four directional haptic feedback sensors that guide the user forward, backward, left, or right. Users can set their route through voice commands, unfortunately we had trouble integrating Deepgram AI, which would assist by understanding speech patterns, accents, and multiple languages, making it accessible to people who are impaired lingually. Additionally we had trouble integrating Skylo, which the idea would be to serve areas where Wi-Fi is unavailable, or connection unstable, the system automatically switches to Skylo via their Type1SC circuit board and antenna, a satellite backup technology, to ensure constant connectivity. Skylo sends out GPS updates every 1-2 minutes, preventing the shoe from losing its route data. If the user strays off course, Skylo triggers immediate rerouting instructions through google map’s api in the app which we did set up in our app, ensuring that they are safely guided back on track. This combination of sensor-driven feedback, haptic alerts, and robust satellite connectivity guarantees that visually impaired users can move confidently through diverse environments.
How we built it
We built this project using a combination of hardware components and software integrations. To start, we used infrared sensors placed at the front and bottom of the shoe to detect distance and obstacles. We incorporated five servos into the design: three for haptic feedback based on distance sensing 3 and two for GPS-related feedback. Additionally, we used vibrational motors (1a and 2a) to provide intense feedback when larger drops or obstacles were detected. The app we developed integrates the Google Maps API for route setting and navigation. To ensure connectivity in areas with limited Wi-Fi, we integrated Skylo’s Type 1SC satellite hardware, allowing for constant GPS data transmission even in remote areas. For the physical prototype, we constructed a 3D model of a shoe out of cardboard. Attached to this model are two 5000 milliamp-hour batteries, providing a total of 10000 mAh to power the system. We used an ESP32 microcontroller to manage the various inputs and outputs, along with a power distribution board to efficiently allocate power to the servos, sensors, and vibrational motors. All components were securely attached to the cardboard shoe prototype to create a functional model for testing.
Challenges we ran into
One of the main challenges we encountered was working with the Skylo Type 1SC hardware. While the technology itself was impressive, the PDF documentation and schematics were quite advanced, requiring us to dive deeper into understanding the technical details. We successfully established communication between the Arduino and the Type 1SC circuit but faced difficulties in receiving a response back from the modem, which required further troubleshooting. Additionally, distinguishing between the different components on the circuit, such as data pins and shorting components, proved challenging, as the labeling was intricate and required careful attention. These hurdles allowed us to refine our skills in circuit analysis and deepen our knowledge of satellite communication systems. On the software side, we had to address several technical challenges. Matching the correct Java version for our app development was more complex than expected, as version discrepancies affected performance. We also encountered difficulties creating a Bluetooth hotspot that could seamlessly integrate with the Android UI for smooth user interaction. On the hardware end, ensuring reliable connections was another challenge; we found that some of our solder joints for the pins weren’t as stable as needed, leading to occasional issues with connectivity. Through persistent testing and adjusting our approaches, we were able to resolve most of these challenges while gaining valuable experience in both hardware and software integration.
Accomplishments we're proud of
One of the accomplishments we’re most proud of is successfully setting up Skylo services and establishing satellite connectivity, allowing the system to access LTE data in areas with low or no Wi-Fi. This was a key component of the project, and getting the hardware to communicate with satellites smoothly was a significant milestone. Despite the initial challenges with understanding the complex schematics, we were able to wire the Arduino to the Type 1SC board correctly, ensuring that the system could relay GPS data and maintain consistent communication. The experience gave us a deeper appreciation for satellite technology and its role in enhancing connectivity for projects like ours. Additionally, we’re proud of how well the array of sensors was set up and how all the hardware components functioned together. Each sensor, whether for terrain detection or obstacle awareness, worked seamlessly with the servos and haptic feedback system, resulting in better-than-expected performance. The responsiveness of the hardware components was more precise and reliable than we had originally anticipated, which demonstrated the strength of our design and implementation. This level of integration and functionality validates our approach and gives us confidence in the potential impact this project can have for the visually impaired community.
What we learned
Throughout this project, we gained a wide range of new skills that helped bring the system to life. One of our team members learned to solder, which was essential for securing the hardware components and making reliable connections. We also expanded our knowledge in React system programming, which allowed us to create the necessary interactions and controls for the app. Additionally, learning to use Flutter enabled us to develop a smooth and responsive mobile interface that integrates with the hardware components. On the hardware side, we became much more familiar with the ESP32 microcontroller, particularly its Bluetooth connectivity functions, which were crucial for communication between the shoe and the mobile app. We also had the opportunity to dive deep into working with the Type 1SC board, becoming comfortable with its functionality and satellite communication features. These new skills not only helped us solve the challenges within the project but also gave us valuable experience for future work in both hardware and software integration.
What's next
Next for PulseWalk, we plan to enhance the system's capabilities by refining the software to provide even more precise feedback and improve user experience. We aim to integrate additional features, such as obstacle detection for more complex terrains and improved GPS accuracy with real-time rerouting. Expanding the app’s functionality to include more languages and customization options using Deepgram AI will ensure greater accessibility for a diverse range of users. Additionally, we’re looking into optimizing battery efficiency and exploring more durable materials for the shoe design, moving beyond the cardboard prototype. Ultimately, we envision PulseWalk evolving into a fully commercialized product that offers a seamless, dependable mobility aid for the visually impaired which partners with shoe brands to bring a minimalist approach to the brand and make it look less like a medical device and more like an everyday product.
PulseWalk
Project also on Devpost: https://devpost.com/software/pulsewalk
Analysis
View
Metric
- 14
- 7
- 2
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- C++In code
- JavaScriptIn code
- ReactIn code
- TypeScriptIn code
- DartClaimed
4 of 5 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
31 KB
Source files
23
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
lucasreljic/PulseWalk
45 files · 973 KB · @ 6fafe98
Structure
Interface
13 files · 29%Screens, components and styles rendered to the user.
Application logic
9 files · 20%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript77%
- C++11%
- JavaScript7%
- Markdown6%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
CalHacks/package.json
npm · 31- @expo/vector-icons
- @react-navigation/native
- axios
- expo
- expo-constants
- expo-font
- expo-linking
- expo-location
- expo-router
- expo-splash-screen
- expo-status-bar
- expo-system-ui
- expo-web-browser
- react
- react-dom
- react-native
- react-native-gesture-handler
- react-native-maps
- +13 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
Feature verification
Infrared distance sensing for terrain/obstacle detectionVerified
Infrared sensors on front and bottom of shoe detect distance to obstacles like curbs and stairs
Claimed on Devposthigh confidenceESP32-Calhacks/sensorServo.cpp:49— readSensor() converts analogRead() voltage into a distance using an IR-sensor characteristic curve (29.988 * volts^-1.173)ESP32-Calhacks/ESP32-Calhacks.ino:46— SensorHaptic instances (servoToe, servoArch, servoHeel) are wired to analog pins and polled each loop via update()
Zone-based haptic/servo feedback (walking / far-walking / danger zones)Verified
Three detection zones (0-6in, 6-12in, 12+in) drive escalating vibration/servo intensity via 5 servos and vibration motors 1a/2a
Claimed on Devpostmedium confidenceESP32-Calhacks/sensorServo.cpp:72— update() maps sensor distance to a servo angle or PWM/vibration value between min/max distance and min/max value, scaling feedback intensity with distanceESP32-Calhacks/ESP32-Calhacks.ino:46— Distinct SensorHaptic objects for servoToe/servoArch/servoHeel (servo feedback) and hapticArch/hapticHeel (vibration motors) match the '5 servos, 2 vibration motors' description, though exact inch thresholds (6/12) aren't literally coded as those units
Bluetooth connectivity between shoe and phoneCode-supported
The user connects to the shoe via Bluetooth
Claimed on Devpostmedium confidenceESP32-Calhacks/ESP32-Calhacks.ino:6— ESP32 firmware creates a BluetoothSerial object ('ESP32_ServoControl') and reads/parses incoming Bluetooth data in loop()
GPS-based navigation with Google Maps API and directional guidanceCode-supported
The mobile app integrates with Google Maps API for GPS-based route setting/navigation, guiding the user via directional feedback
Claimed on Devpostmedium confidenceCalHacks/app/(tabs)/index.tsx:42— Geocode and Directions Google Maps REST APIs are called, and MapView/MapViewDirections render the route; route steps drive sendToDevice(), but GOOGLE_MAPS_APIKEY is referenced without being defined/imported anywhere in the fileESP32-Calhacks/ESP32-Calhacks.ino:84— parseGps() only handles two directions (left/right via leftServo/rightServo), not the claimed four-directional (forward/backward/left/right) feedback
Mobile app sends navigation data to the shoe deviceCode-supported
The app communicates turn-by-turn directions to the shoe hardware for haptic guidance
Claimed on Devpostlow confidenceCalHacks/app/(tabs)/index.tsx:76— sendToDevice() POSTs step data via axios to a placeholder URL ('https://your-server.com/device-endpoint'), not an actual Bluetooth link to the ESP32 — no Bluetooth library/code exists anywhere in the CalHacks app
Skylo satellite connectivity backup (Type 1SC)Claimed only
Skylo's Type1SC satellite hardware provides GPS/connectivity backup when Wi-Fi is unavailable, with automatic rerouting
Claimed on Devposthigh confidenceVoice command route-setting via DeepgramClaimed only
Users can set routes via voice commands using Deepgram for speech recognition
Claimed on Devposthigh confidence
An AI agent derived these features from the project’s Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.