Solved – Connecting RP Pico to RP 5 via USB

Prior configuration:

-Prior to getting a RP 5, I had connected my Raspberry Pi Pico WH board via USB to an iMac (circa 2012) desktop with a legacy OS (High Sierra) that I can’t upgrade anymore.  Was  able to get started with inventr.io (now Crafting Table) on a couple projects.  Now that I have an RP 5 with an external RP Monitor, Keyboard, Mouse, I went to get back into these projects, but transition away from the iMac, and have the Pico connect directly to the new RP 5.  Therefore, I can use apps like Thonny on RP5 to program stuff.

Troubleshooting the connection:

-Flashing Firmware: I remember having to do this for the Pico when connected to iMac.  Not sure if I need to do again.  Within Thonny on RP5, the Pico is mounted on the same breadboard and MicroUSB cable now connected to the RP5.  In bottom right, I see: Local Python 3 and MicroPython (Raspberry Pi Pico).  The Python 3 is the local RP 5, therefore I’m the Pico is talking to the RP 5.

-Issue I’m having now, is that when I ran a script, none of the lights are lighting up on the Pico.  I’ve wired it up for Day One of Nebula Raiders.  This is the link to that same project I did before for wiring, etc.

-I recently did the MicroPython upgrade on the Pico.  It shows v1.28.0 on 2026-04-06; Raspberry Pi Pico W with RP2040.  Based on today being 9/14/2026, and this URL, I think I’m OK.  https://micropython.org/download/RPI_PICO_W/  Looks like it was updated recently, so I’m good for now.

-I’m now wondering if this is something with having to select the “active COM/USB” port.  In bottom right, I see: MicroPython (Raspberry Pi Pico).   Board in FS Mode @//dev/ttyACM0.  Q: Is that USB?

-The answer is yes: Yes, "/dev/ttyACM0" is a virtual serial port created by a USB device connected to your computer.

  • USB Connection: The device connects through a USB cable.
  • ACM Driver: The ACM name stands for Abstract Control Model. It means your computer treats the USB device like an old-school serial communication port.

-Well, that explains about the serial port connection.  Also, why there was a conflict prior with Plymouth, as I remember that referring to ACM10.

In Thonny, I’m seeing within: View, Files some files within “Raspberry Pi Pico: that I had used prior.  I’m wondering if this is why it’s not loading the script, because I’m not seeing it there. Script I’m trying to load is: green-flash.py

When I do “Run, Run Current Script” it says: MPY: soft reboot, but I’m not seeing the LED flash.  Also, I tried the test script recently and the built-in green LED on Pico flashed, which proves a connection.

I don’t believe it!!!!  I got it working:

I had the LEDs inserted backwards.  This code has been running for over a day, and taling to the board.  When I flipped each LED around, they started lighting up, in series, as the script is programmed.  Several things I learned from this, from an experiential learning perspective:

-There is a big risk of blindly following a schematic, and plugging things in to the breadboard, without an underlying understanding of the electronics required.  In this case, nothing bad happened and all components (LEDs, RP Pi Zero, cable, RP Pi 5, power-related items) were not damaged.

-I read a post that said, ” LED Orientation: The longer leg of the LED (positive/anode) connects to your chosen Raspberry Pi Pico GPIO pin. The shorter leg (negative/cathode) connects to a GND (Ground) pin through the resistor.”  I basically remember this learning from a while back when I originally did the same project on the iMac.  Of course, I haven’t kept up my thinking/awareness of the difference between Anode and Cathode and leg length.  When I recently looked at the schematic, I had misinterpreted the squiggle in the schematic for the wrong part of the LED. 

-Now that I look at the breadboard, with the resistors, and the cables connected to the Pi Pico, it’s now really obvious what was required.  Fully mapping out just one LED (eg Blue, where the longer leg of the LED (positive/anode) connects to RP Pico GPIO pin):

-The blue LED has its longer leg (anode) in breadboard column e, row 24.  The shorter leg LED (cathode) is in breadboard column e, row 25.  I have a blue lead in column a, row 24 that connects the Pi Zero GP13 via breadboard physical pin (column a, row 17).

-The schematic doesn’t refer to ground (GND), but the Pi Zero has a ground (GND) on breadboard column a, row 18.  I have a lead that connects from there to the positive column of the breadboard and in row 18.  That means that everything in this positive column is connected to GND.

-There is a 220 ohm resistor, with the color red side, connected in the positive (+) column, row 25.  The other part of the resistor is in column b, row 25.  This resistor therefore connects to the anode of the blue LED.

How to turn off the LED when I’ve stopped the script:

When I stop the script, it’s possible that one of the LEDs are still lit.  Goal is to turn off the LED, so it doesn’t burn out.  That may not happen, but I don’t want the light on.  I’m also trying to avoid unplugging the USB cable too often.

In Thonny, click the Red Stop sign icon to stop the script

This command assumes that the LED that’s lit is associated with Pin  15.  I enter both of these commands in the bottom of Thonny, as if on a command line:

from machine import Pin

Pin(15, Pin.OUT).value(0)

Note: When I did that the LED turned off.  Done.

Various logic flaw I have, and some answers/insight:

-I basically understand that the resistor resists energy to avoid burning out an element.

-I basically understand the energy flows from positive to ground

-I don’t really understand the source of energy.

-I don’t really understand the concept of ground

-Based on energy flow, I don’t get how the resistor can be either before the device you’re protecting or after.  Something about the full circuit being active.

Description of the energy flow,  for overall understanding:

I think I’m going to make this into a new post, as there’s too much going on within this post.


 

 

 

Posted in Raspberry Pi, Troubleshooting | Leave a comment

Experiential Learning (EL) for troubleshooting

Within the troubleshooting of Plymouth issue in Raspberry Pi 5 system, I had referenced EL (Experiential Learning).  This was developed by Kolb in the 80’s and I’m learning and integrating the system/method.

The following are some top-of-mind thoughts, in no particular order, as I troubleshooted the issue:

-Documenting the blogpost, as I was troubleshooting, kept me on task and more focused

-Was able to do other searches for various commands, and then add to the post, after trying out the command

-Created a sense of cause and effect (versions; updating things; change control)

-Able to have a form of relief when commenting that another poster on an electronic board had the same experience as me, and then I integrated his fix

-Thinking that I would be able to come back to this post in the future, if I needed to repeat the steps

-A somewhat altruistic thought of maybe helping someone else, just as the original poster had made same comment

-Awareness that the actual learning and understanding of the issue is all relative.  I’ve now dabbled across several systems within RP 5, but I can’t really say that I fully academically understand what all the systems are that I was specifically changing and fixing.  What I was really after was system stability.

-Over time, I’ll troubleshoot other areas, and there maybe a cross-reference back to the troubleshooting focus.  The idea of EL is to continually learn and grow.

-I found it effective to write as if I was asking myself questions.  That created a return of some logic blended with creativity.

-I know I have a pattern of wanting to fast-track and get to the answer.  In this case, I was able to get to the answer, and was OK with it taking a while, as I had to divert and learn some other things (eg how to edit a file in CLI), before I could actually effect the final system changes.

Posted in Raspberry Pi, Troubleshooting | Leave a comment

Solved – Troubleshooting Plymouth on RP 5

Symptom:

Not sure if this started after installing Tor Browser (which was subsequently uninstalled), but I’ve noticed an unstable system where I lose icons on the screen; appears to have frozen; and then issues with restarting (where I have needed to randomly disconnect power; HDMI; Cat-5) to get system running again.  This is a brand new install, with not much going on right now.  Only other thing I did was install Pi-Apps. Then, when I was restarting I noticed something about “Plymouth” being a factor, so I’m focusing on learning about this and troubleshooting it.  Will write the play-by-play here.

The red and white (generic stop sign symbol) circular stop sign in top right of desktop came on every so often, prior to system being locked.  It was odd, as the apparent fix after several times restarting, was to unplug Cat5 and then plug in again after an apparent good restart.

What is Plymouth:

Early days here, but I think it’s something to do with the initial splash-screen on startup.  A bunch of plymouth-related commands are run.

I’m seeing Plymouth to do with a “theme” as I read:  Theme or Icon Glitch: Certain desktop or window themes (like switching between dark/light modes in LXPanel) can fail to load standard applet icons properly, causing the panel to fall back to a generic stop sign or error symbol for items like the network manager or audio controls.

Experiential Learning approach:

Basic challenge nowadays is, when I do a web-search on something, I invariably get multiple perspectives of addressing the same thing.  Therefore, this approach will be all over the place.  Hopefully the outcome is both my collective understanding and system stability.

Quick disable attempt of Plymouth:

sudo systemctl disable plymouth

Not sure if this did anything, but I have noticed in last day or so of doing this that the system hasn’t locked up.  It also returned something about the unit files have no installation config, so not sure if this did anything.

systemctl is-enabled plymouth-start.service

Returns with “static”

sudo systemctl list-unit-files | grep plymouth

Returns a bunch of services that all say “static”

Upgrading system:

-I still have the CL window open from doing the systemctl commands, so within desktop, I’m still doing upgrades.  In this case, it was do with chromium.

Ruling out WiFi and network:

-The stop sign symbol  could be related to networking issue.  In this case, I have a Wired Cat5 go the Pi 5 from a 4 port switch which goes direct wire to the T-Mobile device.

I had read this: Network or Wi-Fi Status: The network manager applet often displays a prohibition or stop sign icon when a specific Wi-Fi network is disabled, out of range, or blocked (such as when country code rules aren’t set or radio frequencies are soft-blocked).

-In my case, I’m connected to both Ethernet network and WiFi with two different IP addresses.  Both are active.

sudo raspi-config

Confirm WiFi county is correct.  In my case, I did this via the Control Center App; Localisation, WiFi County  and confirmed it is: US – United States.

HDMI cable; hardware; power supply; UPS

I read somewhere to confirm the cables are good.  I had purchased all new and good quality from Vilros, so I’m ruling out physical cables and hardware.  Also the power-supply is brand name RaspBerry Pi and high-end and also connected to an APS UPS – complete overkill, I think

My HDMI cable goes between RP 5 (16GB) and a brand new Raspberry Pi 15″ monitor (White).  Also using a Raspberry Pi wired mouse and wired keyboard.

Errors from plymouth:

-I read to do this command to see if any errors

journalctl -u plymouth.service

It came back with — no entries —

Disable Plymouth and outcome

-I did the above disable plymouth and it’s true that I haven’t received the same symptom since.  In my case it was after leaving system on for about a day, it would freeze-up.  So far so good.  But, I also haven’t restarted the system since then.

Note: People on boards are saying that Plymouth causes “three white dots in top left”.  This is same symptom as I was having.

Pix:

I remember reading entering a command, which came back with Pix

Pix is the Raspberry Theme called Pix

Someone said, to the guy having same issues as me to run this to confirm theme, and it came back with Pix.

URL for his troublshooting was here: https://forums.raspberrypi.com/viewtopic.php?t=393289

plymouth-set-default-theme

Apt-full upgrade

Someone on boards said they did a clean install, and after doing Apt-Full Upgrade, they encountered the plymouth errors.  They had also done the same journalctl command I did and didn’t return errors.  He was also getting the same returns I was getting when attempting to systemctl stop the plymouth service.  Good thing is that someone else having the same symptoms as me.

Pi Imager troubleshooting:

Someone on boards said when they installed a fresh system using Pi Imager (which is what I had done) and then did the apt full upgrade, that’s when Plymouth had an issue. He ran debugger between the old and new kernel versions, and surmises this: As I can see, with new kernel on boot Plymouth can’t find output graphical device.

Kernel versions:

He went from Kernel version 6.12.47 kernel to version 6.12.62 kernel

If I boot the updated system with the old kernel, Plymouth starts working again. So it’s definitely an issue with the new kernel.  Based on what this guy said, we maybe getting close to the upgraded kernel version and Plymouth.

How to know which Kernel version I have?

uname -a

Returns with 6.18.39  (2026-07-29)

uname -r

Returns with 6.18.39-rpt -rpi -2712

So, it looks like I have a newer Kernel version, but same Plymouth symptomes

His Kernel debug for prior Kernel said “Showing splash screen”.  On the newer kernel it said, “No displays available to show splash on”

I’m not going to do this, but I see how you add an entry (plymouth.debug) to cmdline.txt and restart the system.

initramfs

Someone said the following, and then came up with the solution:

The only option I found to get splash to work on the new kernel was to disable initramfs.
(auto_initramfs=0 in config.txt)

Proposed solution posted by someone on boards:

Ok, finally the problem is solved!

After I realized that splash works without an initramfs, I noticed that the initramfs size in the preinstalled image is larger than the initramfs size built for the new kernel.

The preinstalled initramfs is built with the MODULES=most option, even though the system has this option set to MODULES=dep.
After I changed the settings in the “/etc/initramfs-tools/initramfs.conf” file to “MODULES=most,” rebuilt the initramfs with “sudo update-initramfs -k all -u,” and rebooted, everything worked!
Hope this helps someone.

Note: Someone came back with kudos to the solution and gave credit, so I’m going to do the same fix

My fix:

Setting in “/etc/initramfs-tools/initramfs.conf” file:

For me, it was set to: MODULES=dep

I changed it to: MODULES=most

Note: There’s a note in the file that says that most adds most filesystems and all hardware drivers

It said that the file is read-only.  I had opened the file from the file manager.  I have to do this at CLI

sudo nano /etc/initramfs-tools/initramfs.conf

Changed from dep to most

To save and exit: Ctrl + O, Enter, and then Ctrl +X (Ctrl, O is to Write Out and Ctrl, X is to Exit)

Confirmed in file manager as changed to most

sudo update-initramfs -k all -u

My observation was that it did a bunch of generating, and acknowledged version 6.18.39 and the last two commands for updating referenced version 6.18.34

Confirming kernel version:

uname -a

6.18.39 – no change

Reboot the system

Outcome:

-Rebooted and it was lickety-split fast with no delay on splash or startup.  Really fast.  Also showed me the network connections.  Went to desktop.

-Based on the boards; symptoms; solutions; collaboration with other; what I did; outcome, I feel REALLY GOOD about this fix.

I can also get back to my original project which is Nebula Raiders so I can play with the attached RP Zero WH via Thonny and play with C Programming using Geany

I also joined the Raspberry Pi Forum and thanked the poster with the fix

 

 

 

 

 

 

 

 

 

 

 

 

Posted in Raspberry Pi | Leave a comment