Abstract
This page explains how the Ericsson chatboard works and how to
use it in your own applications. You can investigate all its
secrets and finally build a mini PC keyboard from it.
This article is also part of the UR3
project and explains how to connect the chatboard to it.
How it works
First of all you have to know there are different models of
chatboard, there are at least two models: a 5V powered model and
a 3.3V powered model. The last one (3.3V model) seems to be black
and this should be the biggest difference between two,
but I have never seen it. It seems to be also another difference
between two models: the connector should be different between the
5V and 3.3V power model, so pay attention becose this means also
a different pinout.
On the right you can see my chatboard, a 5V powered model,
and in this article I will refer only to this one.
Pay attention in handling your keyboard, I assume no
responsibility if you damage your chatboard or your equipment by
doing what is explained in this page.
The operation principle is rather simple: inside the chatboard there
is a chip that reads keys status and sends through a serial line
a character string representing the pressed key.
The keyboard will continue to send the same string until you
acknoledge it by sending back the OK string.
'O','K',0x0d,0x0a
Each keyboard message must be acknowledged using this string.
The serial line works at 9600bps 8n1.
Easy! Yes, it is not so complex, but there are some little
particular you have to know:
1) The string representing a key is not always the same but it
depends on what keyboard mode is set.
2) The on board chip isn't a pure key code scanner but iplements some
other functions such as keyboard modes.
3) After some times you don't press any key the keyboard will swich
back to the default mode.
4) You can change keyboard mode by pressing special keys on the upper
line: WWW, Attachment, E-mail, SMS, etc.
5) Some key cannot work depending on what mode is set.
6) Key codes can change from one model to another.
The mode I prefere is SMS mode: it is complete and
all keys work well. Later I will refer to this mode only.
If you want you can try all different modes to see wich keys
work and how change the related string.
Ok! Let's go replace the orginal connector and switch on!
Connector replacement
As you can see I have removed the original (very bad) connector
and replaced it with a 5 wires mouse cable. In removing the
connector please don't snap off it as someone has suggested,
but use a soldering iron and remove it carefully, because
the circuit is very delicate near the connector.
I have also added a wood tab to close the connector hole and held
the cable in position, so that I can handle the chatboard as
a normal cable linked keyboard.
If you like, you can think to put an additional microcontroller
inside the keyboard case to perform protocol translation and
connect the chatboard directly to a PS2 connector on the PC.
In this way you can create a very litle PC keyboard from it.
If you are modifying the chatboard for the
UR3 project you don't need protocol
translation, so add only the cable and follow the
UR3 connector description to mount it.
Link description
As you can see in this picture, keyboard link is really simple.
There is only one detail that require a little explanation:
in this scheme there are two wires connected to +5V power
line, one wire is the effective +5V power supply,
the other one is the handshake control line.
I am sorry, but I can't remember wich one is the handshake
line and wich is the power supply line, I suppose the green wire
is the handshake but I am not sure.
If you connect both to +5V transmission is enabled and the
keyboard is free to send key strings, if you tie the handshake
line to GND the keyboard will not send any string.
You can use this line to implement flow control, but you shouldn't
need it, in all my experiments I have never used flow control.
On the other side of the cable you need a level translator to
convert logic voltage level to RS232 voltage level, there are
different solutions to do that: one way is to use a standard
MAX232, one other way is to use this
RS232 converter,
it is smaller, simpler and cheaper than MAX232 and it works
wery well.
UR3 connector
If you are modifying your chatboard for
UR3 project look at this picture:
it shows a standard PS2 connector with a little modification.
A standard PS2 keyboard will use the signals printed
in black, normally pins 2 and 6 are not used.
We will use these unused pins to connect TX and RX signals
from the chatboard.
In this way on your UR3
you will have a PS2 female connector wich can accept even a
standard PC keyboard or a chatboard.
Note: in this picture TX and RX are seen from the chatboard
point of view, so pin 2 is connected to the blue wire and pin
6 is connected to the brown wire.
Inside UR3 you have to exchange TX
and RX wires in order to let it to work properly.
Chatsniff
Chatsniff reads and shows message strings coming from the chatboard.
It replies with the OK string at any received message,
othervise chatboard will resend the string.
If the key code is known chatsniff prints also the corresponding
char.
Not all message strings are decoded, some string is completely
ignored, some other seems to contain interesting data but no
key is recognized. In fact I know nothing about the protocol
involved between chatboard and the phone, simply I have observed
there is some kind of scheme that seems to be repetitive.
I have found one way to decode pressed keys, but I have also
excluded some details, suck as special keys on the first row.
At my opinion this protocol is very contorted.
For example if you press the same key more times, you will see the
key code to change; why do key code have to change between the first
time and others? I can't undestand this and other strange effects.
Inside this caos protocol I have jumped the question and I have
found a way to decode pressed keys.
The picture on the left shows a piece of chatsniff execution,
as you can see key code is basically a repetition of the same
char by a defined number of times, in fact decoding algorythm is
based in counting how much times a char is repeated inside key
code, it seems to work pretty well. In this example I have
pressed the sequence h yeah! .
There is a little particular you have to know before to start:
as I wrote before chatboard operation is affected by it's internal
state: if you simply switch it on and try to press some keys
it wouldn't work. There is a startup procedure to follow in order
to let it to work.
1) Connect the chatboart to your Linux box.
2) Start chatsniff.
3) Turn on the chatboard. You will see some uncomprensible
messages and some of these will be ignored.
4) Press SMS key. You will see some other uncomprensible
messages but now chatboard will work correctly.
Warning: the story is not finished yet, if you wait a long
time without pressing any key, chatboard will switch to it's initial
state, then you have to press SMS again in order to work.
Well, now you are ready for your chatboard experience.
Amuse yourself!
FAQ
Contatti
If you have any questions, suggestions, troubles, etc. contact me at:
bit.trapper@gmail.com
|