Inspiration
A scooter ride across campus can cost $7–10. That might be fine once in a while, but it adds up if you need one every day. Meanwhile, Georgia Tech has more than 4,000 bike parking spots, and plenty of bikes sit in them for hours. We built Pedal around a simple idea: let students rent out bikes they already own to people who need a ride.
What it does
With Pedal, you can find a nearby bike in the iPhone app, then tap your BuzzCard on its lock to unlock it. You don’t have to open the app at the bike.
Rides cost between 8 and 20 cents per minute, with no unlock fee. The rate changes based on nearby bike availability, time of day, and weather. The app also highlights Georgia Tech events worth biking to, with a flat 25-cent ride to get there. Ask Pedal, our chat assistant, explains pricing and helps riders report a broken bike to its owner.
To end a ride, you take a photo of the bike. The phone checks that it’s the right bike and looks to be in good condition. Afterward, the app shows your ride cost and an estimate of the CO₂ you saved.
How we built it
The lock uses an Arduino UNO R4 WiFi, a PN532 NFC reader, and a servo that moves the latch inside a 3D-printed housing. A Node.js and Express backend hosted on Azure manages accounts, rides, pricing, and commands to each lock.
We built the iPhone app in SwiftUI. It uses MapKit to show bikes, Apple’s Vision framework for the end-of-ride photo check, and a Live Activity to show ride status in the Dynamic Island. We used Gemini for Ask Pedal and to select relevant events from GT Engage, and Open-Meteo provides weather data for pricing.
Challenges we ran into
Our original plan was to unlock a bike by tapping an iPhone on the lock. We couldn’t get that interaction working reliably with the NFC reader, so we switched to BuzzCard taps. We also spent a long time debugging an NFC chip that froze after code uploads before realizing the reset pin we were using wasn’t connected to the chip. We were able to get NFC working with the iPhone through opening an app link when the phone tapped, which acted similarly to a BuzzCard tap.
Designing the enclosure in CAD was harder than we expected. It had to hold the electronics while leaving enough room for the servo to move the latch and actually lock the bike. Getting those parts to fit and work together took several adjustments to the design. We had originally planned for a solenoid lock, but getting adequate power in a portable format was not feasible.
Connectivity was another pain pint. The Arduino would only join certain Wi-Fi networks, which meant a lot of testing over hotspots. Even after the lock and app worked separately, keeping the latch, server, and app in agreement about whether a bike was locked took repeated tests.
Accomplishments we’re proud of
We got the physical lock working: a card tap triggers the latch, and the ride is managed through our backend. We also built a working iPhone app with a map, Live Activity, and photo check. Seeing the hardware and software complete a ride together was the part we were most excited about. Getting the lock system to work with the servo motor was another thing we were excited about, as we had initially had the servo motor option as a backup.
What we learned
Hardware problems can come down to one wire or one timing issue, and they can take much longer to find than expected. We also learned to keep money calculations on the server and use AI to explain prices rather than determine them. Most of all, we learned to test the entire ride flow early. Having each piece work on its own didn’t guarantee they would work together.
What’s next
We want to add cellular connectivity so locks can work without Wi-Fi, replace the 3D-printed housing with a more durable metal one, and add a small screen that shows whether a bike is available with a reservation system. From there, we’d like to bring Pedal to other campuses facing the same problem. We would hope to get some sort of campus ID access, whether it be Georgia Tech's virtual BuzzCards or other school's physical BuzzCards, and allow SSO sign in to the app that was automatically linked to the ID cards.
Log in or sign up for Devpost to join the conversation.