Skip to main content

Franken-Phone

I decided to take the worst performing PinePhone PCB and turn it into a hardware test bed. This is the 3GB 1.2b upgrade board that fails my compiler and memtester tests. It will time jump even with the RAM running at 492MHz.

It is usable. With the serial adapter you can login to the serial console without an attached screen. Once WiFi/SSH is configured you can do everything remotely. I have also used wayvnc to remotely connect to the graphical desktop.

I bought a large flat aluminum heatsink from Amazon to use as a base. I cut up a sheet of thermal pad material (sold for use with 3d printer glass hot beds). The pad is sticky and holds the PCB and battery to the heatsink.

The battery is not the correct type/size for a PinePhone battery. It is an old battery I found in a drawer that has the same pinout, works fine.

The micro USB breakout board has the VBUS and Ground soldered directly to the pogo pin pads.

The loose orange wire at the bottom is soldered to a tiny pad next to the keypad connector. It is the power button. When shorted to ground it is the same as pressing the power button. The tiny Vol+/Vol- pads are right next to it.

The USB D+ and D- are available on 2 tiny pads next to the battery connector. If you do not connect these the phone will only detect power and remain in SDP mode which will draw a max of 500mA. That is not enough to power the phone and charge the battery, it will slowly drain the battery and run dead over time.

With the D+ D- connected it will detect when a USB power supply is connected and switch to DCP/CDP mode and draw a max of 1500mA. This is explained on the xnux.eu blog.

I added a makeshift WiFi antenna. Without it I could still get a WiFi signal, but it was very weak. With this antenna I get 60% signal strength, a normal PinePhone gets 80% at the same distance. I used wavemon to monitor the signal strength.

I also soldered on a passive GPS antenna. It is the Adafruit 15mm passive ceramic patch with U.FL connector. The U.FL connector is only crimped on. With needle nose pliers you can loosen the crimp and pull the connector off. The stripped end is spaced perfectly to solder to the GPS antenna connectors. The antenna makes a huge difference. I can now get a 3D fix indoors. A cold start outdoors takes less than a minute, with the AGPS script it gets a fix in under 10 seconds.

I have ordered several styles of flat flexible passive GPS antennas. Hopefully they work as well and can be integrated better than the large square lump of the ceramic antenna.

Popular posts from this blog

Flexible GPS Antenna

I added a flexible passive GPS antenna to one of my PinePhones. These antennas are meant to be adhered directly to the inside of a plastic enclosure, far from any metal or ground planes. The datasheets I have read for similar antenna recommend at least 12mm distance to the ground plane. This particular antenna I got off of eBay from China, and has no datasheet. It does work quite well though. I taped the antenna to a piece of plastic from a SIM card to make it more rigid. It is paper thin, except for the area where the cable is soldered. Like on the Franken-Phone I removed the U.FL connector from the end of the cable and soldered it in place. This time I removed the spring contacts so that it would not make contact with the existing antenna in the mid-frame. I left the spring contact for the WiFi antenna intact. I shaved some of the plastic from the mid-frame so that the cable would fit between it and the metal shield of the modem. I also cut a slot in the back case with a Dremel cut...

Updating modem firmware

Updated to the latest available firmware. Instructions here: https://github.com/Biktorgj/quectel_eg25_recovery#readme Command to clone the latest branch:   git clone --branch EG25GGBR07A08M2G_01.003.01.003 https://github.com/Biktorgj/quectel_eg25_recovery.git Change directory and run update: cd quectel_eg25_recovery/ sudo ./qfirehose -f ./ To check the currently installed firmware: sudo mmcli -m any --command='AT+QGMR' Output of the entire process here: https://gist.github.com/8bitgc/247da58dd6bd53a6864d5afe091616c5