From owner-freebsd-questions@freebsd.org Sun Oct 1 14:00:33 2017 Return-Path: Delivered-To: freebsd-questions@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 91E56E256AD for ; Sun, 1 Oct 2017 14:00:33 +0000 (UTC) (envelope-from rsmith@xs4all.nl) Received: from lb1-smtp-cloud9.xs4all.net (lb1-smtp-cloud9.xs4all.net [194.109.24.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.xs4all.net", Issuer "RapidSSL SHA256 CA - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 360F21B2A for ; Sun, 1 Oct 2017 14:00:32 +0000 (UTC) (envelope-from rsmith@xs4all.nl) Received: from slackbox.erewhon.home ([83.162.243.5]) by smtp-cloud9.xs4all.net with ESMTPA id yem9dG6ennIXbyemAd5tQ9; Sun, 01 Oct 2017 15:59:23 +0200 Received: from rsmith (uid 1001) (envelope-from rsmith@xs4all.nl) id 12463 by slackbox.erewhon.home (DragonFly Mail Agent v0.11+); Sun, 01 Oct 2017 15:59:21 +0200 Date: Sun, 1 Oct 2017 15:59:21 +0200 From: Roland Smith To: Polytropon , freebsd-questions@freebsd.org Subject: Re: one character lag with pyboard over usb serial Message-ID: <20171001135921.GA87960@slackbox.erewhon.home> Mail-Followup-To: Polytropon , freebsd-questions@freebsd.org References: <20171001093541.GA81952@slackbox.erewhon.home> <20171001122009.3fbfbf95.freebsd@edvax.de> <20171001113308.GA82813@slackbox.erewhon.home> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20171001113308.GA82813@slackbox.erewhon.home> User-Agent: Mutt/1.9.1 (2017-09-22) X-CMAE-Envelope: MS4wfD9SrVkvp40GlxdUxkJikF4ipSIcfvAimW2QO0xQD7zHASW8IP8dFMg6mRRE7O2P11w+U1Yp6h1Dxjjo3uj0LBV2egb13FTPDdHGkL1uaQ+o81z69S8W xW5aW64mDdTBycB5kK9zZPYp3BwQo3L4tnw9M0pQIC2I47cNd23KVydb5G4R38TW49fT1isVjmHUGg== X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Oct 2017 14:00:33 -0000 On Sun, Oct 01, 2017 at 01:33:08PM +0200, Roland Smith wrote: > On Sun, Oct 01, 2017 at 12:20:09PM +0200, Polytropon wrote: > > On Sun, 1 Oct 2017 11:35:41 +0200, Roland Smith wrote: > > > I've asked around on the pyboard forum, but nobody there (using Linux or OSX) > > > has seen this problem. It has been suggested that this is a FreeBSD driver > > > problem. > > > > Try to verify with the "cu" program provided natively by the OS. > > With ‘cu’, I see the same problem. :-( > > > In worst case, monitor the /dev/cuaU-1 device file directly to > > check what is really being sent in either direction. If the > > lag also appears there, it really looks like a driver issue... > Thanks to http://mmdolze.users.sourceforge.net/serial-port-monitoring.html, I found a good way to use picocom and socat. I used comms/picocom for communication and net/socat in a different terminal to capture the data. # socat -d -v -x PTY,link=/tmp/serial,wait-slave,rawer /dev/cuaU0,rawer > & socat.txt # picocom /tmp/serial Note that, inspired by the manual page, I used the “rawer” option rather than the “raw” option seen in the link above. Here are the contents of socat.txt. Data from the board is preceded by “<”, what I type is preceded by “>” < 2017/10/01 15:37:57.488955 length=48 from=0 to=47 2e 32 20 6f 6e 20 32 30 31 37 2d 30 38 2d 32 33 .2 on 2017-08-23 3b 20 50 59 42 76 31 2e 31 20 77 69 74 68 20 53 ; PYBv1.1 with S 54 4d 33 32 46 34 30 35 52 47 0d 0a TM32F405RG.. 54 79 70 65 Type -- I typed below because more text was not forecoming. As per the reactions from the pyboard forum, this is as expected. > 2017/10/01 15:38:01.181435 length=1 from=0 to=0 0d . -- < 2017/10/01 15:38:01.247992 length=37 from=48 to=84 20 22 68 65 6c 70 28 29 22 20 66 6f 72 20 6d 6f "help()" for mo 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0d re information.. 0a . 3e 3e 3e 20 >>> -- > 2017/10/01 15:38:05.413958 length=1 from=1 to=1 68 h -- Here the weirdness begins. There is a carriage return/newline pair here followed by a new prompt that basically shouldn't be here. < 2017/10/01 15:38:05.416064 length=6 from=85 to=90 0d 0a .. 3e 3e 3e 20 >>> -- > 2017/10/01 15:38:06.290046 length=1 from=2 to=2 65 e -- < 2017/10/01 15:38:06.292079 length=1 from=91 to=91 68 h -- > 2017/10/01 15:38:06.579576 length=1 from=3 to=3 6c l -- < 2017/10/01 15:38:06.581082 length=1 from=92 to=92 65 e -- > 2017/10/01 15:38:06.816570 length=1 from=4 to=4 70 p -- < 2017/10/01 15:38:06.818083 length=1 from=93 to=93 6c l -- > 2017/10/01 15:38:07.786224 length=1 from=5 to=5 28 ( -- < 2017/10/01 15:38:07.788107 length=1 from=94 to=94 70 p -- > 2017/10/01 15:38:07.884016 length=1 from=6 to=6 29 ) -- < 2017/10/01 15:38:07.886107 length=1 from=95 to=95 28 ( -- > 2017/10/01 15:38:08.824194 length=1 from=7 to=7 0d . -- < 2017/10/01 15:38:08.826122 length=1 from=96 to=96 29 ) -- < 2017/10/01 15:38:08.829134 length=521 from=97 to=617 0d 0a .. 57 65 6c 63 6f 6d 65 20 74 6f 20 4d 69 63 72 6f Welcome to Micro 50 79 74 68 6f 6e 21 0d 0a Python!.. 0d 0a .. 46 6f 72 20 6f 6e 6c 69 6e 65 20 68 65 6c 70 20 For online help 70 6c 65 61 73 65 20 76 69 73 69 74 20 68 74 74 please visit htt 70 3a 2f 2f 6d 69 63 72 6f 70 79 74 68 6f 6e 2e p://micropython. 6f 72 67 2f 68 65 6c 70 2f 2e 0d 0a org/help/... 0d 0a .. 51 75 69 63 6b 20 6f 76 65 72 76 69 65 77 20 6f Quick overview o 66 20 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 74 f commands for t 68 65 20 62 6f 61 72 64 3a 0d 0a he board:.. 20 20 70 79 62 2e 69 6e 66 6f 28 29 20 20 20 20 pyb.info() 2d 2d 20 70 72 69 6e 74 20 73 6f 6d 65 20 67 65 -- print some ge 6e 65 72 61 6c 20 69 6e 66 6f 72 6d 61 74 69 6f neral informatio 6e 0d 0a n.. 20 20 70 79 62 2e 64 65 6c 61 79 28 6e 29 20 20 pyb.delay(n) 2d 2d 20 77 61 69 74 20 66 6f 72 20 6e 20 6d 69 -- wait for n mi 6c 6c 69 73 65 63 6f 6e 64 73 0d 0a lliseconds.. 20 20 70 79 62 2e 6d 69 6c 6c 69 73 28 29 20 20 pyb.millis() 2d 2d 20 67 65 74 20 6e 75 6d 62 65 72 20 6f 66 -- get number of 20 6d 69 6c 6c 69 73 65 63 6f 6e 64 73 20 73 69 milliseconds si 6e 63 65 20 68 61 72 64 20 72 65 73 65 74 0d 0a nce hard reset.. 20 20 70 79 62 2e 53 77 69 74 63 68 28 29 20 20 pyb.Switch() 2d 2d 20 63 72 65 61 74 65 20 61 20 73 77 69 74 -- create a swit 63 68 20 6f 62 6a 65 63 74 0d 0a ch object.. 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 77 69 74 63 68 20 6d 65 74 68 6f 64 Switch method 73 3a 20 28 29 2c 20 63 61 6c 6c 62 61 63 6b 28 s: (), callback( 66 29 0d 0a f).. 20 20 70 79 62 2e 4c 45 44 28 6e 29 20 20 20 20 pyb.LED(n) 2d 2d 20 63 72 65 61 74 65 20 61 6e 20 4c 45 44 -- create an LED 20 6f 62 6a 65 63 74 20 66 6f 72 20 4c 45 44 20 object for LED 6e 20 28 6e 3d 31 2c 32 2c 33 2c 34 29 0d 0a n (n=1,2,3,4).. 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 45 44 20 6d 65 74 68 6f 64 73 3a 20 LED methods: 6f 6e 28 29 2c 20 6f 66 66 28 29 2c 20 74 6f 67 on(), off(), tog 67 6c 65 28 29 2c 20 69 6e 74 65 6e 73 69 74 79 gle(), intensity 28 3c 6e 3e 29 0d (). -- < 2017/10/01 15:38:08.832279 length=128 from=618 to=745 0a . 20 20 70 79 62 2e 50 69 6e 28 70 69 6e 29 20 20 pyb.Pin(pin) 2d 2d 20 67 65 74 20 61 20 70 69 6e 2c 20 65 67 -- get a pin, eg 20 70 79 62 2e 50 69 6e 28 27 58 31 27 29 0d 0a pyb.Pin('X1').. 20 20 70 79 62 2e 50 69 6e 28 70 69 6e 2c 20 6d pyb.Pin(pin, m 2c 20 5b 70 5d 29 20 2d 2d 20 67 65 74 20 61 20 , [p]) -- get a 70 69 6e 20 61 6e 64 20 63 6f 6e 66 69 67 75 72 pin and configur 65 20 69 74 20 66 6f 72 20 49 4f 20 6d 6f 64 65 e it for IO mode 20 6d 2c 20 70 75 6c 6c 20 6d 6f 64 65 20 70 m, pull mode p -- > 2017/10/01 15:38:10.363393 length=1 from=8 to=8 0d . -- Roland -- R.F.Smith http://rsmith.home.xs4all.nl/ [plain text email much appreciated]