Week 1: Pterodactyls and 1600 Lines of Code

Intro

When I arrived at the OEDK at 9am on Monday, the most exciting thing as I walked through the doors was seeing everyone’s faces. Since then, we have had in-person workshops with speakers and every day I’ve been able to sit at a table with my teammates, or lean over a circuit in the elec lab. This is the first Rice experience I’ve had unmasked and indoors, and so far it’s been incredible.

On Tuesday, everyone came into the classroom eager for their project assignments. The day before, I had sent in a ranked list of my choices, and fortunately, I got my top choice–– the portable field incubator. The goal is to develop a portable way to incubate water samples at body temperature in low resources settings to determine if water is safe to drink. There had been three previous iterations of this project, a senior design project, Minicubator; a freshman design project, Moonrats; and Public Invention, which is where our client works, had a project which was also called Moonrats. Our team is working on taking the best of the three prototypes and designing a device that works, is user friendly, and logs data.

After project assignments, my team had a chance to get to know each other and make the most important decision–– determining our team name. We had many ideas, ranging from ‘Clean Mean Incubation Machine’ to ‘Mars Beavers’, but eventually we decided on Petri-FI. Petri film is what must be incubated after a water sample is added to it, and FI stands for film incubator. For those of you who don’t know, the similarly-spelled Petrie is the name of a pterodactyl from the 80s children’s movie, The Land Before Time.

Naturally, he became our team mascot.

Speaking of the team, here we are on the steps of the OEDK!

Technical Stuff

We started out researching the basics and looking at previous team’s projects, including comparing the code from Minicubator and Public Invention and examining the freshman Moonrats team’s prototype. We also met with our client twice to find out what his expectations for the project were. Going forward, we plan to start with the code and electronics from team Minicubator but replace the insulated chamber they built, which was basically a 3D printed box full of insulation with a smaller 3D printed box inside it for the Petri films, with a standard wide-mouth thermos.

This week, we received the project description and began researching the project. We also reached out to the faculty advisors from the previous two teams: senior design team ‘Minicubator’ and freshman design team ‘Moonrats’. We went through the prototype that team Moonrats left us, and looked through the code, PCB design, and demo videos from team Minicubator. From what we can tell, their code is fairly robust and well-written. We compared it with the code on Public Invention’s Moonrats GitHub repository, and for the most part, the code does the same thing, but we have found a few significant differences, outlined below in Table 1. 

Table 1: Differences between PI Moonrats and Minicubator Arduino code. 

PI Moonrats Minicubator
Hard-coded in places, sparsely commented Well-commented and good use of variables
TMP36 Thermistor
EEPROM storage code No EEPROM storage code
Graphing capability Minimal graphing
Complex button decoding Fewer menu options
Timer interrupt No timer interrupt

 

We have decided to start working from the Minicubator code, mostly because it is clearly commented and does not have many hard-coded settings, unlike the Moonrats code. We also decided that the thermistor is better than the TMP36, and that the EEPROM storage code is unnecessary if we can find a way to utilize a micro-SD slot underneath the display screen. Eventually, we may also want to add a graphing feature of all the temperatures in the incubation period, like the one from Public Invention, but for now we will consider this low priority. In terms of the menu, we will probably try to program in more options, but ideally we will not make the button system as complicated as it is in the Moonrats code. We have not yet made a decision on the timer interrupt issue.

On Monday, we will get Minicubator’s prototype. Once we have this, we can test the functionality and get a better idea of what we should focus on improving. Specifically, there are some aspects of the PCB design on Fusion 360 that are confusing, and having the physical board will probably clear up those issues. We also have some tasks broken down by team member for the beginning of next week. My job is mostly to focus on hardware and wiring–– I need to cut the wires going from the nano into the heating element and solder six jumper headers onto each end, so that it is possible to unplug the device as the lid is removed once we transfer to a thermos-based system.

Future

I am really excited to work on more of the hands-on hardware issues, especially in terms of combining three prototypes into one. I think my biggest challenge will be to make a circuit I can keep adjusting, probably using a breadboard, from the outsourced PCB that Minicubator left us. I expect to spend a lot of time in the elec lab next week! As a side note, this week I also decided to switch my major–– previously it was electrical engineering, and now I’m planning to do mechanical engineering. I’m really glad that even though I’m moving away from hardware overall, I will still have plenty of opportunities to pursue my interests in electrical engineering throughout this project!