Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums



(Advanced Search)

Forum Statistics
» Members: 29,564
» Latest member: Rejax5
» Forum threads: 16,213
» Forum posts: 116,981

Full Statistics

Latest Threads
Special keys stopped work...
Forum: General Discussion on PineNote
Last Post: j_s
6 hours ago
» Replies: 3
» Views: 7,857
Tips for accurate reading...
Forum: General
Last Post: jaydenlord07
Yesterday, 12:55 AM
» Replies: 0
» Views: 1,276
Wifi 5Ghz Issue
Forum: PineNote Software
Last Post: nicolaos
09-17-2025, 06:36 PM
» Replies: 0
» Views: 1,389
the self built bl602_boot...
Forum: Getting Started
Last Post: pinecheng
09-16-2025, 02:15 PM
» Replies: 2
» Views: 2,419
Why projects like PinePho...
Forum: General Discussion on PinePhone
Last Post: Gary2003
09-16-2025, 01:13 PM
» Replies: 13
» Views: 10,877
Cannot flash the modem fi...
Forum: Mobian on PinePhone
Last Post: anonymous
09-16-2025, 12:18 PM
» Replies: 7
» Views: 3,913
Star64 Irradium (based on...
Forum: Getting Started
Last Post: mara
09-16-2025, 11:18 AM
» Replies: 8
» Views: 6,786
Mobian MMS/SMS text probl...
Forum: Mobian on PinePhone
Last Post: georgegohl888
09-15-2025, 02:42 AM
» Replies: 16
» Views: 22,590
Default password for KDE ...
Forum: General Discussion on PinePhone
Last Post: Toni
09-14-2025, 06:35 PM
» Replies: 0
» Views: 3,059
My Phone stopped making a...
Forum: PinePhone Hardware
Last Post: tracyanne
09-14-2025, 03:30 PM
» Replies: 0
» Views: 3,546

 
  Brand new phone, screen flickers than locks
Posted by: Marekx3 - 05-31-2021, 10:08 AM - Forum: PinePhone Software - Replies (3)

Hello,

I have a brand new phone, only connected it to wifi, updated to the latest. On unlock the screen flickers than/or goes black and I'm back at the locked screen.

Whats the fix? I searched around, and thy say May updated fixed problem, not for me?

Thanks


  22 July 2116 -- wrong Date & Time
Posted by: Anna - 05-31-2021, 09:09 AM - Forum: Mobian on PinePhone - Replies (7)

Hi guys,

once every few days, sometimes weeks, my phone's system time leaps to 22 July 2116, which of course has a lot of side effects (on axolotl, geary, calendar and so on). 

Has anybody else experienced this? And is there a fix?

Best, Anna


  keyboard meltdown
Posted by: rvh - 05-31-2021, 08:54 AM - Forum: Mobian on PinePhone - No Replies

for some reason my key board is doing something weird. Every time I press the number one or the letter q, it enters the number 2 or w. so I reinstalled mobian and the same thing happened. this is a deal breaker for me. so if someone can help that would be great. For now, my sim card is going back into my android.


  "short codes" no longer work on the spacebar texting app?
Posted by: mudflap - 05-31-2021, 08:26 AM - Forum: Manjaro on PinePhone - No Replies

Hi folks - 
Using the texting app "Spacebar" on my beta phone, I used to be able to check my bank account balance by sending a text to a "short code" sms number* provided by my bank, but it longer works - I'm seeing posts that I need to include a country code ("+1") to have my modem work correctly for phone calls, but don't see how that would be possible. I tried it just for fun, but it didn't work. 

Is this a new bug? 

*https://simpletexting.com/text-short-code-what-is/


  PinePower desktop micro power breaks
Posted by: jpalus - 05-31-2021, 04:22 AM - Forum: General - Replies (4)

I've been observing this fenomen for a while but now I'm sure it's down to PinePower desktop -- each port sporadically looses power for a very brief moment (like half a second or so, not noticeable for human being, but enough for a plugged device to "notice"). While for charging phones (or any other battery powered device) this might not be a big deal, it does however dramatically lowers usefulness of PinePower:
* cannot plug my Raspberry Pi since it will power off completely every now and then
* cannot plug active USB hub with HDD attached as it may result in data loss
* powering Pinebook Pro through Pine's docking deck is very inconvenient -- docking deck starts to pull power from battery when power is unplugged and does not go back when power goes back so one might not even notice when this happens leading to complete battery discharge. Docking deck needs to be replugged to Pinebook Pro so it starts pulling power from socket again.

Did anyone else encounter such behavior?


  PinePhone Blender / STL model?
Posted by: blihp - 05-30-2021, 09:42 PM - Forum: PinePhone Hardware - No Replies

I was curious if anyone has produced a Blender / OBJ / STL / other model of the PinePhone suitable for rendering?  So far I'm not finding much luck beyond finding a couple of rendered images of the PinePhone but nothing which points me to a model I can use for my own renders.


  Switching your PineTime between InfiniTime and Wasp-os
Posted by: Peetz0r - 05-30-2021, 06:55 PM - Forum: PineTime Tutorials - Replies (1)

Hey all! Many people want to try both Infinitime and Wasp-os. They hear about the reloader, but then find out that the reloader-factory.zip in Wasp-os 0.4 is broken, and building your own usually fails. There is some information about that, but not everyone can find it. That's the goal of this forum post.

The short version: don't use reloader-factory.zip, use the zip from here instead.

This does not contain full InfiniTime, only the recovery. This arrangement is necessary due to the size, but also allows you to flash any future release of InfiniTime without having to find a new reloader zip. After flashing this reloader zip and letting the reloader finish, hold the button until the pinecone turns red to reboot into recovery, then flash the latest InfiniTime.

The long version with step-by-step instructions and pictures for switching in both directions is on the wiki: https://wiki.pine64.org/wiki/Switching_y...nd_Wasp-os


  [Turorial] NAS Using A Recycled 1U Proliant Case
Posted by: ColPanic_ - 05-30-2021, 05:54 PM - Forum: RockPro64 Projects, Ideas and Tutorials - Replies (1)

So you've just gotten your brand new Rockpro64, you're looking for a clean way to stuff a PSU and 4 HDD backplane into a box that fits nicely onto your network rack. What do you do? Well, you could get the official NAS case. But that only fits 2 disks, and how are you supposed to mount that on your rack? With a shelf?? Inconceivable.

Well here's what I did:

Having bought my home network equipment off eBay, I know retired enterprise gear can be had for dirt cheap. So after some quick searching, I came across the perfect 1U case, that happened to also have a Proliant DL160 server inside it. Perfect for a weekend project.

Steps to NAS:

1. Gut the server, leaving only the PSU, backplane, and fans.

2. If the original SAS controller works, great! If not, find a Rockpro64 compatible PCIe SAS controller. I used an IBM H1110.

3. An ATX breakout board is handy for connecting to the case's power supply. But if you prefer crimping wires, you do you. As a side note, I'm using the ATX supply to directly control power to the Rockpro. The Rockpro actually has some solder points for power control, near the power buttons, which could be used to improve on my design. I'll be adding that mod myself whenever I get around to it.

4. You'll need an Arduino as well, I like using Nano's. They're super cheap and fit nicely into just about any project.

5. Shove it all into the case. It should look something like this:
   

6. You'll need to wire all those pieces together. I'm driving the LEDs directly from the Arduino GPIO, because I'm lazy I like to live dangerously. If you're more concerned about damaging your AVR than I am, you might want to buffer each of those LED lines with a transistor. I decided to wire the fancy buttons and blinkenlights on the front panel up to the Arduino for my NAS. You can put together a wiring harness to mate with the case connector, or be like me and shove your wires directly into the case connector. They're not going anywhere:
   
   

7. The front panel has a 2 row, 2.5mm pitch female connector for the USB connections. Hack a connector onto couple USB cables. You can then use the hacked cables as an adapter between the case USB connector and the Rockpro USB inputs. My DL160 case only supports USB 2.0, so I can't take full advantage of the Rockpro's USB interface:
   

8. If you don't like your NAS to sound like a jet plane taking off, take out some fans. I've left just one fan. It's keeping everything nice and cool, and runs almost silently. To maintain proper airflow, stuff some packing foam in place of the old fans:
   

9. You'll need to get some code onto the Arduino. This script handles power up/shutdown; fan control; and, just to look like a real enterprise grade server, blinking some lights:

Code:
#include <Arduino.h>
#include <elapsedMillis.h>

#define PIN_UART_RX     1
#define PIN_PSU_ON      2
#define PIN_PANEL_PWR   3
#define PIN_SYS_LED_P1  4
#define PIN_NIC_LED_P   5
#define PIN_HDD_LED_P   6
#define PIN_BOARD_PWR   7
#define PIN_FAN_PWM     9
#define PIN_PWR_LED_GP_RN   12
#define PIN_PWR_LED_GN_RP   13
#define PIN_SYS_LED_G_N     19
#define PIN_SYS_LED_R_N     20
#define PIN_SYS_LED_P2      21

#define PWR_STATE_OFF           0   //PSU powered off
#define PWR_STATE_STARTUP       1   //PSU starting up, power button is still held
#define PWR_STATE_ON            2   //PSU powered up, button no longer held
#define PWR_STATE_SHUTDOWN_TMR  3   //PSU powered up, shutdown timer is counting
#define PWR_STATE_SHUTDOWN      4   //PSU shut down, button is still held
#define PWR_STATE_BOARD_OFF     5   //board shut down, PSU still on

#define BLINK_STATE_READY   0   //LED is not blinking
#define BLINK_STATE_ON      1   //LED is off
#define BLINK_STATE_OFF     2   //LED is on

#define UART_STATE_OK       0
#define UART_STATE_ERR      1

#define UART_WATCHDOG_TIMEOUT   10000

uint8_t power_state = PWR_STATE_OFF;
_Bool uart_state = UART_STATE_OK;

int blink_chance = 0;

elapsedMillis event_timer;
elapsedMillis uart_watchdog;
elapsedMillis blink_timer;

void setup() {

    // Configure PWM on pin 9 (and 10) @ 25 kHz.
    TCCR1A = 0;
    TCCR1B = 0;
    TCNT1  = 0;
    TCCR1A = _BV(COM1A1)
           | _BV(COM1B1)
           | _BV(WGM11);
    TCCR1B = _BV(WGM13)
           | _BV(CS10);
    ICR1   = 320;

    pinMode(PIN_UART_RX, INPUT);
    pinMode(PIN_PSU_ON, INPUT);
    pinMode(PIN_PANEL_PWR, INPUT_PULLUP);
    pinMode(PIN_SYS_LED_P1, OUTPUT);
    pinMode(PIN_NIC_LED_P, OUTPUT);
    pinMode(PIN_HDD_LED_P, OUTPUT);
    pinMode(PIN_BOARD_PWR, INPUT);
    pinMode(PIN_FAN_PWM, OUTPUT);
    pinMode(PIN_PWR_LED_GP_RN, OUTPUT);
    pinMode(PIN_PWR_LED_GN_RP, OUTPUT);
    pinMode(PIN_SYS_LED_G_N, OUTPUT);
    pinMode(PIN_SYS_LED_R_N, OUTPUT);
    pinMode(PIN_SYS_LED_P2, OUTPUT);

    digitalWrite(PIN_SYS_LED_P1, HIGH);
    digitalWrite(PIN_NIC_LED_P, LOW);
    digitalWrite(PIN_HDD_LED_P, LOW);
    analogWrite(PIN_FAN_PWM, 0);
    digitalWrite(PIN_PWR_LED_GP_RN, LOW);
    digitalWrite(PIN_PWR_LED_GN_RP, LOW);
    digitalWrite(PIN_SYS_LED_G_N, LOW);
    digitalWrite(PIN_SYS_LED_R_N, HIGH);
    digitalWrite(PIN_SYS_LED_P2, HIGH);

    Serial.setTimeout(50);
}

void loop() {
   
/*********************************************
* handle system power
*********************************************/
    switch(power_state)
    {

        case PWR_STATE_OFF:
        {
            if( (digitalRead(PIN_PANEL_PWR) == LOW) || (PIN_BOARD_PWR == HIGH) )
            {
                power_state = PWR_STATE_STARTUP;
                pinMode(PIN_PSU_ON, OUTPUT);
                digitalWrite(PIN_PSU_ON, LOW);

                //turn on the GREEN power LED
                pinMode(PIN_PWR_LED_GP_RN, OUTPUT);
                pinMode(PIN_PWR_LED_GN_RP, OUTPUT);
                digitalWrite(PIN_PWR_LED_GN_RP, LOW);
                digitalWrite(PIN_PWR_LED_GP_RN, HIGH);

                event_timer = 0;
            }
        } break;
        case PWR_STATE_STARTUP:
        {
            //after button is released, wait 5 seconds for startup
            if( (digitalRead(PIN_PANEL_PWR) == HIGH) && (event_timer > 5000) )
            {
                power_state = PWR_STATE_ON;
            }
        } break;
        case PWR_STATE_ON:
        {
            if(digitalRead(PIN_PANEL_PWR) == LOW)
            {
                event_timer = 0;
                power_state = PWR_STATE_SHUTDOWN_TMR;
            }
            else if(digitalRead(PIN_BOARD_PWR) == LOW)
            {
                event_timer = 0;
                power_state = PWR_STATE_BOARD_OFF;
            }
        } break;
        case PWR_STATE_SHUTDOWN_TMR:
        {
            if(digitalRead(PIN_PANEL_PWR) == LOW)
            {
                //button was held for 3 seconds, shut down
                if( event_timer > 3000 )
                {
                    //tri-state the power pin
                    power_state = PWR_STATE_SHUTDOWN;
                    pinMode(PIN_PSU_ON, INPUT);

                    //turn on the RED power LED
                    digitalWrite(PIN_PWR_LED_GP_RN, LOW);
                    digitalWrite(PIN_PWR_LED_GN_RP, HIGH);

                    //disconnect UART
                    Serial.end();
                    pinMode(PIN_UART_RX, INPUT);
                }
            }
            else
            {
                power_state = PWR_STATE_ON;
            }
        } break;
        case PWR_STATE_SHUTDOWN:
        {
            //wait until button is released
            if(digitalRead(PIN_PANEL_PWR) == HIGH)
            {
                power_state = PWR_STATE_OFF;
            }
        } break;
        case PWR_STATE_BOARD_OFF:
        {
            if(digitalRead(PIN_BOARD_PWR) == LOW)
            {
                //board was off for 3 seconds, shut down
                if( event_timer > 3000 )
                {
                    //tri-state the power pin
                    power_state = PWR_STATE_SHUTDOWN;
                    pinMode(PIN_PSU_ON, INPUT);

                    //turn on the RED power LED
                    digitalWrite(PIN_PWR_LED_GP_RN, LOW);
                    digitalWrite(PIN_PWR_LED_GN_RP, HIGH);

                    //disconnect UART
                    Serial.end();
                    pinMode(PIN_UART_RX, INPUT);
                }
            }
            else
            {
                power_state = PWR_STATE_ON;
            }
        } break;
        default:
            break;
    }

/*********************************************
* blink Eth0 LED
*********************************************/
    // 100 megabit blinks fastest
    #define BLINK_MAX_CHANCE    100000000
    #define BLINK_MILLIS        30

    static uint8_t blink_state = BLINK_STATE_READY;

    if( (power_state == PWR_STATE_ON) &&
        (uart_state == UART_STATE_OK) )
    {
        switch(blink_state)
        {
            case BLINK_STATE_READY:
            {
                // blink the eth0 LED randomly, with a frequency based
                // on the network traffic
                if( (blink_chance != 0) &&
                    ( (random(0,BLINK_MAX_CHANCE) < blink_chance) ||
                    (random(0,2000) == 0) )
                    )
                {
                    blink_state = BLINK_STATE_ON;
                    blink_timer = 0;
                    digitalWrite(PIN_NIC_LED_P, HIGH);
                }
            } break;
            case BLINK_STATE_ON:
            {
                if(blink_timer > BLINK_MILLIS)
                {
                    blink_state = BLINK_STATE_OFF;
                    blink_timer = 0;
                    digitalWrite(PIN_NIC_LED_P, LOW);
                }
            } break;
            case BLINK_STATE_OFF:
            {
                if(blink_timer > (BLINK_MILLIS/2))
                {
                    blink_state = BLINK_STATE_READY;
                }
            } break;
            default:
            {
                    blink_state = BLINK_STATE_READY;
                    blink_timer = 0;
                    digitalWrite(PIN_NIC_LED_P, LOW);
            }
        }
    }

    #undef BLINK_MAX_CHANCE
    #undef BLINK_TICKS        

/*********************************************
* handle UART commands
*********************************************/
    #define UART_IDENTIFIER_IDX  0
    #define UART_CMD_IDX         9

    /* enable/reset UART */

    // keep UART off until board is powered up
    if(power_state != PWR_STATE_ON)
    {
        uart_watchdog = 0;
    }
    // no commands received in timeout period, reset UART
    else if(uart_watchdog > UART_WATCHDOG_TIMEOUT)
    {
        Serial.end();
        Serial.begin(115200);
        uart_watchdog = 0;

        uart_state = UART_STATE_ERR;

        //set warning LED
        digitalWrite(PIN_SYS_LED_G_N, HIGH);
        digitalWrite(PIN_SYS_LED_R_N, LOW);
    }

    /* monitor the console output */

    if (Serial.available() > 0) {

        String command;
        int argument = 0;

        // monitor the serial port for the identifier string
        command = Serial.readStringUntil('\n');

        if(command.substring(UART_IDENTIFIER_IDX, UART_CMD_IDX)
            .equals("SimonSays"))
        {
            // reset the watchdog timer
            uart_watchdog = 0;

            uart_state = UART_STATE_OK;

            // system OK
            digitalWrite(PIN_SYS_LED_R_N, HIGH);
            digitalWrite(PIN_SYS_LED_G_N, LOW);

            // parse the command
            command.remove(UART_IDENTIFIER_IDX, UART_CMD_IDX);
            command.trim();

            int arg_idx = command.lastIndexOf(' ')+1;
            if(arg_idx > 0)
            {
                argument = command.substring(arg_idx).toInt();
                command.remove(arg_idx);
                command.trim();
            }

        }

        /* commands */

        // change the fan speed
        if(command.equals("SET FAN"))
        {
            analogWrite(PIN_FAN_PWM, argument);
        }

        // blink the eth0 LED
        else if(command.equals("SET NET LED"))
        {
            blink_chance = argument;
        }
    }

    #undef UART_IDENTIFIER_IDX
    #undef UART_CMD_IDX
}

10. Now you'll need something on the Rockpro side to help with fan and light control. This script uses a wake word to send commands to the Arduino over the UART console. You'll want to add this python script to systemd so it runs automagically on boot:
Code:
#!/usr/bin/python3

import io
import time
import psutil
import os

net_traffic_prev = 0

os.system("stty -F /dev/ttyS2 ospeed 115200")

while True:
    temp_file1 = open("/sys/class/thermal/thermal_zone0/temp", "r")
    temp_file2 = open("/sys/class/thermal/thermal_zone1/temp", "r")

    temp1 = temp_file1.readline()
    temp2 = temp_file2.readline()

    temp_file1.close()
    temp_file2.close()

    if temp1 > temp2:
        hightemp = int(temp1)
    else:
        hightemp = int(temp2)

    if hightemp < 40000:
        pwm = 0
    else:
        pwm = int(( (hightemp-40000) / 40000 ) * 255)

    net_counters = psutil.net_io_counters()
    net_traffic_curr = (net_counters.bytes_sent + net_counters.bytes_recv)
    net_traffic = str(net_traffic_curr - net_traffic_prev)
    net_traffic_prev = net_traffic_curr

    uart_out = open("/dev/ttyS2", "w")
    uart_out.writelines("\nSimonSays SET FAN "+str(pwm)+"\n")
    uart_out.writelines("\nSimonSays SET NET LED "+str(net_traffic)+"\n")
    uart_out.close()

    time.sleep(2)

11. Now put it onto your rack, and make all your friends jealous of your new ultra-quiet ultra-low-power 1U server!


I promised earlier that I'd post my project if I got some useful help from this forum, so I hope I didn't disappoint!

My scripts and schematic can also be found on my github page.  Feel free to send me a pull request with any suggestions.

Big Grin


  Can't get through "User Configuration" on new PinePhone
Posted by: a-l - 05-30-2021, 05:36 PM - Forum: General Discussion on PinePhone - Replies (24)

I feel silly, but have now spent many hours trying to set up my new PinePhone.
Have watched many videos and read many posts, but none mentions this issue.
After the KDE symbol comes up, everyone talks about a PIN screen, but that's not what I get.
I'm getting something called 'User Configuration', where it asks for Full Name, Username, and Password.
After (I think) entering those (it's very awkward because it just shows the keyboard - I'm hitting <CR> and
      then have to push the Power button to see the entries!) and using '123456' as the Password, nothing happens.
I'm sure there is a simple explanation for this - can someone please tell me what I'm doing wrong?
Thanks in advance, everyone.


  Increasing max voltage to use a bigger battery
Posted by: SocialNetworkingWasAMistake - 05-30-2021, 12:55 PM - Forum: Mobian on PinePhone - Replies (4)

In https://wiki.pine64.org/wiki/PinePhone_FAQ#Battery it says I can use this to allow my phone to charge more:

Code:
echo 4350000 > /sys/class/power_supply/axp20x-battery/voltage_max_design
When I do that however I get a write error, what's going on?
I want to install this battery but it's not going to be able to use the full capacity if I can't set the max voltage, right?
https://www.ebay.co.uk/itm/333992044176