BETA: piCorePlayer6.0.0 - PI4 support

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Greg Erskine
    Senior Member
    • Sep 2006
    • 2808

    #16
    There is also a CPU Temperature graph page:

    [Main Page] in [Beta] mode > [Extras] > [CPU Temp]. Press [Start].

    This will start a process to record the CPU temp every minute. Page will refresh automatically.

    Comment

    • garym
      Senior Member
      • May 2008
      • 13540

      #17
      Originally posted by Greg Erskine
      There is also a CPU Temperature graph page:

      [Main Page] in [Beta] mode > [Extras] > [CPU Temp]. Press [Start].

      This will start a process to record the CPU temp every minute. Page will refresh automatically.
      nice. Thanks!
      Home: Pi4B-8GB/pCP8.2.x/4TB USB>LMS 8.5.x>Transporter, Touch, Boom, Radio (all ethernet)
      Cottage: rPi4B-4GB/pCP8.2.x/4TB USB>LMS 8.5.x>Touch>Benchmark DAC I, Boom, Radio w/Battery (Radio WIFI)
      Office: Win11(64)>foobar2000
      The Wild: rPi3B+/pCP7.x/4TB USB>LMS 8.1.x>hifiberry Dac+Pro (LMS & Squeezelite)
      Controllers: Material Skin, iPhone14Pro & iPadAir5 (iPeng), or CONTROLLER
      Files: Ripping: dBpoweramp > FLAC; Post-rip: mp3tag, PerfectTunes, TuneFusion; Streaming: Spotify

      Comment

      • Greg Erskine
        Senior Member
        • Sep 2006
        • 2808

        #18
        Originally posted by chill
        I had a few mis-steps, I think caused by leaving my 3B+ running so that I had an easy reference to set up the RPi4. This meant that both RPis were creating players with the same names and I had two instances of LMS on my network. Since sorting all of that out I haven't spotted anything that doesn't work, but I haven't tried all my normal plugins yet, and I haven't tried LIRC yet. So far so good though.
        Hi Chill,

        Thanks for testing.

        Players with the same name is OK its just confusing. But with multiple LMS's you are never sure which LMS pCP will autodetect when squeezelite starts. If you continue with multiple LMS then you need set [Squeezelite Settings] > "Change Squeezelite settings" > "LMS IP".

        There is also an option on [Main Page] in [Beta] mode > [Extras] > [LMS CLI] > "Select LMS". (This command never made it out of testing mode to a more logical location.)

        regards
        Greg

        Comment

        • Greg Erskine
          Senior Member
          • Sep 2006
          • 2808

          #19
          Also, when you visit various pCP pages, especially diagnostics pages, a log is generated.

          These logs are viewable thru [Main Page] > [Diagnostics] > [Logs]. This makes it easier to cut and paste. If you are in [Beta] mode, you will also get a [Pastebin] button, for uploading to pastebin.

          We have added things like "favorites list" log which have recently been requested.
          Last edited by Greg Erskine; 2019-07-07, 23:23.

          Comment

          • chill
            Senior Member
            • Mar 2007
            • 2233

            #20
            Thanks for the tips Greg. The temperature graphing option looks useful - I'll try that while stressing the RPi4. The logging options look useful too. I stopped playing once I'd got the basic setup working this evening, but will come back to it. I was having a bit of trouble with the speaker that's connected via the Airplay Bridge - this might in fact have been the source of the problems that I'd attributed to multiple LMSs and duplicate player names. Or perhaps that's what caused my Airplay problems. Not sure yet whether it's a pCP6-specific issue, so will play some more and look for clues in the logs.

            Certainly, part of the problem I had when I recreated my players on the pCP6 device is that I simply copy-and-pasted the user command from the 3B+, and that user command specified the player's MAC address (necessary when running more than one Squeezelite instance). So I had two players with the same name and the same MAC address. That's been corrected, and I've also turned off the 3B+ now, so that problem has gone away.

            Comment

            • drmatt
              Senior Member
              • Apr 2013
              • 1323

              #21
              If you can watch the CPU clock speed that will give you an idea of when the CPU is throttled too.


              Transcoded from Matt's brain by Tapatalk
              --
              Hardware: 3x Touch, 1x Radio, 2x Receivers, 1 HP Microserver NAS with Debian+LMS 7.9.0
              Music: ~1300 CDs, as 450 GB of 16/44k FLACs. No less than 3x 24/44k albums..

              Comment

              • chill
                Senior Member
                • Mar 2007
                • 2233

                #22
                Originally posted by drmatt
                If you can watch the CPU clock speed that will give you an idea of when the CPU is throttled too.
                From here I found:

                Code:
                sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
                sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
                sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
                ...to get maximum CPU frequency under load, minimum CPU frequency at idle, and current frequency respectively.

                Mine's currently at 600000 (600MHz), since it's at idle, and has a maximum of 1.5GHz. Does it jump straight to 1.5GHz under normal load conditions, such that any speed other than 600MHz or 1.5GHz indicates that it's trying to run at full speed but is being throttled? Or does it step up gradually from 600MHz according to the amount of load? If the latter, how can you tell if it's throttling or just not under enough load to need to go faster?

                I've just applied the firmware update posted here, and it's had a noticeable effect. I'd been logging the CPU temperature over night, and it stayed at 59 degrees all night, occasionally changing to 60 degrees, but I think that's just the precision of the sensor, since the RPi4 wasn't doing anything. A few minutes after rebooting after the firmware update and it's dropped to 56 degrees. That's the 3-5 degrees reduction that was expected for the new firmware.

                EDIT: Standing upright, such that the upward airflow is parallel to the fins on the heatsink, I'm seeing another couple of degrees drop. It's now steady at 54 degrees at idle. That's the same temperature as another 3B+ I have that's idling inside an official case. This evening I'll mount it in place of my main 3B+ that's inside my amplifier chassis, to see what effect that has. At this point I'm quite encouraged by the temperatures.
                Last edited by chill; 2019-07-08, 10:07.

                Comment

                • d6jg
                  Senior Member
                  • Feb 2011
                  • 8953

                  #23
                  Originally posted by Greg Erskine
                  Hi Chill,

                  Thanks for testing.

                  Players with the same name is OK its just confusing. But with multiple LMS's you are never sure which LMS pCP will autodetect when squeezelite starts. If you continue with multiple LMS then you need set [Squeezelite Settings] > "Change Squeezelite settings" > "LMS IP".

                  There is also an option on [Main Page] in [Beta] mode > [Extras] > [LMS CLI] > "Select LMS". (This command never made it out of testing mode to a more logical location.)

                  regards
                  Greg

                  Perhaps it would be an idea to make the default into "127.0.0.1" WHEN you install LMS on the Pi
                  Jim



                  pCP9.0 / LMS 9.x storage QNAP TS419p (NFS)
                  Living Room Joggler & Pi4/Khadas -> Onkyo TXNR686 -> Celestion F20s
                  Office Joggler & Pi3 -> Onkyo CRN775 -> Wharfedale Modus Cubes
                  Kitchen WiiM Pro -> Topping MX3 - B&W In Ceiling speakers
                  Bedroom (Bedside) Pi Zero+DAC ->ToppingTP21 ->AKG Headphones
                  Bedroom (TV) & Bathroom SB Touch ->Denon AVR ->Mordaunt Short M10s + Kef ceiling speakers
                  Guest Room Joggler > Denon RCFN8 -> Celestions F10s

                  Comment

                  • d6jg
                    Senior Member
                    • Feb 2011
                    • 8953

                    #24
                    Got this installed on my Pi4 and configured LMS and pcp-streamer with a Behringer UAC202
                    NFS mount worked first time
                    Took about 30 minutes to get things going with only one minor issue.
                    After I enabled pcp-streamer output initially went via HDMI even though USB was set. I had to disable on-board audio and everything was and is as it should be.
                    Currently streaming a CD using pcp-streamer in and out on the same UAC202 at the same time.
                    Jim



                    pCP9.0 / LMS 9.x storage QNAP TS419p (NFS)
                    Living Room Joggler & Pi4/Khadas -> Onkyo TXNR686 -> Celestion F20s
                    Office Joggler & Pi3 -> Onkyo CRN775 -> Wharfedale Modus Cubes
                    Kitchen WiiM Pro -> Topping MX3 - B&W In Ceiling speakers
                    Bedroom (Bedside) Pi Zero+DAC ->ToppingTP21 ->AKG Headphones
                    Bedroom (TV) & Bathroom SB Touch ->Denon AVR ->Mordaunt Short M10s + Kef ceiling speakers
                    Guest Room Joggler > Denon RCFN8 -> Celestions F10s

                    Comment

                    • d6jg
                      Senior Member
                      • Feb 2011
                      • 8953

                      #25
                      Development request - pcp-streamer

                      Can you add a basic "record" and "stop" control to the web browser and the ability to specify output file name and path ? Preferably WAV format.
                      This would then make a Pi4 and pCp great for playing and recording vinyl for later digitising to FLAC files.
                      Jim



                      pCP9.0 / LMS 9.x storage QNAP TS419p (NFS)
                      Living Room Joggler & Pi4/Khadas -> Onkyo TXNR686 -> Celestion F20s
                      Office Joggler & Pi3 -> Onkyo CRN775 -> Wharfedale Modus Cubes
                      Kitchen WiiM Pro -> Topping MX3 - B&W In Ceiling speakers
                      Bedroom (Bedside) Pi Zero+DAC ->ToppingTP21 ->AKG Headphones
                      Bedroom (TV) & Bathroom SB Touch ->Denon AVR ->Mordaunt Short M10s + Kef ceiling speakers
                      Guest Room Joggler > Denon RCFN8 -> Celestions F10s

                      Comment

                      • d6jg
                        Senior Member
                        • Feb 2011
                        • 8953

                        #26
                        Originally posted by d6jg
                        Got this installed on my Pi4 and configured LMS and pcp-streamer with a Behringer UAC202
                        NFS mount worked first time
                        Took about 30 minutes to get things going with only one minor issue.
                        After I enabled pcp-streamer output initially went via HDMI even though USB was set. I had to disable on-board audio and everything was and is as it should be.
                        Currently streaming a CD using pcp-streamer in and out on the same UAC202 at the same time.
                        An observation on pcp-streamer which I hadn't noticed on pCp 5.0 (doesn't mean its not there as well)
                        If LMS is installed and running on the Pi and pcp-streamer is enabled you can NOT connect to the stream from another instance of LMS elsewhere.
                        If you switch LMS off on said Pi then you CAN connect to pcp-streamer from another instance of LMS.
                        Jim



                        pCP9.0 / LMS 9.x storage QNAP TS419p (NFS)
                        Living Room Joggler & Pi4/Khadas -> Onkyo TXNR686 -> Celestion F20s
                        Office Joggler & Pi3 -> Onkyo CRN775 -> Wharfedale Modus Cubes
                        Kitchen WiiM Pro -> Topping MX3 - B&W In Ceiling speakers
                        Bedroom (Bedside) Pi Zero+DAC ->ToppingTP21 ->AKG Headphones
                        Bedroom (TV) & Bathroom SB Touch ->Denon AVR ->Mordaunt Short M10s + Kef ceiling speakers
                        Guest Room Joggler > Denon RCFN8 -> Celestions F10s

                        Comment

                        • paul-
                          Senior Member
                          • Jan 2013
                          • 5780

                          #27
                          Yes, only one connection is possible at any one time, you can however sync your players. When a player stops listening to the stream, it takes a few seconds for it to detect and stop. LMS alone should not tie up the stream, unless a player is playing.
                          piCorePlayer a small player for the Raspberry Pi in RAM.
                          Homepage: https://www.picoreplayer.org

                          Please donate if you like the piCorePlayer

                          Comment

                          • chill
                            Senior Member
                            • Mar 2007
                            • 2233

                            #28
                            Is it possible that the SqueezeButtonPi Daemon (sbpd) might be incompatible with pCP6? After swapping out my 3B+ in my amplifier for the 4B, complete with my own PCB with a number of momentary pushbuttons, I've been unable to get the 4B to respond to any button presses.

                            On the 3B+ I had it set up as a User Command, but to try and debug it I've disabled that command and have been entering it manually at a command prompt via SSH. I can see that my config file is being read and interpreted, but there's no response to any button presses.

                            Code:
                            sbpd -v -f /home/tc/sbpd_commands.cfg b,27,POWR,2,0,RSRT,2000 b,23,PREV,2,0,PLAY,500 b,22,MIX-,2,0,MUTE,500 b,24,PAUS,2,0,STOP,5
                            1562621454.2080 6 sbpd.c,277: Options parsing: Set verbose mode
                            1562621454.2081 6 sbpd.c,336: Options parsing: Setting command config file to /home/tc/sbpd_commands.cfg
                            1562621454.2083 6 sbpd.c,490: name=PAUS, value=["pause"]
                            1562621454.2083 6 control.c,75: Adding Command PAUS: Fragment ["pause"]
                            1562621454.2083 6 sbpd.c,490: name=VOL-, value=["button","voldown"]
                            1562621454.2084 6 control.c,75: Adding Command VOL-: Fragment ["button","voldown"]
                            1562621454.2084 6 sbpd.c,490: name=VOL+, value=["button","volup"]
                            1562621454.2084 6 control.c,75: Adding Command VOL+: Fragment ["button","volup"]
                            1562621454.2084 6 sbpd.c,490: name=PREV, value=["button","rew"]
                            1562621454.2084 6 control.c,75: Adding Command PREV: Fragment ["button","rew"]
                            1562621454.2085 6 sbpd.c,490: name=NEXT, value=["button","fwd"]
                            1562621454.2085 6 control.c,75: Adding Command NEXT: Fragment ["button","fwd"]
                            1562621454.2085 6 sbpd.c,490: name=POWR, value=["power"]
                            1562621454.2085 6 control.c,75: Adding Command POWR: Fragment ["power"]
                            1562621454.2085 6 sbpd.c,490: name=MIX+, value=["mixer","volume","+5"]
                            1562621454.2085 6 control.c,75: Adding Command MIX+: Fragment ["mixer","volume","+5"]
                            1562621454.2086 6 sbpd.c,490: name=MIX-, value=["mixer","volume","-5"]
                            1562621454.2086 6 control.c,75: Adding Command MIX-: Fragment ["mixer","volume","-5"]
                            1562621454.2086 6 sbpd.c,490: name=VMAX, value=["mixer","volume","100"]
                            1562621454.2086 6 control.c,75: Adding Command VMAX: Fragment ["mixer","volume","100"]
                            1562621454.2086 6 sbpd.c,490: name=MUTE, value=["mixer","volume","0"]
                            1562621454.2087 6 control.c,75: Adding Command MUTE: Fragment ["mixer","volume","0"]
                            1562621454.2087 6 sbpd.c,490: name=PLAY, value=["button","rew.single"]
                            1562621454.2087 6 control.c,75: Adding Command PLAY: Fragment ["button","rew.single"]
                            1562621454.2087 6 sbpd.c,490: name=STOP, value=["stop"]
                            1562621454.2087 6 control.c,75: Adding Command STOP: Fragment ["stop"]
                            1562621454.2088 6 sbpd.c,490: name=SHUF, value=["button","shuffle.single"]
                            1562621454.2088 6 control.c,75: Adding Command SHUF: Fragment ["button","shuffle.single"]
                            1562621454.2088 6 sbpd.c,490: name=RSRT, value=["restartserver"]
                            1562621454.2088 6 control.c,75: Adding Command RSRT: Fragment ["restartserver"]
                            1562621454.2088 6 sbpd.c,490: name=PRE1, value=["button","preset_1.single"]
                            1562621454.2088 6 control.c,75: Adding Command PRE1: Fragment ["button","preset_1.single"]
                            1562621454.2089 6 sbpd.c,490: name=PRS1, value=["button","preset_1.hold"]
                            1562621454.2089 6 control.c,75: Adding Command PRS1: Fragment ["button","preset_1.hold"]
                            1562621454.2090 6 sbpd.c,490: name=PRE2, value=["button","preset_2.single"]
                            1562621454.2090 6 control.c,75: Adding Command PRE2: Fragment ["button","preset_2.single"]
                            1562621454.2091 6 sbpd.c,490: name=PRE3, value=["button","preset_3.single"]
                            1562621454.2091 6 control.c,75: Adding Command PRE3: Fragment ["button","preset_3.single"]
                            1562621454.2092 6 sbpd.c,490: name=PRE4, value=["button","preset_4.single"]
                            1562621454.2092 6 control.c,75: Adding Command PRE4: Fragment ["button","preset_4.single"]
                            1562621454.2093 6 sbpd.c,490: name=PRE5, value=["button","preset_5.single"]
                            1562621454.2093 6 control.c,75: Adding Command PRE5: Fragment ["button","preset_5.single"]
                            1562621454.2093 6 sbpd.c,490: name=PRE6, value=["button","preset_6.single"]
                            1562621454.2094 6 control.c,75: Adding Command PRE6: Fragment ["button","preset_6.single"]
                            1562621454.2094 6 sbpd.c,490: name=PRE7, value=["button","preset_7.single"]
                            1562621454.2095 6 control.c,75: Adding Command PRE7: Fragment ["button","preset_7.single"]
                            1562621454.2095 6 GPIO.c,253: Initializing GPIO
                            1562621454.2194 6 control.c,203: Button defined: Pin 27, BCM Resistor: up, Short Type: LMS, Short Fragment: ["power"] , Long Type: LMS, Long Fragment: ["restartserver"], Long Press Time: 2000
                            1562621454.2304 6 control.c,203: Button defined: Pin 23, BCM Resistor: up, Short Type: LMS, Short Fragment: ["button","rew"] , Long Type: LMS, Long Fragment: ["button","rew.single"], Long Press Time: 500
                            1562621454.2420 6 control.c,203: Button defined: Pin 22, BCM Resistor: up, Short Type: LMS, Short Fragment: ["mixer","volume","-5"] , Long Type: LMS, Long Fragment: ["mixer","volume","0"], Long Press Time: 500
                            1562621454.2530 6 control.c,203: Button defined: Pin 24, BCM Resistor: up, Short Type: LMS, Short Fragment: ["pause"] , Long Type: LMS, Long Fragment: ["stop"], Long Press Time: 5
                            1562621454.2533 6 discovery.c,381: MAC address found: dc:a6:32:03:82:22
                            1562621454.2533 6 servercomm.c,176: Initializing CURL
                            e=["button","fwd"]
                            1562619894.8258 6 control.c,75: Adding Command NEXT: Fragment ["button","fwd"]
                            1562619894.8258 6 sbpd.c,490: name=POWR, value=["power"]
                            1562619894.8258 6 control.c,75: Adding Command POWR: Fragment ["power"]
                            1562619894.8258 6 sbpd.c,490: name=MIX+, value=["mixer","volume","+5"]
                            1562619894.8258 6 control.c,75: Adding Command MIX+: Fragment ["mixer","volume","+5"]
                            1562619894.8258 6 sbpd.c,490: name=MIX-, value=["mixer","volume","-5"]
                            1562619894.8258 6 control.c,75: Adding Command MIX-: Fragment ["mixer","volume","-5"]
                            1562619894.8259 6 sbpd.c,490: name=VMAX, value=["mixer","volume","100"]
                            1562619894.8259 6 control.c,75: Adding Command VMAX: Fragment ["mixer","volume","100"]
                            1562619894.8259 6 sbpd.c,490: name=MUTE, value=["mixer","volume","0"]
                            1562619894.8259 6 control.c,75: Adding Command MUTE: Fragment ["mixer","volume","0"]
                            1562619894.8259 6 sbpd.c,490: name=PLAY, value=["button","rew.single"]
                            1562619894.8259 6 control.c,75: Adding Command PLAY: Fragment ["button","rew.single"]
                            15626198941562621454.3291 6 sbpd.c,232: Starting main loop polling
                            .8260 6 sbpd.c,490: name=STOP, value=["stop"]
                            1562619894.8260 6 control.c,75: Adding Command STOP: Fragment ["stop"]
                            1562619894.8260 6 sbpd.c,490: name=SHUF, value=["button","shuffle.single"]
                            1562619894.8260 6 control.c,75: Adding Command SHUF: Fragment ["button","shuffle.single"]
                            1562619894.8260 6 sbpd.c,490: name=RSRT, value=["restartserver"]
                            1562619894.8260 6 control.c,75: Adding Command RSRT: Fragment ["restartserver"]
                            1562619894.8260 6 sbpd.c,490: name=PRE1, value=["button","preset_1.single"]
                            1562619894.8261 6 control.c,75: Adding Command PRE1: Fragment ["button","preset_1.single"]
                            1562619894.8261 6 sbpd.c,490: name=PRS1, value=["button","preset_1.hold"]
                            1562619894.8261 6 control.c,75: Adding Command PRS1: Fragment ["button","preset_1.hold"]
                            1562619894.8261 6 sbpd.c,490: name=PRE2, value=["button","preset_2.single"]
                            1562619894.8261 6 control.c,75: Adding Command PRE2: Fragment ["button","preset_2.single"]
                            1562619894.8261 6 sbpd.c,490: name=PRE3, value=["button","preset_3.single"]
                            1562619894.8261 6 control.c,75: Adding Command PRE3: Fragment ["button","preset_3.single"]
                            1562619894.8262 6 sbpd.c,490: name=PRE4, value=["button","preset_4.single"]
                            1562619894.8262 6 control.c,75: Adding Command PRE4: Fragment ["button","preset_4.single"]
                            1562619894.8262 6 sbpd.c,490: name=PRE5, value=["button","preset_5.single"]
                            1562619894.8262 6 control.c,75: Adding Command PRE5: Fragment ["button","preset_5.single"]
                            1562619894.8262 6 sbpd.c,490: name=PRE6, value=["button","preset_6.single"]
                            1562619894.8262 6 control.c,75: Adding Command PRE6: Fragment ["button","preset_6.single"]
                            1562619894.8262 6 sbpd.c,490: name=PRE7, value=["button","preset_7.single"]
                            1562619894.8262 6 control.c,75: Adding Command PRE7: Fragment ["button","preset_7.single"]
                            1562619894.8263 6 GPIO.c,253: Initializing GPIO
                            1562619894.8350 6 control.c,203: Button defined: Pin 27, BCM Resistor: up, Short Type: LMS, Short Fragment: ["power"] , Long Type: LMS, Long Fragment: ["restartserver"], Long Press Time: 2000
                            1562619894.8442 6 control.c,203: Button defined: Pin 23, BCM Resistor: up, Short Type: LMS, Short Fragment: ["button","rew"] , Long Type: LMS, Long Fragment: ["button","rew.single"]
                            I believe that button presses would normally be echoed to the terminal, but I'm getting nothing when I press the buttons. So it seems like maybe sbpd is working ok, but I believe it relies on wiringpi in the background - could that be incompatible with pCP6?

                            Comment

                            • chill
                              Senior Member
                              • Mar 2007
                              • 2233

                              #29
                              Hmm - ok, wiringpi did need updating for the RPI4 (see here), but it seems I already have that updated version installed.

                              Code:
                              gpio -v
                              gpio version: 2.52
                              Copyright (c) 2012-2018 Gordon Henderson
                              This is free software with ABSOLUTELY NO WARRANTY.
                              For details type: gpio -warranty
                              
                              Raspberry Pi Details:
                                Type: Pi 4B, Revision: 01, Memory: 4096MB, Maker: Sony 
                                * Device tree is enabled.
                                *--> Raspberry Pi 4 Model B Rev 1.1
                                * This Raspberry Pi supports user-level GPIO access.
                              Does sbpd need updating to match?

                              Comment

                              • Greg Erskine
                                Senior Member
                                • Sep 2006
                                • 2808

                                #30
                                Deleted

                                Comment

                                Working...