Contents

Legal stuff

I want to thank Guylhem, who allowed the content copy under the terms that his name and a link to his page must be given.

I also want to thank him for his efforts to the mmc/sd driver and simpad kernel hacking.

Creating a "beautiful" module for the Siemens Simpad SL4

Adding Bluetooth

Image:simpad-bluetooth-module.jpg

The Simpad SL4 has an unused serial port on its main board - that's the little white rectangle in the upper right corner.

Image:simpad-board.jpg

The port was designed to connect a DECT module, which I do not have. However, it is just a standard serial port - we can use it to connect anything that can talk to a serial port. So I started wondering something like one year ago: "what about a bluetooth chip ?"

I did some research, and failed. I could not initially find neither a bluetooth module nor any way to connect it to the simpad. I tried to set up a group order for bluetooth chips, but the company which was approached and initially interested just stopped anwering emails.

I was then given by someone who had tried to do the same hack on its simpad a Siemo S50037 Bluetooth Module, based on a CSR Bluecore 01. This is a "one chip" solution: you basically have everything you need in it. Just make a serial connection and you are ready to go !

Siemens Siemo S50037 bluetooth module:

Image:siemo.jpg


However, I still could not find a good way to connect to the motherboard, I could do some direct soldering, but that involved spending a lot of time with a multimeter trying to figure out which pin where accessibles from some parts of the motherboard, at the risk of frying something in the process or during soldering. So I decided to wait a little bit and try again later.

The serial connector

Image:simpad-dect-connector.jpg


Some months later, I resumed "from scratch" after Till reported success doing such a bluetooth module using the DECT port. My first problem was to find a suitable cable and connector to fit in. While it was not a serious problem, I wanted a beautiful hack since it would definitely not be the "first" simpad to get bluetooth.

However, it did involve soldering directly to the motherboard, which I though was not elegant. Hey - somebody had it already working, so what's the point in doing the same thing? The goal was then set to do a "beautiful hack". As you can see, Beecon prototype is soldered to the motherboard - that's also taking the risk of frying it it something fail (say if by mistake you short important connection and can't unsolder them)

The working prototype from beecon.de:

Image:beecon-prototype.jpg


After some serious googling during a week with various keywords in german and in english, I could finally find a shop that was selling MD35 DECT modules - the same one used inside the Simpad SLC. I contacted the shop and quickly figured out with them that the connector was the same I had - 20 pin, with a 0.5 mm pitch.

The DECT connector - front view

Image:connector-front.jpg


I temptatively order 2 connectors and 2 "fpc" flat cables. When I received them, I immediately tested them - they perfectly matched the Simpad connector ! Cost : around 20 euros.

An FPC cable and connector while being connected The DECT connection kit:

Image:fpc-connect.jpg

front view The DECT connection kit:

Image:dect-cable.jpg

back view:

Image:dect-cable-back.jpg

The next problem was connecting that to the Siemo S50037. While I know soldering, the contacts where far too tiny, and I didn't have any of the required material. A local shop got me everything I needed.

The board:

Image:board.jpg

The most difficult to find would certainly have been a integrated circuit board. However I was pretty lucky- the shop had several units "unclaimed" by clients, and tried to find one where the pitch of the FPC connector and the circuits would match.

Identical pitch ?

Image:identical-pitch2.jpg

Yes it's matching !

Image:identical-pitch.jpg

That alone saved hours and money. It was then easy to solder the connectors and some pins, using special "stripping" wire (very thin) and very thin soldering which where purchased at the same shop.

The raw material:

Image:raw-material.jpg

However, since I had some other work, and very little time on my hand (I had already spent hours on this hobby project :-) I decided to let them do all the drilling, soldering and stuff, based on some personal notes. Cost: 70 euros.


That's tiny soldering Really.

Image:soldering.jpg


Image:soldering2.jpg

I just soldered a couple of cables to the Siemo I had forgotten on my notes, and then did the first attempts to create a working module, deciding which wire from the serial port went to which wire on the bluetooth module. I was helped by Opensimpad references, even though it was partially wrong (20 pins vs 22).

My ugly ugly notes - page 1

Image:notes-1.jpg

My ugly ugly notes - page 2

Image:notes-2.jpg

Regarding soldering on PGA : don't try that at home. It's very very tiny. If I had not purchased stripping wire and special thing soldering, I would certainly have damaged the board.

all done !

Image:global-view.jpg


Then started some hacking. Nothing did reply to my various communications attempts with pskey. I quickly realised I was not drawing enough power from PIN #5 (power) controlled by CS3. I decided to draw power simply from the 5V on PIN #20 & #19.

I then tried to connect a multimeter to the serial port - I realised I had mistakenly connected the FPC cable upside down !

Plugging - part 1:

Image:plugging1.jpg

Plugging - part 2

Image:plugging2.jpg

Plugging - part 3

Image:plugging3.jpg

Trying again, I now had power on the VREG pin on the Siemo. That was a good start. I then monitored again the serial port while transmitting data - I definitively saw something. Yet I tried everything but could not talk to the Siemo module. When using a special loose wire to initiate an undocumented function that's broadcasting the Siemo name to every Bluetooth device currently scanning, I finally saw the module.

The loose wire goes to VREG or GND

Image:loose-wire.jpg

But I could not l2ping it or connect to it in any way. So I think the module is working, but it may be missing a firmware. Currently the hack is stopped until I get either get another bluetooth module or figure out what's wrong with that one, with a SPI cable and some software to put a new firmware on the Siemo.

Conclusion bluetooth

I gave up on the SieMo module and used a Mitsumi WML AHR C09 instead. It works beautifully and is also as elegant as initially planned - even more since it's smaller than the SieMo. I'm using my connector and board, and a simplified Beecon design (the MAX8881 is not readlly necessary):

Much simplified design:

Image:simpad-bluetooth.gif

I spent around 100 euro, but I had hours of fun and learnt a lot about Simpad hardware and bluetooth in the process. While I'm definitively not an hardware guy, designing and soldering was quite fun !

If you want to try something like that, I suggest you sign up on csr.com website - there's a lot of documentation about CSR bluecore chips. If like me you do misconfigure your PSKEYS, your chip will be rendered useless. So please read a little explaination about BCSP before using pskey. Do *not* change the default speed unless you have to, since hciattach *can* change the speed. You should put a safe value such as 115 200. I did put 230 400 to experiment hardware speed limits (it works fine in BCSP !) but please don't do this.

Adding a SD/MMC

Now let's put the spare GPIOs (DCD, RI, DST, DTR) unused in this Bluetooth addon to a good use. What about connecting a SD/MMC card, to have say a gigabyte of storage space, for ex. to put some neat linux distribution (thus saving the cramped 32 Mb of flash for boot purposes?). Here is the reference design:

SD/MMC reader on the Simpad:

Image:simpad-bluetooth-sd-mmc.jpg

As you can see, we are going to reconfigure the GPIO and map them to a usefull SPI connection to the MMC card (BTW I refer to SD as SD/MMC since we are going to access them in MMC compatibility mode). An excellent explaination about SPI is available on www.cc5x.de/MMC.

FunctionPIN#Original directionGPIO#SPI functionNew direction
DCDPIN08(in)GPIO23DO(in)
DTRPIN11(out)GPIO07CS(out)
RIPIN14(in)GPIO19CLK(out)
DSRPIN16(in)GPIO06DI(out)

Since I don't know where I could possibly fit a SD/MMC slot, and since I don't think I'm capable of doing that cleanly, the memory card will stay inside the Simpad all the time. Feel free to do better using a SD/MMC connector !

Soldering directly the SD/MMC:

Image:soldered-mmc.jpg

Note: I ordered a connector from www.jelu.se which I intend to use "in the future" i.e. when I have some free time.

After soldering it, here are the results :

Bluetooth + MMC module:

Image:final-sd-mmc-bluetooth-module.jpg

As you can see, the SD/MMC + Bluetooth module is quite big.

Fitting it in the Simpad:

Image:fitting-inside-the-simpad.jpg

However, it fits fine inside the Simpad. In fact, the biggest part is the pins I use to solder the 2nd serial port wires to respectively the Bluetooth and the MMC.

Hopefully when I receive the SD/MMC connector, I will be able to pierce a nice opening in the Simpad plastic and solder the connector to the mainboard. The end result will be awesome!

If you want to do similar hacks, there are 2 spare GPIOs inside the Simpad : if you remove the SmartCard controller you get GP10 which is pin40 of the TDA8007 controller. Since the SmartCard drivers are not ready yet, it won't be a big loss. The other GPIO that could be used is GP21: it is on pin 5 of the unused real time clock U35 (I was told the SA1100 internal RTC is used instead). It's not easy to find - look for the TLC7733 chips which are above and left (U16 U8 and U22).

Next hack

Fitting in a GSM module, to make the Simpad a big cellphone. This will certainly require the first serial port. Since I'm only using it for flashing and minicom, this is not very important. I'm sure I could put a switch somewhere to power on the GSM module on toggle between external serial port and internal GSM module.

Any help is welcome from fellow simpad owners with JTAG/NOR flash/ARM knowledge!

Mail to: webexterne | externe | net

Software used

Let's see how it works. I'm only using a 256 Mb SD/MMC. Feel free to offer me a 1 Gb SD/MMC if you want better tests :-)

# insmod simpad-mmc.o
mmc: GPIO init
mmc: initialising MMC
GPIO_SD_CS dir: 1 alt: 0
GPIO_SD_DI dir: 1 alt: 0
GPIO_SD_DO dir: 0 alt: 0
GPIO_SD_CS dir: 1 alt: 0
mmc: card init 1/2
mmc: card init 2/2
mmc: card init 3/3
Size = 249856, hardsectsize = 512, sectors = 499712
Partition check:
mmc/disc0/disc: p1
# cat /etc/fstab|grep mmc
root@simpad:~# cat /etc/fstab |grep mmc
/dev/mmc/disc0/part1 /mnt/mmc ext2 defaults,sync,noatime 0 0
# mount /mnt/mmc
# df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/root 24320 20440 3880 84% /
tmpfs 61868 36 61832 0% /var
/dev/mtdblock/2 8192 6492 1700 79% /home
/dev/hda1 125034 45654 79380 37% /mnt/cf
/dev/mmc/disc0/part1 241949 20 229437 0% /mnt/mmc

Download

You can download everything (binaries ready to be used and the source files to create them) here:

If you want to start SIMpad Kernel hacking - pease don't waste your time with the 2.4 series. Goto irc.freenode.net #oe . There are a few hacker who tries to port the 2.6 series.

  • Ready to flash images: include the compiled kernel with Bluetooth support, MMC driver module, a new params file to merge root and home flash partitions into a single 32 Mb partition, mmc-on.sh to power on the MMC and install the MMC driver module, the most recent OPIE image I could find (attention: it includes the old kernel)
  • simpad.c file to use 128 Mb of RAM on your simpad (you must solder it!)
  • simpad-mmc.c block driver to use a MMC card on your simpad (you must solder it!)

Hints & Tips

  • Adapter for flat cable

Soldering the connections between the small flat cable and the SD/MMC or BlueTooth parts is not easy. I found this adapter between flat and connection cable:

Image:FFC_20-Pol._(0.5_mm)_zu_Flachband-Adapter.jpg

You can buy this part and flat cables at www.lc-design.de for ~ 25€. You find it under 'Flexfolien und Adapter' -> 'Adapter, 0,5 mm'.

  • SD/MMC holder

Just re-use an cheap USB-SD/MMC adapter (~ 5€) like in Niv's Bluetooth and SD/MMC mod.

To do

  • check errors
This page was last modified 07:26, 13 October 2007. | This page has been accessed 14,341 times. | About OpenSIMpad.org
Designed by Anna Boheim | Powerd by mediawiki