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 een virtual COM poort en is als device te vinden als een USB serial device of een Communication Device Class (CDC) device met als naam COM met een volgnummer.
voor macOS:
(later)
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:
Selecteer de gewenste COM poort in de Tera Term Serial port setup dialoog. Omdat er bij USB CDC geen seriele verbinding is tussen de driver en de terminal applicatie zijn details als baud rate niet relevant. Wel belangrijk is de line delay van 1 milliseconde voor succesvolle file transfers. Als er tijdrovende opdrachten in de file staan die de rp2040 meer dan een milliseconde bezig houden is het beter om de file op te splitsen om fouten bij de overdracht te voorkomen, de andere flow control mechanismen hebben geen effect.
voor macOS:
(later)
welke baudrate moet ik instellen op mijn terminal programma?
Omdat de communicatie op de PC naar het terminal programma niet via een seriele verbinding loopt is de baud rate niet relevant. Baud rate en dergelijke instellingen met CDC zijn bedoeld voor communicatie met bijvoorbeeld USB modems, maar dat is hier niet van toepassing, deze functionaliteit wordt hier niet gebruikt.
hoe zie ik dat er geen ruimte meer is op de USB bus?
(later)