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

Username
  

Password
  





Search Forums



(Advanced Search)

Forum Statistics
» Members: 29,399
» Latest member: ejames82
» Forum threads: 16,170
» Forum posts: 116,780

Full Statistics

Latest Threads
pinetab2 danctnix broken ...
Forum: PineTab Software
Last Post: acruhl
46 minutes ago
» Replies: 4
» Views: 75
irradium (based on crux l...
Forum: Linux on Rock64
Last Post: mara
5 hours ago
» Replies: 9
» Views: 3,018
irradium (based on crux l...
Forum: Linux on RockPro64
Last Post: mara
Today, 05:13 AM
» Replies: 8
» Views: 4,011
is there any settings men...
Forum: Pinecil Software
Last Post: ejames82
Yesterday, 08:45 AM
» Replies: 0
» Views: 18
Zig booting up on PinePho...
Forum: General
Last Post: WhiteHexagon
Yesterday, 03:11 AM
» Replies: 0
» Views: 40
3 questions, still no off...
Forum: PinePhone Pro Software
Last Post: jebez
Yesterday, 01:53 AM
» Replies: 0
» Views: 62
New Install, apps start b...
Forum: Mobian on PinePhone
Last Post: Kevin Kofler
07-18-2025, 07:56 PM
» Replies: 2
» Views: 56
What's a good image to us...
Forum: Linux on Pinebook Pro
Last Post: Dendrocalamus64
07-18-2025, 07:28 PM
» Replies: 40
» Views: 9,425
US Mobile, via T-Mobile, ...
Forum: General Discussion on PinePhone
Last Post: dchang0
07-18-2025, 04:24 PM
» Replies: 14
» Views: 10,731
many distros getting too ...
Forum: PinePhone Pro Software
Last Post: dchang0
07-18-2025, 04:01 PM
» Replies: 3
» Views: 123

 
  Pine64(+) and manjaro
Posted by: dsychan - 04-05-2022, 11:32 PM - Forum: General Discussion on PINE A64(+) - No Replies

I have the original pine . Can you put manjaro on this board?


  Exclamation Mark on Cellular
Posted by: M.A. - 04-05-2022, 05:40 PM - Forum: Arch Linux on PinePhone - Replies (12)

Hello all!

 I got this PinePhone about a month ago, and so far, Arch has been the fastest on it! However, I have noticed that there is now an exclamation mark on the cellular signal on the top bar. I would have put the picture here, but I don't understand how to do that in this forum. Here is the link to the picture: https://drive.google.com/file/d/1FWJKroX...sp=sharing I tried Manjaro Phosh on a microSD and after updating, it too had the exclamation mark. In Arch, I tried another sim card (the first was AT&T, the second was Verizon), but it still showed the exclamation mark. The only damage I know of on the sim card slot is that one of the prongs is a little bent after trying to use the included SIM card adapter (that is a whole different story). However, the sign didn't show up before and calls and texts worked and still work even with the mark (though I haven't tested it thoroughly). Also, the modem details seem fine in Arch, but they sometimes go blank if I mess around with the cellular settings. Any information is welcome! Just ask if you need more information.


  Power issue with the Pro
Posted by: Freitag - 04-05-2022, 03:43 PM - Forum: General Discussion of PinePhone Pro - Replies (13)

I've received the Pro for doing some light dev/messing around with, and to use as a daily sms unit. I got time to pull battery contact protector strip, and plug the unit in last night, all much like the 'regular' pinephone. I did notice that the battery was at 50%, which I thought would be expected, it needing a top off. I also noted it was draining, slowly, as I set up wifi et cetera -pretty much wifi and the pine64 arm wallpaper. Weird, but I can swap batteries if need be was my thinking, were it the battery. I started the update process, and let it do its thing, not checking it again until this afternoon, leaving the phone connected to a vanilla wall power usb plug that is surge-protected. There is now no response to button presses, no change if I swap to the battery from the non-Pro model, no friendly red/green led when the usb cable is connected. My first thought was, hell, failure to update, any number of reasons, I can install the OS myself, not a big deal. Upon further examination, this may be the case, or there are any number of other possibilities that I can think of. The older pinephone will boot up with either battery, so I am going to fully charge both, leaving the Pro unpowered overnight, and see what happens in the morning. Honestly, the battery shouldn't, in my mind, be the issue, if the unit is connected to external power, be it PC or wall plug. I hope I've given a detailed enough description, I am doing my best to not work on other things while typing this. Battery troubleshooting aside, does anyone have any thoughts?


Information How to: add support for Polish and Ukrainian to notifications on InfiniTime
Posted by: ITCactus - 04-05-2022, 08:58 AM - Forum: PineTime Tutorials - No Replies

if you are interested in support for Polish and Ukrainian languages in the notifications on your PineTime running InfiniTime,
and you do not want to use transliteration option provided by the companion app (e.g. Gadgetbridge on android),
than you can search for the latest release on this page, download and install "pinetime-mcuboot-app-dfu-x.x.x.+.UA-PL.zip" like for regular InfiniTime update.

i'll try to maintain the support for that feature till the InfiniTime will support it natively,
or... till my PineTime will stop working preventing me from builds verification  Undecided


Heart Pinephone compatability in Sweden with Telia and some other thoughts and insights!
Posted by: Lubbvard-tentakel - 04-05-2022, 03:56 AM - Forum: General Discussion on PinePhone - Replies (1)

Got my Pinephone with beta convergence package yesterday and flashed it with the newest (i guess?) Manjaro-ARM-plasma-mobile-pinephone-factory-20220311.img

phone calls - Work to make/receive calls.

sms - Works to send/receive sms. To send a sms you have to include the IDD (International Dialing Prefix) of Sweden witch is +46 or 0046 if you want to, otherwise the sms just won't make it's way to the receivers phone. A phone number that's for example 0762 93 ** 32 would have to look like +46762 93 ** 32 to be sent to the receiver. Otherwise it's just laying in your phone and seems to been sent, no errors etc so it's hard to know that it's not been sent as the phone don't tell you that.

mms - Don't work, not out of the box. Don't know if there's an easy fix to this? Get's a 'No MMSC selected'.

cellular data - Works fine with 3G. You have to manually activate a APN thou, which the phone auto detect itself while at it. Settings > Cellular network > SIM 0 > Modify Access Point Names > and then click on 'autodetect APN'. I've got three APNs and that's Halebop, Multicom Security and Telia and the phone automatically select Telia for me. After that the cellular data worked.


One thing i noticed is that sometimes when the pinephone is working with opening some applications i can hear a click-sound from within the phone of the same type of like a broken hard drive? Don't really know what that could be? It can be like three to four clicks in a row with like one and a half to like two seconds between each click and then it stops. Doesn't seem to do anything with the phone itself thou, at least nothing that I'm aware of.

It's kind of buggy here and there but that's not that big of a problem for me and i hope to get rid of much of that when switching to the i3-WM instead of the KDE plasma that would be the regular VM for the phone. I must just wait for the pinephone keyboard to be restocked.

I haven't used the usb-c dock station that comes with the phone yet but it sure looks and feel pretty awesome.

Some of the applications that I've downloaded thru pacman are Visual studio code, KeePassXC, Firefox, Gimp, Hexchat, Transmission and Thunderbird.

Okular works pretty well with reading epub's. It's a long wait at the beginning of each page but on the other side you don't have to scroll as soon as you get to a new page this is just something I do, if you just start reading and start scrolling down when you have read whats on the screen you're not going to be aware of the very long loading times on each page at all..

Thunderbird and Firefox in my opinion works very well at the pinephone in horizontal view (I'm at 125% zoom). Transmission also doing what it's supposed to. The phone is buggy as hell (imo) when it comes to switching between the horizontal and regular mode and the zooming etc and often crash but a reboot seems to fix that, it's not very often you're doing that either (if ever?).

The battery time i couldn't really have any opinions at right now because I've been constantly using the phone and to tell the truth my phone before this one was a Samsung from 2011, don't really know what model. So I don't really know what to expect and so on. But i do know that it's way better than my old phone..

This is for sure my phone of choice for daily use and I'm for sure are going for the Pinephone Pro in a near future. I Don't use any (A)social media's and so on so the lack of all of those shitty apps doesn't bother my at all the only thing i can feel like I would like to have that you have on the android/iphone is the app 'Mobilt Bank-ID' which didn't worked on my old phone either thou..


  autoremove
Posted by: kubussz - 04-05-2022, 02:57 AM - Forum: Mobian on PinePhone - Replies (2)

apt offers me to remove u-boot-sunxi. It's probably not a good idea?


  Disappearing Settings GUI
Posted by: sandspur - 04-04-2022, 11:56 AM - Forum: Mobian on PinePhone - Replies (4)

I did an update this morning and rebooted and after logging on to the system noticed that there was no GUI for SETTINGS. Makes it difficult to change any settings like wifi or Accessibility and the like.

Hopefully someone higher up the food chain at Mobian will learn of this and fix things.

I have had other programs, like vi, disappear and then reappear with updates.

Any comments or suggestions welcome.

Running Mobian bookworm with updates as of 4 April 2022.


  ST7789V LCD problem (RAMWR does not work for me)
Posted by: breeze - 04-04-2022, 09:03 AM - Forum: General Discussion on PineTime - Replies (1)

I am trying some baremetal project.



And stuck with two problems:

1st RAMWR does not work for me in code below. ST7789V accepts the data, but ignores it: display stays black. I can't find why.

2nd might come from first problem. I use STLink V2 and flash like:



1st window:

openocd.exe -s ..\scripts\ -f interface\stlink.cfg -f target\nrf52.cfg -c "bindto 0.0.0.0"

2nd window:

arm-none-eabi-gdb --batch -ex="target extended-remote 127.0.0.1:3333" -ex "monitor program c:/pine/mbr.bin 0x00000000" -ex "monitor reset"

arm-none-eabi-gdb -ex="target extended-remote 127.0.0.1:3333"

and in gdb I need to issue "r" command to have any effect.

I.E. reboot after flash does not happen by itself, also after program exec instead of reboot I have HardFault.



Display is not dead: latest infinitime works for me on that device.



Any hints?

Code:
                .syntax     unified
                .cpu        cortex-m4
                .arch       armv7e-m
                .thumb
                .section    .text,"ax"
                .balign     4

                .equ        GPIO_BASE,                      0x50000000
                .equ        GPIO_OUT,                       0x504
                .equ        GPIO_OUTSET,                    0x508
                .equ        GPIO_OUTCLR,                    0x50C
                .equ        GPIO_IN,                        0x510
                .equ        GPIO_DIR,                       0x514
                .equ        GPIO_DIRSET,                    0x518
                .equ        GPIO_DIRCLR,                    0x51C

                .equ        FLASH_SELECT,                   5

                .equ        LCD_SCK,                        2
                .equ        LCD_MOSI,                       3
                .equ        LCD_MISO,                       4
                .equ        LCD_SELECT,                     25
                .equ        LCD_COMMAND,                    18
                .equ        LCD_RESET,                      26
                .equ        LCD_BACKLIGHT_LOW,              14
                .equ        LCD_BACKLIGHT_MID,              22
                .equ        LCD_BACKLIGHT_HIGH,             23
                .equ        LCD_OUTPUTS_CONTROL_MASK,       (1<<LCD_SCK) | (1<<LCD_MOSI) | (1<<LCD_SELECT) | (1<<LCD_COMMAND) | (1<<LCD_RESET)
                .equ        LCD_OUTPUTS_BACKLIGHT_MASK,     (1<<LCD_BACKLIGHT_LOW) | (1<<LCD_BACKLIGHT_MID) | (1<<LCD_BACKLIGHT_HIGH)

                .equ        LCD_SPI_BASE,                   0x40003000
                .equ        LCD_SPI_ENABLE,                 0x500
                .equ        LCD_SPI_PSELSCK,                0x508
                .equ        LCD_SPI_PSELMOSI,               0x50C
                .equ        LCD_SPI_PSELMISO,               0x510
                .equ        LCD_SPI_RXD,                    0x518
                .equ        LCD_SPI_TXD,                    0x51C
                .equ        LCD_SPI_FREQUENCY,              0x524
                .equ        LCD_SPI_CONFIG,                 0x554
                .equ        LCD_SPI_EVENTS_READY,           0x108
               
                .equ        LCD_WIDTH,                      8
                .equ        LCD_HEIGHT,                     8
                .equ        LCD_FULL_BYTES_SIZE,            (LCD_WIDTH*LCD_HEIGHT)
               
                .equ        CMD_SWRESET,                    0x01
                .equ        CMD_SLPOUT,                     0x11
                .equ        CMD_COLMOD,                     0x3A
                .equ        CMD_NORON,                      0x13 // Normal Display Mode On
                .equ        CMD_INVOFF,                     0x20 // Display Inversion Off
                .equ        CMD_INVON,                      0x21 // Display Inversion On
                .equ        CMD_DISPOFF,                    0x28 // Display Off
                .equ        CMD_DISPON,                     0x29 // Display On
                .equ        CMD_CASET,                      0x2A // Column Address Set
                .equ        CMD_RASET,                      0x2B // Row Address Set
                .equ        CMD_RAMWR,                      0x2C // Memory Write
                .equ        CMD_RAMRD,                      0x2E // Memory Read
                .equ        CMD_MADCTL,                     0x36 // Memory Data Access Control
                .equ        CMD_VSCSAD,                     0x37 // Vertical Scroll Start Address of RAM
                .equ        CMD_RAMCTRL,                    0xB0 // RAM Control
                .equ        CMD_PORCTRL,                    0xB2 // Porch Setting
                .equ        CMD_CMD2EN,                     0xDF // Command 2 Enable

                .equ        PUSH_BUTTON_IN,                 13
                .equ        PUSH_BUTTON_OUT,                15

                .equ        GPIO_OUTPUTS_MASK,              FLASH_SELECT | LCD_OUTPUTS_CONTROL_MASK | LCD_OUTPUTS_BACKLIGHT_MASK
                .equ        GPIO_INPUTS_MASK,               (1<<LCD_MISO)

                .macro      Sleep Reg, Tacts
                MOV         \Reg, \Tacts
loop\@:
                SUBS        \Reg, 1
                BNE         loop\@
                .endm

__Vectors:
                .org        0
                .word       __initial_sp                    // Top of Stack
                .word       Reset_Handler                   // Reset Handler
                .word       NMI_Handler                     // NMI Handler
                .word       HardFault_Handler               // Hard Fault Handler
                .word       MemManage_Handler               // MPU Fault Handler
                .word       BusFault_Handler                // Bus Fault Handler
                .word       UsageFault_Handler              // Usage Fault Handler
                .word       0                               // 7  Reserved
                .word       0                               // 8  Reserved
                .word       0                               // 9  Reserved
                .word       0                               // 10 Reserved
                .word       SVCall_Handler                  // Supervisor Call Handler
                .word       DebugMonitor_Handler            // Debug Monitor Handler
                .word       0                               // 13 Reserved
                .word       PendSV_Handler                  // Deferred Supervisor Call Handler
                .word       SysTick_Handler                 // System Timer Handler
                .word       CLOCK_POWER_BPROT_Handler       // 00 Clock control / Power control / Block Protect
                .word       RADIO_Handler                   // 01 2.4 GHz radio
                .word       UARTE0_Handler                  // 02 Universal Asynchronous Receiver/Transmitter with EasyDMA
                .word       SPIM0_SPIS0_TWIM0_TWIS0_Handler // 03 SPI master 0 / SPI slave 0 / Two-wire interface master 0 / Two-wire interface slave 0
                .word       SPIM1_SPIS1_TWIM1_TWIS1_Handler // 04 SPI master 1 / SPI slave 1 / Two-wire interface master 1 / Two-wire interface slave 1
                .word       NFCT_Handler                    // 05 Near Field Communication Tag
                .word       GPIOTE_Handler                  // 06 GPIO Tasks and Events
                .word       SAADC_Handler                   // 07 Analog to digital converter
                .word       TIMER0_Handler                  // 08 Timer 0
                .word       TIMER1_Handler                  // 09 Timer 1
                .word       TIMER2_Handler                  // 0A Timer 2
                .word       RTC0_Handler                    // 0B Real-time counter 0
                .word       TEMP_Handler                    // 0C Temperature sensor
                .word       RNG_Handler                     // 0D Random number generator
                .word       ECB_AES_Handler                 // 0E Electronic Code Book (ECB) mode block encryption
                .word       CCM_AAR_Handler                 // 0F AES CCM Mode Encryption / Acelerated Address Resolver
                .word       WDT_Handler                     // 10 Watchdog timer
                .word       RTC1_Handler                    // 11 Real-time counter 1
                .word       QDEC_Handler                    // 12 Quadrature decoder
                .word       LPCOMP_Handler                  // 13 Low power comparator
                .word       COMP_Handler                    // 14 General purpose comparator
                .word       EGU0_SWI0_Handler               // 15 Event Generator Unit 0 / Software interrupt 0
                .word       EGU1_SWI1_Handler               // 16 Event Generator Unit 1 / Software interrupt 1
                .word       EGU2_SWI2_Handler               // 17 Event Generator Unit 2 / Software interrupt 2
                .word       EGU3_SWI3_Handler               // 18 Event Generator Unit 3 / Software interrupt 3
                .word       EGU4_SWI4_Handler               // 19 Event Generator Unit 4 / Software interrupt 4
                .word       EGU5_SWI5_Handler               // 1A Event Generator Unit 5 / Software interrupt 5
                .word       TIMER3_Handler                  // 1B Timer 3
                .word       TIMER4_Handler                  // 1C Timer 4
                .word       PWM0_Handler                    // 1D Pulse Width Modulation Unit 0
                .word       PDM_Handler                     // 1E Pulse Density Modulation (Digital Microphone Interface)
                .word       NVMC_Handler                    // 1F Non-Volatile Memory Controller
                .word       PPI_Handler                     // 20 Programmable Peripheral Interconnect
                .word       MWU_Handler                     // 21 Memory Watch Unit
                .word       PWM1_Handler                    // 22 Pulse Width Modulation Unit 1
                .word       PWM2_Handler                    // 23 Pulse Width Modulation Unit 2
                .word       SPIS2_Handler                   // 24 SPI slave 2
                .word       SPIM2_Handler                   // 25 SPI master 2
                .word       RTC2_Handler                    // 26 Real-time counter 2
                .word       I2S_Handler                     // 27 Inter-IC Sound Interface
                .word       FPU_Handler                     // 28 FPU interrupt
                .word       ISR_29_Handler                  // 29 ISR_Handler
                .word       ISR_2A_Handler                  // 2A ISR_Handler
                .word       ISR_2B_Handler                  // 2B ISR_Handler
                .word       ISR_2C_Handler                  // 2C ISR_Handler
                .word       ISR_2D_Handler                  // 2D ISR_Handler
                .word       ISR_2E_Handler                  // 2E ISR_Handler
                .word       ISR_2F_Handler                  // 2F ISR_Handler

NMI_Handler:                                                // NMI Handler
                B           Reset
HardFault_Handler:                                          // Hard Fault Handler
                B           Reset
MemManage_Handler:                                          // MPU Fault Handler
                B           Reset
BusFault_Handler:                                           // Bus Fault Handler
                B           Reset
UsageFault_Handler:                                         // Usage Fault Handler
                B           Reset
SVCall_Handler:                                             // Supervisor call Handler
                B           Reset
DebugMonitor_Handler:                                       // Debug Monitor Handler
                B           Reset
PendSV_Handler:                                             // Deferred Supervisor Call Handler
                B           Reset
SysTick_Handler:                                            // System Timer Handler
                B           Reset
CLOCK_POWER_BPROT_Handler:                                  // 00 Clock control / Power control / Block Protect
                B           Reset
RADIO_Handler:                                              // 01 2.4 GHz radio
                B           Reset
UARTE0_Handler:                                             // 02 Universal Asynchronous Receiver/Transmitter with EasyDMA
                B           Reset
SPIM0_SPIS0_TWIM0_TWIS0_Handler:                            // 03 SPI master 0 / SPI slave 0 / Two-wire interface master 0 / Two-wire interface slave 0
                B           .
SPIM1_SPIS1_TWIM1_TWIS1_Handler:                            // 04 SPI master 1 / SPI slave 1 / Two-wire interface master 1 / Two-wire interface slave 1
                B           .
NFCT_Handler:                                               // 05 Near Field Communication Tag
                B           .
GPIOTE_Handler:                                             // 06 GPIO Tasks and Events
                B           .
SAADC_Handler:                                              // 07 Analog to digital converter
                B           .
TIMER0_Handler:                                             // 08 Timer 0
                B           .
TIMER1_Handler:                                             // 09 Timer 1
                B           .
TIMER2_Handler:                                             // 0A Timer 2
                B           .
RTC0_Handler:                                               // 0B Real-time counter 0
                B           .
TEMP_Handler:                                               // 0C Temperature sensor
                B           .
RNG_Handler:                                                // 0D Random number generator
                B           .
ECB_AES_Handler:                                            // 0E Electronic Code Book (ECB) mode block encryption
                B           .
CCM_AAR_Handler:                                            // 0F AES CCM Mode Encryption / Acelerated Address Resolver
                B           .
WDT_Handler:                                                // 10 Watchdog timer
                B           .
RTC1_Handler:                                               // 11 Real-time counter 1
                B           .
QDEC_Handler:                                               // 12 Quadrature decoder
                B           .
LPCOMP_Handler:                                             // 13 Low power comparator
                B           .
COMP_Handler:                                               // 14 General purpose comparator
                B           .
EGU0_SWI0_Handler:                                          // 15 Event Generator Unit 0 / Software interrupt 0
                B           .
EGU1_SWI1_Handler:                                          // 16 Event Generator Unit 1 / Software interrupt 1
                B           .
EGU2_SWI2_Handler:                                          // 17 Event Generator Unit 2 / Software interrupt 2
                B           .
EGU3_SWI3_Handler:                                          // 18 Event Generator Unit 3 / Software interrupt 3
                B           .
EGU4_SWI4_Handler:                                          // 19 Event Generator Unit 4 / Software interrupt 4
                B           .
EGU5_SWI5_Handler:                                          // 1A Event Generator Unit 5 / Software interrupt 5
                B           .
TIMER3_Handler:                                             // 1B Timer 3
                B           .
TIMER4_Handler:                                             // 1C Timer 4
                B           .
PWM0_Handler:                                               // 1D Pulse Width Modulation Unit 0
                B           .
PDM_Handler:                                                // 1E Pulse Density Modulation (Digital Microphone Interface)
                B           .
NVMC_Handler:                                               // 1F Non-Volatile Memory Controller
                B           .
PPI_Handler:                                                // 20 Programmable Peripheral Interconnect
                B           .
MWU_Handler:                                                // 21 Memory Watch Unit
                B           .
PWM1_Handler:                                               // 22 Pulse Width Modulation Unit 1
                B           .
PWM2_Handler:                                               // 23 Pulse Width Modulation Unit 2
                B           .
SPIS2_Handler:                                              // 24 SPI slave 2
                B           .
SPIM2_Handler:                                              // 25 SPI master 2
                B           .
RTC2_Handler:                                               // 26 Real-time counter 2
                B           .
I2S_Handler:                                                // 27 Inter-IC Sound Interface
                B           .
FPU_Handler:                                                // 28 FPU interrupt
                B           .
ISR_29_Handler:                                             // 29 ISR Handler
                B           .
ISR_2A_Handler:                                             // 2A ISR Handler
                B           .
ISR_2B_Handler:                                             // 2B ISR Handler
                B           .
ISR_2C_Handler:                                             // 2C ISR Handler
                B           .
ISR_2D_Handler:                                             // 2D ISR Handler
                B           .
ISR_2E_Handler:                                             // 2E ISR Handler
                B           .
ISR_2F_Handler:                                             // 2F ISR Handler
                B           .

Reset_Handler:
lcd_init:
                MOV         R7, GPIO_BASE
                LDR         R6, =LCD_SPI_BASE
               
                LDR         R0, =GPIO_OUTPUTS_MASK
                STR         R0, [R7, GPIO_DIRSET]

                LDR         R0, =GPIO_INPUTS_MASK
                STR         R0, [R7, GPIO_DIRCLR]

                MOV         R0, (1<<FLASH_SELECT)           // Deactivate FlashMemory
                STR         R0, [R7, GPIO_OUTSET]

                MOV         R0, (1<<LCD_SELECT)             // Activate Display
                STR         R0, [R7, GPIO_OUTCLR]

                MOV         R0, (1<<LCD_COMMAND)
                STR         R0, [R7, GPIO_OUTSET]

                MOV         R0, (1<<LCD_RESET)
                STR         R0, [R7, GPIO_OUTSET]
               
                LDR         R0, =LCD_OUTPUTS_BACKLIGHT_MASK
                STR         R0, [R7, GPIO_OUTSET]

                MOV         R0, (1<<LCD_BACKLIGHT_HIGH)
                STR         R0, [R7, GPIO_OUTCLR]

                MOV         R0, 0
                STR         R0, [R6, LCD_SPI_ENABLE]
               
                MOV         R0, 0
                STR         R0, [R6, LCD_SPI_EVENTS_READY]
               
                MOV         R0, LCD_SCK
                STR         R0, [R6, LCD_SPI_PSELSCK]
               
                MOV         R0, LCD_MOSI
                STR         R0, [R6, LCD_SPI_PSELMOSI]

                MOV         R0, LCD_MISO
                STR         R0, [R6, LCD_SPI_PSELMISO]

                MOV         R0, 0x80000000                  // 8Mbps
                STR         R0, [R6, LCD_SPI_FREQUENCY]

                MOV         R0, (1<<2) | (1<<1)         // CPOL=ActiveLow | CPHA=Trailing | ORDER=MsbFirst
                STR         R0, [R6, LCD_SPI_CONFIG]

                //MOV           R0, 1
                //STR           R0, [R6, LCD_SPI_ENABLE]

                MOV         R0, (1<<LCD_RESET)
                STR         R0, [R7, GPIO_OUTCLR]
                Sleep       R1, 0x1000000
                STR         R0, [R7, GPIO_OUTSET]
                Sleep       R1, 0x1000000

                MOV         R0, CMD_SWRESET
                BL          lcd_transfer_cmd
                Sleep       R0, 0x1000000
               
                MOV         R0, CMD_SLPOUT
                BL          lcd_transfer_cmd
                Sleep       R0, 0x100000
               
                MOV         R0, CMD_VSCSAD
                BL          lcd_transfer_cmd
                MOV         R0, 0x00
                BL          lcd_transfer_data
                BL          lcd_transfer_data
                Sleep       R0, 0x10000
               
//              MOV         R0, CMD_CMD2EN
//              BL          lcd_transfer_cmd
//              MOV         R0, 0x5A
//              BL          lcd_transfer_data
//              MOV         R0, 0x69
//              BL          lcd_transfer_data
//              MOV         R0, 0x02
//              BL          lcd_transfer_data
//              MOV         R0, 0x01
//              BL          lcd_transfer_data
//              Sleep       R0, 0x10000
//
//              MOV         R0, CMD_RAMCTRL
//              BL          lcd_transfer_cmd
//              MOV         R0, 0x00
//              BL          lcd_transfer_data
//              MOV         R0, 0xF0
//              BL          lcd_transfer_data
//              Sleep       R0, 0x10000
//             
//              MOV         R0, CMD_PORCTRL
//              BL          lcd_transfer_cmd
//              MOV         R0, 0x0C
//              BL          lcd_transfer_data
//              BL          lcd_transfer_data
//              MOV         R0, 0x00
//              BL          lcd_transfer_data
//              MOV         R0, 0x33
//              BL          lcd_transfer_data
//              BL          lcd_transfer_data
//              Sleep       R0, 0x10000
//             
//              MOV         R0, CMD_CMD2EN
//              BL          lcd_transfer_cmd
//              MOV         R0, 0x5A
//              BL          lcd_transfer_data
//              MOV         R0, 0x69
//              BL          lcd_transfer_data
//              MOV         R0, 0x02
//              BL          lcd_transfer_data
//              MOV         R0, 0x00
//              BL          lcd_transfer_data
//              Sleep       R0, 0x10000

                MOV         R0, CMD_COLMOD
                BL          lcd_transfer_cmd
                MOV         R0, 0x66                    // 888
                BL          lcd_transfer_data
                Sleep       R0, 0x100
               
                MOV         R0, CMD_MADCTL
                BL          lcd_transfer_cmd
                MOV         R0, 0x00
                BL          lcd_transfer_data
                Sleep       R0, 0x100

fill_display:
                MOV         R0, CMD_CASET
                BL          lcd_transfer_cmd
                MOV         R0, 0
                BL          lcd_transfer_data
                BL          lcd_transfer_data
                BL          lcd_transfer_data
                MOV         R0, LCD_WIDTH
                BL          lcd_transfer_data

                MOV         R0, CMD_RASET
                BL          lcd_transfer_cmd
                MOV         R0, 0
                BL          lcd_transfer_data
                BL          lcd_transfer_data
                BL          lcd_transfer_data
                MOV         R0, LCD_HEIGHT
                BL          lcd_transfer_data

                MOV         R0, CMD_RAMWR
                BL          lcd_transfer_cmd

                MOV         R3, 0xFFFFFFFF
fill_display_data1:
                LDR         R2, =LCD_FULL_BYTES_SIZE
fill_display_data:
                MOV         R0, R3
                BL          lcd_transfer_data
                MOV         R0, 0
                BL          lcd_transfer_data
                BL          lcd_transfer_data
                SUBS        R2, 1
                BNE         fill_display_data
               
                Sleep       R0, 0x100000

                MOV         R0, CMD_DISPOFF
                BL          lcd_transfer_cmd
                Sleep       R0, 0x100000
               
                MOV         R0, CMD_DISPON
                BL          lcd_transfer_cmd
                Sleep       R0, 0x100000

                //MOV         R0, (1<<LCD_SELECT)               // Deactivate Display
                //STR         R0, [R7, GPIO_OUTSET]
               
                LDR         R0, =LCD_OUTPUTS_BACKLIGHT_MASK
                STR         R0, [R7, GPIO_OUTSET]
                Sleep       R0, 0x100000

                MOV         R0, (1<<LCD_BACKLIGHT_HIGH)
                STR         R0, [R7, GPIO_OUTCLR]
                Sleep       R0, 0x100000

                //MOV         R0, (1<<LCD_SELECT)               // Activate Display
                //STR         R0, [R7, GPIO_OUTCLR]

                MOV         R0, CMD_INVON
                BL          lcd_transfer_cmd

                MOV         R0, CMD_NORON
                BL          lcd_transfer_cmd

                LSRS        R3, R3, 1
                BNE         fill_display_data1

                LDR         R0, =LCD_OUTPUTS_BACKLIGHT_MASK
                STR         R0, [R7, GPIO_OUTSET]

                B           Reset

lcd_transfer_cmd:
                MOV         R1, (1<<LCD_SELECT)             // Activate Display
                STR         R1, [R7, GPIO_OUTCLR]
                MOV         R1, (1<<LCD_COMMAND)
                STR         R1, [R7, GPIO_OUTCLR]
                B           lcd_transfer

lcd_transfer_data:
                MOV         R1, (1<<LCD_SELECT)             // Activate Display
                STR         R1, [R7, GPIO_OUTCLR]
                MOV         R1, (1<<LCD_COMMAND)
                STR         R1, [R7, GPIO_OUTSET]
                B           lcd_transfer                    // Hang if removed: display needs time to sense command/data line

lcd_transfer:                                               // R6, R7, R0, R1
                MOV         R1, 1
                STR         R1, [R6, LCD_SPI_ENABLE]
               
                MOV         R1, 0
                STR         R1, [R6, LCD_SPI_EVENTS_READY]
                STR         R0, [R6, LCD_SPI_TXD]

lcd_transfer1:
                LDR         R1, [R6, LCD_SPI_EVENTS_READY]
                ORRS        R1, R1
                BNE         lcd_transfer1

                LDR         R1, [R6, LCD_SPI_RXD]
               
                MOV         R1, 0
                STR         R1, [R6, LCD_SPI_ENABLE]
                MOV         R1, (1<<LCD_SELECT)             // Activate Display
                STR         R1, [R7, GPIO_OUTSET]

                BX          LR

Reset:
                MOV         R0, 0xE000E000                  // #define SCS_BASE            (0xE000E000UL)                            /*!< System Control Space Base Address */
                ADD         R0, 0x0D00                      // #define SCB_BASE            (SCS_BASE +  0x0D00UL)                    /*!< System Control Block Base Address */
                ADD         R0, 0x00C                       // __IOM uint32_t AIRCR;      /*!< Offset: 0x00C (R/W)  Application Interrupt and Reset Control Register */
                LDR         R1, [R0]
                MOV         R2, 0xFFFF
                AND         R1, R2
                MOV         R2, 0x05FA
                LSL         R2, R2, 16
                ORR         R1, R2
                ORR         R1, (1<<2)                      // #define SCB_AIRCR_SYSRESETREQ_Pos 2U /*!< SCB AIRCR: SYSRESETREQ Position */
                STR         R1, [R0]
                B           .

                .equ        nextboot, 0x1000
                .equ        versionsize, 32
                .equ        __initial_sp, 0x20010000        // Top of Stack
                .equ        __initial_sp2_ptr, nextboot       // Top of Stack of next boot loader

                .pool


Compiled and gzipped code from the above:

Code:
H4sICKoGS2ICAG1ici5iaW4AtdHNaxNBGMfxmZiGtURJ1UiQIokWadMiQaXWEOMmrUkQ7cbaivhG
fCtFiiQ9eRFyUkQQevHsn+JBk3MuPXdOhZ5GiTIoNn4nGWvp3Swffvs8z+zsZlcImVyTQgiEEEYE
nu3t+w3Ti7r+YTKGIziG40jgBEZxEkmcwhjOYBxpTOEsMjiHC5jGDLLIIQ8fRcyhhAqu4TrmUcUC
FnEbd3AX9/EQNTzGUyxjBc+xiheoo6xK6qqaU7OqqArKV1dUXl1WObWz9b+OQH8sr8+vV9omMRTo
mGibUTJJeqSot010KOg2k4O6WbP5ptKvukL0p1qIlhEuPRnokE3qA6Sdh8mYnfstM0ZGqBfdbnbe
bMhLvzvuDv3zQPMy9AdDXZczth6hfm94ktigvkj92th7Cv3OCP3WzjKDWZbeS2bL5Cvbd3tMU6+6
axp7+mnqmus/Y68neETtUT8gJ8mqmy8xu4Wbbn6DnCJ9snc+0H4oURK66FbnWZkzMtvt/HvycfoT
e/7JBHVqt864d+umf9/x7uoUq4fZ/SgZMfe8L53T/SvSm9yxwdo4a1M2vX0dL97ja0vJt4ozIb2R
Fl97gzw4+6uzYRKu35837BX1cqA3k+J7tSa+RoVcCX701uR2SPrffi4E26FigfOCDktZ29kSGeEf
8j9HhP9J/AHvBpHwyAMAAA==


  Pinephone keyboard (no, not that one)
Posted by: jhasler - 04-03-2022, 09:22 PM - Forum: General Discussion on PinePhone - No Replies

Needed to do some debugging that would interrupt ssh.  I didn't feature
typing long arcane systemctl commands on the touchscreen so I looked around
for a keyboard. Two full-size keyboards crowds my cluttered desk.  I
remembered a weird little 8"x10" Logitech keyboard I bought at a yard sale
for about $5 so on a lark I dug it out.  It has a microUSB socket but
neither the Pinephone nor the pc see it.  Oh, well.  Before pitching it
back in the junkbox I took a long shot and looked up the part number
(Y-R0023).  Turns out to be a Bluetooth keyboard for an iPad and it pairs
up just fine with the Pinephone!  Not only that, but the Pinephone fits
perfectly in the slot where the iPad would go!  Of course, being from the
Apple world it has no escape key, but that's fixable.  Some of the
special-purpose keys it has instead of function keys even work.


Heart Manjaro with i3 WM?
Posted by: Lubbvard-tentakel - 04-03-2022, 08:33 AM - Forum: PinePhone Software - Replies (1)

I'm getting my first pinephone with the convergence package tomorrow and i wonder if there is any possibilities to use i3 as my window manager on the pinephone? If yes, Is it anyone here that use that as their own setup today or at least have used that?

I'm planning on using it with the pinephone keyboard and not the onscreen-keyboard :O.. I'm using Fedora and also Manjaro with the i3 window manager today already so adapting to the i3 wm on the pinephone wouldn't be that hard i guess..