FreeCalypso > hg > fc-tourmaline
annotate doc/Voice-pseudo-modem @ 216:777698cf6583
r2d_task.c: rm trailing white space
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Sat, 24 Apr 2021 19:58:49 +0000 | 
| parents | a62e5bf88434 | 
| children | 
| rev | line source | 
|---|---|
| 50 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 Back when TI's TCS211 fw existed in the traditional world of phone handset and | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 cellular modem manufacturers, there were only two principal classes of target | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 devices for it: handsets and modems. The former have local UI hardware (LCDs | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 and keypads) and run firmware that works with this UI hw, the latter have no | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 such hw and run firmware that expects to be controlled by an external host via | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 AT commands. | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 But the peculiar circumstances under which our FreeCalypso family of projects | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 operates give rise to a third possibility: what happens if one were to run | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 non-UI-capable firmware that expects control via AT commands on a hardware | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 target device that was originally designed to be an end user phone handset, in | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 our case either Motorola C1xx or Pirelli DP-L10? The result is what I call a | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 voice pseudo-modem (VPM): the phone's LCD stays dark, the buttons do nothing | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 and the device expects to be controlled via AT commands as if it were a modem | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 like the one in GTA01/02 smartphones, but there is no practically usable way to | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 make use of any data services, only voice and SMS, hence my VPM term. | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 It needs to be noted clearly that the VPM hack described in this article is NOT | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 a substitute for proper modem hardware - if your area of interest is Standard | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 Modem functionality (the full set of GSM and GPRS services accessed via AT | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 commands), then you need a proper hardware platform for it, either FCDEV3B or | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 Caramel2. However, support for VPM operation in FreeCalypso exists for the | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 following purposes: | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 * On some hw targets the VPM configuration can be an intermediate stepping stone | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 toward potential future UI-enabled firmware - this situation holds on the | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 C139. | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 * Being able to run FreeCalypso fw in the VPM configuration on Mot C1xx hw that | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 many people already have and that may still be readily and cheaply available | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 makes our firmware accessible to those who are not able to buy new FreeCalypso | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 hardware. | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 * If you have a Pirelli DP-L10 phone (now very rare and hard to get, but were | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 readily available in early 2013 when I started FreeCalypso): while there is | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 unfortunately very little chance of being able to turn it into a practically | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 usable Libre Dumbphone with FreeCalypso (the unwanted extra chips sans docs | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 which we don't know how to power down are a killer), running FreeCalypso fw | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 on the Pirelli in the VPM configuration is so easy and convenient that I do | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 it all the time during development and testing. | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 Playing with FreeCalypso VPM on C1xx phones | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 =========================================== | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 If a Mot C1xx phone is flashed with a FreeCalypso firmware image in the VPM | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 configuration, it will behave as follows: | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 * The LCD will remain dark and the buttons will do nothing no matter what. | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 * If you plug in Motorola's charging adapter (it's a regulated 5 VDC power | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 source, but with a non-USB connector) and you had properly installed the | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 charging config file when creating the aftermarket FFS for FreeCalypso, the | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 battery will charge. When you unplug the charging adapter, if there is no | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 host computer running FC host program rvinterf connected to the phone | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 55 serially, the phone will power off some 15 to 20 s after the charger unplug. | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 * If you press the power button while the phone is off, even momentarily, the | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 phone will power on and boot (with nothing on the LCD as usual), but if the | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 headset jack serial port is not connected to a computer running rvinterf, the | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 firmware will execute a power-off after at most 20 s. | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 * In order to make the phone-turned-VPM do anything useful, you will need to | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 connect the headset jack serial port to a host computer running FC host tools, | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 run rvinterf to keep the phone alive (keep it from automatically powering | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 off), and use FC host utility fc-shell to issue AT commands to it over the | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 RVTMUX channel managed by rvinterf. | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 * The phone will remain on (i.e., the fw won't execute an automatic power-off) | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 for as long as there is either a charging power adapter plugged in or a | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 connected host computer running rvinterf - if there is no charging power, | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 the fw will send periodic keepalive queries to check for the presence of a | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 72 connected rvinterf process. | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 Playing with FreeCalypso VPM on a Pirelli DP-L10 | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 ================================================ | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 There are two ways in which one can play with FC VPM firmware on a Pirelli: | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 * FC VPM fw can be flashed into the phone just like on Mot C1xx. To make this | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 approach sensible, you will also need to craft and install a charging config | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 file that will cause our FCHG driver to initiate the charging process | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 automatically when the battery voltage falls below some sensible threshold, | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 without requiring manual charging start via AT@CHG=1. In this case the | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 reflashed phone will behave like C1xx in the previous section, except that | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 the charging power source and the host computer connection are one and the | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 same in the case of Pirelli's USB. | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 * The other approach is to keep Pirelli's original fw in the flash, let the | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 phone function normally when not in the middle of a FreeCalypso VPM session, | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 and load our FC VPM fw into RAM via fc-xram, making use of this phone's huge | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 RAM that can hold an entire functional fw image without flashing. This is | 
| 
a62e5bf88434
first round of documentation
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 92 the Mother's preferred method. | 
