I believe I did that with this code:
It was printing and scrolling through what looks like HEX.
// Example 6 - Receiving binary data - from Arudino Forum
#include <LiquidCrystal.h>
LiquidCrystal lcd(10, 9, 8, 7, 6, 5); // put your pin numbers here
const byte numBytes = 6;
byte receivedBytes[numBytes];
byte numReceived = 0;
boolean newData = false;
void setup() {
pinMode(11, OUTPUT); // LCD CONTRAST PIN
pinMode(2, OUTPUT); // Clear To Send PIN
pinMode(3, OUTPUT); // Clock PIN
digitalWrite(2, HIGH); // CTS CONSTANT HIGH
tone(3,32); //CLOCK FREQ in HZ
analogWrite(11, 79); //LCD CONTRAST AMOUNT
Serial.begin(1000000);
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
}
void loop() {
recvBytesWithStartEndMarkers();
showNewData();
}
void recvBytesWithStartEndMarkers() {
static boolean recvInProgress = false;
static byte ndx = 0;
byte startMarker = 0x3C;
byte endMarker = 0x3E;
byte rb;
while (Serial.available() > 0 && newData == false) {
rb = Serial.read();
if (recvInProgress == true) {
if (rb != endMarker) {
receivedBytes[ndx] = rb;
ndx++;
if (ndx >= numBytes) {
ndx = numBytes - 1;
}
}
else {
receivedBytes[ndx] = '\0'; // terminate the string
recvInProgress = false;
numReceived = ndx; // save the number for use when printing
ndx = 0;
newData = true;
}
}
else if (rb == startMarker) {
recvInProgress = true;
}
}
}
void showNewData() {
if (newData == true) {
lcd.clear();
for (byte n = 0; n < numReceived; n++) {
lcd.print(receivedBytes[n], HEX);
}
newData = false;
}
}