--- fbus.c.orig 2002-07-03 08:28:08.000000000 +0200 +++ fbus.c 2002-07-03 08:22:49.000000000 +0200 @@ -69,16 +69,34 @@ static bool FBUS_OpenSerial(bool dlr3) { + unsigned char init_char = 0x55; + unsigned char end_init_char = 0xc1; + int count; + if (dlr3) dlr3 = 1; /* Open device. */ if (!device_open(glink->PortDevice, false, false, false, GCT_Serial)) { perror(_("Couldn't open FBUS device")); return false; } + + device_setdtrrts(1, 1); device_changespeed(115200); + sleep(1); + device_write("AT\r", 3); + sleep(1); + device_write("AT&F\r", 5); + sleep(1); + device_write("AT*NOKIAFBUS\r", 13); + sleep(1); + device_setdtrrts(0, 0); + sleep(1); - /* clearing the RTS bit and setting the DTR bit */ - device_setdtrrts((1-dlr3), 0); + for (count = 0; count < 32; count++) { + device_write(&init_char, 1); + } + device_write(&end_init_char, 1); + usleep(1000000); return (true); }