Arduino & Nokia phone - not working

Hello,

Weeks ago, I started to try interfacing my Arduino Uno r3 with one of my nokia phones (6086 & 6136).
I have been through lot of links, blogs and even this forum.
Here is a short list:
http://arduino.cc/forum/index.php/topic,132920.0.html
http://1474orchard.ca/projects/?entry=entry110123-142726
http://arduino.cc/forum/index.php/topic,21490.0.html
http://arduino.cc/forum/index.php/topic,20775.0.html
http://www.insidegadgets.com/2013/01/12/how-to-use-nokia-f-bus-to-send-an-sms-message/

This leads me to try many methods. And finally none of them worked out.
All of those methods use FBus.

Here is an exhaustive list of what I tried:

  • Nokia RX|TX connected to Arduino TX|RX directly, use of Serial.write and Serial.print, all baud rates tested : NOK
  • Nokia RX|TX connected to Arduino pin 2 & 3, use of SoftwareSerial, all baud rates tested : NOK
  • Nokia RX|TX connected to Arduino TX|RX directly, Arduino TX signal inverted using a transistor, use of Serial.write, all baud rates tested : NOK
  • Nokia RX|TX connected to Arduino pin 2 & 3, use of SoftwareSerial, signal inverted option of SoftwareSerial, all baud rates tested : NOK
  • And even trying to send AT command with RX|TX --> TX|RX wiring (why not !): NOK

The only thing that happened is getting a single 0 in the second method if I remeber well.
I learnt a lot, but to be honnest, I think I am going to burn those damn phones...

But if by any chance you have an idea (not a link, I think I already saw all of them), but maybe a past experience of yours, I will be grateful.

Thank you !

Loïc

Hi can you show your sketch for what you are doing. Pretty certain these
Phones use fbus

Sure, here they are:

Code using hardware serial transmission:

byte msg[] = { 
  0x1E, 0x00, 0x0C, 0xD1, 0x00, 0x07, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x60, 0x00, 0x72, 0xD5 };

void setup() { 
  Serial.begin(115200); 
  delay(1000); 
} 

void loop() { 
  delay(7000);
  Serial.println("Start");
  
  // Initialise the F-bus
  for (int z = 0; z < 128; z++) {
    Serial.write(0x55);
   } 
  delay(1000);

  // Send our command
  for (int x = 0; x < (sizeof(msg) / sizeof(byte)); x++) {
    Serial.write(msg[x]);
  }

  // Wait for a reply
  while (1) {
    delay(1000);
    while (Serial.available() > 0) {
      char c = Serial.read();
      Serial.print(c, HEX); 
      Serial.print(" ");
    } 
  }
}

Code using software serial transmission:

#include <SoftwareSerial.h>

#define rxPin 2
#define txPin 3

// set up a new serial port
SoftwareSerial mySerial =  SoftwareSerial(rxPin, txPin, true );

void setup()  {
  // define pin modes for tx, rx:
  pinMode(rxPin, INPUT);
  pinMode(txPin, OUTPUT);
  // set the data rate for the SoftwareSerial port
  mySerial.begin(115200);
  // For user output messages
  Serial.begin(115200);
}

void loop() {  
  // Initialise the F-bus
  Serial.println("Initializing F-Bus.");
  for (int z = 0; z < 128; z++) {
    mySerial.write(0x55);
  } 
  delay(1000);
  
  // Send our command
  Serial.println("Send request.");
  byte msg[] = {0x1E, 0x00, 0x0C, 0xD1, 0x00, 0x07, 0x00, 0x01, 0x00, 0x03, 0x00, 0x01, 0x60, 0x00, 0x72, 0xD5};  
  for (int x = 0; x < (sizeof(msg) / sizeof(byte)); x++) {
    mySerial.write(msg[x]);
  }

  // Read answer
  Serial.println("Read answer.");
  mySerial.listen();  
  while (1) {
    delay(1000);
    while (mySerial.available()>0){
      Serial.print(mySerial.read(), HEX);     
      Serial.print(' ');     
    }
  }
  
}

All those were grabbed from previous links.

Hi, same problem here, tried about 4 nokias (6100, 6210, 6021, 3410) with MEGA R3,
6100 and 6021 are supposed to work with AT commands, but nothing happens,
Arduino serial3 TX to Nokia RX connected with resistors voltage divider
Arduino TX - R 1K - Nokia RX - R 1K - R 1K - GND
I'm using nokia Pop-port cable pins 6, 7, 8

when I short pin 6 and 7 on nokia plug (RX TX) I can get echo so I assume wiring is OK.
tried various sketches with F-BUS and AT commands as well but nothing happens.
Have you solved yours, Loic_B?

Can anybody clarify if the external Pop-Port pins 6, 7 described as FBUS RX/TX, and internal ones (usually under battery) are equal or completely different and which ones should be used to communicate with Arduino.

Are you sure that 1sec delay is fine?

dont you think that trying to read the reply form the RX after you initialise the Fbus would be worthy of knwoing whats happening.