  * @param posture the array of activity code
  * @param size of the posture array (equal to number of regions in sphere)
  */
-void build_message(char *ch, uint8_t *posture, uint16_t posture_size)
+void build_message(char *ch, uint16_t *posture, uint16_t posture_size)
 {
 	int i;
 	sprintf(ch, "|%d|", MY);
 	while (*ch != '\0')
 		ch++;
 	for (i = 0; i < posture_size; i++) {
-		uint8_to_hexstr(posture[i], ch);
-		ch[2] = '|';
-		ch = ch + 3;
+		uint16_to_hexstr(posture[i], ch);
+		ch[3] = '|';
+		ch = ch + 4;
 	}
 	*ch++ = '\n';
 	*ch = '\0';

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

 * one single packet.
 *
 * A sample packet has the form:
 * |3|015|003|000|006|013|014|00a|02e|000|000|001|
 *
 * size of the array being transmitted depends on the number of regions
 * on the recognition sphere which is calculated based on THETA_REGIONS
