--- /dev/null
+#!/usr/bin/perl
+use warnings;
+use strict;
+
+use Data::Dump qw(dump);
+use Device::SerialPort qw(:STAT);
+
+my $port = Device::SerialPort->new('/dev/ttyUSB0');
+$port->baudrate(9600);
+$port->databits(8);
+$port->parity('none');
+$port->stopbits(1);
+$port->handshake('none');
+
+# disable timeouts
+$port->read_char_time(500);
+$port->read_const_time(1000);
+
+sub v {
+ my ($hex,$desc) = @_;
+ my $bytes;
+ $bytes .= pack('C', hex('0x' . $_)) foreach split(/\s+/,$hex);
+ warn "# $desc\n";
+ warn ">> $hex ",dump( $bytes );
+ $port->write( $bytes );
+
+ my $len = $port->read(1);
+ warn "<< len: ",ord($len);
+ my $data = $port->read(ord($len) - 1);
+ warn "<< ",dump($data);
+
+}
+
+v '07 02 00 00 00 04 C4', "hardware version";
+