The more complex this project gets, the more useful it will be to have some sort of error logging system which can help us catch when it enters an undefined or undesirable state. Because generally we will have an SD card connected while running the board, we can do this by adding assert statements and outputting error information to an error log file on the SD card.
define global var which governs where assert output is routed -- either to error log, Serial, or it may be ignored
define macro which governs whether asserts are compiled into project at all -- since asserts add extra instructions and volume to binary, it may be worthwhile to leave them out in 'production' build
define folder on SD card for error logging -- path should be included in application::GlobalSettings
The more complex this project gets, the more useful it will be to have some sort of error logging system which can help us catch when it enters an undefined or undesirable state. Because generally we will have an SD card connected while running the board, we can do this by adding assert statements and outputting error information to an error log file on the SD card.