Italia’s Status Report for 4/25/2026

This week, I was able to finish all animations and create an animation system for the character’s different idle/sad animations. The settings menu and home screen can now seamlessly transition between one another without lag or menu skips. While displaying different graphics, I did, however, notice some color display issues, so I will be working on using more saturated colors so they appear properly on the screen. I also encountered issues with the battery icon and health bar displaying incorrectly. For the health bar, the current image being displayed is fine, but for the battery, I will be changing the symbol and logic behind battery symbols (instead of battery level display, there will be a warning for low battery and a charging icon).

The plan for next week is to polish up the graphics for the final demo and ensure any changing icons have a seamless state transition.

Currently, I am on schedule for the MVP for the final demo coming up.

 

Italia’s Status Report 04/4/2026

This week, I was able to get the graphics I designed to display on the screen and move like animations. Previously, I was struggling to get any animations to play on the screen at all, which is not ideal since our device needs to have animated details. I looked into animation libraries for Arduino and found Animated GIF, which I used to animate the character. While I was able to get the character animation to work, I am still trying to figure out animating other objects on the screen while the character animation is playing.

I was also able to test the button functionality on the PCB board. However, I am experiencing issues with getting the screen to work when connected to the PCB, so I was only able to test the buttons by printing out a message to the serial monitor.

In the upcoming week, I will work on having multiple graphical assets on the screen at a time and figuring out what may be causing the screen to not work with the PCB. Currently, I am off schedule due to TFT library issues on the screen and PCB issues, so I will work to resolve them promptly to ensure I can move on to full firmware coding.

Italia’s Status Report for 4/18/2026

This week, I had to troubleshoot many issues I was experiencing with the firmware and graphics. There were two main issues I ran into: the screen not RemiGotchi screen not showing anything, and graphics glitches. The first issue was solved after figuring out the correct ESP32-S3 board. The two issues were, however, a lot more complicated, as it was a multitude of issues, such as library function compatibility and mismatched data sizes for pushing graphics.

After solving these issues, the buttons and screen can now interact properly: Menu Toggling

Due to these issues, I am off schedule by quite a bit. I plan to work on the project on the firmware and have it completed by this coming Wednesday. After that, I will have other people test it for a few days to fix any issues.

 

Unit Tests and System Tests

To monitor user input to device reaction time, I booted up the RemiGotchi device and tested the device reaction time from pressing the buttons ten times in a row. I also performed this same test after the device had been sitting for a while. The results from both these tests yielded approximately the same reaction time of 72 milliseconds, which is almost half of our anticipated reaction time. When this same test was performed with long button presses instead, the reaction time was 77 milliseconds, despite the button press performing a much more strenuous task ( switching from a PNG image to a multi-part graphical interface).

When trying to decide on animation libraries, I tested out 3 graphic libraries: eSPI TFT, Animated GIF, and the LVGL library. Initially, the Animated GIF library looked promising as it was able to quickly render animated characters, but it was extremely difficult to use, with drawing static assets on the screen. Static assets often ended up as corrupted files on the screen, and hid parts of the character animation from view.  I did some research into other animation libraries and found the LVGL library. There, however, was not enough documentation for me to feel comfortable using this library. As a result of my difficulties with the other libraries, I decided to use the library for the TFT screen, as it had the most documentation and included multiple ways to parse data into an animation-style format.

Italia’s Status Report for 3/28/2026

This week, I worked on coding the buttons and menu functionality. At the start of the week, I was troubleshooting issues with the buttons not outputting anything to the serial monitor. I was able to resolve this issue and figured out that there was a baud rate mismatch for the board, and the code set the baud rate.  Then we encountered an issue with the LCD screen not turning on due to the NMOS being flipped, so I wasn’t able to test the button to screen connections with graphics.

Currently, I have written code to output a message in the serial monitor representing different setting menu states, as well as button functions outside the menu (Shown below).

I am currently on schedule in terms of what I wrote for last week’s update.

In the coming week, I hope to get the button to screen functionality working in a temporary capacity until we get to the new PCB. I hope to have full functionality for the RemiGotchi firmware.

 

 

Team Status Report for 3/28/2026

This week, we finally received our PCB boards, while trying to test the PCB, we discovered that the NMOS that connects to the screen was flipped in the incorrect direction. This could lead to delays in on-screen graphics testing and will require an alternate layout for the screen while waiting for the new PCB. In the meantime, we will resolder the screen connection to the 3V pin or create a breadboard circuit to have the correct NMOS configuration.

There were no significant changes made to the design since the last report.  However, due to the long PCB assembly and delivery time, we are considering using local vendors to obtain our PCBs. Using a local vendor could dramatically increase the associated cost due to the convenience of the service, as well as possibly requiring us to assemble the board ourselves. With these factors in mind, we are still leaning towards using our previous vendor due to the additional cost and work associated with a local vendor.

 

Italia’s Status Report for 03/21/2026

This week, I started writing code for our PCB board to function. Currently, I am running into several issues, mainly with getting the board to function at all, which is making it difficult to test the code. The other of the issues I am experiencing is translating code from Arduino to C. Since the main testing for the platform I am using to code the firmware (PlatformIO) was originally in Arduino IDF, and I am working with ESP IDF, translating code has been difficult, in addition to the different errors the code gives.

In addition to this, I have created more graphics/sprite animations for the device.

Next week, I hope to figure out what is causing the PCB issues. This is something that should be examined earlier in the week to enable me to move forward with finishing the preliminary code. My main goal this upcoming week is to have a preliminary set of code written for RemiGotchi.

Italia’s Status Report for 03/07/2026

Over the week, I mapped out how the menu selections and button toggles will interface with one another. I created a finite state machine to show the different modes that a user can be in when receiving a reminder. The fsm has six states: WAIT, SNOOZE, RFID, MANUAL, CONFIRM, and COMPLETE. There are 5 signals that the fsm takes in, 4 of which represent reprsent the button toggles and the 5th signal representing the remainder signal. Below is a preliminary fsm to represent this.

Currently, I am behind schedule as it took longer than expected to figure out the various software programs we are using for the project. The plan for the upcoming week is to finish mapping out the firmware and start developing it once these mappings are fully fleshed out. To ensure I get back on schedule, I will work on finishing diagrams by Tuesday night and start developing firmware the following day.

As I mentioned previously, this upcoming week will be focused on getting back on schedule and having a complete plan before developing any firmware.

Italia’s Status Report for 2/21/2026

This week, I focused on researching the software I will use for the firmware and figuring out how to use PlatformIO.  I researched FreeRTOS to learn more about how it works and to understand multi-threads, and whether this would work for our project. This helped me figure out how I want to structure our firmware diagram and how I would do so. With PlatformIO, I spent a lot of time trying to interface it with our ESP32 to display graphics on a screen; it took a lot of troubleshooting, but I was able to upload code to the device (Shown below).

In the upcoming week, I plan to create diagrams for the firmware and how I want to set up multithreading, as well as work on the display and output firmware. Currently, I am off schedule; however, it is only by a marginal amount, which I should be able to make up for in the next week.

Italia’s Status Report for 2/14/2026

This week, I worked on the design review presentation and on designing PCB schematics for our custom PCB. At the start of the week, I was working on designing schematics and researching necessary components to incorporate into our custom PCB (USB-C LiPo charger, LiPo batteries, etc.). However, Delaynie and I swapped responsibilities, with her taking over all PCB responsibilities while I take over firmware. As a result, I have only been able to download the required software programs needed to interface with the ESP32 module and screen.

Below is a screenshot of the schematic I made before swapping tasks.

My progress is currently on track with the schedule despite my responsibilities changing.

Next week, I plan to test our RemiGotchi’s screen capabilities and how the PlatformIO software works with it and the ESP32. I will use some test sprites I designed to gauge how these graphics will be displayed and refine the device graphics for that.

Italia’s Status Report for 2/7/2026

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

I researched different components for our custom PCB, mainly looking at various small form batteries and battery charger modules. I also looked at Tamagotchi’s own PCB boards for their devices as well as people have made their own version. This helped me find different components and figure out some PCB elements that may be needed.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

My progress is off schedule, I have not completely spec’d out components for the PCB yet and have not started on character sprite design. In order to catch up I will utilize the next three days to carefully select components, this should put me back on track to start PCB schematic as I allocated two weeks for this. Since the PCB schematic is one of the most important design components I will allocate extra time to ensure this will still be on track. The character design can be incorporated into other weeks as long as it is completed while software development is taking place.

What deliverables do you hope to complete in the next week?

In the next week, I hope to have all PCB components spec’d out and have a priliminary PCB schematic completed.