FreeCalypso > hg > freecalypso-docs
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 |