With all of the major libraries ‘done’ I thought I’d brainstorm how they would fit together and to see if there were interactions that I’d missed based on who-instantiates-what. After some whiteboarding, this is what it looks like:
Hardware is at far right, in green ink; libraries are in yellow stickies. I re-worked this with blue lines for shared access, and red for exclusive access, and kept simplifying interactions until all the blue was gone. This makes the variable scope clear, and in some cases where expected libraries may not be needed (like DRV).