{"id":13,"date":"2026-03-26T21:37:16","date_gmt":"2026-03-26T21:37:16","guid":{"rendered":"https:\/\/yeloop.uk\/?p=13"},"modified":"2026-03-27T21:53:05","modified_gmt":"2026-03-27T21:53:05","slug":"decoding-the-veriflite","status":"publish","type":"post","link":"https:\/\/yeloop.uk\/index.php\/2026\/03\/26\/decoding-the-veriflite\/","title":{"rendered":"Decoding the Veriflite"},"content":{"rendered":"\n<p>Veriflite is a fantastic tool for time of flight calculations in the sport of trampolining. The app is good, and the portal is ok. But to have to leave a device runnng all event is somewhat of a pain. I therefore spent way too long looking at their output and have since decoded the data&#8230;<\/p>\n\n\n\n<!--nextpage-->\n\n\n\n<p>Veriflites broadcast a bluetooth low energy (BLE) packet both at bounce events and &#8220;random&#8221; auxilary data, an example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>b'J\\x10\\x13Sc\\x02}\\x9e\\t\\x00\\x0c\\x16\\x1b\\x00\\x00\\xc0\\x00\\x01\\x03-W2'<\/code><\/pre>\n\n\n\n<p>Veriflites can either work as a solo sensor or in paired units. When two units pair, they sychronise their clock  <\/p>\n\n\n\n<p>Breaking down this packet of data then, byte 1 is an unsigned interger that counts from 0 to 255. Byte 2 is where things get more intrestings, each byte represents a different data packet.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-regular\"><table><tbody><tr><td>Hex<\/td><td>Packet Type<\/td><td>Explanation<\/td><\/tr><tr><td>0<\/td><td>IMPACT_TIME<\/td><td>A bounce impact of a solo sensor.<\/td><\/tr><tr><td>1<\/td><td>DEPART_TIME<\/td><td>A bounce depart of a solo sensor.<\/td><\/tr><tr><td>2<\/td><td>IDLE_TIME<\/td><td>An idle message from a solo sensor.<\/td><\/tr><tr><td>3<\/td><td>BATTERY_VOLTAGE<\/td><td>The battery voltage of the sensor.<\/td><\/tr><tr><td>4<\/td><td>IMPACT_SYNC<\/td><td>A bounce impact of a paired sensor.<\/td><\/tr><tr><td>5<\/td><td>DEPART_SYNC<\/td><td>A bounce depart of a paired sensor.<\/td><\/tr><tr><td>6<\/td><td>IDLE_SYNC<\/td><td>An idle message from a paired sensor.<\/td><\/tr><tr><td>10<\/td><td>STATUS_FLAGS<\/td><td>Sensor information such as firmware version.<\/td><\/tr><tr><td>11<\/td><td>DISPLAY_NAME<\/td><td>The friendly name of the sensor as set by the user,<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<!--nextpage-->\n\n\n\n<p>So if we go back to this data packet:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>b'J\\x10\\x13Sc\\x02}\\x9e\\t\\x00\\x0c\\x16\\x1b\\x00\\x00\\xc0\\x00\\x01\\x03-W2'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Byte Number<\/td><td>Byte Data (Hex value)<\/td><td>Explanation<\/td><\/tr><tr><td>0<\/td><td>J (74)<\/td><td>This is the sequence ID as an unsigned byte, it will get to 255 and reset to 0.<\/td><\/tr><tr><td>1<\/td><td>10 (16)<\/td><td>This acts as a packet type (see table below with a key).<\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><\/tr><tr><td><\/td><td><\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Veriflite is a fantastic tool for time of flight calculations in the sport of trampolining. The app is good, and the portal is ok. But to have to leave a device runnng all event is somewhat of a pain. I therefore spent way too long looking at their output and have since decoded the data&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-13","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/yeloop.uk\/index.php\/wp-json\/wp\/v2\/posts\/13","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yeloop.uk\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yeloop.uk\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yeloop.uk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yeloop.uk\/index.php\/wp-json\/wp\/v2\/comments?post=13"}],"version-history":[{"count":4,"href":"https:\/\/yeloop.uk\/index.php\/wp-json\/wp\/v2\/posts\/13\/revisions"}],"predecessor-version":[{"id":15,"href":"https:\/\/yeloop.uk\/index.php\/wp-json\/wp\/v2\/posts\/13\/revisions\/15"}],"wp:attachment":[{"href":"https:\/\/yeloop.uk\/index.php\/wp-json\/wp\/v2\/media?parent=13"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yeloop.uk\/index.php\/wp-json\/wp\/v2\/categories?post=13"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yeloop.uk\/index.php\/wp-json\/wp\/v2\/tags?post=13"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}