FreeCalypso > hg > freecalypso-sw
comparison doc/Freerunner-Howto @ 998:7d3f0910aeb2
doc: Firmware_Status written, Freerunner-Howto & Pirelli-Howto updated
| author | Mychaela Falconia <falcon@ivan.Harhan.ORG> |
|---|---|
| date | Sat, 05 Mar 2016 20:50:37 +0000 |
| parents | 4fa939eada22 |
| children | fab048ff04b8 |
comparison
equal
deleted
inserted
replaced
| 997:c7ca69bf84f3 | 998:7d3f0910aeb2 |
|---|---|
| 1 How to play with FreeCalypso GSM firmware on a Neo Freerunner | 1 How to play with FreeCalypso GSM firmware on a Neo Freerunner |
| 2 ============================================================= | 2 ============================================================= |
| 3 | 3 |
| 4 Aside from the half-source leo2moko fw we produced back in 2013-10 (you can | 4 We have two entirely different firmware offerings for the Freerunner: |
| 5 read all about that one at www.freecalypso.org/leo2moko/), we don't have a | |
| 6 working free GSM firmware version for the Freerunner yet. What we do have | |
| 7 currently is experimental code that can be built into an image that can be | |
| 8 flashed into a GTA02 modem - but it doesn't really work yet. | |
| 9 | 5 |
| 10 If you would like to play with our experimental code on your Neo FR and maybe | 6 1. Leo2moko fw produced back in 2013-10: this is the only one suitable for |
| 11 help us make it work, here are the instructions: | 7 end users. We also have leo2moko-debug which is a slightly hacked-up |
| 8 version of leo2moko with some additional debug features for developers; | |
| 9 this version is for developers only; end users should stick with the | |
| 10 original leo2moko-r1 aka moko12 from 2013-10. | |
| 11 | |
| 12 2. The work-in-progress full-source gcc-built FC GSM fw can be built for | |
| 13 multiple targets, and the gtamodem target is one of them - the original | |
| 14 one, in fact. | |
| 15 | |
| 16 The flash+SRAM chip which FIC/Openmoko populated in their modems provides | |
| 17 plenty enough RAM for the firmware's data space requirements, but not enough | |
| 18 to run a complete firmware code image entirely from RAM, hence whichever fw | |
| 19 version you would like to exercise, you need to flash it. There are two ways | |
| 20 to flash modem firmware images in these smartphones: from inside the phone | |
| 21 (from the application processor) or externally through a special serial cable | |
| 22 inserted into the analog headset jack. The internal method is intended only | |
| 23 for end users flashing released production-quality images; developers and | |
| 24 tinkerers are expected to use the serial cable method. | |
| 25 | |
| 26 The serial cable wiring requirements for the GTA02 are the same as for Mot C1xx | |
| 27 phones, thus the same cable can be used for both. The FreeCalypso project has | |
| 28 endorsed UberWaves as our official vendor for serial cables; George at | |
| 29 UberWaves now makes serial cables that are specifically certified for use with | |
| 30 FreeCalypso. If you would like to order one, email uberwaves@gmail.com. | |
| 31 | |
| 32 Please see the Firmware_Status write-up for the current status of our full- | |
| 33 source gcc-built firmware. As you can read there, this fw is currently nowhere | |
| 34 near being able to replace leo2moko. Therefore, if you are going to flash our | |
| 35 gcc-built gsm-fw into your FR's modem, we expect that you are using your FR as | |
| 36 a poor man's substitute for the not-yet-built FCDEV3B (a board we seek to build | |
| 37 specifically for developers and not for end users), and are NOT expecting this | |
| 38 experimental work-in-progress modem fw to work together with user-oriented | |
| 39 application processor software like QtMoko. | |
| 40 | |
| 41 If you would like to play with our experimental gcc-built gsm-fw using a GTA02 | |
| 42 modem as the hw platform, here are the instructions: | |
| 12 | 43 |
| 13 1. Build the firmware in the gtamodem-gsm configuration - see the Compiling | 44 1. Build the firmware in the gtamodem-gsm configuration - see the Compiling |
| 14 document for more details; | 45 document for more details; |
| 15 | 46 |
| 16 2. You should get a flashImage.bin image built; now you need to flash it into | 47 2. You should get a flashImage.bin image built; now you need to flash it into |
| 36 | 67 |
| 37 Once you have flashed our experimental fw into your modem, you can power-cycle | 68 Once you have flashed our experimental fw into your modem, you can power-cycle |
| 38 the modem and see the new fw boot. You should have the serial cable connected, | 69 the modem and see the new fw boot. You should have the serial cable connected, |
| 39 the serial channel enabled from the Freerunner's AP side and either rvtdump or | 70 the serial channel enabled from the Freerunner's AP side and either rvtdump or |
| 40 rvinterf running on your PC or other development machine when you first power | 71 rvinterf running on your PC or other development machine when you first power |
| 41 your modem up with the experimental fw in it: this way you will see whether the | 72 your modem up with the experimental fw in it: this way you will see the debug |
| 42 fw boots successfully or crashes. If it does boot without crashing (whether or | 73 output as the firmware boots up. |
| 43 not it does seems to depend on some factors which we have yet to understand), | 74 |
| 44 you will get an AT command interface on the other UART going to the Freerunner's | 75 Once the firmware has booted, it needs to be controlled via AT commands. The |
| 45 AP - now go ahead and play from there. :) | 76 present fw presents its AT command interface on two channels on this target: on |
| 77 the MODEM UART going to the Freerunner's application processor and via RVTMUX. | |
| 78 At the present stage of development, we highly recommend that you avoid running | |
| 79 any GSM-driving software on the AP and exercise our work-in-progress fw solely | |
| 80 through the external serial interface on the headset jack, using rvinterf and | |
| 81 fc-shell. The standard AT command interface on the dedicated MODEM UART is a | |
| 82 feature which we plan to address properly only when we build our planned FCDEV3B | |
| 83 hardware, which will bring both UARTs out to the external host. | |
| 84 | |
| 85 Assuming that you already have rvinterf running in a terminal window (you should | |
| 86 have started it before you gave the modem power-on command from the AP side), | |
| 87 to exercise our firmware further, you will need to open another terminal window | |
| 88 on your driving PC/laptop and run fc-shell. This program will connect to the | |
| 89 already running rvinterf process via a local socket, and it will enable you to | |
| 90 send various commands to the running fw on the target, the most important ones | |
| 91 being standard AT commands. Send the following sequence of AT commands to | |
| 92 bring up GSM functionality: | |
| 93 | |
| 94 AT%SLEEP=2 -- disable deep sleep (doesn't work yet) | |
| 95 AT+CMEE=2 -- enable verbose error responses | |
| 96 AT+CFUN=1 -- enable radio and SIM interfaces | |
| 97 AT+COPS=0 -- register to the default GSM network | |
| 98 | |
| 99 Our fw is currently able to exercise all SIM interface functions (at least the | |
| 100 obvious ones which I've tested), register with a live commercial GSM network | |
| 101 using a legitimate SIM, and send and receive SMS using standard GSM 07.05 AT | |
| 102 commands. Voice calls don't work yet: you can dial a MO call with the ATD | |
| 103 command and you can place a MT call to the device under test from the network | |
| 104 side and then answer it with ATA, these calls connect successfully, but the | |
| 105 voice audio fails to pass through: nothing but noise is heard in the earpiece | |
| 106 speaker. See the Firmware_Status write-up for more information. | |
| 46 | 107 |
| 47 To reflash your modem back to stable and working leo2moko aka moko12, execute | 108 To reflash your modem back to stable and working leo2moko aka moko12, execute |
| 48 the following fc-loadtool commands: | 109 the following fc-loadtool commands: |
| 49 | 110 |
| 50 flash erase 0 0x230000 | 111 flash erase 0 0x230000 |
