Syma S107 Bluetooth mod
Syma S107 is a small toy helicopter model popular in early-2010s. It's rather well known because of its low cost, good flying characteristics and sturdy body resistant to crashes.
The original remote control uses infrared communication, which makes it very hard to fly the toy in sunny conditions. It also requires keeping a dedicated remote which is larger than this toy, takes 6 AA batteries and always tend to go missing :)
I'm not the first one adding radio control to this toy, but my attempt is a complete redesign of the original electronics. It uses Bluetooth low energy, which allows the model to connect both to a smartphone or a PC, and to an Xbox One controller. So you can overview telemetry and tweak settings on your favorite device while flying the toy. The mentioned controller provides much higher signal quality, which allows flying outside and even performing more aggressive maneuvers.
What's currently implemented:
- Custom motherboard using some parts from the original solution;
- Motherboard's firmware written in Rust:
- Supports connection to a smartphone or PC for stats and configuration;
- Supports connection to an Xbox One controller;
- Runs PID loop on yaw controls, using the gyroscope (stabilization across z axis);
- Expo curve for yaw;
- Manages the battery life, captures state of charge, current, voltage, temperature and some low-level details helping to calibrate the sensor for a particular battery.
- Small CLI tool written in Rust (Ratatui) for connecting to the toy and overviewing the stats.
Pending (wishlist):
- Mobile app for getting telemetry;
- In-firmware charging / discharging graphs with possibility of retrieving over telemetry;
- Small tweaks here and there, better low-level handling;
- New motherboard with Type-C, cable detection, battery connector.