Melodee’s Status Update for 3/7/2020
Progress
Eric and I spent the first half of this week redesigning our communication protocol, since we decided to use interrupts and sleep mode in the microcontroller. We changed the structure of our message words and the state machine of the tile. Once we had this solidified, we basically had to start the Python simulator from scratch. We added interrupt and sleep mode functionalities. We also improved the simulator from the previous one by adding the construct of a master tile with a play button.
A basic rundown of our new protocol is as follows:
- User pushes the play button. The master tile sends a “wake up” message to the tile below it. That tile propagates the wake up message to all of its neighbors, who do the same until all of the tiles in the system have received the message and are now awake.
- Right after sending the wake up message, the master tile sends a parent request message. The protocol then continues the same as before, except each tile receives messages through interrupts.
In each message word, we removed the “live bit” and instead required that each tile side should send some sort of message per word cycle. If a side does not have any messages queued up, it should just send an “I am awake” message. It is then the neighbor’s responsibility to make sure that the tile is still alive.
Schedule
Unfortunately, we are still behind schedule since so many changes had to be made to the hardware and embedded protocol. I don’t have any spring break plans this year, so I plan to use this time to catch up.
Goals for next week
- Complete Python code