comparison FC-handset-spec @ 77:da3bb12c2e6f

FC-handset-spec: overhaul of Mother's vision for FC Venus board
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 19 Sep 2021 03:40:13 +0000
parents 04080501911d
children a05195c86d3a
comparison
equal deleted inserted replaced
76:04080501911d 77:da3bb12c2e6f
1300 As of the summer of 2021, FreeCalypso handset development has reached a point 1300 As of the summer of 2021, FreeCalypso handset development has reached a point
1301 where a new development board is desired, to take the place of our current Luna 1301 where a new development board is desired, to take the place of our current Luna
1302 development platform. The newly planned FreeCalypso development board is 1302 development platform. The newly planned FreeCalypso development board is
1303 codenamed Venus, and it is envisioned as serving two goals: 1303 codenamed Venus, and it is envisioned as serving two goals:
1304 1304
1305 1) Many of the hardware features intended for the ultimate FC handset product 1305 1) Our Venus board will be a close-to-final prototype for the actual FC handset,
1306 as described in Chapter 1 can be prototyped on this Venus board; 1306 as close as can be achieved in the physical form factor of a development
1307 board meant to be used "bare" on a lab bench;
1307 1308
1308 2) The board will serve as the ideal firmware development platform, covering all 1309 2) The board will serve as the ideal firmware development platform, covering all
1309 features and options that are listed in the previous chapter and defined as 1310 features and options that are listed in the previous chapter and defined as
1310 being in scope for FC handset firmware. 1311 being in scope for FC handset firmware.
1311 1312
1366 pins are switched into GPIO mode, and we'll be using these GPIOs for LCD 1367 pins are switched into GPIO mode, and we'll be using these GPIOs for LCD
1367 backlight control on both Venus and the final handset. (Our current Luna 1368 backlight control on both Venus and the final handset. (Our current Luna
1368 platform is likewise.) If you need MCSI, then you are doing modem work, not 1369 platform is likewise.) If you need MCSI, then you are doing modem work, not
1369 handset, so use Caramel2 or FCDEV3B. 1370 handset, so use Caramel2 or FCDEV3B.
1370 1371
1371 3.3. RF bands and PCB layout 1372 3.3. Handset vs. development board
1372 1373
1373 The Mother's intent for the Venus board is to stop copying Openmoko's triband 1374 The Mother's vision is that our Venus development board will be fairly close to
1374 PCB layout and instead switch to TI's original Leonardo+ quadband layout, which 1375 a final handset motherboard in terms of included hardware and general layout:
1375 has been recovered from iWOW TR-800 via professional PCB reverse engineering. 1376 on the top side it will feature our LCD, underneath this LCD it will feature our
1376 We will need quadband RF for the final FC Libre Dumbphone handset, thus it would 1377 keypad button set, whereas the bottom side will feature the same two core
1377 be best to switch to it now, starting with Venus. 1378 component clusters (each possibly covered by a shieldcan) as are envisioned for
1378 1379 the final handset: one for the mobile domain (Calypso+RF core) and one for the
1379 3.4. Power supply arrangement 1380 USB domain (FT2232x subsystem of section 1.12). However, in terms of physical
1381 form factor, FC Venus will still be a development board meant to be used "bare"
1382 on a lab bench, and will exhibit the following key differences from the final
1383 handset motherboard:
1384
1385 * The general form factor will be simple rectangular and unconstrained, without
1386 highly complex mechanical design effort that will later be needed for a
1387 handset motherboard that goes into a plastic case.
1388
1389 * Two handset peripheral features will be omitted: the vibrator and the keypad
1390 backlight.
1391
1392 * There will be one additional peripheral just for the fw development platform
1393 role of this board, as opposed to the handset prototype role: the magnetic
1394 buzzer described in section 3.8. JTAG and VSP tap header connectors can also
1395 be regarded as special development-board-only extra peripherals.
1396
1397 * The physical realization of audio interfaces will be a little different from
1398 the final handset and more appropriate for a development board, as detailed
1399 in section 3.7.
1400
1401 * The SIM socket and all developer-user controls and indicators will be located
1402 on the top side of the board.
1403
1404 3.3.1. Power supply or battery connection
1380 1405
1381 FC Venus will have the same orange Weidmuller power input connector as previous 1406 FC Venus will have the same orange Weidmuller power input connector as previous
1382 TI and FreeCalypso development boards C-Sample, D-Sample, Leonardo, FCDEV3B and 1407 TI and FreeCalypso development boards C-Sample, D-Sample, Leonardo, FCDEV3B and
1383 Caramel2. Ready-made VBAT needs to be provided via this connector, fed directly 1408 Caramel2. Ready-made VBAT needs to be provided via this connector, fed directly
1384 to the core chipset and to VBAT-powered peripherals, no on-board power 1409 to the core chipset and to VBAT-powered peripherals, no on-board power
1385 conversion. During development, operation with an AC-mains-powered fixed 3.6 V 1410 conversion. During development, operation with an AC-mains-powered fixed 3.6 V
1386 DC supply is generally much more convenient than a real battery. 1411 DC supply is generally much more convenient than a real battery.
1387 1412
1388 For development and testing of handset battery management in the firmware, and 1413 However, in a departure from our previous development boards, it will also be
1389 for exercising the charging boot path in particular, Iota VCHG needs to be 1414 possible to connect a real Li-ion battery (instead of a fixed supply) to the
1390 brought out like it is on iWOW DSK and FC Caramel2 boards, to be connected with 1415 same connector - the Mother's intent is to use a common off-the-shelf 18650
1391 a jumper wire to +5V pin on the DUART28 USB adapter whenever a "charger plugged" 1416 battery holder and wire it up to the necessary Weidmuller plug. When a real
1392 condition needs to be presented to the chipset. FC Venus will feature a 2x3 pin 1417 battery is used, it will also be possible to charge it via Calypso+Iota BCI and
1393 header with Iota BCI signals as follows: 1418 FreeCalypso FCHG just like in a real handset - see the following section.
1394 1419
1395 VBATS VCCS 1420 3.3.2. USB subsystem
1396 PCHG VCHG 1421
1397 ICTL GND 1422 Our Venus development board will include the same USB subsystem as intended for
1398 1423 the final FC Libre Dumbphone handset, as described in sections 1.11 and 1.12,
1399 Please note that this planned BCI header pinout differs from iWOW DSK and FC 1424 consisting of a USB mini-B interface connector, a charging on/off switch with
1400 Caramel2, which implement the following 2x4 pinout instead: 1425 the charging circuit behind it, and the FT2232x subsystem of section 1.12.
1401 1426
1402 ICTL VCCS 1427 This design is a radical departure from our previous development boards which
1403 PCHG VCHG 1428 bring out the two Calypso UARTs in their raw LVCMOS form, leaving the USB
1404 ADIN2 ADIN1 1429 interface to an external adapter, most recently our own DUART28. In fact, the
1405 GND GND 1430 Mother's original idea for the Venus board was to keep essentially the same
1406 1431 interfaces as on Caramel2, retaining the use of the external DUART28 adapter
1407 The Mother's approach to development and testing of higher-level UI functions 1432 and calling for a potential separate battery+charger board - but then this
1408 dealing with battery management is to use the BSIM feature of our FCHG driver, 1433 design was changed after further reflection.
1409 in which case the board remains powered from a fixed DC supply (no actual 1434
1410 battery) and only VCHG needs to be connected. However, if a need arises to 1435 On our previous modem-centric (as opposed to handset-centric) Calypso
1411 connect an actual battery and an actual Iota-controlled charging circuit, it 1436 development boards, the USB interface was kept separate for the sake of
1412 will be possible: the battery will need to be connected to the orange power 1437 modularity, allowing the two Calypso UARTs to be connected to other entities
1413 input connector, and the control signals for the charging circuit will need to 1438 besides just USB. That design made good sense and continues to make good sense
1414 be connected to the 2x3 header. 1439 for non-handset Calypso modem boards. However, on a handset development board
1415 1440 like FC Venus it becomes much more difficult to think of a realistic use case
1416 The Mother's vision is that if and when we do need to exercise an actual Li-ion 1441 where the two Calypso UARTs (or either one of them) would need to be connected
1417 battery with an actual Iota-controlled charging circuit, we will need to build 1442 to something other than USB, thus this particular modularity becomes much less
1418 a separate battery+charger board that will connect to the power input and BCI 1443 of a value - while the opposite approach of integrating USB provides numerous
1419 control interfaces on the Venus board. That battery+charger board will feature 1444 benefits:
1420 an 18650 battery holder and a +5V charging power source connection, the charging 1445
1421 current path (aside from BCI controls) will be contained entirely in that add-on 1446 * One of the primary benefits of the new Venus board over existing Luna is
1422 board, whereas the battery power interface between Venus and the add-on board 1447 significant reduction in clutter: instead of 3 separate boards (Caramel2 MB,
1423 will carry only the load or discharge current. 1448 LCD and keypad) connected with ribbon cables, there will be just one
1424 1449 integrated board. If we also integrate the functionality of our DUART28C
1425 The reasons for changing the BCI header pinout from iWOW DSK and FC Caramel2 to 1450 adapter, then we reduce clutter even further.
1426 a different one for FC Venus are as follows: 1451
1427 1452 * In the integrated USB arrangement, the Modem UART channel's RI output (coming
1428 * FC Tango (iWOW TR-800) module that forms the core of FC Caramel2 does not 1453 from Calypso GPIO8) will be connected just like in the final handset - see
1429 bring out Iota VBATS as a separate signal - instead it is connected to the 1454 section 1.12.1. OTOH, this signal would have to be omitted if we were to use
1430 VBAT supply inside the module. However, if the charging current measurement 1455 our legacy 10-pin DUART interface and a DUART28 adapter - RI does not fit well
1431 resistor will reside on a separate battery+charger board, then it would be 1456 into that arrangement.
1432 most proper to connect both VBATS and VCCS to the two sides of this resistor, 1457
1433 providing more accurate charging current measurement and CI control loop 1458 * When development is done using an AC-mains-powered fixed DC supply and the
1434 operation. Thus VBATS needs to be added to the BCI header. 1459 BSIM mode in FCHG, there still needs to be a way to present and remove VCHG.
1435 1460 Turning on the charging switch will be more convenient than connecting a
1436 * ADIN1 and ADIN2 won't be needed when using a common off-the-shelf 18650 1461 jumper wire between a VCHG header pin and the USB +5V pin on DUART28.
1437 battery for prototyping - see section 1.10.1 for background information. 1462
1463 * If our Venus board includes complete charging circuits just like the real
1464 handset, operation with an actual battery will become a much more practical
1465 option. Such operation can be very useful for the purpose of giving field
1466 demos away from FreeCalypso HQ: in such field scenarios, having to connect an
1467 AC-mains-powered fixed DC supply may be difficult (limited space, no access
1468 to AC power outlets, limited attention span of the audience), and furthermore,
1469 if the demo is presented to a less technical audience, it will likely feel
1470 more "real" if the phone prototype being demonstrated is powered by a battery
1471 rather than an AC mains adapter. In some cases, the charging process itself
1472 (with standard USB as the charging power source) can be made a part of the
1473 demo.
1474
1475 3.3.2.1. Linux kernel patch requirement
1476
1477 The FT2232x USB subsystem implemented on FC Venus will include the boot control
1478 feature originating from DUART28C, as described in section 1.12.3. This
1479 hardware feature has an implication for developer-users of this board: anyone
1480 wishing to play with a Venus board beyond already-flashed fw (i.e., anyone
1481 wishing to connect the board to a host computer) will need to apply our DUART28C
1482 support patch to the ftdi_sio driver in their Linux kernel; as for other host
1483 OSes beyond Linux, absolutely no support exists currently, thus you would need
1484 to do all of the necessary support-creating work yourself.
1485
1486 The problem with the needed ftdi_sio driver patch is that it has been rejected
1487 by mainline Linux maintainers. The patch is purely additive and non-impacting:
1488 it simply adds support for an entirely new USB device (a new USB VID:PID) that
1489 did not exist before, and has exactly zero impact on anything pre-existing, on
1490 anything outside of this brand-spankin'-new USB device. But the power-wielding
1491 maintainers rejected the patch because it isn't general enough to them, because
1492 it serves only one specific hardware device which they don't wish to support.
1493
1494 The Mother's answer to those Linux maintainers' game of hardball is to play back
1495 a game of my own: our Venus boards will NOT be sold for money, not for any
1496 price, instead they will be given out free of cost to loyal FreeCalypso
1497 supporters. Anyone wishing to receive a Venus board will be required to apply
1498 the non-mainlined ftdi_sio driver patch locally to their own Linux kernel, and
1499 to show proof that they have applied this maintainer-rejected patch as a
1500 condition of receiving their board.
1501
1502 3.3.2.2. Board bring-up order
1503
1504 With the FT2232x USB subsystem integrated on the Venus board, this subsystem
1505 will become the only way to access Calypso UARTs for initial bring-up of a
1506 freshly populated board. Furthermore, our DUART28C-based boot control mechanism
1507 will be the only way to trigger RPWON and nTESTRESET boot controls - there will
1508 also be a PWON button (see section 3.6), but that one is intended for higher-
1509 level end user functions after FC handset fw has been loaded and after all other
1510 bring-up tasks are completed on each board. As a result of these factors, our
1511 FT2232x USB subsystem becomes part of the critical path for board bring-up, and
1512 it will in fact become the very first part to be brought up, before Calypso.
1513
1514 The charging switch will need to be off during board bring-up, and it is
1515 expected to remain off during most development activities on FC Venus, to be
1516 turned on only rarely when exercising the charging function.
1517
1518 3.3.3. Stepping stone toward the final handset
1519
1520 When the time comes to embark on the design of the actual FC Libre Dumbphone
1521 handset, after all necessary fw development work gets done on the Venus
1522 development board, one of the biggest challenges will be the need for close
1523 coordination between electronico-mechanical design of the motherboard PCBA and
1524 ergonomico-mechanical design of the handset case. It is the Mother's hope that
1525 by being as close as possible to the final handset motherboard while subject to
1526 the constraints of a development board, our Venus board will serve as a useful
1527 stepping stone toward the actual handset. When the time comes to hire a
1528 cellphone mechanical design expert to create the mechanical design for our FC
1529 handset, we will present a working Venus board (battery-powered and running
1530 well-polished fw, for proper psychological impact) to our hired mechanical
1531 designer, and hopefully this Venus board reference will work for the purpose of
1532 communicating to that mechanical designer our requirements from the electronics
1533 side, as in how much space is required for all of our functional components,
1534 which will be quite different from the more recent mainstream proprietary
1535 phones.
1536
1537 In terms of electronic circuit details, our final FC Libre Dumbphone handset is
1538 expected to be somewhat different from FC Venus, different enough to call for a
1539 different fw build target, as a matter of fact. However, we expect that in
1540 terms of PCB layout, these electronic circuit differences won't be heavily
1541 disruptive, and we hope that once our hired mechanical designer gives us a
1542 design for the handset, we will then able to transform the PCB layout of FC
1543 Venus into the real handset motherboard.
1544
1545 3.4. RF bands and PCB layout
1546
1547 The Mother's intent for the Venus board is to stop copying Openmoko's triband
1548 PCB layout and instead switch to TI's original Leonardo+ quadband layout, which
1549 has been recovered from iWOW TR-800 via professional PCB reverse engineering.
1550 We will need quadband RF for the final FC Libre Dumbphone handset, thus it would
1551 be best to switch to it now, starting with Venus.
1438 1552
1439 3.5. LCD module and backlight 1553 3.5. LCD module and backlight
1440 1554
1441 The Mother's original intent was to finalize the selection of LCD module for the 1555 The LCD module on FC Venus will be Formike KWH020ST23-F01, the same LCD module
1442 actual handset before embarking on the detailed design (as in schematics, BOM 1556 which we have settled on for the actual FC handset. As of 2021-09, we are in
1443 and layout) of FC Venus, and to implement the final LCD and the final backlight 1557 the process of ordering 100 pcs of this LCD module (the payment has already been
1444 circuit on the Venus board. However, because of the delay in KWH020ST23-F01 LCD 1558 made, and we are waiting for the shipment to clear customs), thus we are now
1445 testing caused by Digi-Key part backorder issues (see section 1.4.2), this plan 1559 past the point of considering different candidate LCD modules. Our chosen
1446 is being modified slightly: the design of FC Venus board is being ungated on the 1560 Formike LCD module is almost perfect for development boards such as FC Venus;
1447 bet that KWH020ST23-F01 LCD module will pass all necessary qualification tests, 1561 the only blemish is that in the absence of additional mechanical restraints, an
1448 but this Venus board design won't be sent out to PCB fab until those LCD tests 1562 elastic force that originates somewhere in the area of the folded-under FPC tail
1449 actually pass. 1563 pushes the bottom of the module upward, away from the PCB, acting against both
1564 gravity and adhesive forces. However, we have a planned workaround: we are
1565 working with a local-to-us mechanical engineering company to produce a custom
1566 retaining bracket; with the addition of this bracket, the mounting of our LCD
1567 module is expected to become secure enough for development board purposes.
1450 1568
1451 The backlight circuit design of section 1.4.4.1, which is hoped to be final, is 1569 The backlight circuit design of section 1.4.4.1, which is hoped to be final, is
1452 being included in the Venus board design. 1570 being included in the Venus board design. Specific LED currents don't need to
1571 be finalized for Venus PCB layout or PCB fabrication; resistor values that set
1572 these currents will only need to be finalized when the time comes to populate
1573 the first fabricated Venus PCBs with components.
1453 1574
1454 3.6. Keypad buttons 1575 3.6. Keypad buttons
1455 1576
1456 The complex mechanical arrangement of keypad buttons that will be needed for the 1577 The Mother's original intent for FC Venus was to punt on the more complex keypad
1457 real handset will NOT be done on the Venus board. Instead there will be a 1578 arrangement that approximates the real handset, instead continuing what we
1458 simple 5x5 matrix of buttons in rows and columns, with silk screen labels 1579 currently have on FC Luna: a "raw" 5x5 matrix of buttons in rows and columns,
1459 indicating the function of each button, matching D-Sample - the same arrangement 1580 with silk screen labels indicating the function of each button, matching TI's
1460 as on our current Luna platform. There will also be 3 out-of-matrix buttons for 1581 D-Sample. However, this plan has been changed upon further reflection - the
1461 PWON, RPWON and RESET. 1582 Mother's new thinking is that FC Venus will be a prototype toward the final
1583 handset, a prototype as close as possible to "the real thing" while staying
1584 within the constraints of a development board, thus the keypad arrangement needs
1585 to be made closer to "real" as well.
1586
1587 The main 21-button keypad described in section 1.5 will need to be implemented
1588 on our Venus board, with the buttons in approximately correct relative
1589 positions, all below the LCD. The buttons will be generic off-the-shelf tactile
1590 switches with finger-accessible actuators, similar to those used on Caramel2 and
1591 on our current Luna keypad add-on, except that SMT parts will need to be used,
1592 in order to not put extra constraints on component placement on the opposite
1593 side of the board. Because we won't have any overlay with button legends, we
1594 will need to put silk screen labels on our PCB next to each button, denoting
1595 logical functions.
1596
1597 Out of the 21 buttons of the main keypad, 20 will fall onto KBC/KBR cross-
1598 points, i.e., they will be "regular" keypad buttons. However, the button in the
1599 END position (the one which is traditionally red, for power on/off and call
1600 hang-up) will be special: in hardware terms it will be the PWON button, both on
1601 FC Venus and on the final handset. This special arrangement exactly follows
1602 TI's canon (D-Sample and predecessors), and has also been followed by the makers
1603 of Pirelli DP-L10.
1604
1605 The 3 side buttons of section 1.6 will also need to be implemented on FC Venus.
1606 The two left side buttons (volume up/down) will be placed on the left side of
1607 our LCD, and the single right side button will be placed on the right side of
1608 our LCD.
1462 1609
1463 There will be no keypad backlight on the Venus board. This secondary backlight 1610 There will be no keypad backlight on the Venus board. This secondary backlight
1464 is not needed for firmware development, as it is not managed separately in our 1611 is not needed for firmware development, as it is not managed separately in our
1465 fw architecture - instead its control will be absorbed into our R2D BLRR control 1612 fw architecture - instead its control will be absorbed into our R2D BLRR control
1466 mechanism on the final handset where this backlight will be added. 1613 mechanism on the final handset where this backlight will be added.
1614
1615 3.6.1. No boot control buttons
1616
1617 The Mother's original idea for FC Venus was to implement pushbutton switches for
1618 all 3 boot controls as in PWON, RPWON and nTESTRESET. However, now that we are
1619 integrating the FT2232x USB subsystem of section 1.12 and the boot control
1620 mechanism of section 1.12.3 as a non-removable part of the Venus board itself,
1621 pushbutton switches for RPWON and RESET are being eliminated, leaving only PWON
1622 in the "END" position in the main keypad.
1467 1623
1468 3.7. Audio interfaces 1624 3.7. Audio interfaces
1469 1625
1470 Corresponding to the 3 audio channels of section 1.7, there will be 3 analog 1626 Corresponding to the 3 audio channels of section 1.7, there will be 3 analog
1471 audio interfaces on FC Venus: two TRRS jacks and one 2-pin header. These audio 1627 audio interfaces on FC Venus: two TRRS jacks and one 2-pin header. These audio
1497 There will be no vibrator on FC Venus - it is a mechanical function which cannot 1653 There will be no vibrator on FC Venus - it is a mechanical function which cannot
1498 be sensibly implemented on a development board meant for use on a lab bench. 1654 be sensibly implemented on a development board meant for use on a lab bench.
1499 Instead our Venus board will feature both LPG and PWL LEDs (i.e., LEDs 1655 Instead our Venus board will feature both LPG and PWL LEDs (i.e., LEDs
1500 controlled by the respective Calypso outputs) exactly like D-Sample, and either 1656 controlled by the respective Calypso outputs) exactly like D-Sample, and either
1501 of these LEDs can be used to simulate vibrator on/off state. 1657 of these LEDs can be used to simulate vibrator on/off state.
1502
1503 3.10. Host computer interface
1504
1505 The host interface model on FC Venus will need to follow that of section 1.12.
1506 More specifically, our Venus board will implement the mobile side of the "wall"
1507 between USB and mobile power domains, complete with all provisions of section
1508 1.12.2 for the mobile side, whereas the USB domain is already implemented on our
1509 DUART28 adapter board. The two domains will be interconnected with a ribbon
1510 cable in the FC Venus lab bench setup. The 10-pin DUART header will have our
1511 standardized FreeCalypso DUART pinout.
1512
1513 Also following the principal design of section 1.12.3, there will be a 3-pin
1514 header on the Venus board bringing out RPWON, nTESTRESET and GND, to be
1515 connected to the boot control header on DUART28C.
1516 1658
1517 4. Motorola C139 port 1659 4. Motorola C139 port
1518 1660
1519 4.1. Background information 1661 4.1. Background information
1520 1662