More complete data reader

Should implement all the functionality one needs to avoid using the provided
software that ships with the device.