Ericsson Chat Board Interface

I found an old ericsson chatboard yesterday, which is a small pocket sized keyboard which would connect to old ericsson phones to make SMSing and WAPing easier. I think it would be a fantastic addition to a project (of which I haven’t yet thought up) and I was wondering if anyone has had any experience with interfacing with something like this. I haven’t been able to dig anything up on the web as of yet.

This might be helpfull:
http://www.myplace.nu/avr/avrchatboard/index.htm

I have been playing with a chatboard and Arduino. Unfortunately, I never got it to work. Your experience might be different though, I think my electronics knowledge (better: lack of…) is probably the cause of that.

Here are some more sources:
http://www.brolinembedded.se/projects/keyboard/
http://www.whoopy.it/cellulari/ericsson.asp
http://www.ubiqkom.org/HOWTO/CHATBOARD/chatboard.html
https://securehost34.hrwebservices.net/~magefor/cgi-bin/view/Main/EricssonChatBoardPC
http://www.mp3car.com/vbulletin/input-devices/34000-modifying-sony-erricson-chatboard-car-pc-2.html
http://www.cs.helsinki.fi/u/jikorhon/gp32/

Please realize that there are 2 versions of the chatboard (CHA-01 and CHA-10), I can’t remember the differences, but you will find them if you look for it or in the pages mentioned above.

Good luck and keep us updated!

JD

Thanks, that will help a lot. Seems pretty straightforward, just uses RS232 by the looks of things. I’ll let you know how it turns out.

Well I have had some success already, so full connectivity looks promising. Just connected the transmit cable from the chatboard and I am recieving the “AT” command, which from what I have read, will need to have “OK” sent back at it.

The 3V signal from the chatboard is obviously being read OK by the arduino which is good beacause I didn’t want to stuff around to boost it up to 5V. I am cautious about just hooking up the transmit line directly to the chatboard though so I’ll have to use a resistor divider or zener. Will keep posted…

Wiring for the chatboard is as follows:

Pin 1 = 3V3
Pin 2 = TX
Pin 3 = GND
Pin 4 = RX
Pin 5 = 3V3

OK, it looks like this isn’t going to be easy at all. I am recieving input from the chatboard, but it’s all nonsense I get a long string of characters for each key press, I should be getting a simple AT*EKSE=192 like message after every key press but I get something like ATQO**&%^%#^^@&^&*^.

It may have something to do with software serial which I am using. As there is no buffer, it seems impossible because I have to send the “OK” after every recieved string, which is messing up what I am recieving.

I have also tried sending the “OK” after a short delay after recieving the “A” to allow for other characters but it seems the millis() command which I used, is also too slow to work inbetween recieved characters.

This is now driving me up the wall!

Finally, some success. I have been able to interpret the row of numbers. It’s not much but it’s a start. If anyone else has one of these chatboards, I beg of you to try and see what you can do. As they say in Tasmania, two heads are better than one.

BTW: just used a resistor divider to go from 5V to 3V TTL, worked fine.

Here is the code I used for this:

#include <SoftwareSerial.h>

#define rxPin 7
#define txPin 6
#define ledPin 13

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

void setup() {
// define pin modes for tx, rx, led pins:
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
pinMode(ledPin, OUTPUT);
// set the data rate for the SoftwareSerial port
mySerial.begin(9600);
Serial.begin(9600); //Opens serial port with data rate of 9600bps.
Serial.flush(); //Clears serial port.

for(int i=0;i<20;i++){
char someChar = mySerial.read();
if(someChar == 84){
mySerial.println(“OK”);
}
}
}

void loop() {
char someChar[12];
char number;
for(int i=0;i<11;i++) {
someChar = mySerial.read();
_ if(someChar == 34){_
* i++;*
_ someChar = mySerial.read();
number = someChar*;
i++;
someChar = mySerial.read();
if(someChar == 34) {
mySerial.println(“OK”);
}
}
}
//Serial.println(someChar);
delay(90);
Serial.print(number);
}*_