a bug fix for non-existent devices, moving all HW dependent code to Dongle.py, some comments