Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: ZAJDAN 19. 11. 2018, 16:25:33

Název: Arduino - Serial Monitor
Přispěvatel: ZAJDAN 19. 11. 2018, 16:25:33
Ahoj,
začínám experimentovat s Arduinem, které jsem k počítači připojil přes USB:
Kód: [Vybrat]
# ls -l /dev/ttyACM*
crw-rw---- 1 root dialout 166, 3 Nov 19 15:58 /dev/ttyACM3
k psaní a nahrání kódu používám Arduino 2:1.0.5 (Debian)

1) všiml jsem si, že každým uploadnutím kódu inkrementalne narustá /dev/tty/ACM3 , /dev/tty/ACM4. /dev/tty/ACM5, /dev/tty/ACM6.....
je to běžné?

2) i když použiju originální šablonu pro nějaký modul, uploadnu ji a chci se podívat přes konzoli zda maká, co vypisuje....Serial Monitor je stále prázdnej
musím tty dodatečně nakonfigurovat?
Název: Re:Arduino - Serial Monitor
Přispěvatel: snuff1987 19. 11. 2018, 17:29:32
S arduinom som uz dlhsie nerobil, ale:

1. neviem
2. nic som dodatocne nekonfiguroval.
Serial.begin(9600);
Serial.println(premenna);
 

a fungovalo.
Pripadne checkni co Ti pise dmesg, niekedy sa stalo ze sa mi arduino "zaseklo".
Název: Re:Arduino - Serial Monitor
Přispěvatel: ZAJDAN 19. 11. 2018, 17:33:13
a fungovalo.
Pripadne checkni co Ti pise dmesg, niekedy sa stalo ze sa mi arduino "zaseklo".
problém je ten,že každým uploadem se přečísluje /dev/ttyACM
kód jsem uploadnul ve stavu, kdy /dev/ttyACM bylo /dev/ttyACM0
po uloadu se změnilo na /dev/ttyACM1 a tak stále dokola
proto je hluchej ten Serial Monitor
Název: Re:Arduino - Serial Monitor
Přispěvatel: dustin 19. 11. 2018, 17:43:46
Když se ti změní název zařízení, logicky musíš změnit jeho nastavení v arduino IDE, aby jej serial monitor použil.

Lze nastavit pravidlo do udevu, aby byl název fixní.
Název: Re:Arduino - Serial Monitor
Přispěvatel: ZAJDAN 19. 11. 2018, 17:53:47
Když se ti změní název zařízení, logicky musíš změnit jeho nastavení v arduino IDE, aby jej serial monitor použil.

Lze nastavit pravidlo do udevu, aby byl název fixní.
ano, to jsem udělal,
uploadnu kod -> kliknu Serial Monitor -> Serial port '/dev/ttyACM10' not found. Did you select the right one from the Tools > Serial Port menu?
jdu tedy do Tools->Serial Port ->zvolim /dev/ttyACM11
spustím Serial Monitor a nic se neděje
Název: Re:Arduino - Serial Monitor
Přispěvatel: ZAJDAN 19. 11. 2018, 18:20:43
pro testování jsem teď zkusil primitiv:
Kód: [Vybrat]
void setup() {
  Serial.begin(9600);
  Serial.println("Hello World");
}

void loop() {
  Serial.println(" Hello World ");
  delay(2000);
 
}
ale, serial monitor je stale hluchej
Název: Re:Arduino - Serial Monitor
Přispěvatel: Jenda 19. 11. 2018, 19:13:06
Když se ti změní název zařízení, logicky musíš změnit jeho nastavení v arduino IDE, aby jej serial monitor použil.

Lze nastavit pravidlo do udevu, aby byl název fixní.

Sériák by se vůbec neměl při uploadování reinicializovat pokud to není Arduino Leonardo. Tohle vypadá na nějaký HW problém (napájení?), vypiš si dmesg kde je ta reinicializace vidět.
Název: Re:Arduino - Serial Monitor
Přispěvatel: jm 19. 11. 2018, 19:20:28
Co vím z Windows, tak serial port z Arduina je "hluchý" dokud se správně nenastaví RTS/CTS piny (i když je to VCP).
Název: Re:Arduino - Serial Monitor
Přispěvatel: ZAJDAN 19. 11. 2018, 19:28:18
Sériák by se vůbec neměl při uploadování reinicializovat pokud to není Arduino Leonardo. Tohle vypadá na nějaký HW problém (napájení?), vypiš si dmesg kde je ta reinicializace vidět.
je to Leonardo
kus z dmesg:
Kód: [Vybrat]
[13209.043772] usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[13209.043775] usb 5-2: Product: Arduino Leonardo
[13209.043778] usb 5-2: Manufacturer: Arduino LLC
[13209.045788] cdc_acm 5-2:1.0: This device cannot do calls on its own. It is not a modem.
[13209.045812] cdc_acm 5-2:1.0: ttyACM17: USB ACM device
[13569.686572] usb 5-2: USB disconnect, device number 23
[13578.794418] usb 5-2: new full-speed USB device number 24 using uhci_hcd
[13578.973481] usb 5-2: New USB device found, idVendor=2341, idProduct=8036
[13578.973487] usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[13578.973490] usb 5-2: Product: Arduino Leonardo
[13578.973493] usb 5-2: Manufacturer: Arduino LLC
[13578.976565] cdc_acm 5-2:1.0: This device cannot do calls on its own. It is not a modem.
[13578.976590] cdc_acm 5-2:1.0: ttyACM17: USB ACM device
[13624.247746] usb 5-2: USB disconnect, device number 24
[13629.103621] usb 5-2: new full-speed USB device number 25 using uhci_hcd
[13629.282678] usb 5-2: New USB device found, idVendor=2341, idProduct=8036
[13629.282684] usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[13629.282687] usb 5-2: Product: Arduino Leonardo
[13629.282691] usb 5-2: Manufacturer: Arduino LLC
[13629.284744] cdc_acm 5-2:1.0: This device cannot do calls on its own. It is not a modem.
[13629.284769] cdc_acm 5-2:1.0: ttyACM17: USB ACM device
[13920.862855] usb 5-2: USB disconnect, device number 25
[13926.830665] usb 5-2: new full-speed USB device number 26 using uhci_hcd
[13927.013768] usb 5-2: New USB device found, idVendor=2341, idProduct=8036
[13927.013774] usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[13927.013778] usb 5-2: Product: Arduino Leonardo
[13927.013781] usb 5-2: Manufacturer: Arduino LLC
[13927.015853] cdc_acm 5-2:1.0: This device cannot do calls on its own. It is not a modem.
[13927.015877] cdc_acm 5-2:1.0: ttyACM17: USB ACM device
[14124.411355] usb 5-2: reset full-speed USB device number 26 using uhci_hcd
[14124.559863] cdc_acm 5-2:1.0: This device cannot do calls on its own. It is not a modem.
[14124.559893] cdc_acm 5-2:1.0: ttyACM17: USB ACM device
Název: Re:Arduino - Serial Monitor
Přispěvatel: ZAJDAN 19. 11. 2018, 19:32:43
zkusil jsem to na virtual Windows7 a pri verbose modu vidim:
Kód: [Vybrat]
Found upload port: COM3
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega32u4 -cavr109 -PCOM3 -b57600 -D -Uflash:w:C:\Users\ZDENEK~1.ERK\AppData\Local\Temp\arduino_build_552769/sketch_nov19a.ino.hex:i

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM3
         Using Programmer              : avr109
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega32U4
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  9000  9000 0x00 0x00
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : butterfly
         Description     : Atmel AppNote AVR109 Boot Loader

Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding
Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding
hmmmm
Název: Re:Arduino - Serial Monitor
Přispěvatel: dustin 19. 11. 2018, 20:57:31
Sériák by se vůbec neměl při uploadování reinicializovat pokud to není Arduino Leonardo.

CDC device (ACM) se mi objevilo vždy jen u Leonarda, takže to je - jak již bylo potvrzeno.
Název: Re:Arduino - Serial Monitor
Přispěvatel: TechnikTom 19. 11. 2018, 21:10:09
Vypadá to, jako by se po nahrání odpojil a znovu připojil nebo nějak reinicializoval.
Mě se pouze po odpojení kabelu a opětném připojení  náhodně připojuje jako ttyUSB0 nebo ttyUSB1 ( Lubuntu ).
Možná by i ve vašem případě pomohlo tohle řešení:

https://unix.stackexchange.com/questions/66901/how-to-bind-usb-device-under-a-static-name (https://unix.stackexchange.com/questions/66901/how-to-bind-usb-device-under-a-static-name)

Název: Re:Arduino - Serial Monitor
Přispěvatel: ZAJDAN 19. 11. 2018, 22:33:00
To ze ma Leonardo problém se píše na mnoho webech. Docitam se ze někomu pomohlo zmáčknout během uploadu reset.
https://stackoverflow.com/questions/49283074/arduino-leonardo-avrdude-butterfly-recv-programmer-is-not-responding
Název: Re:Arduino - Serial Monitor
Přispěvatel: David 19. 11. 2018, 23:58:46
Když se ti změní název zařízení, logicky musíš změnit jeho nastavení v arduino IDE, aby jej serial monitor použil.

Lze nastavit pravidlo do udevu, aby byl název fixní.
ano, to jsem udělal,
uploadnu kod -> kliknu Serial Monitor -> Serial port '/dev/ttyACM10' not found. Did you select the right one from the Tools > Serial Port menu?
jdu tedy do Tools->Serial Port ->zvolim /dev/ttyACM11
spustím Serial Monitor a nic se neděje
Z toho jsem pochopil, ze se ti dev stale meni.

Ja v udevu mam
Kód: [Vybrat]
## Arduino
# QinHeng Electronics HL-340 USB-Serial adapter
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", \
 PROGRAM="/usr/bin/whoami", SYMLINK+="ttyUSB99Arduino", MODE:="0666", OWNER="%c", GROUP="USBdev"
takze serial monitor povesim na /dev/ttyUSB99Arduino a cislo /dev/ttyACM je mi jedno :-)
Název: Re:Arduino - Serial Monitor
Přispěvatel: Bugs 20. 11. 2018, 06:32:25
U Leonarda se musí v setup() počkat na inicializaci Serialu. U ostatních Arduin ne.

Kód: [Vybrat]
void setup()
{
   Serial.begin(9600);
   while (!Serial) {}
}

void loop()
{
   ....
}
Název: Re:Arduino - Serial Monitor
Přispěvatel: Jenda 20. 11. 2018, 07:37:45
Sériák by se vůbec neměl při uploadování reinicializovat pokud to není Arduino Leonardo.

CDC device (ACM) se mi objevilo vždy jen u Leonarda, takže to je - jak již bylo potvrzeno.

I u klasického Arduina se to může stát - některá Arduina mají „hardwarový“ převodník a některá (minimálně Arduino Mega) mají jako převodník z USB na sériák AtMegu 8U, která sériák emuluje.
Název: Re:Arduino - Serial Monitor
Přispěvatel: dustin 20. 11. 2018, 08:15:55
Díky za info. Mám všechny čínské, kde je buď CH340, nebo nano a pak používám klasiku PL2302.

V poslední době se objevily nano s CH340 na spodní straně a usb portem, což je super užitečné.
Název: Re:Arduino - Serial Monitor
Přispěvatel: ZAJDAN 20. 11. 2018, 09:56:31
díky hoši...
zkusil jsem doplnit zmíněný    while (!Serial) {} ,ale stále je to stejné,
Je možné že by byl poškozený loader?
Název: Re:Arduino - Serial Monitor
Přispěvatel: dustin 20. 11. 2018, 10:51:28
Daří se uploadnout sketch? Funguje nějaký blink na ledce 13?
Název: Re:Arduino - Serial Monitor
Přispěvatel: ZAJDAN 20. 11. 2018, 11:59:56
Daří se uploadnout sketch? Funguje nějaký blink na ledce 13?
právě že nedaří, nedaří se ani Blink
vše končí:
Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding
Název: Re:Arduino - Serial Monitor
Přispěvatel: mtd 20. 11. 2018, 12:08:38
pokud linuxu jakýkoli program  drží otevřenej sériovej port následně při novém připojení toho usb sériáku vytváří nové zařízení s novým jménem. což se někdy děje i třeba při resetu usb periferie.

můj typický problém s embedded periferiema, co mají sériák na usb je, že když si otevřu sériovej port třeba v minicomu a pak odpojím a připojím usb periferii, tak se mi namapuje namapuje na nějaké jiné jméno a teprve až když ukončím minicom a znovu připojím danou periferii, tak se mi namapuje na to staré jméno.

na první pohled tohle chování vypadá náhodně.
Název: Re:Arduino - Serial Monitor
Přispěvatel: ZAJDAN 20. 11. 2018, 12:11:04
přešíslování seriáku ve skutečnosti není můj problém, to spíš byla úvodní nejasnost jak ta věc funguje
teď je problém, že se nedaří ani uploadovat sketch/kod/program
Název: Re:Arduino - Serial Monitor
Přispěvatel: mtd 20. 11. 2018, 12:26:10
teď je problém, že se nedaří ani uploadovat sketch/kod/program

mě většina problémů s arduinem a avr zmizela poté, co jsem si koupil programátor avr dragon. tím se obejdou všechny ty bootloadery, chybné nastavení fuses a další problémy. teda, používám ho na windows s avr studiem, protože na linuxu to před těma rokama bylo utrpení avrko debugovat. ne, že by bylo dneska avr studio jednoduché na používání, od doby, co to prostředí postavili na visual studiu to není úplně dobré.

samozřejmě to pak všechno programuju v céčku a nepoužívám sketche.
Název: Re:Arduino - Serial Monitor
Přispěvatel: ZAJDAN 20. 11. 2018, 13:46:45

mě většina problémů s arduinem a avr zmizela poté, co jsem si koupil programátor avr dragon. tím se obejdou všechny ty bootloadery, chybné nastavení fuses a další problémy. teda, používám ho na windows s avr studiem, protože na linuxu to před těma rokama bylo utrpení avrko debugovat. ne, že by bylo dneska avr studio jednoduché na používání, od doby, co to prostředí postavili na visual studiu to není úplně dobré.

samozřejmě to pak všechno programuju v céčku a nepoužívám sketche.

díky za tip, já se vytrestal s chinesse model :_) na hraní ok, ale když už člověk potřebuje úderně nasadit nějakou věč, tak raději originál od talošů
Název: Re:Arduino - Serial Monitor
Přispěvatel: dustin 20. 11. 2018, 13:54:11
Jaké jsi měl konkrétně problémy? Jednou se mi stalo, že bylo AVR špatně přiletované, ale bylo to pod mikroskopem vidět, takže snadná oprava. Jinak zatím vždy zcela bez problémů. Tak mě zajímá, v čem bývá problém, abych se tomu když tak vyhnul. Díky.
Název: Re:Arduino - Serial Monitor
Přispěvatel: ehmmm 20. 11. 2018, 18:36:01
díky za tip, já se vytrestal s chinesse model :_) na hraní ok, ale když už člověk potřebuje úderně nasadit nějakou věč, tak raději originál od talošů

Tak to jses asi prvni, o kom vim, ze pouziva original. V cem byl u cinske verze problem? Mam v terenu nejaka ProMini a nezaznamenal jsem problem.
Název: Re:Arduino - Serial Monitor
Přispěvatel: mrazik 20. 11. 2018, 21:32:40
No, možná by trochu pomohlo vypnout službu ModemManager. Ta je opravdu dost otravná při práci s ttyACM (a i jinými sériovými porty). Ono to někdy nějak funguje i s ní, ale dost dlouho trvá (cca 10 s) než služba port pustí a dá se s ním uživatelsky nějak pracovat. Příkaz najdete na webu, je to něco jako systemctl disable ModemManager.service.
Název: Re:Arduino - Serial Monitor
Přispěvatel: _mtd 21. 11. 2018, 00:20:06
dustin: jestli je to dotaz na mě.. co se hw týká:

asi nejvíc mě číňani naštvali když jsem chtěl stavět herní ovladač. existuje arduino s dvěma avr, jedním na usb, co se normálně používá jako usb seriák a druhým, které se programuje. a já potřebovat upravit firmware v tom usbčkovém, abych z něj udělal usb hid. jenže číňani na tu desku dali místo toho usb avr úplně jinou součástku, takže to nešlo.

a taková druhá nepříjemná věc bylo rozchozování debugwire na arduinu nano, měli tam špatně zapojený reset (debugwire komunikuje skrz reset), ale to člověku na první pohled nedojde.
Název: Re:Arduino - Serial Monitor
Přispěvatel: noname2 21. 11. 2018, 01:08:04
dustin: jestli je to dotaz na mě.. co se hw týká:

asi nejvíc mě číňani naštvali když jsem chtěl stavět herní ovladač. existuje arduino s dvěma avr, jedním na usb, co se normálně používá jako usb seriák a druhým, které se programuje. a já potřebovat upravit firmware v tom usbčkovém, abych z něj udělal usb hid. jenže číňani na tu desku dali místo toho usb avr úplně jinou součástku, takže to nešlo.

a taková druhá nepříjemná věc bylo rozchozování debugwire na arduinu nano, měli tam špatně zapojený reset (debugwire komunikuje skrz reset), ale to člověku na první pohled nedojde.
Ti cinani to tam casto pisu v popise vyrobku, ze je tam CH340G.
Název: Re:Arduino - Serial Monitor
Přispěvatel: dustin 21. 11. 2018, 08:18:09

asi nejvíc mě číňani naštvali když jsem chtěl stavět herní ovladač. existuje arduino s dvěma avr, jedním na usb, co se normálně používá jako usb seriák a druhým, které se programuje. a já potřebovat upravit firmware v tom usbčkovém, abych z něj udělal usb hid. jenže číňani na tu desku dali místo toho usb avr úplně jinou součástku, takže to nešlo.

Tomu nerozumím. Chci-li USB HID (třeba do DIY herní myši), použiju leonardo pro micro za dva dolary, které je na to přímo určené. Pokud USB HID nepotřebuju, použiji standardní arduino, které z Číny má snad téměř vždy klasiku CH340 - usb-serial. Že někdo místo usb-serial osadil naprogramované AVR, to bych viděl jako "nezdokumentovaný feature", privátní metoda.
Název: Re:Arduino - Serial Monitor
Přispěvatel: _mtd 21. 11. 2018, 09:59:21
Tomu nerozumím. Chci-li USB HID (třeba do DIY herní myši), použiju leonardo pro micro za dva dolary, které je na to přímo určené. Pokud USB HID nepotřebuju, použiji standardní arduino, které z Číny má snad téměř vždy klasiku CH340 - usb-serial. Že někdo místo usb-serial osadil naprogramované AVR, to bych viděl jako "nezdokumentovaný feature", privátní metoda.

Já todle tehdy řešil přes uno, které má v originální verzi to naprogramované avr v roli usb-serial konvertoru. A čínský prodejce se tvářil, že tam to druhé avr má taky.
Později jsem koupil leonardo, to dost dobře nemůžou ošidit bez ztráty základní funkcionality.
Název: Re:Arduino - Serial Monitor
Přispěvatel: dustin 21. 11. 2018, 10:50:14
Mně použití CH340 nepřijde jako ošizení, naopak splňuje to specifikace - usb serial pro hlavní AVR. Snad vždycky jsem tam to CH340 viděl uvedené, ale je klidně možné, že to v tomto konkrétním případě měli popsané blbě.