I received my Sodaq One today with the UniversalTracker firmware, and had already a lot of fun playing with it!
I created this code in NodeRed to parse the payload:
var sodaqone_data = new Buffer(msg.payload, 'hex') var epoch_timestamp = sodaqone_data.readUInt32LE(0); var datetime = new Date(epoch_timestamp*1000); var battery_voltage = sodaqone_data.readUInt8(4); var board_temperature = sodaqone_data.readInt8(5); var lat = sodaqone_data.readUInt32LE(6)/10000000; var lon = sodaqone_data.readUInt32LE(10)/10000000; var altitude = sodaqone_data.readUInt16LE(14); var speed = sodaqone_data.readUInt16LE(16); var course = sodaqone_data.readUInt8(18); var number_of_satellites = sodaqone_data.readUInt8(19); var time_to_fix = sodaqone_data.readUInt8(20); var previous_fix = sodaqone_data.readUInt8(21); var previous_lat = sodaqone_data.readUInt32LE(22)/10000000; var previous_lon = sodaqone_data.readUInt32LE(26)/10000000;
Everything looks ok, but the parsed battery_voltage and board_temperature value is unclear to me.
“battery_voltage”: 118
“board_temperature”: -32,
How to interpret these? Battery Voltage is specified as “between 3 and 4.5 V” and Board Temperature is specified as “degrees celcius”).
I’m sure it isn’t -32 degrees celcius here in Hengelo Is my calculation wrong? or is the minus a plus? And what does a value of 118 mean for voltage?