No USB Connection on ClusterHAT V2.5

26 views
Skip to first unread message

William Scafe

unread,
Aug 23, 2025, 5:03:39 AMAug 23
to ClusterHAT
I have two(2) Clusterhat V2.5, one on a Pi4 and the other on a Pi3B+, and both were working in 2023 for about a month before I had to box them up to move. In mid-July, I took them out of storage and started setting them up to learn distributed computing. I downloaded the Bookworm 64-bit OS from the Setup software page, and then installed it on my Pi 4 and 4 Pi Zero2s. After writing the image to the SD Card, I powered it up. My Pi4 booted up without issues, but none of the Pi Zero2s connected and completed the boot Process. I've put in significant effort to troubleshoot this issue, including searching the Cluster CTRL Site including Troubleshooting missng Pi Zeros in a ClusterHAT. and running the isusb -t command, which yielded the following results with the SD Cards in the Pi Zeros.

On steps 1 - 3 of the Troubleshooting Guide

clusterctrl status shows "clusterhat:1"

pi@p0:~ $ clusterctrl off
pi@p0:~ $ lsusb -t
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 4, If 0, Class=Hub, Driver=hub/4p, 480M

pi@p0:~ $ clusterctrl on
pi@p0:~ $ lsusb -t
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 4, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 2: Dev 13, If 3, Class=CDC Data, Driver=cdc_acm, 480M
            |__ Port 2: Dev 13, If 1, Class=CDC Data, Driver=rndis_host, 480M
            |__ Port 2: Dev 13, If 2, Class=Communications, Driver=cdc_acm, 480M
            |__ Port 2: Dev 13, If 0, Class=Communications, Driver=rndis_host, 480M
            |__ Port 3: Dev 9, If 0, Class=Communications, Driver=rndis_host, 480M
            |__ Port 3: Dev 9, If 1, Class=CDC Data, Driver=rndis_host, 480M
            |__ Port 3: Dev 9, If 2, Class=Communications, Driver=cdc_acm, 480M
            |__ Port 3: Dev 9, If 3, Class=CDC Data, Driver=cdc_acm, 480M
            |__ Port 4: Dev 11, If 2, Class=Communications, Driver=cdc_acm, 480M
            |__ Port 4: Dev 11, If 0, Class=Communications, Driver=rndis_host, 480M
            |__ Port 4: Dev 11, If 3, Class=CDC Data, Driver=cdc_acm, 480M
            |__ Port 4: Dev 11, If 1, Class=CDC Data, Driver=rndis_host, 480M

On steps 4 - 6  Troubleshooting Guide

pi@p0:~ $ clusterctrl off
pi@p0:~ $ sudo service clusterctrl-rpiboot stop
pi@p0:~ $ clusterctrl on
pi@p0:~ $ lsusb -t
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 4, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 1: Dev 15, If 0, Class=Vendor Specific Class, Driver=, 12M
            |__ Port 2: Dev 16, If 0, Class=Vendor Specific Class, Driver=, 480M
            |__ Port 3: Dev 17, If 0, Class=Vendor Specific Class, Driver=, 480M
            |__ Port 4: Dev 14, If 0, Class=Vendor Specific Class, Driver=, 480M


I am using 2024-07-04-3-bookworm-ClusterCTRL-arm64-lite-CBRIDGE.img on a RPi4 4gig
also I am using 2024-07-04-3-bookworm-ClusterCTRL-arm64-lite-p1.img on a RPiZero2,
I am using 2024-07-04-3-bookworm-ClusterCTRL-arm64-lite-p2.img on a RPiZero2,
I am using 2024-07-04-3-bookworm-ClusterCTRL-arm64-lite-p3.img on a RPiZero2,
I am using 2024-07-04-3-bookworm-ClusterCTRL-arm64-lite-p4.img on a RPiZero2,

Please help.

Steve Kuervers

unread,
Aug 24, 2025, 4:22:50 PMAug 24
to ClusterHAT
I suspect you are running into two things:

First, the Bookworm image does not start the serial connection automatically.  To enable it, you have to run the following command on each subordinate PiZero:

  sudo systemctl enable serial-getty@ttyGS0

Also note that the first book of each subordinate PiZero can take a long time, as each device has to conduct the first boot, and then expand the filesystem and then reboot.  I usually wait about five minutes after issuing the first command:

  clusterctrl on

Secondly, with the bridged image on the primary Raspberry pi, you will automatically get DHCP addresses from your network across the USB network links to each PiZero.  You will need to identify the IP address to SSH into each PiZero.  In my own environment, I hardwire each PiZero to a static IP, by modifying the following file:

  /etc/network/interfaces.d/clusterctrl:

  auto usb0
  #iface usb 0 inet dhcp
  #       metric 1000
  iface usb0 inet static
          address 192.168.x.y
          netmask 255.255.255.0
          gateway 192.168.x.1
          dns-nameservers 192.168.x.1
          metric 1000

Finally, you can tell each PiZero is successfully booted if you can see a USB device and subordinate interfaces using the following command on the controller:

  lsusb -t

I normally start one device at a time, and watch my network for the new device to SSH into it after I can see the USB devices on the controller.

Steve

William Scafe

unread,
Aug 24, 2025, 10:42:43 PM (14 days ago) Aug 24
to ClusterHAT
Steve

Thank you, the enabling serial-getty worked. 
Reply all
Reply to author
Forward
0 new messages