noForth op rp2040 zonder serial dongle
INCOMPLETE DRAFT -- ONVOLLEDIG CONCEPT
algemeen foutzoeken/instellen: wat is het probleem?
Er zijn hier een aantal mogelijke oorzaken van problemen:
- Elke versie van je operating system heeft een eigen standaard USB CDC-class serial device driver (dat is de officiele naam voo dit stukje software) en gebruikt eigen conventies voor usb serial devices
- Ook de terminal programma's hebben hun eigen bijzonderheden en hebben wellicht een andere instelling nodig
- De USB van de pc zit vol omdat er teveel usb apparaten zijn aangesloten die vermogen en/of bandbreedte nodig hebben, er kan er geen meer bij
De doorgewinterde seriele interface gebruiker heeft dit soort problemen al eerder gezien en overwonnen, maar voor wie dit pad nog niet heeft bewandeld de volgende opties. Het zal duidelijk zijn dat we niet alle verschillende combinaties kunnen beschrijven, maar hier volgen wat steunpuntjes:
Het correcte, maar ook flauwe advies is om te kijken naar de documentatie van het operating system en de cdc device driver van de pc en die van het terminal programma.
De volgende optie is om op het internet te zoeken hoe anderen die specifieke combinatie van operating system en terminal programma hebben aangepakt.
Hierbij spelen meestal de volgende vragen:
welk device moet ik gebruiken in mijn terminal programma?
voor linux:
Het device is meestal te vinden in /dev/tty en dan nog wat en wordt automatisch aangemaakt door de device driver. Werkwijze: plug de usb kabel in, geef het systeem een paar tellen om te reageren en kijk met
ls -ltr /dev/tty*
Voorbeeld:
(heel veel regels weggelaten)
crw--w---- 1 root tty 4, 7 2025-06-07 03:59 /dev/tty7
crw--w---- 1 root tty 4, 8 2025-06-07 03:59 /dev/tty8
crw--w---- 1 root tty 4, 9 2025-06-07 03:59 /dev/tty9
crw-rw---- 1 root uucp 166, 0 2025-06-13 15:22 /dev/ttyACM0
Zoek op de datum/tijd van het inpluggen van de usb kabel, dan heb je hoogstwaarschijnlijk het juiste device
voor ms-windows:
Het device is meestal COM met een volgnummer
voor macOS:
tbs
hoe krijg ik toegang tot het device?
voor linux:
Op de regel bij /dev/ttyACM0 staat bij het voorbeeld hierboven 'crw-rw---- 1 root uucp' (dit is linux versie specifiek, er worden ook andere aanduidingen gebruikt)
Dat betekent dat root de eigenaar is van het device met rw (read/write) toegang, en dat gebruikers met de group uucp in hun account ook rw (read/write) toegang hebben tot het device.
Dus je inlog account moet deel uitmaken van die groep.
Met de 'groups' opdracht kan je zien welke groepen je hebt. Als uucp daar niet bij staat moet je die toevoegen. Zie 'man groups' voor opties. Wees voorzichtig, het is mogelijk om je account te beroven van de toegang tot je systeem.
voor ms-windows:
tbs
voor macOS:
tbs
welke baudrate moet ik instellen op mijn terminal programma?
Omdat de communicatie over usb loopt is de baudrate van de device driver nodig. Om die te bepalen:
voor linux:
gebruik het stty commando. Voor het voorbeeld tty device hierboven wordt dat:
stty --file=/dev/ttyACM0
Dit geeft als uitvoer:
speed 9600 baud; line = 0;
min = 1; time = 0;
-brkint -icrnl -imaxbel
-isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
De snelheid is dus 9600 baud. Voor de overige informatie zie 'man stty'
voor ms-windows:
tbs
voor macOS:
tbs