get device info from xml instead of explicit definitions in code

This will help with easier updating because all it would need to update
is an updated xml, not a whole new version of the software.