Senior Care Assistant
a hardware prototype and mobile application 
Senior Care Assistant was developed in collaboration with a team of four computer engineering students for Computer Engineering Design Studio at UBC (CPEN 391) from January to April 2017
Senior Care Assistant is a hardware prototype that targets senior citizens, especially those with Alzheimer’s disease, to enhance the safety of their lives while they are independent. This device will allow the user to navigate to the preset locations, record reminders and tasks, and contact caregivers instantly in emergencies. The prototype was created using an FPGA as well as several other hardware components (Wifi chip, bluetooth chip, GPS chip, touchscreen). Aside from the controls available on the prototpye's touchscreen, users can pair the prototype to an Android companion application. Caregivers can use this Android application to track their patient’s location, synchronize reminders to the device, and control emergency call functionalities on the device from remote.
Module 1 - Core Functionality
We started with an Altera DE1-SoC FPGA board onto which we loaded a Nios II processor capable of running programs written in C. In order to implement the graphic controller on DE1 board, we created the state machines for drawing lines and rectangles using low-level Verilog. We then created a user-friendly GUI that allowed the user to navigate the menu, switch colour schemes, and type or delete numbers, letters and commonly used special characters with a virtual keyboard. We also implemented a GPS module to collect real-time data, a Wifi module integrated with Twilio API to allow the calling and texting features. 
My Contribution
In module one, my contributions mainly came from the front end of the User Interface, including welcome page and menu design, character display and bitmap display.
In the high-level design stage during the first two weeks, I designed the layout of a welcome page and different modules of our menu. My original design is to draw the menu using vector graphics icons, and yet later during the implementation, I found out we could only display pictures in the format of bitmap. With 256-colour bitmap, the loss of alpha value leads to the loss of transparency. Without hardware acceleration of the image, it will take us 4-5 seconds to draw the menu from bottom to top. Thus, in the final design, we chose to only display the menu in the rectangular style with hardware acceleration.
In sprint one, I collaborated with Vanessa to display four different fonts of characters and numbers. I also mapped and calibrated each character to a virtual keyboard based on Chen’s keyboard design. Later in sprint two, I worked on decoding bitmap and display the image with Vanessa. We were inspired by font display and converted bitmap image to hex format in an array. Although we had no problem showing the outline of the image, programming the colour palette took us quite a long time.
Demo Video for Module 1
Module 2 - Extended Functionality
HIGH LEVEL DESIGN 
As an extension of our module 1, we mainly focused on designing an Android mobile application for caregivers, with some minor changes to the DE1 board to make it compatible with our mobile app. Specifically, our app allows users to connect their mobile phone with the DE1 device via Bluetooth, build a list of their own reminders, send selected reminders to DE1 device through Bluetooth, enable/disable emergency calls coming from DE1 device, and see the real-time location of the DE1 device on a map. On the DE1, we added functions to support GPS data transfer to our mobile app via Wifi, receiving data from the app through Bluetooth, and disabling emergency calls.
My Contribution 
My main responsibility in module two is implementing GUI with Android Studio.
In this project, I implemented a splash screen and a User Guide section. I used fragments to build a dynamic UI so that users can swipe through three pages. I established a watercolour theme for our app. In order to match this theme, most of our icons were custom made using Adobe Photoshop and Illustrator. Later I worked on improving the main menu with Vanessa to carry on this watercolour theme. I also worked with Jeffrey on the Reminder section’s User Interface. We decided to display the certain date with a specific icon, which took me a lot of time making icons of 12 months and 31 days. I helped improve list view’s UI by changing background transparency and fonts. At the end of the project, I worked on developing bluetooth session’s UI by applying styles on buttons, making icons and adding animation on enable and disable buttons.
The hurdles I encountered in this module are mostly relevant to differences between the emulator and the hardware device. Since I didn’t have an Android device, I developed most of my user interface on the emulator. Oftentimes the program worked fine on my emulator, while it crashed on the Android device. Later we found out it was caused by out-of-memory problem. I realized that although running on an emulator is convenient, testing on a real device is a must.
Demo Video for Module 2
The Source Code
Behind the Scenes

from left to right: Cindy Shi, Vanessa Lin, Jeffery Chen, Chen Chen

Back to Top