* Team Number: T22
* Team Name: X&Y Circuiteers
* Team Members: Xiran Hu, Yuner Zhang
* Github Repository URL: https://github.com/ese5160/a14g-final-submission-s25-t22-x-y-circuiteers
* Description of test hardware: (development boards, sensors, actuators, laptop + OS, etc) : The laptop, SAM W25 Xplained Pro development board, SD card.
Google Drive Link: Final_Video_Presentation.
We designed a four-legged robot named Bobi, capable of walking, striking playful poses, and monitoring its surroundings to provide timely alerts. Inspired by the longing for a pet, Bobi serves as both a lovable companion and a smart home assistant.
Our motivation stemmed from a desire for companionship and emotional comfort in everyday life. Bobi addresses this by acting as a friendly presence while helping users stay aware of their home environment.
Bobi enables real-time monitoring of temperature, humidity, air quality, and obstacle distance through an internet-connected system. Users can control Bobi via a web-based interface, and we support OTAFU (Over-The-Air Firmware Updates) for remote maintenance.
Bobi features two core functionalities: movement and environment monitoring.
Movement:
A servo driver board connected to the SAMW25 microcontroller controls eight servo motors to operate Bobi’s legs. Bobi can move forward, backward, turn left or right, say hi, lie, wiggle, fighting, push up, sleep, dance and warm up. Pressing the touch sensor triggers a playful wiggle, while the gesture sensor detects hand waves to turn Bobi left or right.
Environment Monitoring:
Bobi monitors temperature, humidity, VOC levels (air quality), and obstacle distance. If any value exceeds the normal range, Bobi displays a warning on-screen and sounds a buzzer. For example, if an object is detected too close by the ultrasonic sensor, Bobi will beep and automatically move backward.
NFC Integration:
Tapping a phone on Bobi’s leg triggers a custom message display on the screen.

Servo Coordination:
Controlling eight servo motors simultaneously to enable smooth, lifelike movements was our first major challenge. We tested numerous angle-delay combinations to achieve natural motion.
Memory Constraints:
Integration revealed memory limitations when running all functions concurrently. To address this, we implemented FreeRTOS for efficient task scheduling and added a toggle switch to enable gesture detection only when needed, saving system memory.
Building Bobi taught us the importance of co-planning hardware and software from the start. Synchronizing movement control with sensor feedback was key to achieving responsive, realistic behavior.
We also discovered the value of incremental testing—debugging in small steps allowed us to identify and resolve issues early, ultimately improving the design.
If we were to redesign Bobi, we would:
For future iterations, we plan to:
Through ESE5160, we gained practical skills in:
This course gave us end-to-end experience in building a complete IoT system, blending embedded systems with real-world applications.
This section reviews our original hardware and software requirements, outlines our testing process, and notes whether each was met.











Final Embedded C Firmware Codebase
firmware_code
Node-RED Dashboard Code
final_node_red