ADA is an interactive desktop robot built around the Wemos D1 mini / ESP8266. It combines animated OLED eyes, four capacitive touch inputs, expressive servo head motion, DFPlayer audio feedback, battery monitoring, Wi-Fi configuration and an NTP clock.
مستندات کامل فارسی: docs/README_FA.md
- ARDUnia projects and technical articles: ardunia.ir
- Hamidreza Milaninia: hrmnia.com
- GitHub organization: github.com/ARDUnia
- 15 animated face states on a 128×64 SSD1306 OLED
- 19 mapped touch gestures using four TTP223 sensors through a PCF8574
- Non-blocking servo animations and left/right swipe movements
- 14 reaction tracks plus a startup track on DFPlayer Mini
- Local Wi-Fi setup portal with scanned network selection
- NTP clock configured for Iran Standard Time by default
- Battery voltage and percentage display
- Automatic dim, half-closed and sleep states
- Persistent, CRC-protected settings and Wi-Fi credentials
- Host-side hardware simulation with AddressSanitizer and UndefinedBehaviorSanitizer
- Build the circuit according to docs/HARDWARE.md.
- Install the libraries listed in docs/SOFTWARE.md.
- Open
firmware/Ada/Ada.inoin Arduino IDE, or open the repository in PlatformIO. - Format the microSD card as FAT32.
- Copy the included
assets/audio/MP3directory to the root of the card. It already contains/MP3/0001.mp3through/MP3/0014.mp3and the startup sound/MP3/0020.mp3. - Upload the firmware to a Wemos D1 mini / ESP8266.
- If no saved network exists, connect to
ADA-Configusing password12345678, then openhttp://192.168.4.1.
| Part | Quantity | Purpose |
|---|---|---|
| Wemos D1 mini / ESP8266 | 1 | Main controller and Wi-Fi |
| SSD1306 OLED 128×64, I2C | 1 | Animated face and menus |
| PCF8574 I/O expander | 1 | Four touch inputs |
| TTP223 capacitive touch module | 4 | Gesture sensors S1–S4 |
| DFPlayer Mini | 1 | MP3 reaction audio |
| microSD card, FAT32 | 1 | Audio storage |
| Small speaker, suitable for DFPlayer | 1 | Audio output |
| Hobby servo such as SG90 | 1 | Head movement |
| Battery measurement divider | 1 | Safe A0 voltage sensing |
| Regulated power supply | 1 | Stable controller, audio and servo power |
See the complete BOM, voltage warnings and wiring table in docs/HARDWARE.md.
- Persian overview and operating guide
- Hardware, BOM and wiring
- Libraries, build and upload
- Touch gestures and reactions
- Wi-Fi, Setup menu and SD card
- Software architecture
- Testing and simulation
- Troubleshooting
- Contributing
- Security policy
- Change log
firmware/Ada/ Arduino sketch and modules
assets/audio/MP3/ Ready-to-copy DFPlayer sound effects
docs/ Hardware and software documentation
tests/host/ ESP8266 peripheral simulation and regression tests
.github/workflows/ Automated host test workflow
platformio.ini Optional PlatformIO environment
The current build passes 83 host assertions, recognizes all 19 gesture patterns and verifies that all 15 required audio tracks are present. The simulated servo command range is 45°–134°. See docs/TESTING.md for scope and limitations.
This project is provided “as is” for educational and experimental use. Building, wiring, modifying, or operating electronic hardware may cause damage to the board, display, other components, connected equipment, or property, and may cause injury. The author accepts no responsibility for hardware damage, component failure, wiring mistakes, power-supply issues, or other losses resulting from assembling, modifying, or using this project. You build and use the hardware at your own risk.
Before applying power, verify all pin connections, voltage levels, current requirements, polarity, and the specifications of your particular boards and modules. Do not assume that every module sold under the same name has identical electrical requirements.
This project is released under the MIT License. Copyright (c) 2026 Hamidreza Milaninia. The license permits use, modification and redistribution subject to its terms.
Hamidreza Milaninia — ARDUnia
ardunia.ir · hrmnia.com
