Senior Design Part 14: The Wrap Up and What's Next!
2023-07-28 | By Will Siffer
License: Attribution Non-commercial
Where we came from:
When starting this project, the team had a basic idea of what we wanted for a working prototype, but the closest that we had was a working wired prototype that was just a box full of wires. By the end of the semester, we had a fully working PCB with environmental data being transmitted to our servers! Take a look at this data from one test. We were able to get a meaningful understanding of how the charge controller worked and how much heat was being generated on the ground plane of the PCB!
This data is incredibly useful! You can see that the battery died around 6:30 am the next day and that the solar charger was able to charge the battery with decreasing current as it reached capacity. We also learned that the system was getting pretty hot, just over 41C! I love having data like this all together because it shows us EXACTLY what was happening on the board every 5 minutes and gives us real data to base our future designs on.
Where do we go from here?
One of life's biggest questions is, "What's Next?". When we work on engineering designs, it's all too easy to forget the big picture and what our design can do for the future of our community or even society as a whole. As engineers, we need to be answering the big questions earlier, considering the impacts of our work, the waste of our manufacturing, and the efficiency of our power consumption before a device ever hits the market. For me and this project, we need to reduce the power consumption of the board. 120mA of current draw on every transmission is far too much and makes our battery life depressingly low. On the surface level, there are ways to increase battery life:
- Turn off the RFID reader at night when we don't care about tracking entries and exits from campus.
- Reduce transmission frequency at night from 5 minutes to 60 min.
- At night, put the RAK wireless module into sleep mode.
- When the battery voltage gets low, transmit a "Going Dark" message, and wait for the battery to recharge before powering back on.
These are just a few ideas, but they could very easily increase the battery life in a significant way without having to change the hardware on the board. Of course, we could also adjust the efficiency of the board to regulate the 3.3V supply in parallel with the 5V supply so we are not putting all of the power consumption through the least efficient power converter. I haven't had a chance to research this enough, but it would be a really good idea and easily implemented.
Finally, this board needs to be rigorously tested for temperature conditions and humidity exposure. I have found a few solutions online, but I think the best and most cost-effective solution for this project would be to make your own test chamber so the conditions can be set for each test and the environment is more flexible to the needs of the team. The best way to describe the system I have in mind is in the Scheme-It drawing below:
Reflecting on what this all means:
When I first started this project, I felt out of my comfort zone and even doubted at times that I was in a project that I could truly develop and feel ownership in. The truth is, I don't have experience in wireless communication, I had never worked with an RP2040, and I had never had to build a project with onboard battery management. I think that this level of transparency is important, especially with the audience of this blog in mind. There will be future members of the team reading this, and it's more than acceptable to feel overwhelmed with the workload of this project and the complexity that comes with it. This project has helped me grow as an engineer and a designer, and I don't know where I would be without it. I am sure I would have come up with something else to work on as a senior project, but the amount of new technology I was exposed to has really been incredible, giving me access to battery technology and protection circuitry as well as RFID and Radio circuits in one project.
This says a lot about the level of work that I have put into the project but also one of the most valuable lessons an engineer can learn in college: to make the most of a project and use every challenge as an opportunity to learn. So many people can read drawings or make something on CAD for 3D printing, but an engineer seeks out challenges and solves them in a way that exposes them to new technologies and methods that will make them better engineers. To the future team members reading this blog post, congratulations on making it to the end of the final post in this series; I hope you learned something and know how to proceed with the project. To everyone else, I hope you thought this project was interesting and maybe exposed you to something new.
Thank you for an incredible semester, and of course, a special thanks to Purdue University and the EPICS department for all of the support and resources through my five years at Purdue.
Until next time, I'm Will Siffer, and as the Digi-Key ambassador for Purdue University, I hope you learned something new today.
Recommended Reading
- Senior Design Capstone Part 1: What (or Who?) is LoRa?
- Senior Design Part 2: Using Eagle to make a custom PCB
- Senior Design Part 3: Designing a SMD PCB full of sensors
- Senior Design Part 4: Assembling, Testing, and Debugging Circuit Boards!
- Senior Design Part 5: Diagnosing PCB Issues
- Senior Design Part 6: Protecting our Power!
- Senior Design Part 7: Compressing data with Magic? (It's just math!)
- Senior Design Part 8: Squishing Bugs and Finding More
- Senior Design Part 9: Can adding a delay be a good thing?
- Senior Design Part 10: Making Sure the Project is Ready to Pass On
- Senior Design Part 11: Strengthening Integration with Testing
- Senior Design Part 12: Solder Reflow Sabotage!
- Senior Design Capstone Part 13: Running Tests and Showcasing our Work!
Here is my final reflection that I wrote for the ECE department:
"Throughout each of these semesters, I have made many contributions to the project in the form of physical progress as well as written progress in the form of documentation. In the first semester, I had a lot to learn about the project and was able to document everything that I learned in a single GitLab repository that the team was already using called “Project Documentation.” The most important aspect of this new repository was the detailed documentation that discussed how to install the drivers that are necessary to use and program the RAK11300 modules effectively, enabling developers to get up and running faster and waste less time trying to reinvent the wheel by figuring out what I had done to make the coding environment work.
Moving on to the second semester where I made the most progress, I was able to create not one working PCB, but two different versions of the PCB with a total of 4 fully working boards registered with our database and server. This was incredible progress since it meant that we could run multiple tests at once, including an outdoor test that allowed us to discover issues with the solar panel as well as the battery. The circuit boards are designed to work with a battery and can be charged with solar or via an onboard USB-C connection that the charging circuit can intelligently select between depending on which has power. On each PCB there is battery protection circuitry as well as a temperature, humidity, 3-channel voltage, 3-channel current, real-time clock with battery backup, and a FRAM non-volatile storage. The PCB also has a space for the microcontroller and the RFID chip.
On the software side, I was also able to make great progress. One of the best features was that we were able to intelligently add RFID tags to memory for later transmission, but duplicate tags wouldn’t be stored within a 5-minute lockout window. This prevented any memory from being overloaded or over-written. The LoRa system is active for a single transmission every 5 minutes, and I was able to write software that packed the data from all of the sensors in an intelligent way that minimized air time and even included flags for errors that could be occurring on the module.
In earlier coursework, I learned how to analyze circuits and systems in the 200-level ECE courses and about transmission lines and electrostatics in my ECE 30411/2 classes. The best part of working on this project was my opportunity to combine what I learned from ECE301 wireless transmissions with my circuit analysis skills learned in my sophomore year. One of my favorite ways that I was able to build on my learning from earlier coursework was the diagnosis that I had to complete by doing circuit analysis on my own PCB. When the solar charging circuit wasn’t working properly, I was able to use what I learned in ECE305 semiconductors to test the transistor that was turning the charging supply on or off, and I found that the wrong transistor was being used. I was able to apply then what I learned in ECE305 to source the proper transistor and replace it on the version 2 boards. Finally, I built upon the lessons learned in ECE 264 and CS 159 C programming to write all the more complex code that ran the entire node system!
In EPICS, it is required to complete 10 hours of “Professional Development Hours” as a two-credit hour student. This semester I geared most of my hours toward circuit analysis and design, as well as how to effectively test systems at their physical limit. Something that I utilized was the strategy of self-study while in the lab to hone in on the specifics of what I was working on and what I needed to learn. By being able to study exactly what I needed to learn, I was able to be more concise in my progress and more accurate in my execution. I also utilized the learning strategy of consulting an expert since I am not very familiar with wireless communication. When I was having trouble with the system responding properly, I reached out to my uncle who owns an electrical engineering consulting company and specializes in small systems. By having him as a resource, I was able to learn from what he had learned over his career and apply similar principles to my own project. These learning strategies combined allowed me to make clear and concise documentation as well as create a well-integrated product that is ready for limited testing next semester.
I think that it is easy to overlook the ethical responsibilities of engineering when in school, but in fact there are so many reasons to design ethically and responsibly. In this project, we deal with users with RFID tags, so we can effectively track users in that we know when each user passes by pre-defined points. Ethically we need to make sure that we are developing a system that keeps user data safe so our users feel like they can trust us with their information. We also are making a device that must be outside and we need to be environmentally ethical as well. One way that we can uphold this responsibility is to make sure that we are designing the product to need little-to-no physical maintenance or replacements in its life cycle. This would prevent waste and prevent us from having to spend resources on redesigns that effectively give us a planned-obsolescence situation.
This project also has an impact on society. Based on how many people normally drive to work at Purdue, the university could benefit from rewarding people who take a bike or walk to campus instead of driving. Since people tend to want to be rewarded for their behavior, we would have a real societal impact in making society healthier. Finally, this project could have a real global impact by offering its services outside of Purdue and rewarding people for healthier habits across the world. More interestingly, our global impact could stretch to smarter data collection and more accessible data. Sometimes it is challenging to get exactly the data you want and to log it from a remote system with the ability to see the data live without cellular. By utilizing LoRa we will open the opportunity for more rural data collection even in places with no cellular or internet access."
![TechForum](http://www.digikey.com/-/media/Images/Footer/TechForum2.png?la=en&ts=9efa75a7-28fd-48d1-bcf2-3300f3edfa4e)
Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.
Visit TechForum