Lines 84-112 can likely be shared with the existing `Sonar`, but the `cm` property descriptor will have to go on the `Devices` object (see lib/distance.js)