Greg
I found this project much more complex than I anticipated. What made it most challenging was the sparse documentation. I was able to find in-depth information about the H-Bridge used to control the track power but I was unable to find information such as the bit mapping for the train track. What was also challenging was the lack of feedback from the power controller. The only feedback was a yellow LED that showed that a good packet was received and bi-color LEDs that showed what tracks were powered up. This was useful once we were able to get a good connection and send valid packets since we could check what tracks were powered up but when we were sending invalid packets we did not know if the packets were bad or if there was a broken connection. As it turned out the first chip that we tried interfacing with was a little loose in the socket. As a result the controller was hard to debug. It was very satisfying to get the trains working remotely.
Jack
Connect the Bluetooth initially proved to be more difficult than I originally thought. I assumed that since I had the code from last year, it would be easy to replicate. However, the documentation from last year was spotty, and missed certain key element to making everything work. Additionally, once the Bluetooth was working it was difficult to debug because there was no clear way to know what the Bluetooth chips themselves were doing. This problem was amplified when connected to the trains, since there were numerous steps from the interface to the train that could cause an error. The whole system was a black box, in that we knew what we thought should happen given certain inputs, but those things didn’t always happen, and we had no way of knowing what step along the way was causing the failure. This project has definitely shown me both the importance of documentation, and what is important to document that will be useful to the next person. Another thing I learned was the importance of adding ways to determine the status of our systems externally (like LEDs) to aid in debugging.