For access to microcontrollers, such as the ESP32, permissions are required to enable flashing devices etc. If having issues, but seeing the port connected, check the port first (in my example the port was /dev/ttyACM0):
ls -l /dev/ttyACM0
crw-rw---- 1 root uucp 166, 0 May 27 21:05 /dev/ttyACM0
Notice the group uucp has access, we just need to add ourselves to it.
sudo usermod -aG uucp $USER
A restart may be required for this to take effect.
Flipper Zero
The Flipper Zero has a few extra steps, but requires the one above as well. Using the AppImage file for qFlipper:
./qFlipper-x86_64-1.3.3.AppImage rules install
Creates the following file (/etc/udev/rules.d/42-flipperzero.rules):
#Flipper Zero serial port
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", ATTRS{manufacturer}=="Flipper Devices Inc.", TAG+="uaccess", GROUP="dialout"
#Flipper Zero DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", ATTRS{manufacturer}=="STMicroelectronics", TAG+="uaccess", GROUP="dialout"
#Flipper ESP32s2 BlackMagic
SUBSYSTEMS=="usb", ATTRS{idVendor}=="303a", ATTRS{idProduct}=="40??", ATTRS{manufacturer}=="Flipper Devices Inc.", TAG+="uaccess", GROUP="dialout"
#Flipper U2F
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5741", ATTRS{manufacturer}=="Flipper Devices Inc.", ENV{ID_SECURITY_TOKEN}="1"
This won’t work though if your user isn’t in the dialout group (or there is no dialout group). If there is a different group your user is already in that you want to use, you can simply change the GROUPs in this file. Otherwise, to create the dialout group and assign your user:
# check what groups you are already in
groups $USER
# list all groups on the system
less /etc/group
# create the dialout group if it does not already exist
sudo groupadd dialout
# add your USER to the dialout group
sudo usermod -aG dialout $USER
Then refresh the udev rules:
sudo udevadm control -R
For the Flipper Zero WiFi Dev board, create a similar file for USB serial access:
touch 99-flipperwifidev.rules ─╯
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", TAG+="uaccess"