* Team Number: T23
* Team Name: Good Night
* Team Members: Haichao Zhao, Zeng Li
* Github Repository URL: https://github.com/ese5160/a14g-final-submission-s25-t23-good-night
* Description of test hardware: (development boards, sensors, actuators, laptop + OS, etc) SAMW25, laptop
The link to video presentation: Video Presentation
We designed a desk electronic car with multiple functions to entertain users within boring working days. It can be controlled by anyone’s voice command and task buttons in the web UI.
What inspired you to do the project? What problem is your device solving?
In our daily life, we usually have to sit in the front of desks for multiple hours and sometimes we need to take a break and have some entertainment to make our life more interesting.
So in order to provide some ways to relax, we designed this desk electronic car. It will accompany with you and interact with you via your voice. Moreover, it can remaind you to take a break by showing LCD animation and led show. Users can play with it to command it to move around.
How do you use the Internet to augment your device functionality?
We use Claude and chatGPT to give us some advice about chip selection and create some helpful code library.
We use WINC1500 chip to do wifi connection and communicate with our MCU. In order to download firmware over the air, we created a virtual machine and uplode our new firmware. MCU can connect to wifi via wifi module and download the new firmware in the VM website and store it in the bootloader. Besides, we use node-red to remotely control our device via MQTT protocal.
Sensors:
IMU
Microphone
Actuators:
LCD
Speaker
Motor
Other modules:
5V module
Block diagram
The first great challenge we met is about our 5V power module in our PCBA. The output voltage of 5V module was near 0. So in the end, we chose to desolder the jumpers for the 5V boost and used an individual 5V module and it works.
The second challenge was we connected VSUB net with 5V net directly, which might lead to 5V power supply conflict. So in order to avoid this potential issue, we cut off the copper trace in the PCBA and using fly wire to reconnect the pins between our FTDI chip and power regulator chip. But soldering the fly wires was realy a time-cost and painful process. Luckily, we finished that.
The third challenge is to integrate our individual functions together in FreeRTOS. During the integration process, we found count down time function and health remainder function had a serious conflict and wifi task needed a vary large heap to run successfully. After one whole day debugging, we still cannot integrate the count down time and health remainder together. So we had to give up the count down time function. For the wifi heap allocation, we tried to give smaller heap for each task and give more heap space for wifi. And ultimately, it works.
The lessons I have learned from building and testing our prototype:
Firstly, deviding VUSB net from 5V boost output net.
Secondly, always double even trible check the components to make sure their standard running voltage and current and power.
Thirdly, when choosing LED strip, I need to figure out whether the MCU can provide the clock freqency required by the LED strip.
What would you do differently if you had to build this device again?
I will definitely check my key components standard working condition such as inductors used for power regulator. And split the VUSB with 5V net.
What steps are needed to finish or improve this project?
We need to improve our UI display to show IMU data and configure our RTC initial time via Node-Red rather than software setup. Beside we need to add a distance sensor to detect the surrounding item in order to avoid falling from high altitude.
What did you learn in ESE5160 through the lectures, assignments, and this course-long prototyping project?
Lots of things, including:
- Altium Designer using
- The procedure of PCBA designing
- PCBA test procedure
- Advanced soldering skills
- Professional device using: scrimper, e-load, temperature test gun, etc.
- MQTT based IOT controlling.
- Node-Red using
- OTAFU implementing
- FreeRTOS utilizing
- etc
Pass:
Fail:
[√] Project shall be based on SAMW25 microcontroller.
[√] A 39x41x3.3mm OLED shall be used as user interface.

.png)


(But for this one, we can weak-up audio by using voice command)
[√] The Elctronic Pet shall have a switch to allow firmware downloaded between MCU and AI voice module.
[√] The Elctronic Pet shall have a reset button to reset MCU.
Motor Control Based on Node-RED
Motor Control Based on Voice Module
Voice Command Answer in 3 seconds
[√] The OLED display shall communicate with MCU via SPI bus(≥10MHz) and display refresh rate ≥30fps.
[√] The microphone shall send signals to AI module via I2S bus(Audio sampling rate ≥44.1kHz).
[√] The speaker shall communicate with AI module via PWM/DAC signals.








