Conversione uint8_t nel corrispettivo carattere ascii

Salve sto utilizzando un modulo rf433 con arduino utilizzando questo codice di prova della libreria VirtualWire

// receiver.pde
//
// Simple example of how to use VirtualWire to receive messages
// Implements a simplex (one-way) receiver with an Rx-B1 module
//
// See VirtualWire.h for detailed API docs
// Author: Mike McCauley (mikem@airspayce.com)
// Copyright (C) 2008 Mike McCauley
// $Id: receiver.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $

#include <VirtualWire.h>

const int led_pin = 13;

const int receive_pin = 12;


void setup()
{
    delay(1000);
    Serial.begin(9600);	// Debugging only
    Serial.println("setup");

    // Initialise the IO and ISR

    vw_set_rx_pin(receive_pin);

    vw_set_ptt_inverted(true); // Required for DR3100
    vw_setup(2000);	 // Bits per sec

    vw_rx_start();       // Start the receiver PLL running

    pinMode(led_pin, OUTPUT);
}

void loop()
{
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;

    if (vw_get_message(buf, &buflen)) // Non-blocking
    {
	int i;

        digitalWrite(led_pin, HIGH); // Flash a light to show received good message
	// Message with a good checksum received, dump it.
	Serial.print("Got: ");
	for (i = 0; i < buflen; i++)
	{
	    Serial.print(buf[i],HEX);
	    Serial.print(' ');

	}

	Serial.println();
        digitalWrite(led_pin, LOW);
    }
}

Il codice funziona, ricevo effettivamente “hello” però viene stampato con gli esadecimali che corrispondono al corrispettivo carattere, c’è un modo per visualizzare invece il carattere corrispettivo?
Per spiegarmi meglio con HEX ottengo la stringa 68 65 6c 6c 6f se tolgo hex ottengo 104 101 108 108 111, vorrei invece visualizzare il testo hello.
Credo che si debba fare un cast ma non sono riuscito a trovare un modo che funzioni, ogni aiuto è ben accetto.
Grazie.

Dovresti usare il metodo write, che scrive il byte così come lo riceve, per cui a 65 corrisponde A ecc...

Serial.write(buf[i]);

Grazie mille!