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