comparison doc/Voice-pseudo-modem @ 376:3f1a587b3a84

doc/Voice-pseudo-modem written
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 13 Jan 2018 00:40:14 +0000
parents
children 7bdd370f6f59
comparison
equal deleted inserted replaced
375:e80e43185ca1 376:3f1a587b3a84
1 Back when TI's TCS211 fw existed in the traditional world of phone handset and
2 cellular modem manufacturers, there were only two principal classes of target
3 devices for it: handsets and modems. The former have local UI hardware (LCDs
4 and keypads) and run firmware that works with this UI hw, the latter have no
5 such hw and run firmware that expects to be controlled by an external host via
6 AT commands.
7
8 But the peculiar circumstances under which our FreeCalypso family of projects
9 operates give rise to a third possibility: what happens if one were to run
10 non-UI-capable firmware that expects control via AT commands on a hardware
11 target device that was originally designed to be an end user phone handset, in
12 our case either Motorola C1xx or Pirelli DP-L10? The result is what I call a
13 voice pseudo-modem (VPM): the phone's LCD stays dark, the buttons do nothing
14 and the device expects to be controlled via AT commands as if it were a modem
15 like the one in GTA01/02 smartphones, but there is no practically usable way to
16 make use of any data services, only voice and SMS, hence my VPM term.
17
18 It needs to be noted clearly that the VPM hack described in this article is NOT
19 a substitute for proper modem hardware - if your area of interest is Standard
20 Modem functionality (the full set of GSM and GPRS services accessed via AT
21 commands), then you need a proper hardware platform for it, such as our FCDEV3B
22 hardware product. However, support for VPM operation in FreeCalypso exists for
23 the following purposes:
24
25 * On some hw targets the VPM configuration can be an intermediate stepping stone
26 toward potential future UI (see the Handset-goal article) - this situation
27 holds on the C139.
28
29 * Being able to run FreeCalypso fw in the VPM configuration on Mot C1xx hw that
30 many people already have and that may still be readily and cheaply available
31 makes our firmware accessible to those who are not able to afford our
32 expensive FCDEV3B hardware.
33
34 * If you have a Pirelli DP-L10 phone (now very rare and hard to get, but were
35 readily available in early 2013 when I started FreeCalypso): while there is
36 unfortunately very little chance of being able to turn it into a practically
37 usable Libre Dumbphone with FreeCalypso (the unwanted extra chips sans docs
38 which we don't know how to power down are a killer), running FreeCalypso fw
39 on the Pirelli in the VPM configuration is so easy and convenient that I do
40 it all the time during development and testing.
41
42 Building firmware for VPM operation
43 ===================================
44
45 The following two firmware build configurations (in the ./configure.sh sense)
46 are appropriate for VPM usage:
47
48 hybrid-vpm This is the TCS2/TCS3 hybrid config (see the Modem-configs
49 article) that has all data services (CSD, fax and GPRS)
50 disabled and FCHG (new FreeCalypso battery charging driver)
51 enabled. The removal of data services code makes the firmware
52 image size and its RAM usage significantly smaller than all
53 other configurations, making hybrid-vpm the smallest of all
54 FC Magnetite firmware configs.
55
56 l1reconst-chg This is a variant of the stable l1reconst config (again, see
57 the Modem-configs article) that has our FCHG battery charging
58 driver enabled. Because this config uses the TCS211 blob
59 version of the G23M PS, data services cannot be disabled, and
60 the associated code sits in the firmware image as dead weight.
61 Thus this l1reconst-chg config produces much heavier fw images
62 than hybrid-vpm, and should only be used when you suspect a bug
63 in the new TCS3 G23M or ACI code and would like to run the old
64 TCS2 version for comparison.
65
66 Mot C139/140 phones have enough flash and RAM to run the l1reconst-chg config
67 (with data services code as non-exercisable dead weight), but the more basic
68 C11x/12x models (the ones with black&white LCDs) have smaller memories, and the
69 only FC Magnetite config that is small enough to fit into their tiny flash and
70 XRAM capacity is hybrid-vpm. As of this writing there is no official support
71 for the C11x target yet, but it is currently under investigation, now that we
72 have a functional firmware config that is small enough to fit.
73
74 Playing with FreeCalypso VPM on C1xx phones
75 ===========================================
76
77 If a Mot C11x phone is flashed with a FreeCalypso firmware image in the VPM
78 configuration (see C139-Howto for the messy details of how to do it), it will
79 behave as follows:
80
81 * The LCD will remain dark and the buttons will do nothing no matter what.
82
83 * If you plug in Motorola's charging adapter (it's a regulated 5 VDC power
84 source, but with a non-USB connector) and you had properly installed the
85 charging config file when creating the aftermarket FFS for FreeCalypso, the
86 battery will charge. When you unplug the charging adapter, if there is no
87 host computer running FC host program rvinterf connected to the phone
88 serially, the phone will power off some 60 to 80 s after the charger unplug.
89
90 * If you press the power button while the phone is off, even momentarily, the
91 phone will power on and boot (with nothing on the LCD as usual), but if the
92 headset jack serial port is not connected to a computer running rvinterf, the
93 firmware will execute a power-off after at most 80 s.
94
95 * In order to make the phone-turned-VPM do anything useful, you will need to
96 connect the headset jack serial port to a host computer running FC host tools,
97 run rvinterf to keep the phone alive (keep it from automatically powering
98 off), and use FC host utility fc-shell to issue AT commands to it over the
99 RVTMUX channel managed by rvinterf.
100
101 * The phone will remain on (i.e., the fw won't execute an automatic power-off)
102 for as long as there is either a charging power adapter plugged in or a
103 connected host computer running rvinterf - if there is no charging power,
104 the fw will send periodic keepalive queries to check for the presence of a
105 connected rvinterf process.
106
107 Playing with FreeCalypso VPM on a Pirelli DP-L10
108 ================================================
109
110 There are two ways in which one can play with FC VPM firmware on a Pirelli:
111
112 * FC VPM fw can be flashed into the phone just like on Mot C1xx. To make this
113 approach sensible, you will also need to craft and install a charging config
114 file that will cause our FCHG driver to initiate the charging process
115 automatically when the battery voltage falls below some sensible threshold,
116 without requiring manual charging start via AT@CHG=1. In this case the
117 reflashed phone will behave like C1xx in the previous section, except that
118 the charging power source and the host computer connection are one and the
119 same in the case of Pirelli's USB.
120
121 * The other approach is to keep Pirelli's original fw in the flash, let the
122 phone function normally when not in the middle of a FreeCalypso VPM session,
123 and load our FC VPM fw into RAM via fc-xram, making use of this phone's huge
124 RAM that can hold an entire functional fw image without flashing. This is
125 the Mother's preferred method.
126
127 See the Pirelli-Howto article for the details.