Geplaatst op Geef een reactie

Geef vaste USB-poortnamen aan je Raspberry Pi

Raspberry Pi 4 fixed USB port names

Wanneer je meerdere apparaten hebt aangesloten op de USB-poorten van je Raspberry Pi, kunnen de automatisch toegewezen USB-poortnummers onverwacht veranderen na een nieuwe opstart. Dit kan zeer vervelend zijn wanneer je deze USB-poortnummer in je scripts of Node-RED-flows gebruikt hebt. Als aan je USB-aangesloten apparaat de poort met nummer “ttyUSB1” werd toegewezen, kan bijvoorbeeld na het opstarten de “ttyUSB0” nummer worden toegewezen.

In deze tutorial leren we hoe je een vaste USB-poortnaam toewijst voor elk aangesloten apparaat. Nadat je deze tutorial hebt voltooid, kan je aan elk aangesloten apparaat een vaste USB-poortnaam toewijzen en dus problemen hiermee voorkomen. Later kan je dus deze zelf toegewezen naam in je scripts zonder problemen verder gebruiken.

Je Raspberry Pi voorbereiden

Voor deze tutorial moet je Raspberry Pi op Raspberry Pi OS draaien.

Zoek de aangesloten USB-toestellen op

Eerst dienen we uit te zoeken welk apparaat toegewezen werd aan welk USB-poortnummer. De eenvoudigste manier om dit te achterhalen is door alle apparaten los te koppelen en je Pi en opnieuw op te starten. Zodra je Pi weer operationeel is, sluit je het eerste apparaat aan en open je een terminal venster.

Raspberry Pi terminal icon

Dan voeren we volgend commando in :

dmesg | grep ttyUSB

Raspberry Pi ttyUSB

Start een handgeschreven lijstje en noteer de informatie van je eerste apparaat:

  • de naam van je verbonden apparaat (je kan het niet vinden in het terminalvenster, maar je geeft zelf je apparaat een naam waarmee je het later kan herkennen): in ons geval: DEVICE1
  • de cijfers achter “usb”: in ons geval: 1-1.2
  • de automatisch toegewezen USB-poort: in ons geval: ttyUSB0

Sluit nu je tweede apparaat aan en voer dezelfde opdracht in :

raspberry pi ttyUSB

Bekijk de nieuwe toegevoegde regel op je terminal en voeg de volgende informatie aan je lijstje toe:

  • de naam van je tweede apparaat : in ons geval: DEVICE2
  • de cijfers achter “usb”: in ons geval: 1-1.3
  • de automatisch toegewezen USB-poort: in ons geval: ttyUSB1

Indien je meer dan 2 USB-toestellen hebt, kan je met dit proces doorgaan door elk extra apparaat één voor één aan je Pi te koppelen.

Vind de kenmerken van je verbonden apparaten

Om een verbonden apparaat later te kunnen herkennen, gebruiken we enkele specifieke kenmerken van het verbonden toestel. We zijn dus op zoek naar de kenmerken die unieke eigenschappen hebben. Meestal zijn deze kenmerken: leverancier-ID, product-ID, serienummer.

Met behulp van de automatisch toegewezen USB-poortnummers die we eerder hebben genoteerd, zijn we in staat om de attributen voor al onze apparaten terug te vinden. Voor het toestel dat is aangesloten op ttyUSB0, moeten we bijvoorbeeld het volgende commando in het Terminal venster invoeren :

udevadm info --name=/dev/ttyUSB0 --attribute-walk

De informatie die we hier krijgen, zijn alle kenmerken van de volledige keten van apparaten die aan de opgegeven USB-poort gekoppeld zijn. We moeten nu onze handgeschreven lijstje nemen en zoeken naar de cijfers achter “usb”. In ons geval zoeken we naar: “1-1.2” .

Raspberry Pi USB attributes

In de lijst met kenmerken moeten we nu een aantal unieke eigenschappen van het toestel uitkiezen. In ons geval nemen we de volgende 2 kenmerken:

  • idProduct : 7523
  • idVendor : 1a86

Schrijf de attribuutnaam en de waarde op, want die hebben we later nodig.

Herhaal dezelfde opdracht in de Terminal voor je andere USB-poortnamen: ttyUSB1, … En noteer opnieuw de verzamelde attributen en waarden. Zorg ervoor dat er ten minste één waarde verschilt tussen al je apparaten. Indien nodig, om je apparaten te kunnen onderscheiden, kan je bijkomende attributen kiezen.

Maak een USB-apparaatlijst met de bijbehorende USB-poortnamen

Het is nu tijd om de koppeling van de USB-poorten naar de toestellen te maken. Hiervoor maken we een bestand dat de regel voor elk USB-apparaat zal bepalen. En dit op basis van de unieke eigenschappen die we zojuist hebben genoteerd. Voer in de Terminal de volgende opdracht in om toegang te krijgen tot het bestand met de regels:

sudo nano /etc/udev/rules.d/10-usb-serial.rules

Op je scherm zou een leeg bestand moeten verschijnen. Voor elk apparaat schrijven we een lijn met de regel. Voer aan het einde van de lijn de eigen eerder gekozen naam in.  In ons geval “ttyUSB_DEVICE1” bijvoorbeeld. Vervang de onderstaande code door de attributen en de waarden die overeenkomen met die van je handgeschreven lijstje. In ons voorbeeld ziet het er als volgt uit:

SUBSYSTEM=="tty", ATTRS{idProduct}=="7523", ATTRS{idVendor}=="1a86", SYMLINK+="ttyUSB_DEVICE1"
SUBSYSTEM=="tty", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", SYMLINK+="ttyUSB_DEVICE2"
raspberry pi USB device list with port name rules

Als je klaar bent, toets Ctrl + x in om af te sluiten. En sla de wijzigingen op door “Y” in te voeren.

Laad de nieuwe regels op

Voer de volgende opdracht in de terminal in om de regels van kracht te laten worden:

sudo udevadm trigger

Controleer de nieuwe USB-poortnamen

Je kan de nieuwe namen die je zojuist hebt gemaakt controleren door de volgende opdracht in de terminal in te voeren:

ls -l /dev/ttyUSB*

Raspberry Pi new USB port names

Zoals in het bovenstaande venster te zien is, kan je de nieuwe namen van de USB-poorten (in lichtblauw) herkennen. Je kan deze namen nu in je scripts of Node-RED-flows gebruiken. Zelfs na het opnieuw opstarten of wanneer het apparaat werd losgekoppeld, blijft de naam onveranderd en is er dus geen enkele kans voor verwarring meer.

Super! Het verwijzen naar de USB aangesloten toestellen heb je nu veel stabieler gemaakt.

Opmerking

Als een zelf-toegewezen USB-poortnaam niet verschijnt, is de kans groot dat je een typfout in het bestand met de regels maakte. Controleer en verbeter je attribuutnamen en attribuutwaarden.

En trouwens, als je geïnteresseerd bent om elektronische componenten op je Raspberry Pi te leren programmeren, bezoek dan zeker eens onze online shop. We hebben een goed bedachte kit die alle dingen bevat die je nodig hebt om te starten.

Hoe nuttig was deze tutorial?

Klik op een ster om deze te beoordelen!

Gemiddelde score 4 / 5. Aantal stemmen: 1

Geen stemmen tot nu toe! Wees de eerste die dit bericht beoordeelt.

Jammer dat deze tutorial voor jou niet nuttig was!

Laten we deze tutorial verbeteren!

Hoe kunnen we deze tutorial verbeteren?

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Hoe nuttig was deze tutorial?

Klik op een ster om deze te beoordelen!

Gemiddelde score 4 / 5. Aantal stemmen: 1

Geen stemmen tot nu toe! Wees de eerste die dit bericht beoordeelt.

Jammer dat deze tutorial voor jou niet nuttig was!

Laten we deze tutorial verbeteren!

Hoe kunnen we deze tutorial verbeteren?

ontdek hier meer producten

Blijf als eerste op de hoogte van onze nieuwste tutorials en producten door u in te schrijven op onze nieuwsbrief

freva.com respecteert uw privacy. Lees ons privacybeleid over hoe wij omgaan met uw persoonlijke gegevens.