diff FC-handset-spec @ 79:468d43c0d8cb

FC-handset-spec: document our plan of using NCR18650B
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 21 Sep 2021 02:29:40 +0000
parents a05195c86d3a
children 3e32484f8832
line wrap: on
line diff
--- a/FC-handset-spec	Sun Sep 19 03:47:19 2021 +0000
+++ b/FC-handset-spec	Tue Sep 21 02:29:40 2021 +0000
@@ -726,7 +726,9 @@
 goes without saying that this battery will be freely removable and replaceable
 by end users.  The specific size, form factor and mAh capacity of this battery
 won't be addressed until later in the project, when we get closer to building
-the actual handset.
+the actual handset.  (2021-09 update: we are now looking at using Panasonic
+NCR18650B as our canonical battery on the Venus board, but we are not yet
+committing to anything for the actual handset.)
 
 Our Calypso+Iota chipset dates from the era when the cellular handset industry
 was transitioning from NiMH to Li-ion batteries, and the Battery Charger
@@ -735,17 +737,32 @@
 society's ideas in so many other ways, I have given thought to the possibility
 of using a NiMH battery instead of Li-ion.  However, the problem with using a
 NiMH battery is that we would be going into completely uncharted territory
-without any guidance.  In the case of Li-ion batteries the charging process is
-well-understood in both theory and practice, and our FCHG logic based on reverse
-engineering of Pirelli's firmware works well both on the same Pirelli and on
-Motorola C1xx family.  In contrast, if we went with NiMH, we would have
-absolutely no guidance in implementing the necessary charging control logic
-(TI's LCC code is useless), causing a huge risk to the project.  Furthermore,
-determining the state of charge from Vbat for the purpose of the bars icon is
-already somewhat challenging even with Li-ion, given the relatively flat middle
-part of the discharge curve - and with NiMH we can only expect the problem to be
-even worse, as their discharge curve is said to be even flatter.  For these
-reasons, we are going to play it safe and stick with Li-ion.
+without any guidance.  Here are some of the difficulties that would arise with
+a NiMH battery:
+
+1) In the case of Li-ion batteries the charging process is well-understood in
+   both theory and practice, and our FCHG logic based on reverse engineering of
+   Pirelli's firmware works well both on the same Pirelli and on Motorola C1xx
+   family.  In contrast, if we went with NiMH, we would have absolutely no
+   guidance in implementing the necessary charging control logic (TI's LCC code
+   is useless), causing a huge risk to the project.
+
+2) When TI designed their canonical battery charging circuit to be controlled
+   via Iota BCI, they assumed a charging power source that puts out somewhere
+   between 6 and 7 V, not 5.0 V - those were the days before USB charging.  For
+   Li-ion batteries charging at around 500 mA, a USB +5V charging power source
+   is good enough, as proven by Pirelli DP-L10.  However, this lower charging
+   voltage may not be enough for NiMH - consider the note in the Iota chip
+   datasheet (TWL3025_SWRS021.pdf) that reads "Ni-MH/Ni-Cd 3-cell battery
+   voltage can reach 5.5 V at the end of a charge cycle."
+
+3) Determining the state of charge from Vbat for the purpose of the bars icon
+   is already somewhat challenging even with Li-ion, given the relatively flat
+   middle part of the discharge curve - and with NiMH we can only expect the
+   problem to be even worse, as their discharge curve is said to be even
+   flatter.
+
+For these reasons, we are going to play it safe and stick with Li-ion.
 
 1.10.1. Battery ID resistors or thermistors
 
@@ -757,13 +774,24 @@
 copied by FIC/Openmoko.  In contrast, cylindrical Li-ion battery cells like
 18650 have no such third terminal.
 
-Because we are deferring our handset battery design to a later project phase
-(not included on the Venus board), we don't know at this time whether or not
-our final handset battery pack will have any ID resistor and/or thermistor
-connected to Iota ADIN1 or ADIN2.  Our current FCHG battery charging driver
-does not touch ADIN1 or ADIN2 at all; if we do end up having an ID resistor or
-thermistor and needing to support it, that custom support will have to be added
-at the time of the actual handset design.
+As of this writing (2021-09), we do not anticipate using any kind of battery ID
+resistors or thermistors, neither on our Venus board nor on our final handset.
+FC Venus will have a provision for bringing out Iota ADIN2 like on Leonardo
+(see section 3.3.1.1), but we do not anticipate actually using it.  The battery
+on FC Venus will most likely be an 18650; on the final handset we will most
+likely either keep the same or use a custom-made flat pouch battery pack, and
+if we go with the latter, it will still most likely only have two terminals.
+
+Our current FCHG battery charging driver does not touch ADIN1 or ADIN2 at all.
+Looking at TI's old PWR reference code and the disassembly of Pirelli's
+firmware, it appears that when mainstream proprietary firmwares do check those
+ID resistors or thermistors on ADIN1 or ADIN2, they only act as artificial
+blockers: the firmware refuses to charge the battery if it sees something it
+doesn't like, as opposed to using data from these sensors to tune or adjust the
+charging process in some positive constructive manner.  In FreeCalypso we stand
+against all such artificial blocking, instead we uphold the principles of user
+empowerment and personal responsibility - thus we do not currently anticipate
+ever implementing any kind of ADIN1 or ADIN2 logic.
 
 1.11. Charging circuit
 
@@ -1424,6 +1452,24 @@
 battery is used, it will also be possible to charge it via Calypso+Iota BCI and
 FreeCalypso FCHG just like in a real handset - see the following section.
 
+Because of the need for battery-specific tuning in FCHG, it will be difficult
+to use "any" 18650 battery for the real-battery mode of operation on FC Venus -
+instead we will be on much more solid footing if we select some specific battery
+model and stick to it.  The Mother's current plan is to use Panasonic NCR18650B
+as our canonical battery.
+
+3.3.1.1. Iota ADIN2 connection
+
+Our previous development boards FCDEV3B and Caramel2 use only pins 1 and 3 on
+the 3-pin Weidmuller battery power input connector - however, TI's Leonardo
+schematics also connect ADIN2 to the otherwise unused middle pin.  Just for the
+sake of flexibility, we are going to replicate this Leonardo-style ADIN2
+connection on our Venus board, allowing the possibility of experimenting with
+battery packs that include some kind of ID resistor or thermistor and provide a
+third terminal for it.  However, as of this writing (2021-09), we do not
+anticipate actually using this functionality - the Mother's current plan is to
+use an 18650 battery that does not provide any kind of third terminal.
+
 3.3.2. USB subsystem
 
 Our Venus development board will include the same USB subsystem as intended for