migrate to not run canvas.create_* all the time, and change things to interface with physical hardware