What the heck is a GP32?
It’s a first generation “open” handheld console, possibly the first one. Gp32 is designed and sold by a Korean Company called Gamepark (Creators of caanoo, wiz, gp2x etc). It has a big 3.5″ color LCD, 133mhz 32bit ARM processor, 8MB ram. It has no custom cpu or gpu, everything is handled by the CPU. The GP32 was sold between 2002-2005, then superceeded by Gp2X. In it’s golden years, the console’s community was flourished by counltess homebrew originals, countless software ports and hardware hacks. There are even some original boxed smc cardtridge games. There are no official sales figures, but GP32 is suspected to sold about 15000 units worldwide.
We will take a look at the keyboard enhancement for GP32: a simple chatboard hack. Read on:
GP32 was the first emulation handheld. Emulators from Mame to atari2600, Sega Genesis to NES, even some preliminary low-fps (but working) GameBoyAdvance emulators are found in the freeware archive of gp32 world. There are also operating systems ported to gp32, apart from it’s own OS, linux and WindowsCE is ported to gp32, while not so useful because it lacks a wireless nteworking.
These software all required a keyboard. Virtual keyboards are slow, not useful at all. In 2004, somebody hacked a Ericsson Chatboard and wrote a driver for it (mr.Spiv, a Finnish coder). And it found support in the community, because chatboards were cheap and easy to mod. There are some sofware supports chatboard, these are the following (but not limited to):
- Infocom Z-Machine interpreter: Gp32Frotz
- Sierra SCI Interpreter: FreeSCI
- AtariST emulator: Castaway GP
- c64 Emulator: GPfrodo
- Magnetic Scrolls Interpreter: Kronos
- A hangman clone with 40000 word dictionary: BunnyTraps
- A Spreadsheet app: Gpxcalc
- A Text/Document editor: GpWrite
- A Zx Spectrum Emulator: Fzx-XmasEdition
- Sierra Adventure Interpreter: Sarien
- A Linux port: Micro2
You can found all of these apps in gp32x.com archive.
Modding a chatboard:
You will need a CHA-01 or CHA-10 chatboard. There are others, but I don’t know how to say a chatboard model from another. They say “chatboards with gray body is the one” but all of the chatboards are gray, as far I can see. So there is no pointers to find the right model of chatboard, sorry. There is a big possibility that yours is already CHA-01 because it’s most available version.
You aslo will need a 18pin connector that fits into GP32’s ext port. It is a Samsung connector, used in the older GSM phones. You can use old chargers but it will be tricky. Most chargers uses 4 pins but they are in wrong position ,but you can swap pins into the required position. They should work in theory, but I butchered a few not succeeded even once. It’s better to find a proper connector but this is harder than you think. So people tend to buy a cellphone datacable, cut and use it’s connector instead. I used PCB133LBE, a GSM to Serial data cable.
First you should check the connector. As I found out, the numbering is different in this connector. It’s an official samsung connector, but it’s different from gamepark IO-Port definition. To find the correct pin numbers (as GP32) check your connector’s two latches. They indicate that it’s the bottom of the connector.Gp32’s connectors are starting from left. So in this connector, pin number 18 is matching pin number 1 on gp32 ext port. So in my connector, pin#1 (+3v) is darkbrown. Pin#9 is Orange.
Also, notice two pins soldered together. You should check any shorts like this. None of the pins should touch eachother even if they are not used at all or your gp32 may be damaged, simply won’t boot, can’t recognize chatboard.
Now, let’s have a look at the Upper part of the connector itself:
As you can see there is another problem. We need to get “Transmit” pin Uart Tx (10) but it’s unused in my datacable. Clearly gamepark used their own pinout and not cared about samsung’s standard usage. This is somehow ironic because almost all of the parts were produced by samsung in korea. Anyways, as you can see, I was lucky: the neighboring pin, “pin8” is connected to the ground (big black wire), also to a little green wire at the same time. So I desoldered them, and connect the green wire to the pin 10. GP32 does not use pin 8 at all.
In the above photo, pin 18 is pink (ground), and pin 10 is green. Don’t mind the numbers on the connector pcb, they are wrong in this occasion.
Take a look at the gp32’s ext port (also read the io-port pdf above). If you are using different link cable than mine, try to match your connectors pins to this picture:
Now after you checked for shorts and fixed those, connect your connector into ext port of GP32 and check if it’s starting. If there are still shorts, your gp32 may not boot or act weird. For example, when I first inserted this socket into gp32, LCD colours got mad.
Ok, so far so good. You got a connector without any weird effect on gp32. Now we need to connect it to the chatboard CHA-01. Here is how we wire this chatboard:
The wiring diagram is simple:
GP32 <—> Chatboard
1…+3V….1
9…Tx… 2
18..Gnd…3
10…Rx…4
1…+3V…5
that’s all.
I recommend you to desolder ericsson connector from the chatboard. But it’s not crucially necessary. You can solder over pins if you want. When I try remove the chatboard connector, my soldering iron went crazy and started to get cold, and when I pull the socket out, pcb lines came out also. Anyway, there are couple of possible alternative points on chatboard pcb.
Ok, this is the finished pcb. I’m sorry to confuse you but, as you can see, my pin#4 was a bit dodgy, I had to trace the connection and find a better place to solder the green wire (which is pin #10 on gp32). Also, as chatboards needs another +3V on pin #5, I bridged pin 1 and pin 5.
Ok it’s done. Before you put chatboard into it’s case, I suggest you to test the wiring by connecting it into the GP32 EXT port: Download & Install FZX-xmas from gp32 archive. Connect your chatboard to GP32. Start Fzx-Xmas edition. If it’s working fzx will alert you that it finds a chatboard connected. You will need to change to SMS mode and press Spacebar to activate it. If it detects, it will work for sure.
Here is the fZX, featuring a chatboard, showing my first sinclair basic program on GP32.
Here is some information on fZX chatboard usage:
Right Arrow = Symbol shift
Left Arrow = Caps Shift.
Dot = Enter
And also note that, chatboard is a clever device. It’s not just a pcb. And it designed to communicate with an old cellphone. So one weird thing is the keys will response when you lift your finger from the key, not when you hit it. Also, Shift keys are sticky in fZX. I don’t know why rlyeh decided to do this, but if you hit symbol shift, fZX goes into shift mode. You have to press it again to deactivate it.
Apart from those, it’s cool to have a chatboard connected to your gp32 😀
Cheers!
Sources:
Gp32 Archives: http://gp32archives.blogspot.com/search/label/Chatborad%20CHA01
Mr.Spiv’s site (web archive): http://replay.waybackmachine.org/20050514074445/http://www.deadcoderssociety.tk/
Darkfader’s gp32 site: http://darkfader.net/ <- Follow gamepark gp32 link
Gp32X forums: http://www.gp32x.com/board/index.php?/topic/11240-chatboard-nigel-brown-version-review/
Note that this wiring is nigel brown version because he started to sell these chatboards first. (Nigel is the man who coded SilkWorm! Woohoo!)
Gp32X.com software archive: http://dl.openhandhelds.org/cgi-bin/gp32.cgi?0,0,0,0,5,413