How to install a different language ROM on the iPAQ 2200 series

Attention!
This document is obsolete and the information in it should not be relied upon. The practices described here are not recommended and this document is provided only for historical reference.
Update (24 August 2005)

Due to the fact that I have sold my iPAQ 2210 PocketPC in June 2004, I am no longer in a position to give any support with the procedure described on this page, and therefore any e-mails that I receive regarding this procedure will not be answered.  However, I am leaving this page online in order to be used as a reference by anyone attempting to follow similar procedures.

Update (10 April 2004)

On the 15th of March 2004, HP released a new ROM update (version 1.10).  Also in the beginning of April, HP released the Italian, French and Spanish ROM updates.  This means that:

(1) Step number 4 below does not work with the new 1.10 ROM update since the new ROM image has a new checksum.

(2) The procedure to install a different language ROM still works.  I have verified this on my Italian device which has been successfully updated to version 1.10 (English) but the checksum table listed in step 4 no longer applies.

(3) It seems that the statement at the end of this page which says 'With this I assume that all iPAQs are identical and the only thing which makes the international versions different is the software and not the hardware" is incorrect.  In fact when I tried to update my Italian device from version 1.01 ENG to version 1.10 ENG, the update utility recognised my device as Italian, so I had to modify the 1.10 image before I could update my device.

(4) Now that HP released the Italian, French and Spanish ROMs it is possible to change the language of any iPAQ 22xx to English, Italian, French and Spanish.

I am leaving the procedure with the old checksums on this page as a reference for those of you who know how to calculate the new checksums.  This is after all something which is relatively easy to do.  Also, the link to get the 1.01 ROM still works ;-)

Procedure - Version 1.3 (4 April 2004)

Based on:

How to install a different language ROM in your iPAQ 3900 series PDA

How to dump the iPAQ 2210's ROM

Here I will discuss how to change the language of Windows Mobile 2003 on the IPAQ 2200 series using HP's own update tool! At the time of writing (February 2004) this means that you can only change a non-English device into an English one since at the moment HP has made available only the English ROM update. Once HP releases other versions of this ROM update for the localised devices you will be able to use the same technique to change between other languages too.

Disclaimer:

You will replicate the steps in this guide at your own risk! I have tested this procedure and I confirm that it works 100% but I will not accept responsibility for data-loss or damaged devices! The steps described here can damage your device permanently if not followed accurately and should be carried out only by technical persons! Also I have read on various sites that changing the language of your Pocket PC device will invalidate your warranty!

What you need:

Minimum requirements:

- iPAQ 22xx PocketPC
- IPAQ 2200 series English 1.01 ROM Update
- Hex Editor software

Recommended requirements (If you want to backup your original ROM. It is recommended that you do so in case you need to restore it!):

- iPAQ 22xx PocketPC
- IPAQ 2200 series English 1.01 ROM Update
- 64MB (or more) CompactFlash Card
- CompactFlash PC Card reader
- Hex Editor software
- Terminal Emulation software which can connect over USB

I have tested the procedure using:

- iPAQ 2210 (with Italian ROM)
- 256MB Crucial Technologies CF Card
- Crucial Technologies 6 in 1 Card reader
- Hex-editor XVI32 2.51  by Christian Maas
- Multi-Port/USB TTY 1.11a by HTC
- WinHex 10.3 by Stefan Fleischmann - Registered Version

Procedure:

1. Erasing the CompactFlash card.

This part is optional and is not essential however it is recommended in case you 'brick' your device! Do it only if you are going to follow step 2 below.

1.1 Insert the CompactFlash card in your PC Card reader.
1.2 Load WinHex.
1.3 Click on 'Tools -> Disk Editor' and select your CompactFlash card.
1.4 Click on the first byte and press Alt+1
1.5 Move down to the last byte, click on it and press Alt+2
1.6 Click on 'Edit -> Fill Block'
1.7 Leave value as '00' and click on 'OK'.
1.8 Read the warnings carefully and if you decide to proceed keep clicking on 'OK'.
1.9 Wait until your card is erased, then remove it from the desktop reader and put it in the PDA.

2. Dump of current ROM.

This part is optional and is not essential however it is recommended in case you 'brick' your device!

2.1 The first thing that you should do is backup all your data files in case you are going to restore them afterwards. Do not backup installed applications and the device file structure since if you restore these after the language change you will end up with a lot of useless language specific folders.
 
2.2 Perform a hard-reset by holding button 2, the power button and pressing the reset button. Believe me this is going to be quite difficult but eventually you will manage!

 

2.3 As soon as you see a screen with the word 'Serial' connect the device to your PC via the USB port and the word will change to 'USB'.

2.4 On the PC, kill ActiveSync (via Ctrl+Alt-Del on Win 9x or via Task Manager on Win NT/XP/2000/2003 - End process tree of 'wcescomm').

2.5 Load MultiPort-TTY and select '\\.\WCEUSBH001' from the drop down list. If you don't see this go back to step 2.4

2.6 As soon as you see a blank screen press enter and a 'USB>' prompt will be displayed!

2.7 Enter the command 'password CPQHAMMER'. If this is not accepted enter 'mb 7500 11' to get your password and repeat this step with your password.

2.8 Enter 'h full' for a list of commands and note the one you will be using that is 'd2s'.

2.9 Enter 'd2s' and wait for the ROM to be completely dumped on the CompactFlash card.

2.10 Once the console returns the 'USB>' prompt perform a soft-reset and close MultiPort-TTY.

3. Transfer of ROM dump to file.

This part is optional but once again is recommended especially if you followed steps 1 and 2 above.

3.1 Remove the CompactFlash card from the PDA and put it again in the desktop reader. If Windows warns you that the card must be formatted, do not do so!
3.2 Load WinHex again and click on 'Tools -> Disk Tools -> Clone Disk'.
3.3 Click on 'Source Disk' and make sure that 'Read sectors from image file' is unchecked.
3.4 Choose the physical (not logical) drive where your card is located.
3.5 Click on 'Destination File' and make sure that 'Write sectors to an image file' is checked.
3.6 Click on 'OK' and choose the path and file name for your image.
3.7 Make sure that all checkboxes are ticked and click on 'OK'.
3.8 Make sure that you keep the ROM image to a safe place!
3.9 Format your CompactFlash card so that you can use it AGAIN.

4 Modify the softpaq supplied by HP.

This part is essential else the update program will not let you flash your device.

4.1 Unpack the softpaq provided by HP.
4.2 Load the Hex Editor.
4.3 Open the file 'Upgrade_GWROM_10101_WWE.nbf'.
4.4 Look for 'ENG-1.01.01-794a'. 'ENG' is the language string and '794a' is the checksum.
4.5 Change ENG to your language string (Eg ITA / FRE / GER / SPA / POR) and notice that the corresponding bytes will change from 45/4E/47 to the values corresponding to your string.
4.6 Use a scientific calculator in Hex mode and add the 3 values.
4.7 Add the derived value to 7870 and you will get the new checksum.
4.8 The following table contains the checksum for the most common languages. If yours is not listed just add the sum of the 3 language string values to 7870 as described above to get your checksum.

ENG = 45 + 4E + 47 = DA + 7870 = 794a
ITA = 49 + 54 + 41 = DE + 7870 = 794e
FRE = 46 + 52 + 45 = DD + 7870 = 794d
GER = 47 + 45 + 52 = DE + 7870 = 794e
SPA = 53 + 50 + 41 = E4 + 7870 = 7954
POR = 50 + 4F + 52 = F1 + 7870 = 7961


4.9 Change 794a with your checksum, save the file and close the hex editor.

5 Flash the modified ROM image

5.1 Follow the 'ReadMe.doc' contained in the softpaq provided by HP to update your device. If the update utility tells you that the checksum is incorrect than start again from step 4.1 above and this time pay more attention.

5.2 After the update is completed, configure again your device and restore your data files (if required).

5.3 Apart from the obvious fact that now the interface of the O/S is in English, if you go to System, click on 'Asset Viewer' and expand 'Version' you will see: 'ROM Revision: 1.01.01 ENG'. Also if you expand 'System' you will see ' Language: ENGLISH' so now there are no visible signs that the device was once a non-English one.

6. Restore of original ROM image to card

This step is only required if you for any reason you need to restore the original ROM image. Make sure that the card is the same size as the one you used in steps 1 to 3 above!

6.1 Load WinHex.
6.2 Click on 'Tools -> Disk Tools -> Clone Disk'.
6.3 Click on 'Source Disk' and make sure that 'Read sectors from image file' is checked.
6.4 Click on OK and choose the file you created in step 3 above.
6.5 Click on 'Destination Disk' and make sure that 'Write sectors to an image file' is unchecked.
6.6 Choose the logical (not physical) drive where your card is located.
6.7 Make sure that all checkboxes are ticked and click on 'OK'. Once the clone is completed you will have a card which can be used to restore your original ROM.

7. Restore of original Windows Mobile O/S

7.1 Insert the CompactFlash card in your PDA.
7.2 Perform steps 2.2 to 2.8 above.
7.3 Enter the 's2d' command and wait for the ROM to be completely restored from the CompactFlash card to the PDA's ROM.
7.4 Once the console returns the 'USB>' prompt perform a soft-reset and close MultiPort-TTY.

Final comments:

Do note that once you successfully change the language as per steps 4 and 5 above you will have an exact replica of an iPAQ which was released with that language. This means that if HP will release any further ROM updates in the future you will have to use versions which are specific to the one which you flashed your device to (in my example I will have to use English ROM updates from now onwards and not Italian). In order to test this I flashed my device a second time this time with the unmodified softpaq supplied by HP and the utility updated the device whereas before the update utility used to abort because I needed to use an Italian ROM update. With this I assume that all iPAQs are identical and the only thing which makes the international versions different is the software and not the hardware.