Flashing the neofreerunner's calypso modem

This is a follow up to an earlier writeup. It describes an alternative and maybe more convenient method for the same goal, as no special cable is necessary. A new distro has been prepared, with Qtmoko v58 as a starting point. It includes loadtools-r2 and both the leo2moko-r1 and moko11 firmware. This distro can be used with the previously described cable method (loadtools on the PC) )as well as the method described here (loadtools on the freerunner). There is now a third article which outlines another option.


Download the calypso-flash distro and then follow the instructions Preparing the SDcard to prepare a small uSDcard. As previously described, the archive is unpacked onto the linux partition and the kernel is moved to the vFat partition. Continue with the earlier instructions, booting from the NOR menu and logging in over ssh. Note that you cannot boot this distro with Qi.

Running loadtools on the freerunner

I advise that all the loadtool commands are run inside a screen session. It's my experience that the ssh connection to my freerunner tends to flake out if the phone is busy. If it does so in the middle of a flash operation, you temporarily have a brick, *unless* the command can continue to run with the ssh session dropped.

root@neo # screen -R -D
root@neo # fc-loadtool -h gta02 /dev/ttySAC0
Sending beacons to /dev/ttySAC0
Toggling /sys/devices/platform/neo1973-pm-gsm.0/power_on
Got beacon response, attempting download
< p command successful, switching to 115200 baud
Sending image payload
.................................................................Sending checksum
< c command successful, sending < b
< b command successful: downloaded image should now be running!

FreeCalypso loadagent running
Loaded via UART 0 (MODEM) at baud rate #0
TCXO clock input autodetected to be 26 MHz

Executing init script k5a3281.init
Script command: w16 fffffb00 00A4
Script command: w16 fffffb02 00A3
Note that the loadtool command has a different device parameter to that used in cable method. Also unlike the cable method, you should not use the mode.sh command, although it is available on this distro if you wish to run loadtools on PC with a cable.

Backing up vital calibration data

As with the cable method:-
flash dump2bin my-flashdump.bin
but there is the additional step of copying the my-flashdump.bin file off the freerunner on to your PC.

Expect the backup to take over 10 minutes. If the ssh connection drops, simply log back in and run the screen -R -D command again.

Flashing the firmware

The firmwares are stored under the /home/root/firmware directory; cd to the appropriate directory before running the loadtools command. There are two available on this distro, /home/root/firmware/moko11 and /home/root/firmware/leo2moko-r1. Start loadtools inside a screen in the appropriate directory; once you have the loadtool prompt, the commands are identical to those used in the cable method, for leo2moko:-

loadtool> flash erase 0 0x300000
loadtool> flash program-m0 gsm-fw.m0
and for moko11:-
loadtool> flash erase 0 0x300000
loadtool> flash program-m0 calypso-moko11.m0
Once again, expect both these flash operations to last over 10 minutes; provided they are run inside a screen, they'll continue to completion if your ssh connection drops.