Coding problem?? on SoftwareSerial on Aruino 1.0.1

Hi all,
I have a problem with software serial. I see normal NMEA message via hyperterminal. But Through arduino board(Duemilanove and UNO, too), I can't receive correct text on Serial Monitor but get garbage as attached screen dump.
The Code is same as softwareserial example.

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);

void setup()  
{
  Serial.begin(57600);
  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(4800);
  mySerial.println("Hello, world?");
}

void loop() // run over and over
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
    

}

for testing coding option, I try to run below code. but the results are very weird as screen dump2. I just typed "5", but serial printing value "e 101 65 145 1100101", by default, DEC, HEX, OCT, and BIN option.
Any comments are welcome!!! Pls.

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3);

void setup()  
{
  Serial.begin(57600);
  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(4800);
  mySerial.println("Hello, world?");
}

void loop() // run over and over
{
  if (mySerial.available()){
    char c = mySerial.read();
  // print it out in many formats:
    Serial.print(c);         // print as an ASCII-encoded decimal
    Serial.print("\t");                // print a tab character
    Serial.print(c, DEC);    // print as an ASCII-encoded decimal
    Serial.print("\t");                // print a tab character
    Serial.print(c, HEX);    // print as an ASCII-encoded hexadecimal
    Serial.print("\t");                // print a tab character
    Serial.print(c, OCT);    // print as an ASCII-encoded octal
    Serial.print("\t");                // print a tab character
    Serial.print(c, BIN);    // print as an ASCII-encoded binary
    Serial.print("\t");                // print a tab character
    Serial.println();                  // print a linefeed character
  }
  delay(10);
}

What do you get the other way round (typing a character into Serial Monitor, see what you get in hyperterminal)?

From '5' (0x35) to 'e' (0x65) there seems to be a timing problem but it's difficult to analyse with just one value.

Also try to decrease the baudrate of the hardware UART to let's say 9600. It's unlikely that this fixes your problem but let us try.

I got also an problem with the softserial under 1.0.1. Try 0023 with the newsoftserial lib von arduiniana (supposed the same like Software Serial under 1.0.1 they write on the Homepage). If the newsoftserial work with your hardware under 0023 there must be a problem with the software serial under 1.0.1.

Greeting
Daniel

Thank Volvodani and pylon,

My problem caused by TTL signal inversion. Through Initializing softwareserial, I can read my gyro compass message with Aruino 1.0.

Yosup.

I solved my problem. It seems that the functions of .write .print are changed. If i changed the .print to .write the SoftwareSerial Lib works like in 0023 the newsoftserial worked.

Greets
Daniel

For someone who does not understand about TTL signal inversion.

try this 8)

SoftwareSerial mySerial(10, 11, true);

I knew you could do the inversion with NewSoftSerial but didn't know it works with SoftwareSerial. I've already built a transistor RS232 to TTL convertor but the data was inverted. I'll definitely give this a try.
thanx for the lead.