I came across this article from Aubrey Kagan, and while the title didn’t jump out at me — Design Defensively with Displays — I’m glad I clicked through. The article mainly discusses HD44780 displays, which I haven’t used in ages, but the author makes a lot of good points about the questions we should be asknig integrating any HW or device into an embedded system. I’m as guilty as anyone about not being proactive enough about checking for errors and gracefully handling them. I’ll usually check something once on init, but then just assume everything is OK from then on in and get lazy with the error checking even if the underlying code includes the means to always check if an I2C transaction succeeded or not, etc. This article was a timely reminder that a lot more things can go wrong than we take into consideration, but if the goal is to design reliable systems (which is should be), we need to be a lot more proactive about failing gracefully.