changeset 376:3f1a587b3a84

doc/Voice-pseudo-modem written
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 13 Jan 2018 00:40:14 +0000
parents e80e43185ca1
children db0874a11f57
files doc/Handset-goal doc/Voice-pseudo-modem
diffstat 2 files changed, 130 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/doc/Handset-goal	Fri Jan 12 07:22:16 2018 +0000
+++ b/doc/Handset-goal	Sat Jan 13 00:40:14 2018 +0000
@@ -27,9 +27,9 @@
 
 In FreeCalypso we have developed our own battery charging and discharge
 monitoring driver (FCHG) that works on Mot C1xx and Pirelli DP-L10 phones in
-the "voice pseudo-modem" configuration (see doc/Voice-pseudo-modem), but we
-still have the problem of the UI, namely, the lack of one that is practically
-usable.
+the "voice pseudo-modem" configuration (see the Voice-pseudo-modem article),
+but we still have the problem of the UI, namely, the lack of one that is
+practically usable.
 
 Because TI were in the business of making and selling chipsets rather than
 complete phones, proper phone UI development was something they left to their
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/Voice-pseudo-modem	Sat Jan 13 00:40:14 2018 +0000
@@ -0,0 +1,127 @@
+Back when TI's TCS211 fw existed in the traditional world of phone handset and
+cellular modem manufacturers, there were only two principal classes of target
+devices for it: handsets and modems.  The former have local UI hardware (LCDs
+and keypads) and run firmware that works with this UI hw, the latter have no
+such hw and run firmware that expects to be controlled by an external host via
+AT commands.
+
+But the peculiar circumstances under which our FreeCalypso family of projects
+operates give rise to a third possibility: what happens if one were to run
+non-UI-capable firmware that expects control via AT commands on a hardware
+target device that was originally designed to be an end user phone handset, in
+our case either Motorola C1xx or Pirelli DP-L10?  The result is what I call a
+voice pseudo-modem (VPM): the phone's LCD stays dark, the buttons do nothing
+and the device expects to be controlled via AT commands as if it were a modem
+like the one in GTA01/02 smartphones, but there is no practically usable way to
+make use of any data services, only voice and SMS, hence my VPM term.
+
+It needs to be noted clearly that the VPM hack described in this article is NOT
+a substitute for proper modem hardware - if your area of interest is Standard
+Modem functionality (the full set of GSM and GPRS services accessed via AT
+commands), then you need a proper hardware platform for it, such as our FCDEV3B
+hardware product.  However, support for VPM operation in FreeCalypso exists for
+the following purposes:
+
+* On some hw targets the VPM configuration can be an intermediate stepping stone
+  toward potential future UI (see the Handset-goal article) - this situation
+  holds on the C139.
+
+* Being able to run FreeCalypso fw in the VPM configuration on Mot C1xx hw that
+  many people already have and that may still be readily and cheaply available
+  makes our firmware accessible to those who are not able to afford our
+  expensive FCDEV3B hardware.
+
+* If you have a Pirelli DP-L10 phone (now very rare and hard to get, but were
+  readily available in early 2013 when I started FreeCalypso): while there is
+  unfortunately very little chance of being able to turn it into a practically
+  usable Libre Dumbphone with FreeCalypso (the unwanted extra chips sans docs
+  which we don't know how to power down are a killer), running FreeCalypso fw
+  on the Pirelli in the VPM configuration is so easy and convenient that I do
+  it all the time during development and testing.
+
+Building firmware for VPM operation
+===================================
+
+The following two firmware build configurations (in the ./configure.sh sense)
+are appropriate for VPM usage:
+
+hybrid-vpm	This is the TCS2/TCS3 hybrid config (see the Modem-configs
+		article) that has all data services (CSD, fax and GPRS)
+		disabled and FCHG (new FreeCalypso battery charging driver)
+		enabled.  The removal of data services code makes the firmware
+		image size and its RAM usage significantly smaller than all
+		other configurations, making hybrid-vpm the smallest of all
+		FC Magnetite firmware configs.
+
+l1reconst-chg	This is a variant of the stable l1reconst config (again, see
+		the Modem-configs article) that has our FCHG battery charging
+		driver enabled.  Because this config uses the TCS211 blob
+		version of the G23M PS, data services cannot be disabled, and
+		the associated code sits in the firmware image as dead weight.
+		Thus this l1reconst-chg config produces much heavier fw images
+		than hybrid-vpm, and should only be used when you suspect a bug
+		in the new TCS3 G23M or ACI code and would like to run the old
+		TCS2 version for comparison.
+
+Mot C139/140 phones have enough flash and RAM to run the l1reconst-chg config
+(with data services code as non-exercisable dead weight), but the more basic
+C11x/12x models (the ones with black&white LCDs) have smaller memories, and the
+only FC Magnetite config that is small enough to fit into their tiny flash and
+XRAM capacity is hybrid-vpm.  As of this writing there is no official support
+for the C11x target yet, but it is currently under investigation, now that we
+have a functional firmware config that is small enough to fit.
+
+Playing with FreeCalypso VPM on C1xx phones
+===========================================
+
+If a Mot C11x phone is flashed with a FreeCalypso firmware image in the VPM
+configuration (see C139-Howto for the messy details of how to do it), it will
+behave as follows:
+
+* The LCD will remain dark and the buttons will do nothing no matter what.
+
+* If you plug in Motorola's charging adapter (it's a regulated 5 VDC power
+  source, but with a non-USB connector) and you had properly installed the
+  charging config file when creating the aftermarket FFS for FreeCalypso, the
+  battery will charge.  When you unplug the charging adapter, if there is no
+  host computer running FC host program rvinterf connected to the phone
+  serially, the phone will power off some 60 to 80 s after the charger unplug.
+
+* If you press the power button while the phone is off, even momentarily, the
+  phone will power on and boot (with nothing on the LCD as usual), but if the
+  headset jack serial port is not connected to a computer running rvinterf, the
+  firmware will execute a power-off after at most 80 s.
+
+* In order to make the phone-turned-VPM do anything useful, you will need to
+  connect the headset jack serial port to a host computer running FC host tools,
+  run rvinterf to keep the phone alive (keep it from automatically powering
+  off), and use FC host utility fc-shell to issue AT commands to it over the
+  RVTMUX channel managed by rvinterf.
+
+* The phone will remain on (i.e., the fw won't execute an automatic power-off)
+  for as long as there is either a charging power adapter plugged in or a
+  connected host computer running rvinterf - if there is no charging power,
+  the fw will send periodic keepalive queries to check for the presence of a
+  connected rvinterf process.
+
+Playing with FreeCalypso VPM on a Pirelli DP-L10
+================================================
+
+There are two ways in which one can play with FC VPM firmware on a Pirelli:
+
+* FC VPM fw can be flashed into the phone just like on Mot C1xx.  To make this
+  approach sensible, you will also need to craft and install a charging config
+  file that will cause our FCHG driver to initiate the charging process
+  automatically when the battery voltage falls below some sensible threshold,
+  without requiring manual charging start via AT@CHG=1.  In this case the
+  reflashed phone will behave like C1xx in the previous section, except that
+  the charging power source and the host computer connection are one and the
+  same in the case of Pirelli's USB.
+
+* The other approach is to keep Pirelli's original fw in the flash, let the
+  phone function normally when not in the middle of a FreeCalypso VPM session,
+  and load our FC VPM fw into RAM via fc-xram, making use of this phone's huge
+  RAM that can hold an entire functional fw image without flashing.  This is
+  the Mother's preferred method.
+
+See the Pirelli-Howto article for the details.