Tratar recebimento de dados de balança

Pessoal via hyperterminal eu recebo os seguintes dados de pesagem da balança:
=p`005895000000
O fornecedor me informa que o padrão para o envio de dados é:
[ STX ][ PPPPPP ][ ETX ] - onde [ PPPPPP ]

Minha grande dúvida é a seguinte em Java eu fico recebendo as linhas todas quebradas e com muitos caracteres estranhos, uso a RXTX para comunicar com a serial. Alguém sabe de alguma outra configuração?
Olha o meu código:

public void serialEvent(SerialPortEvent ev){
switch (ev.getEventType()) {
case SerialPortEvent.BI:
case SerialPortEvent.OE:
case SerialPortEvent.FE:
case SerialPortEvent.PE:
case SerialPortEvent.CD:
case SerialPortEvent.CTS:
case SerialPortEvent.DSR:
case SerialPortEvent.RI:
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
break;
case SerialPortEvent.DATA_AVAILABLE:
byte[] bufferLeitura = new byte[20];
try {
while ( entrada.available() > 0 ) {
nodeBytes = entrada.read(bufferLeitura);
}
String Dadoslidos = new String(bufferLeitura);
if (bufferLeitura.length == 0) {
System.out.println("Nada lido!");
} else if (bufferLeitura.length == 1 ){
System.out.println("Apenas um byte foi lido!");
} else {
    /*// Criar o decoder para ISO-8859-1
    Charset charset = Charset.forName("ISO-8859-1");
    CharsetDecoder decoder = charset.newDecoder();
    CharsetEncoder encoder = charset.newEncoder();

    ByteBuffer bbuf = encoder.encode(CharBuffer.wrap(Dadoslidos));
    CharBuffer cbuf = decoder.decode(bbuf);
    String BalancaTratamento = cbuf.toString();*/
    if (nodeBytes == 4){
            System.out.println(Dadoslidos.substring(0, 4));
    }else if(nodeBytes ==8){
        System.out.println(Dadoslidos.substring(0, 4));
    }
}
} catch (Exception e) {
System.out.println("Erro durante a leitura: " + e );
}
System.out.println("n.o de bytes lidos : " + nodeBytes );
break;
}
}

Essa é somente o método de captura dos dados. Os métodos de abir, fechar ,etc a porta eu suprimi.

Olha, eu nunca fiz isso em Java, mas tive que fazer uma vez em Delphi pra faculdade e acontecia isso… no caso era problema de sincronismo… a serial estava setada numa velociade e o meu componente do Delphi responsável estava em outra… tinha mais alguns detalhes que eu não lembro exatamente…rs

Mas basicamente era problema de sincronísmo…

Pode ser que seja o seu caso…

Abraço!

Valeu pela dica, mas eu já chequei e o problema persiste.

Será algum tipo de bug com a RXTX?

Agora fiquei na dúvida.