https://wiki.pine64.org/api.php?action=feedcontributions&user=Olf&feedformat=atomPINE64 - User contributions [en]2024-03-29T10:41:23ZUser contributionsMediaWiki 1.37.1https://wiki.pine64.org/index.php?title=PinePhone_v1.2b&diff=8189PinePhone v1.2b2020-11-05T02:53:54Z<p>Olf: </p>
<hr />
<div>The PinePhone v1.2b is a hardware revision of the PinePhone that started shipping in Q4 2020.<br />
<br />
This page contains information and resources which are specific to the v1.2b revision of the PinePhone. For other revisions or for resources related to all PinePhone revisions, see [[PinePhone#Hardware revisions]].<br />
<br />
== Schematics ==<br />
* [https://files.pine64.org/doc/PinePhone/PinePhone%20v1.2b%20Released%20Schematic.pdf Hardware schematic v1.2b] (for the Manjaro Community Edition)<br />
<br />
== Changes from v1.2a ==<br />
* A bug was fixed, where connecting a VBUS powered device lowered the screen brightness (resistor R1318 changed to NC).<br />
<br />
== Known issues == <br />
The backlight issue of v1.2 is still present, see [[PinePhone v1.2#Backlight]].<br />
<br />
<br />
[[Category:PinePhone]]</div>Olfhttps://wiki.pine64.org/index.php?title=PinePhone_v1.2&diff=8188PinePhone v1.22020-11-05T02:52:57Z<p>Olf: </p>
<hr />
<div>The PinePhone v1.2 is a hardware revision of the PinePhone that was shipped in 2020 as UBports Community Edition.<br />
<br />
This page contains information and resources which are specific to the UBports Community Edition (v1.2 PCB) revision of the PinePhone. For other revisions or for resources related to all PinePhone revisions, see [[PinePhone#Hardware revisions]].<br />
<br />
== Schematics ==<br />
<br />
* [http://files.pine64.org/doc/PinePhone/PinePhone%20v1.2%20Released%20Schematic.pdf Hardware schematic v1.2] (2020-03-10, for the UBports Community Edition)<br />
<br />
== Changes from v1.1 ==<br />
<br />
The v1.2 mainboard revision changes the routing of several GPIOs to fix bugs and to improve power management. Therefore, it needs an updated device tree. The state of PL6 at boot can be used to distinguish between v1.1 (it can be pulled high) and v1.2 (it will remain low).<br />
<br />
# The WiFi module's <tt>CHIP_EN</tt> input (connected to the kill switch) is now pulled down, so the WiFi will turn off reliably when the switch is off.<br />
# PL2 is now connected to the WiFi module's reset pin, allowing the WiFi to be turned off or reset in software.<br />
# The magnetometer's <tt>DRDY</tt> pin is now connected to PB1, allowing interrupt-driven periodic sensor readings.<br />
# <tt>LINEOUTP</tt> is again connected to the speaker amplifier's INP input (like in v1.0), increasing the SNR of the rear speaker.<br />
# PH7 is now connected to the modem's <tt>AP_READY</tt> input (instead of <tt>WAKEUP_IN</tt>), allowing the modem to buffer URCs (interrupts) while the phone is asleep.<br />
# The modem's <tt>RI</tt> output and <tt>DTR</tt> input had their GPIOs swapped between PL6 and PB2, so the <tt>RI</tt> signal can be detected without powering the main pin controller.<br />
# Both PL9 and <tt>VBUS_CTRL</tt> (from the ANX7688) are now connected to <tt>N_VBUSEN</tt> on the PMIC. This causes the PMIC to automatically stop drawing power from the USB port when supplying power to a USB-OTG peripheral. It also allows the ANX7688 to automatically control the direction of current flowing through the USB port.<br />
# As part of the previous change, the ANX7688's reset input was moved to PD6; this pin previously controlled the USB OTG power.<br />
# Some of the regulators supplying the ANX7688 were rearranged, to reduce power consumption when the USB port is not connected and not being used to transmit video.<br />
# As part of the previous change, PD11 now controls the ANX7688's 1v0 digital power domain.<br />
# The modem's <tt>STATUS</tt> output is now connected to PH9, allowing the modem on/off state to be visible in software (note: this only works while the modem is powered). Since it is no longer connected to PB3, reading <tt>STATUS</tt> no longer turns the modem on.<br />
# The modem no longer has access to the I2C bus containing the sensors.<br />
# <tt>HBIAS</tt> is now connected to the headphone jack.<br />
<br />
== Known issues ==<br />
<br />
=== Backlight ===<br />
<br />
Backlight LED current regulation depends on gpio0-ldo voltage stability due to feedback voltage from current sensing resistor being modified via SoC's PWM pin and pullup resistor to gpio0-ldo. gpio0-ldo also powers the CTP controller and light/proximity sensor, among other things. When backlight brightness is very low and the CTP controller actively communicates on the I2C bus the backlight blinks heavily. It's not a very good idea to tie boost converter's current regulating feedback circuit to the potential source of noise, especially since the noise will have much larger effect when the backlight LED current is low. It's possible this can be mitigated if C1110 can be raised to 22-47uF range, or by changing the resistor values in the feedback circuit.<br />
<br />
PWM duty cycle for the lowest brightness of the backlight is also not very predictable, varying from 7-20% (tested with a small sample size of 2 devices). Therefore it's not possible to come up with a single device tree brightness settings that will work for everyone, requiring per-device calibration.<br />
<br />
On PinePhone 1.0, this was not the case, PWM signal was directly fed to the CE pin of the regulator, and lowest brightness setting seems more stable. On the other hand, the lowest achievable brightness was brighter than on 1.1+.<br />
<br />
Additionally there is also another backlight issue, where the brightness is lower when connecting a VBUS powered device, https://xnux.eu/log/#022.<br />
<br />
=== USB ===<br />
The USB-C CC pins are pulled to the GND by AW3512 (VCONN switches) when VCONN is off. This issue prevents cable plug/orientation detection and USB-PD communication. ANX always sees cable as plugged even if none is plugged. There's no SW workaround for automatic detection of cable plug or power role.<br />
<br />
The issue was was fixed with revision 1.2a. See [[PinePhone_1.2_VCONN_Hardware_Fix]] for details and an instruction about how to do the hardware fix.<br />
<br />
In SW this can only be worked around by manual selection of PinePhone's data and power role by the user.<br />
<br />
Hardware workaround is to desolder U1305 and U1309 switches (BGA like packages). This will void the VCONN control, but it will release the CC pins for their proper connection detection and negotiation roles (see https://megous.com/dl/tmp/pp-usbc-fix.jpg).<br />
<br />
Hardware fix is to replace AW3512 with a variant of the chip that preserves the EN signal polarity and that doesn't have the "quick discharge function" that ties the output to the GND via a 75 Ohm resistor when the switch is OFF. User ''mozzwald'' used NCP334FCT2G as a replacement.<br />
<br />
<br />
[[Category:PinePhone]]</div>Olfhttps://wiki.pine64.org/index.php?title=PinePhone_v1.2a&diff=8187PinePhone v1.2a2020-11-05T02:51:56Z<p>Olf: </p>
<hr />
<div>The PinePhone v1.2a is a hardware revision of the PinePhone that started shipping in Q3 2020.<br />
<br />
This page contains information and resources which are specific to the v1.2a revision of the PinePhone. For other revisions or for resources related to all PinePhone revisions, see [[PinePhone#Hardware revisions]].<br />
<br />
== Schematics ==<br />
* [http://files.pine64.org/doc/PinePhone/PinePhone%20v1.2a%20Released%20Schematic.pdf Hardware schematic v1.2a] (2020-06-08, for Community Edition: postmarketOS)<br />
<br />
== Changes from v1.2 ==<br />
* A thermal pad was added to the SoC, and a internal thermal foil was added which covers the metal shielding and thermal pad on the motherboard and is in direct contact with the LCD backplane.<br />
* Fixed a rectangular dead spot of the touchscreen under the speaker grill<br />
* Added thermal foil to back cover<br />
* Antenna changes<br />
* USB-C CC fix for video out and OTG functionality<br />
<br />
== Known issues == <br />
<br />
The backlight issue of v1.2 is still present, see [[PinePhone v1.2#Backlight]]. There is also another backlight issue, where the brightness is lower when connecting a VBUS powered device, https://xnux.eu/log/#022.<br />
<br />
<br />
[[Category:PinePhone]]</div>Olfhttps://wiki.pine64.org/index.php?title=PinePhone_v1.0_-_Dev&diff=8186PinePhone v1.0 - Dev2020-11-05T02:50:25Z<p>Olf: Link to correct subsection</p>
<hr />
<div>The PinePhone v1.0 is the developer hardware revision of the PinePhone.<br />
<br />
This page contains resources which are exclusive to the 1.0 revision of the PinePhone. For other revisions, or for resources related to all PinePhone revisions, see [[PinePhone#Hardware revisions]].<br />
<br />
== Schematic ==<br />
* [https://wiki.pine64.org/images/3/30/PinePhone_Schematic_v1.0_20190708.pdf PinePhone v1.0 Schematic 20190708]<br />
<br />
* [https://wiki.pine64.org/images/4/41/PinePhone_mainboard_v1.0_component_placement_top.pdf Pinephone V1.0 Mainboard Top Layer Silkscreen]<br />
* [https://wiki.pine64.org/images/0/09/PinePhone_mainboard_v1.0_component_placement_bottom.pdf Pinephone V1.0 Mainboard Bottom Layer Silkscreen]<br />
* [https://wiki.pine64.org/images/d/df/PinePhone_daughterboard_v1.0_component_placement_top.pdf Pinephone V1.0 Daughterboard Top Layer Silkscreen]<br />
* [https://wiki.pine64.org/images/9/9f/PinePhone_daughterboard_v1.0_component_placement_bottom.pdf Pinephone V1.0 Daughterboard Bottom Layer Silkscreen]<br />
<br />
== Changes from Don't Be Evil ==<br />
<br />
<br />
== Known issues ==<br />
<br />
See [[PinePhone_v1.1_-_Braveheart#Known_issues|the known issues with v1.1 (Braveheart)]], which are all carried forward from v1.0.<br />
<br />
<br />
[[Category:PinePhone]]</div>Olfhttps://wiki.pine64.org/index.php?title=PinePhone_v1.2a&diff=8185PinePhone v1.2a2020-11-05T02:36:51Z<p>Olf: Fix fix.</p>
<hr />
<div>The PinePhone v1.2a is a hardware revision of the PinePhone that started shipping in Q3 2020.<br />
<br />
This page contains information and resources which are specific to the v1.2a revision of the PinePhone. For other revisions or for resources related to all PinePhone revisions, see [https://wiki.pine64.org/wiki/PinePhone#Hardware_revisions PinePhone#Hardware revisions].<br />
<br />
== Schematics ==<br />
* [http://files.pine64.org/doc/PinePhone/PinePhone%20v1.2a%20Released%20Schematic.pdf Hardware schematic v1.2a] (2020-06-08, for Community Edition: postmarketOS)<br />
<br />
== Changes from v1.2 ==<br />
* A thermal pad was added to the SoC, and a internal thermal foil was added which covers the metal shielding and thermal pad on the motherboard and is in direct contact with the LCD backplane.<br />
* Fixed a rectangular dead spot of the touchscreen under the speaker grill<br />
* Added thermal foil to back cover<br />
* Antenna changes<br />
* USB-C CC fix for video out and OTG functionality<br />
<br />
== Known issues == <br />
<br />
The backlight issue of v1.2 is still present, see [[PinePhone v1.2#Backlight]]. There is also another backlight issue, where the brightness is lower when connecting a VBUS powered device, https://xnux.eu/log/#022.<br />
<br />
<br />
[[Category:PinePhone]]</div>Olfhttps://wiki.pine64.org/index.php?title=PinePhone_v1.2b&diff=8184PinePhone v1.2b2020-11-05T02:36:19Z<p>Olf: Fix fix.</p>
<hr />
<div>The PinePhone v1.2b is a hardware revision of the PinePhone that started shipping in Q4 2020.<br />
<br />
This page contains information and resources which are specific to the v1.2b revision of the PinePhone. For other revisions or for resources related to all PinePhone revisions, see [https://wiki.pine64.org/wiki/PinePhone#Hardware_revisions PinePhone#Hardware revisions].<br />
<br />
== Schematics ==<br />
* [https://files.pine64.org/doc/PinePhone/PinePhone%20v1.2b%20Released%20Schematic.pdf Hardware schematic v1.2b] (for the Manjaro Community Edition)<br />
<br />
== Changes from v1.2a ==<br />
* A bug was fixed, where connecting a VBUS powered device lowered the screen brightness (resistor R1318 changed to NC).<br />
<br />
== Known issues == <br />
The backlight issue of v1.2 is still present, see [[PinePhone v1.2#Backlight]].<br />
<br />
<br />
[[Category:PinePhone]]</div>Olfhttps://wiki.pine64.org/index.php?title=PinePhone_v1.2&diff=8183PinePhone v1.22020-11-05T02:35:33Z<p>Olf: Fix fix.</p>
<hr />
<div>The PinePhone v1.2 is a hardware revision of the PinePhone that was shipped in 2020 as UBports Community Edition.<br />
<br />
This page contains information and resources which are specific to the UBports Community Edition (v1.2 PCB) revision of the PinePhone. For other revisions or for resources related to all PinePhone revisions, see [https://wiki.pine64.org/wiki/PinePhone#Hardware_revisions PinePhone#Hardware revisions].<br />
<br />
== Schematics ==<br />
<br />
* [http://files.pine64.org/doc/PinePhone/PinePhone%20v1.2%20Released%20Schematic.pdf Hardware schematic v1.2] (2020-03-10, for the UBports Community Edition)<br />
<br />
== Changes from v1.1 ==<br />
<br />
The v1.2 mainboard revision changes the routing of several GPIOs to fix bugs and to improve power management. Therefore, it needs an updated device tree. The state of PL6 at boot can be used to distinguish between v1.1 (it can be pulled high) and v1.2 (it will remain low).<br />
<br />
# The WiFi module's <tt>CHIP_EN</tt> input (connected to the kill switch) is now pulled down, so the WiFi will turn off reliably when the switch is off.<br />
# PL2 is now connected to the WiFi module's reset pin, allowing the WiFi to be turned off or reset in software.<br />
# The magnetometer's <tt>DRDY</tt> pin is now connected to PB1, allowing interrupt-driven periodic sensor readings.<br />
# <tt>LINEOUTP</tt> is again connected to the speaker amplifier's INP input (like in v1.0), increasing the SNR of the rear speaker.<br />
# PH7 is now connected to the modem's <tt>AP_READY</tt> input (instead of <tt>WAKEUP_IN</tt>), allowing the modem to buffer URCs (interrupts) while the phone is asleep.<br />
# The modem's <tt>RI</tt> output and <tt>DTR</tt> input had their GPIOs swapped between PL6 and PB2, so the <tt>RI</tt> signal can be detected without powering the main pin controller.<br />
# Both PL9 and <tt>VBUS_CTRL</tt> (from the ANX7688) are now connected to <tt>N_VBUSEN</tt> on the PMIC. This causes the PMIC to automatically stop drawing power from the USB port when supplying power to a USB-OTG peripheral. It also allows the ANX7688 to automatically control the direction of current flowing through the USB port.<br />
# As part of the previous change, the ANX7688's reset input was moved to PD6; this pin previously controlled the USB OTG power.<br />
# Some of the regulators supplying the ANX7688 were rearranged, to reduce power consumption when the USB port is not connected and not being used to transmit video.<br />
# As part of the previous change, PD11 now controls the ANX7688's 1v0 digital power domain.<br />
# The modem's <tt>STATUS</tt> output is now connected to PH9, allowing the modem on/off state to be visible in software (note: this only works while the modem is powered). Since it is no longer connected to PB3, reading <tt>STATUS</tt> no longer turns the modem on.<br />
# The modem no longer has access to the I2C bus containing the sensors.<br />
# <tt>HBIAS</tt> is now connected to the headphone jack.<br />
<br />
== Known issues ==<br />
<br />
=== Backlight ===<br />
<br />
Backlight LED current regulation depends on gpio0-ldo voltage stability due to feedback voltage from current sensing resistor being modified via SoC's PWM pin and pullup resistor to gpio0-ldo. gpio0-ldo also powers the CTP controller and light/proximity sensor, among other things. When backlight brightness is very low and the CTP controller actively communicates on the I2C bus the backlight blinks heavily. It's not a very good idea to tie boost converter's current regulating feedback circuit to the potential source of noise, especially since the noise will have much larger effect when the backlight LED current is low. It's possible this can be mitigated if C1110 can be raised to 22-47uF range, or by changing the resistor values in the feedback circuit.<br />
<br />
PWM duty cycle for the lowest brightness of the backlight is also not very predictable, varying from 7-20% (tested with a small sample size of 2 devices). Therefore it's not possible to come up with a single device tree brightness settings that will work for everyone, requiring per-device calibration.<br />
<br />
On PinePhone 1.0, this was not the case, PWM signal was directly fed to the CE pin of the regulator, and lowest brightness setting seems more stable. On the other hand, the lowest achievable brightness was brighter than on 1.1+.<br />
<br />
Additionally there is also another backlight issue, where the brightness is lower when connecting a VBUS powered device, https://xnux.eu/log/#022.<br />
<br />
=== USB ===<br />
The USB-C CC pins are pulled to the GND by AW3512 (VCONN switches) when VCONN is off. This issue prevents cable plug/orientation detection and USB-PD communication. ANX always sees cable as plugged even if none is plugged. There's no SW workaround for automatic detection of cable plug or power role.<br />
<br />
The issue was was fixed with revision 1.2a. See [[PinePhone_1.2_VCONN_Hardware_Fix]] for details and an instruction about how to do the hardware fix.<br />
<br />
In SW this can only be worked around by manual selection of PinePhone's data and power role by the user.<br />
<br />
Hardware workaround is to desolder U1305 and U1309 switches (BGA like packages). This will void the VCONN control, but it will release the CC pins for their proper connection detection and negotiation roles (see https://megous.com/dl/tmp/pp-usbc-fix.jpg).<br />
<br />
Hardware fix is to replace AW3512 with a variant of the chip that preserves the EN signal polarity and that doesn't have the "quick discharge function" that ties the output to the GND via a 75 Ohm resistor when the switch is OFF. User ''mozzwald'' used NCP334FCT2G as a replacement.<br />
<br />
<br />
[[Category:PinePhone]]</div>Olfhttps://wiki.pine64.org/index.php?title=PinePhone_v1.2a&diff=8182PinePhone v1.2a2020-11-05T02:16:32Z<p>Olf: Fix broken link.</p>
<hr />
<div>The PinePhone v1.2a is a hardware revision of the PinePhone that started shipping in Q3 2020.<br />
<br />
This page contains information and resources which are specific to the v1.2a revision of the PinePhone. For other revisions or for resources related to all PinePhone revisions, see [https://wiki.pine64.org/wiki/PinePhone#PinePhone_board_information.2C_schematics_and_certifications PinePhone board information, schematics and certifications].<br />
<br />
== Schematics ==<br />
* [http://files.pine64.org/doc/PinePhone/PinePhone%20v1.2a%20Released%20Schematic.pdf Hardware schematic v1.2a] (2020-06-08, for Community Edition: postmarketOS)<br />
<br />
== Changes from v1.2 ==<br />
* A thermal pad was added to the SoC, and a internal thermal foil was added which covers the metal shielding and thermal pad on the motherboard and is in direct contact with the LCD backplane.<br />
* Fixed a rectangular dead spot of the touchscreen under the speaker grill<br />
* Added thermal foil to back cover<br />
* Antenna changes<br />
* USB-C CC fix for video out and OTG functionality<br />
<br />
== Known issues == <br />
<br />
The backlight issue of v1.2 is still present, see [[PinePhone v1.2#Backlight]]. There is also another backlight issue, where the brightness is lower when connecting a VBUS powered device, https://xnux.eu/log/#022.<br />
<br />
<br />
[[Category:PinePhone]]</div>Olfhttps://wiki.pine64.org/index.php?title=PinePhone_v1.2b&diff=8181PinePhone v1.2b2020-11-05T02:14:53Z<p>Olf: Fix broken link.</p>
<hr />
<div>The PinePhone v1.2b is a hardware revision of the PinePhone that started shipping in Q4 2020.<br />
<br />
This page contains information and resources which are specific to the v1.2b revision of the PinePhone. For other revisions or for resources related to all PinePhone revisions, see [https://wiki.pine64.org/wiki/PinePhone#PinePhone_board_information.2C_schematics_and_certifications PinePhone board information, schematics and certifications]. <br />
<br />
== Schematics ==<br />
* [https://files.pine64.org/doc/PinePhone/PinePhone%20v1.2b%20Released%20Schematic.pdf Hardware schematic v1.2b] (for the Manjaro Community Edition)<br />
<br />
== Changes from v1.2a ==<br />
* A bug was fixed, where connecting a VBUS powered device lowered the screen brightness (resistor R1318 changed to NC).<br />
<br />
== Known issues == <br />
The backlight issue of v1.2 is still present, see [[PinePhone v1.2#Backlight]].<br />
<br />
<br />
[[Category:PinePhone]]</div>Olfhttps://wiki.pine64.org/index.php?title=PinePhone_1.2_VCONN_Hardware_Fix&diff=8180PinePhone 1.2 VCONN Hardware Fix2020-11-05T02:13:08Z<p>Olf: Fix broken link</p>
<hr />
<div>This page details a hardware fix for an issue that was found on early PinePhone hardware revisions (see [https://wiki.pine64.org/wiki/PinePhone#PinePhone_board_information.2C_schematics_and_certifications PinePhone board information, schematics and certifications]) and has been fixed since the 1.2a hardware revision.<br />
<br />
The issue was [[PinePhone_v1.1_-_Braveheart#USB-C_CC_pins_are_pulled_to_the_GND_by_AW3512_.28VCONN_switches.29_when_VCONN_is_off | originally reported here]] by megi.<br />
<br />
== Affected Units ==<br />
# Requires confirmation: [[Project Don't be evil|"Project Don't Be Evil" devkit]]<br />
# Requires confirmation: [[PinePhone v1.0 - Dev|PinePhone v1.0 - Developer batch]]<br />
# [[PinePhone v1.1 - Braveheart]]<br />
# [[PinePhone v1.2]] - UBports Community Edition<br />
<br />
== Disclaimer ==<br />
<br />
This fix requires desoldering tiny (1 mm per 1 mm, from the datasheet) BGA components, therefore some experience with soldering is highly recommended.<br />
<br />
== Issue description ==<br />
[[File:Martjin_VCONN_switches_1.1.jpg|thumb|frame|Close-up picture of the two identical switches the issue originates from, with the ANX USB controller in the frame]]<br />
<br />
[[File:Schematic_VCONN_switches.png|thumb|frame|Excerpt from the PinePhone schematic showing the two components.]]<br />
<br />
The USB standard [https://microchipdeveloper.com/usb:tc-pins specifies] that both halves (top and bottom) of the USB-C port contains one "CC" pin (CC1 and CC2, respectively). A regular cable will connect a CC pin from one end to the other end. This allows detecting which way the cable is plugged. Some active USB-C cables exist (both "e-marked" and "managed active cables"); they contain a chip, which needs to be powered. This is done by having one of the cable end connect its CC pins to 5V and VCONN, and requires switches to plug the right CC pin to the right voltage.<br />
<br />
The issue arises due to the switches that were chosen up to v1.2a (the a revision excluded) of the PCB assembly: the [https://www.awinic.com/cn/index/pageview/catid/122/id/2.html infamous AW3512], labelled U1305 and U1309 on the schematic. Instead of leaving the output pin "dangling" with a high impedance when disabled, the switch pull the output down. This feature is intended for discharging a capacitor, hence its "Quick output discharge" name. This is an excerpt from the datasheet:<br />
<br />
"The AW3512/AW35122 includes the Quick Output Discharge (QOD) feature, in order to discharge the application capacitor connected on OUT pin. When EN pin is set to low level (disable state), a discharge resistance with a typical value of 276Ω (AW35122: 75Ω) is connected between the output and ground, pull down the output and prevent it from floating when the device is disabled."<br />
<br />
This issue prevents cable plug/orientation detection and USB-PD communication. ANX always sees cable as plugged even if none is plugged. There's no SW workaround for automatic detection of cable plug or power role.<br />
<br />
In SW this could theoretically be worked around by manual selection of PinePhone's data and power role by the user, but hasn't been attempted, and might damage hardware if done incorrectly.<br />
<br />
== Workaround ==<br />
Hardware workaround is desoldering U1305 and U1309 switches (BGA like packages). This will void the VCONN control, but it will release the CC pins for their proper connection detection and negotiation roles.<br />
<br />
=== Tradeoffs ===<br />
Voiding the VCONN control might (TODO: gather more data) prevent some accessories from working, notably those using an active cable.<br />
<br />
== Proper fix ==<br />
HW fix is to replace AW3512 with a variant of the chip that preserves the EN signal polarity and that doesn't have the "quick discharge function" that ties the output to the GND via a 75 Ohm resistor when the switch is OFF. mozzwald used NCP334FCT2G as a replacement. PCBA revision 1.2a onwards incorporate that fix.<br />
<br />
== Sources and tutorials ==<br />
* [https://megous.com/dl/tmp/pp-usbc-fix.jpg megi's writeup]<br />
* [https://xnux.eu/devices/feature/anx7688.html another writeup from megi] with a few words on firmware<br />
* [https://www.youtube.com/watch?v=xf8OJtjNWUM Video: "The right way"] with a hot air gun/reflow station, by mozzwald<br />
* [https://www.youtube.com/watch?v=ZqOb45N2sMc Video: "The equally stupid way"], workaround video by Dalton, using a soldering iron. Less chances to permanently damage the board than the next if you are handy with a soldering iron, but still high.<br />
* [https://www.youtube.com/watch?v=j3jc7Mvn9Eo Video: "The stupid way"] workaround video by Lukasz, with pliers. Slightly damages the circuit board, preventing you from soldering the replacement chips at a later point. You might be fine with this.<br />
<br />
<br />
[[Category:PinePhone]]</div>Olfhttps://wiki.pine64.org/index.php?title=PinePhone_v1.2&diff=8179PinePhone v1.22020-11-05T01:36:03Z<p>Olf: Fixed broken link</p>
<hr />
<div>The PinePhone v1.2 is a hardware revision of the PinePhone that was shipped in 2020 as UBports Community Edition.<br />
<br />
This page contains information and resources which are specific to the UBports Community Edition (v1.2 PCB) revision of the PinePhone. For other revisions or for resources related to all PinePhone revisions, see [https://wiki.pine64.org/wiki/PinePhone#PinePhone_board_information.2C_schematics_and_certifications PinePhone board information, schematics and certifications].<br />
<br />
== Schematics ==<br />
<br />
* [http://files.pine64.org/doc/PinePhone/PinePhone%20v1.2%20Released%20Schematic.pdf Hardware schematic v1.2] (2020-03-10, for the UBports Community Edition)<br />
<br />
== Changes from v1.1 ==<br />
<br />
The v1.2 mainboard revision changes the routing of several GPIOs to fix bugs and to improve power management. Therefore, it needs an updated device tree. The state of PL6 at boot can be used to distinguish between v1.1 (it can be pulled high) and v1.2 (it will remain low).<br />
<br />
# The WiFi module's <tt>CHIP_EN</tt> input (connected to the kill switch) is now pulled down, so the WiFi will turn off reliably when the switch is off.<br />
# PL2 is now connected to the WiFi module's reset pin, allowing the WiFi to be turned off or reset in software.<br />
# The magnetometer's <tt>DRDY</tt> pin is now connected to PB1, allowing interrupt-driven periodic sensor readings.<br />
# <tt>LINEOUTP</tt> is again connected to the speaker amplifier's INP input (like in v1.0), increasing the SNR of the rear speaker.<br />
# PH7 is now connected to the modem's <tt>AP_READY</tt> input (instead of <tt>WAKEUP_IN</tt>), allowing the modem to buffer URCs (interrupts) while the phone is asleep.<br />
# The modem's <tt>RI</tt> output and <tt>DTR</tt> input had their GPIOs swapped between PL6 and PB2, so the <tt>RI</tt> signal can be detected without powering the main pin controller.<br />
# Both PL9 and <tt>VBUS_CTRL</tt> (from the ANX7688) are now connected to <tt>N_VBUSEN</tt> on the PMIC. This causes the PMIC to automatically stop drawing power from the USB port when supplying power to a USB-OTG peripheral. It also allows the ANX7688 to automatically control the direction of current flowing through the USB port.<br />
# As part of the previous change, the ANX7688's reset input was moved to PD6; this pin previously controlled the USB OTG power.<br />
# Some of the regulators supplying the ANX7688 were rearranged, to reduce power consumption when the USB port is not connected and not being used to transmit video.<br />
# As part of the previous change, PD11 now controls the ANX7688's 1v0 digital power domain.<br />
# The modem's <tt>STATUS</tt> output is now connected to PH9, allowing the modem on/off state to be visible in software (note: this only works while the modem is powered). Since it is no longer connected to PB3, reading <tt>STATUS</tt> no longer turns the modem on.<br />
# The modem no longer has access to the I2C bus containing the sensors.<br />
# <tt>HBIAS</tt> is now connected to the headphone jack.<br />
<br />
== Known issues ==<br />
<br />
=== Backlight ===<br />
<br />
Backlight LED current regulation depends on gpio0-ldo voltage stability due to feedback voltage from current sensing resistor being modified via SoC's PWM pin and pullup resistor to gpio0-ldo. gpio0-ldo also powers the CTP controller and light/proximity sensor, among other things. When backlight brightness is very low and the CTP controller actively communicates on the I2C bus the backlight blinks heavily. It's not a very good idea to tie boost converter's current regulating feedback circuit to the potential source of noise, especially since the noise will have much larger effect when the backlight LED current is low. It's possible this can be mitigated if C1110 can be raised to 22-47uF range, or by changing the resistor values in the feedback circuit.<br />
<br />
PWM duty cycle for the lowest brightness of the backlight is also not very predictable, varying from 7-20% (tested with a small sample size of 2 devices). Therefore it's not possible to come up with a single device tree brightness settings that will work for everyone, requiring per-device calibration.<br />
<br />
On PinePhone 1.0, this was not the case, PWM signal was directly fed to the CE pin of the regulator, and lowest brightness setting seems more stable. On the other hand, the lowest achievable brightness was brighter than on 1.1+.<br />
<br />
Additionally there is also another backlight issue, where the brightness is lower when connecting a VBUS powered device, https://xnux.eu/log/#022.<br />
<br />
=== USB ===<br />
The USB-C CC pins are pulled to the GND by AW3512 (VCONN switches) when VCONN is off. This issue prevents cable plug/orientation detection and USB-PD communication. ANX always sees cable as plugged even if none is plugged. There's no SW workaround for automatic detection of cable plug or power role.<br />
<br />
The issue was was fixed with revision 1.2a. See [[PinePhone_1.2_VCONN_Hardware_Fix]] for details and an instruction about how to do the hardware fix.<br />
<br />
In SW this can only be worked around by manual selection of PinePhone's data and power role by the user.<br />
<br />
Hardware workaround is to desolder U1305 and U1309 switches (BGA like packages). This will void the VCONN control, but it will release the CC pins for their proper connection detection and negotiation roles (see https://megous.com/dl/tmp/pp-usbc-fix.jpg).<br />
<br />
Hardware fix is to replace AW3512 with a variant of the chip that preserves the EN signal polarity and that doesn't have the "quick discharge function" that ties the output to the GND via a 75 Ohm resistor when the switch is OFF. User ''mozzwald'' used NCP334FCT2G as a replacement.<br />
<br />
<br />
[[Category:PinePhone]]</div>Olfhttps://wiki.pine64.org/index.php?title=PineTime_RTOS_Comparison&diff=4147PineTime RTOS Comparison2019-11-30T03:01:10Z<p>Olf: </p>
<hr />
<div>{| class="wikitable"<br />
!<br />
! FreeRTOS<br />
! Zephyr<br />
! mynewt<br />
! Tock<br />
! MbedOS<br />
! TinyGo<br />
|-<br />
! Project Homepage<br />
| https://aws.amazon.com/freertos/<br />previously: https://www.freertos.org<br />
| https://www.zephyrproject.org<br />
| https://mynewt.apache.org/about/<br />
| https://www.tockos.org<br />
| https://os.mbed.com<br />
| https://tinygo.org<br />
|-<br />
! Project Source<br />
| https://github.com/aws/amazon-freertos<br />previously: https://sourceforge.net/projects/freertos/<br />
| https://github.com/zephyrproject-rtos/zephyr<br />
| https://github.com/apache/mynewt-core<br />
| https://github.com/tock/tock<br />
| https://github.com/ARMmbed/mbed-os<br />
| https://github.com/tinygo-org/tinygo<br />
|-<br />
! Sponsor<br />
| Amazon<br />
| Linux Foundation<br />
| Apache Foundation<br />
| <br />
| ARM<br />
| <br />
|-<br />
! Language<br />
| C<br />
| C<br />
| C<br />
| Rust<br />
| C/C++<br />
| Go<br />
|-<br />
! PineTime Implementations<br />
| As of November 2019 the [https://github.com/aws/amazon-freertos/tree/master/vendors/nordic nRF52840] is the only MCU from [https://devices.amazonaws.com/search?kw=Nordic&page=1&sv=freertos Nordic] supported by FreeRTOS.<br />
| <br />
|<br />
*https://github.com/lupyuen/stm32bluepill-mynewt-sensor/tree/pinetime <br />
|<br />
| <br />
|<br />
*https://github.com/aykevl/go-smartwatch<br />
|}</div>Olfhttps://wiki.pine64.org/index.php?title=PineTime_RTOS_Comparison&diff=4146PineTime RTOS Comparison2019-11-30T02:38:33Z<p>Olf: </p>
<hr />
<div>{| class="wikitable"<br />
!<br />
! FreeRTOS<br />
! Zephyr<br />
! mynewt<br />
! Tock<br />
! MbedOS<br />
! TinyGo<br />
|-<br />
! Project Homepage<br />
| https://aws.amazon.com/freertos/<br />previously: https://www.freertos.org<br />
| https://www.zephyrproject.org<br />
| https://mynewt.apache.org/about/<br />
| https://www.tockos.org<br />
| https://os.mbed.com<br />
| https://tinygo.org<br />
|-<br />
! Project Source<br />
| https://github.com/aws/amazon-freertos<br />previously: https://sourceforge.net/projects/freertos/<br />
| https://github.com/zephyrproject-rtos/zephyr<br />
| https://github.com/apache/mynewt-core<br />
| https://github.com/tock/tock<br />
| https://github.com/ARMmbed/mbed-os<br />
| https://github.com/tinygo-org/tinygo<br />
|-<br />
! Sponsor<br />
| Amazon<br />
| Linux Foundation<br />
| Apache Foundation<br />
| <br />
| ARM<br />
| <br />
|-<br />
! Language<br />
| C<br />
| C<br />
| C<br />
| Rust<br />
| C/C++<br />
| Go<br />
|-<br />
! PineTime Implementations<br />
| <br />
| <br />
|<br />
*https://github.com/lupyuen/stm32bluepill-mynewt-sensor/tree/pinetime <br />
|<br />
| <br />
|<br />
*https://github.com/aykevl/go-smartwatch<br />
|}</div>Olfhttps://wiki.pine64.org/index.php?title=PineTime_RTOS_Comparison&diff=4138PineTime RTOS Comparison2019-11-29T00:19:48Z<p>Olf: Added current FreeRTOS source link</p>
<hr />
<div>{| class="wikitable"<br />
!<br />
! FreeRTOS<br />
! Zephyr<br />
! mynewt<br />
! Tock<br />
! MbedOS<br />
! TinyGo<br />
|-<br />
! Project Homepage<br />
| https://www.freertos.org<br />
| https://www.zephyrproject.org<br />
| https://mynewt.apache.org/about/<br />
| https://www.tockos.org<br />
| https://os.mbed.com<br />
| https://tinygo.org<br />
|-<br />
! Project Source<br />
| https://github.com/aws/amazon-freertos<br />historically: https://sourceforge.net/projects/freertos/<br />
| https://github.com/zephyrproject-rtos/zephyr<br />
| https://github.com/apache/mynewt-core<br />
| https://github.com/tock/tock<br />
| https://github.com/ARMmbed/mbed-os<br />
| https://github.com/tinygo-org/tinygo<br />
|-<br />
! Sponsor<br />
| Amazon<br />
| Linux Foundation<br />
| Apache Foundation<br />
| <br />
| ARM<br />
| <br />
|-<br />
! Language<br />
| C<br />
| C<br />
| C<br />
| Rust<br />
| C/C++<br />
| Go<br />
|-<br />
! PineTime Implementations<br />
| <br />
| <br />
|<br />
*https://github.com/lupyuen/stm32bluepill-mynewt-sensor/tree/pinetime <br />
|<br />
| <br />
|<br />
*https://github.com/aykevl/go-smartwatch<br />
|}</div>Olf