@elco It wasn’t the cable. Evidently there needed to be a udev rules file to allow non-root USB access. The particle CLI “device doctor” mode couldn’t even detect the photon in DFU mode and prompted to fix the udev rules automatically.
Had to work through a slight hack to get docker working on Raspbian buster - need to use the nightly docker build to get a working/patched version of containerd. See issue 545 for that…
After completing brewblox-ctl setup w/ a working docker containerd, and getting the udev permissions set up, here’s the difference in what I see when listing the devices:
Before:
cd ~/brewblox && docker run --rm --privileged brewblox/brewblox-devcon-spark:rpi-edge --list-devices
2019/06/28 21:47:11 INFO brewblox_service.service Creating [spark] application
2019/06/28 21:47:11 INFO __main__ Listing connected devices:
2019/06/28 21:47:11 INFO __main__ >> /dev/ttyAMA0 | ttyAMA0 | 3f201000.serial
After:
cd ~/brewblox && docker run --rm --privileged brewblox/brewblox-devcon-spark:rpi-edge --list-devices
2019/08/05 20:40:31 INFO brewblox_service.service Creating [spark] application
2019/08/05 20:40:31 INFO __main__ Listing connected devices:
2019/08/05 20:40:31 INFO __main__ >> /dev/ttyACM0 | Photon - Photon Serial | USB VID:PID=2B04:C006 SER=23002a000a47353138383138 LOCATION=1-1.5:1.0
2019/08/05 20:40:31 INFO __main__ >> /dev/ttyAMA0 | ttyAMA0 | 3f201000.serial
The udev permissions should probably be something called out in the instructions or troubleshooting section of the brewblox install docs perhaps? (or did I miss it?)
pi@rpi2:~ $ bash <( curl -sL https://particle.io/install-cli )
pi@rpi2:~ $ particle device doctor
The Device Doctor will put your device back into a healthy state
It will:
- Upgrade system firmware
- Flash the default Tinker app
- Reset the device and server keys
- Clear the Wi-Fi settings
You are missing the permissions to access USB devices without root.
? Would you like to install a udev rules file to get access? Yes
sudo cp "/home/pi/.particle/node_modules/particle-cli/dist/cmd/../../assets/50-particle.rules" "/etc/udev/rules.d/50-particle.rules"
udev rules installed.
Physically unplug and reconnect your Particle devices and try again.
The Doctor didn't complete sucesfully. Missing permissions to use DFU
> Please visit our community forums for help with this error:
https://community.particle.io/
pi@rpi2:~ $ cat /etc/udev/rules.d/50-particle.rules
# UDEV Rules for Particle boards
#
# This will allow reflashing with DFU-util without using sudo
#
# This file must be placed at:
#
# /etc/udev/rules.d/50-particle.rules (preferred location)
#
# To install, type this command in a terminal:
# sudo cp 50-particle.rules /etc/udev/rules.d/50-particle.rules
#
# After this file is installed, physically unplug and reconnect the
# Particle device.
#
# Core
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="607[df]", GROUP="plugdev", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
# Photon/P1/Electron
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2b04", ATTRS{idProduct}=="[cd]00[68a]", GROUP="plugdev", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
# Argon/Boron/Xenon
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2b04", ATTRS{idProduct}=="[cd]00[cde]", GROUP="plugdev", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
# Argon/Boron/Xenon (SoM)
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2b04", ATTRS{idProduct}=="[cd]01[678]", GROUP="plugdev", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
# Particle Programmer Shield v1.0
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", GROUP="plugdev", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
# Particle Debugger
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0d28", ATTRS{idProduct}=="0204", GROUP="plugdev", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
#
#
# If you share your linux system with other users, or just don't like the
# idea of write permission for everybody, you can replace MODE:="0666" with
# OWNER:="yourusername" to create the device owned by you, or with
# GROUP:="somegroupname" and mange access using standard unix groups.
#
#
# If using USB Serial you get a new device each time (Ubuntu >9.10)
# eg: /dev/ttyACM0, ttyACM1, ttyACM2, ttyACM3, ttyACM4, etc
# apt-get remove --purge modemmanager (reboot may be necessary)
#
# CREDITS:
#
# Edited by Julien Vanier
#
# This file is derived from the Teensy UDEV rules
# http://www.pjrc.com/teensy/49-teensy.rules
#