  * @param num the integer which should be converted to hexa
  * @param ch a pointer to the string being built
  */
-void uint8_to_hexstr(uint8_t num, char *ch)
-{
-	ch[0] = TO_HEX(((num & 0xF0) >> 4));
-	ch[1] = TO_HEX((num & 0x0F));
+void uint16_to_hexstr(uint16_t num, char *ch)
+{
+	// most significant nibble is always 0
+	// ch[0] = TO_HEX(((num & 0xF000) >> 12));
+	ch[0] = TO_HEX(((num & 0x0F00) >> 8));
+	ch[1] = TO_HEX(((num & 0x00F0) >> 4));
+	ch[2] = TO_HEX((num & 0x000F));
 }
 
 /**

{
	unsigned long tic = millis();
	int16_t raw[ACC_COUNT];
	uint8_t posture[model.num_region];
	uint8_t region;
	char message[MSG_LEN];
	reset_posture(posture, model.num_region);

 * @param the array representing posture
 * @param the size of the array
 */
void reset_posture(uint16_t *posture, uint8_t posture_size)
{
	for (int i = 0; i < posture_size; i++) {
		posture[i] = 0;
