Ericsson Chatboard 8051 Mod

Some time ago I was told about a nice qwerty keyboard: the Ericsson Chatboard. With its size, it would be perfect for small RS232 based projects. Still, it was practically useless as it had a very hard to use set of AT-based commands:

---------------------------------------------------------------
mode    shift   key     command                         remark
---------------------------------------------------------------
                0-9     AT*EKSE=0 to AT*EKSE=9          0-31
        shift   0-9     AT*EKSE=32 to AT*EKSE=41        32-63
                a-z     AT*EKSE=65 to AT*EKSE=90        64-95
                spac    AT*EKSE=91
                .       AT*EKSE=92
sh-spac         a-z     AT*EKSE=97 to AT*EKSE=122       96-127
sh-spac         spac    AT*EKSE=123
sh-spac         .       AT*EKSE=124
        shift   a-z     AT*EKSE=129 to AT*EKSE=154      128-159
        shift   .       AT*EKSE=156
sh-spac shift   a-z     AT*EKSE=161 to AT*EKSE=186      160-191
sh-spac shift   .       AT*EKSE=188


                WWW     AT*EAPP=0,5,"WWW: ","WWW"       192
                Attach  AT+CKPD="#:"                    193
                E-mail  AT*EAPP=0,5,"To: ","WWW"        194
                SMS     AT*EAPP=0,0                     195

                PhBook  AT*EAPP=1,0                     196
                YES     AT+CKPD="S"                     197
                NO      AT+CKPD="E"                     198

                Backsp  AT+CKPD="C"                     199
                <-      AT+CKPD="<"                     200
                ->      AT+CKPD=">"                     201
---------------------------------------------------------------

Obviously, I needed something less complicated and more useful. And that's where the hacking begins.

Taking apart

This is the original, unmodified Chatboard:

Chatboard, unmodified

I opened the case and saw a pretty complicated circuit:

Chatboard PCB, unmodified

I made a simple RS232 interface, as described here. The board visible on the photo is a DS89C450 evaluation board; it has a level converter so I used it. I wrote a simple Perl script to communicate with the Chatboard - see Download section.

Chatboard with RS232 attached

Soldering a new CPU

The IC used in Chatboard is Philips CV5739. After a bit of googling I found out it's just a specialized 8051 clone. Since I couldn't reprogram it, I decided to replace it with DS89C450. It went smoothly:

Desoldering CV5739

Soldering DS89C450

I removed all the little parts which served as some kind of voltage regulator. I also added a few parts to allow the CPU to be reprogrammed in-circuit:

Bootloader activating circuit v1

Bootloader activating circuit v2

Luckily, the XTAL used in Chatboard turned out to be exactly 11.0592MHz which is a perfect frequency for 57600 baud.

Adding an ISP connector

A standard 10-pin "ISP" connector fits exactly inside the case, with a little help of a dremel. ;)

"ISP" connector

Writing the firmware

As it turned out, this task isn't exactly easy. You have to take care of key repetition, bouncing connectors and VT100 emulation - all this while trying to use as little power as possible. The key matrix is as follows:

Chatboard key matrix

h p e l         b y n
 1 2 3 4 5 6 7 8 9 0 d
  Q W E R T Z U I O P
   A S D F G H J K L
  s Y X C V B N M .
        ___      < >

Bits (0b76543210)

READ| 0 1 2 3 4 5 6
----+--------------
  0 | h p e l b y n
W 1 | 1 2 3 4 5 6 7
R 2 | Q W E R T Y U
I 3 | A S D F G H J
T 4 | ^ Y X C V B N
E 5 | 8 9 0 d P O I
  6 | L K M . > < _

Download

Links