3

A few years ago, I used a micro:bit on my Ubuntu 16.04. No problem. I upgraded the machine and the OS to Ubuntu Mate 20.04 about 6 months ago. Now I want to use my micro:bit again. But I can't connect to it.

When I launch the Python editor, and I want connect to the micro:bit, I see DAPLink CMSIS-DAP-Paired.

When I select that, (I think it should be something else) and click on Connect, I get:

WebUSB Error 
Please reconnect your micro:bit and try again. 
Error: Access denied.

Apparently, the problem is known on the website: https://support.microbit.org/support/solutions/articles/19000105428-webusb-troubleshooting

  • If Chromium has been installed from the snap store (the default in the Ubuntu Software Store) it will not be able to access WebUSB devices.

That leads me to a bug-report from the Chromium people: https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/1780678 The bug-report and the solution date from 2019, and the solution is said to be:

snap refresh chromium --channel=candidate/raw-usb 
snap connect chromium:raw-usb

Even though I have a more recent Chromium build, I executed the above lines, but it doesn't change a thing.

Now I don't know what to do next. I'm fine with snap packs, but if they offer less functionality, what's the use?

Some extra info: chrome://version

  • Chromium 88.0.4324.150 (Official Build) snap (64-bit)
  • Revision e6c2a846b660e61f059daee2c46217af42913240-refs/branch-heads/4324@{#2103}
  • OS Linux
  • JavaScript V8 8.8.278.15
  • User Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36
  • Command Line /snap/chromium/1479/usr/lib/chromium-browser/chrome --password-store=basic --flag-switches-begin --flag-switches-end --origin-trial-disabled-features=SecurePaymentConfirmation
  • Executable Path /snap/chromium/1479/usr/lib/chromium-browser/chrome
  • Profile Path /home/jan/snap/chromium/common/chromium/Default

UPDATE 24/02/2021:

  1. connecting the micro:bit to a Windows 10 machine, the m:b didn't work either. But there was a message that I had to upgrade the firmware. Wich I did, following the instructions provided by micro:bit website. Now it worked on Windows, but still no go on Chromium (snap) and Ubuntu Mate.
  2. another thing from the m:b website: I had to - for 'some distro's like Ubuntu ...
  • create a file 50-microbit.rules in /etc/udev/rules.d/ with a certain content. (on the website)
  • then I had to relad the rules as: udevadm control --reload-rules
  • reboot and try again.

And that didn't work.

Today, I tried my m:b on my Windows machine and it paired, as it did and as it should. I tried it again on my Ubuntu Mate, and now it worked, also!

I have no explanaition why, but it does, so my problem is solved.

1
  • Hi @Jan80TRS did you figure out a way to solve this issue? May 19, 2021 at 15:18

3 Answers 3

2

This appears to be a persistent problem also on a recent Ubuntu 20.04.4 LTS with the official google-chrome-stable installed:

$ lsb_release -a
Description:    Ubuntu 20.04.4 LTS

$ dpkg -l google-chrome-stable
ii  google-chrome-stable 99.0.4844.51-1 amd64        The web browser from Google

The chrome://device-log/ says [11:08:01] Failed to open /dev/bus/usb/003/002: Access denied (insufficient permissions).

According to https://support.microbit.org/support/solutions/articles/19000105428-webusb-troubleshooting you can solve this with a new udev rule:

# Create rule
sudo cat << EOF >> /etc/udev/rules.d/50-microbit.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="0d28", MODE="0664", GROUP="plugdev"
EOF

# Add current user to plugdev group
sudo usermod -a -G plugdev $USER

# Reload udev rules
sudo udevadm control --reload-rules

Afterwards restart Chrome and reconnect your micro:bit.

1
  • sudo with redirect is a tricky business. I modified your command to this sudo bash -c 'echo SUBSYSTEM==\"usb\", ATTR{idVendor}==\"0d28\", MODE=\"0664\", GROUP=\"plugdev\" > /etc/udev/rules.d/50-microbit.rules'
    – sastorsl
    Dec 29, 2022 at 10:43
1

According to https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/1780678 I located the device address of my microbit, in my case /deb/bus/usb/001/004.

I changed the rights : sudo chmod a+rwx -R /dev/bus/usb/001/004, then I was then able to connect.

1

In Ubuntu 22.04 LTS Chromium from Snap is the default, and instead of struggling with changing the default, installing the "regular" Chrome from Google with apt in addition to the answer from @timo.rieber made webusb work.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .