pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

comms/py-serial in NetBSD vs Linux differences



Hello,

I am trying to make nanovnasaver work under NetBSD. NanoVNA is a cheap Vector Network Analyzer (30$) that connects to the USB port. Nanovnasaver is a python program that manages the device and make very useful RF S-parameters measurements, graphing and data saving. The code is at Github here:

https://github.com/NanoVNA-Saver

Device detection fails in NetBSD, in Linux it works just fine.

Device detection and communication relies on py-serial python module.

Under Linux, device is /dev/ttyAMC0, in NetBSD device is /dev/ttyU0 and /dev/dtyU0. I have given permission to the device and can perfectly be accesed with the cu program:

netbsd-x260$ cu -l /dev/ttyU0
Connected

ChibiOS/RT Shell
ch> help
Commands: help exit info threads version reset freq offset time dac saveconfig clearconfig data dump frequencies port stat gain power sample scan sweep test touchcal touchtest pause resume cal save recall trace marker edelay capture vbat transform threshold
ch> info
Kernel:       4.0.0
Compiler:     GCC 8.2.1 20181213 (release) [gcc-8-branch revision 267074]
Architecture: ARMv6-M
Core Variant: Cortex-M0
Port Info:    Preemption through NMI
Platform:     STM32F072xB Entry Level Medium Density devices
Board:        NanoVNA-H
Build time:   Oct 18 2019 - 16:10:54
ch> ~
[EOT]
netbsd-x260$

Nanovnaserver uses py-serial python module, but in NetBSD nanovnasaver program is confused with its output, it is not the same as in Linux.

LINUX detects this ports:

ramiro@debian-x260:~$ pyserial-ports -v
/dev/ttyACM0
    desc: ChibiOS/RT Virtual COM Port
    hwid: USB VID:PID=0483:5740 SER=400 LOCATION=1-1:1.0
/dev/ttyS0
    desc: n/a
    hwid: n/a
2 ports found
ramiro@debian-x260:~$

On the other hand, py-serial detects 121 of devices but no useful information on /dev/ttyU0 and /dev/dtyU0

NETBSD:

netbsd-x260$ pyserial-ports-3.12
/dev/dty00
/dev/dty01
/dev/dty02
/dev/dty03
/dev/dtyCY000
...

...
/dev/dtyCZ0000
...

...
/dev/dtyCZ0063
/dev/dtyHS0.00
...

...

/dev/dtyHS0.10
/dev/dtyU0
/dev/dtyU1
/dev/dtyU2
/dev/dtyU3
/dev/dtyU4
/dev/dtyU5
/dev/dtyU6
/dev/dtyU7
/dev/dtyY0
/dev/dtyY1
121 ports found
netbsd-x260$

If more detail is requested:

netbsd-x260# pyserial-ports-3.12 -v
/dev/dty00
    desc: n/a
    hwid: n/a


..

..


/dev/dtyU0
    desc: n/a
    hwid: n/a
/dev/dtyU1
    desc: n/a
    hwid: n/a
/dev/dtyU2
    desc: n/a
    hwid: n/a
/dev/dtyU3
    desc: n/a
    hwid: n/a
/dev/dtyU4
    desc: n/a
    hwid: n/a
/dev/dtyU5
    desc: n/a
    hwid: n/a
/dev/dtyU6
    desc: n/a
    hwid: n/a
/dev/dtyU7
    desc: n/a
    hwid: n/a
/dev/dtyY0
    desc: n/a
    hwid: n/a
/dev/dtyY1
    desc: n/a
    hwid: n/a
121 ports found
netbsd-x260#

If I run this simple python program that scan the ports:

netbsd-x260$ cat prueba.py

import serial
from serial.tools import list_ports
from serial.tools.list_ports_common import ListPortInfo

for d in list_ports.comports(include_links=True):
 print('device',d.device)
 print('name',d.name)
 print('description',d.description)
 print('hwid',d.hwid)
 print('vid',d.vid)
 print('pid',d.pid)
 print('serial_number',d.serial_number)
 print('location',d.location)
 print('manufacturer',d.manufacturer)
 print('product',d.product)
 print('interface',d.interface)

LINUX:

device /dev/ttyACM0
name ttyACM0
description ChibiOS/RT Virtual COM Port
hwid USB VID:PID=0483:5740 SER=400 LOCATION=1-1.2:1.0
vid 1155
pid 22336
serial_number 400
location 1-1.2:1.0
manufacturer STMicroelectronics
product ChibiOS/RT Virtual COM Port
interface None


NETBSD outputs 121 devices but I print below the device of interest There is no information about the description, hwid, vendor, product and serial number:

device /dev/dtyU0
name dtyU0
description n/a
hwid n/a
vid None
pid None
serial_number None
location None
manufacturer None
prpy313-libusb1oduct None
interface None

Have you noticed this behaviour in py-serial under NetBSD or am I missing something?

Thanks.

Ramiro.




Home | Main Index | Thread Index | Old Index