Nakul Talwar
What did you learn from the project experience?
Specifically, I learnt about power-saving modes of the PIC32 and intelligent use of the real-time clock to implement sophisticated functionality using this microcontroller. Such functionality is not specific to this microcontroller and this knowledge can be utilized to implement power conservation and time-based monitoring techniques on other commercial microcontrollers. On a broader scale, I learnt how to integrate different components to produce a polished and fully operational system.
What is the biggest problem you faced?
One of the biggest challenges I faced was implementing a priority based system for operation of the PIC32 and to ensure regular updates to the system while prioritizing specific system states under specific conditions, for example, operation on low battery.
How did you adapt to it?
I was initially trying to use the real time clock as a control mechanism for all time-based events and to separately generate interrupts for every possible time-based response to stimuli. This solution did not work out due to the need for repeated alarms during regular operation and additional interrupts when switching from “night mode” sleep state or low battery sleep state back to regular operation. I instead opted for regular and continued interrupts throughout a 24 hour period that would immediately run some conditional logic to determine whether the system was in “night mode” or low power mode and accordingly repeatedly keep the system in sleep state or allow it to fully wake up for regular operation in the absence of those conditions.
What did you learn from it?
I learnt that the first solution that comes to mind may not always work and might not always be achievable based on the given constraints of a system. This is a very important concept to bear in mind for future designs and for devising solutions to any problems in general.
How will it impact your approach to design in the future?
While approaching design in the future I will utilize a more contemplative and brainstorming based approach prior to actually beginning implementation. This would specifically involve getting a deeper understanding of the design constraints and coming up with multiple possible solutions that fit the given constraints while also bearing in mind the limitations of each possible solution.