Contact me: hankecnc@gmail.com

无法连接到arduino #197

推推 grbl 3年前 (2023-02-02) 326次浏览
关闭
12 个任务中的第 4 个
saxa 打开了这个问题 2017 年 9 月 11 日 · 12条评论
关闭
12 个任务中的第 4 个

无法连接到arduino#197

saxa 打开了这个问题 2017 年 9 月 11 日 · 12条评论

评论

无法连接到arduino #197
萨克斯 评论了 2017 年 9 月 11 日  

描述

您好,我已经正确安装和配置了 cncjs,并且一切顺利。感谢这么好的节目。问题是我无法连接到我的 Arduino Uno 上的 grbl。
我已使用 arduino ide 成功将 grbl 上传到我的 arduino,但 cncjs 无法连接到它。
绝对是我]这是一个权限问题。我可以从 /dev/ttyACM0 端口上的 minicom 连接到我的 arduino
并查询命令等。
似乎 cncjs 中有一个硬编码的 ttyS2,因为我可以在我的终端上看到以下几行:

bash-4.3$ cnc
2017-09-10T21:27:33.720Z – 信息:init 从“/home/sasa/.cncrc”加载配置
2017-09-10T21:27:33.723Z – 信息:init 正在观看“/home/ sasa/cncjs/watchdir” 用于文件更改。
2017-09-10T21:27:33.827Z – 信息:init 在http://127.0.0.1:8000
启动服务器 2017-09-10T21:27:47.895Z – 错误:service:cncengine { 错误:命令失败:udevadm info –query=property -p $(udevadm info -q path -n /dev/ttyS2)
/bin/sh: udevadm: 命令未找到
/bin/sh: udevadm: 命令未找到

at ChildProcess.exithandler (child_process.js:270:12)
at emitTwo (events.js:125:13)
at ChildProcess.emit (events.js:213:7)
at maybeClose (internal/child_process.js:927:16)
at Socket.stream.socket.on (internal/child_process.js:348:11)
at emitOne (events.js:115:13)
at Socket.emit (events.js:210:7)
at Pipe._handle.close [as _onclose] (net.js:545:12)

killed: false,
code: 127,
signal: null,
cmd: ‘udevadm info –query=property -p $(udevadm info -q path -n /dev/ttyS2)’ }
2017-09-10T21:28:13.155Z – 错误:服务:cncengine { 错误:命令失败:udevadm 信息 –query=property -p $(udevadm 信息 -q 路径 -n /dev/ttyS2)
/bin/sh: udevadm: 找不到命令
/bin/sh: udevadm:找不到命令

at ChildProcess.exithandler (child_process.js:270:12)
at emitTwo (events.js:125:13)
at ChildProcess.emit (events.js:213:7)
at maybeClose (internal/child_process.js:927:16)
at Socket.stream.socket.on (internal/child_process.js:348:11)
at emitOne (events.js:115:13)
at Socket.emit (events.js:210:7)
at Pipe._handle.close [as _onclose] (net.js:545:12)

killed: false,
code: 127,
signal: null,
cmd: ‘udevadm info –query=property -p $(udevadm info -q path -n /dev/ttyS2)’ }
^C

我以普通用户身份运行它,我使用的是 Slackware Linux 64 位。

版本

  • CNCjs:1.9.x
  • 节点.js:6.x
  • NPM:5.x

你如何安装CNCjs?

  • NPM
  • 下载 CNCjs 桌面应用程序

数控系统

  • Grbl
  • 冰沙
  • TinyG/g2核心

硬件

  • 树莓派
  • 台式机或笔记本电脑
  • 移动设备

操作系统

  • 不适用
  • 视窗
  • 苹果
  • Linux
无法连接到arduino #197
作者
萨克斯 评论了 2017 年 9 月 11 日  

顺便说一下,作为 root 用户,我得到以下信息:

root@vivo64:~# udevadm info -q path -n /dev/ttyS2 
/devices/platform/serial8250/tty/ttyS2
root@vivo64:~# udevadm info -q path -n /dev/ttyACM0
/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/tty/ttyACM0
root@vivo64:~# udevadm info --query=property -p /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/tty/ttyACM0
DEVLINKS=/dev/serial/by-id/usb-Arduino_Srl_Arduino_Uno_95437313035351F0E121-if00 /dev/serial/by-path/pci-0000:00:14.0-usb-0:2:1.0
DEVNAME=/dev/ttyACM0
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/tty/ttyACM0
ID_BUS=usb
ID_MM_CANDIDATE=1
ID_MODEL=Arduino_Uno
ID_MODEL_ENC=Arduino\x20Uno
ID_MODEL_FROM_DATABASE=Arduino Uno Rev3
ID_MODEL_ID=0043
ID_PATH=pci-0000:00:14.0-usb-0:2:1.0
ID_PATH_TAG=pci-0000_00_14_0-usb-0_2_1_0
ID_PCI_CLASS_FROM_DATABASE=Serial bus controller
ID_PCI_INTERFACE_FROM_DATABASE=XHCI
ID_PCI_SUBCLASS_FROM_DATABASE=USB controller
ID_REVISION=0001
ID_SERIAL=Arduino_Srl_Arduino_Uno_95437313035351F0E121
ID_SERIAL_SHORT=95437313035351F0E121
ID_TYPE=generic
ID_USB_CLASS_FROM_DATABASE=Communications
ID_USB_DRIVER=cdc_acm
ID_USB_INTERFACES=:020201:0a0000:
ID_USB_INTERFACE_NUM=00
ID_VENDOR=Arduino_Srl
ID_VENDOR_ENC=Arduino\x20Srl\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
ID_VENDOR_FROM_DATABASE=dog hunter AG
ID_VENDOR_ID=2a03
MAJOR=166
MINOR=0
SUBSYSTEM=tty
USEC_INITIALIZED=32691912552
root@vivo64:~# 
无法连接到arduino #197
合作者

/dev/ttyACM0您可以在文件中指定设备路径~/.cncrc,查看 FAQ https://github.com/cncjs/cncjs/wiki/FAQ#raspberry-pi-error-opening-serial-port-ttyama0

无法连接到arduino #197
作者

您好,感谢您的建议,今晚我会在家里尝试,但我可以确认我在 .cncrc 文件中有 /dev/ttyACM0。

无法连接到arduino #197
作者
萨克斯 评论了 2017 年 9 月 13 日  

好的,这里有一些我认为相关的文件:

我的用户是组的一部分dialout:x:16:uucp,sasa

bash-4.3$ cat /home/sasa/.cncrc
{
    "ports": [
        {
            "comName": "/dev/ttyACM0",
            "manufacturer": "ArduinoUno"
        }
    ],
    "baudrates": [
        115200,
        250000
    ],
    "watchDirectory": "/home/sasa/cncjs/watchdir",
    "accessTokenLifetime": "30d",
    "allowRemoteAccess": false,
    "controller": "",
    "state": {
        "checkForUpdates": true
    },
    "commands": [
        {
            "title": "Update (root user)",
            "commands": "sudo npm install -g cncjs@latest --unsafe-perm; pkill -a -f cnc",
            "id": "787080af-154d-4056-a4fd-c3e62923a641",
            "enabled": false,
            "mtime": 1505078927041
        },
        {
            "title": "Update (non-root user)",
            "commands": "npm install -g cncjs@latest; pkill -a -f cnc",
            "id": "c64285d4-e2f6-4163-92dc-dc5d02a91d5a",
            "enabled": true
        },
        {
            "title": "Reboot",
            "commands": "sudo /sbin/reboot",
            "id": "14dc3d78-f199-4834-b379-734ed11afd2f",
            "enabled": true
        },
        {
            "title": "Shutdown",
            "commands": "sudo /sbin/shutdown",
            "id": "2833ea0b-f2a9-4d9d-b814-a33cea575e0d",
            "enabled": true
        }
    ],
    "events": [],
    "macros": [],
    "users": [
        {
            "id": "7304a00a-2eb5-4d49-bb88-54b4434c16d8",
            "mtime": 1505078915654,
            "enabled": true,
            "name": "admin",
            "password": "$2a$10$l8mXnmYFCFBHc/FvS7F5F.1ZeIyrzTP35iFYNbDM1yZ4dpBQ.OgM."
        }
    ],
    "secret": "$2a$10$/iBdminjcY1tEGsxr7dUsu"
}
bash-4.3$ 
root@vivo64:~# tail -f /var/log/messages                                                                     
Sep 12 18:05:34 vivo64 blueman-mechanism: loading Ppp  
Sep 12 18:05:34 vivo64 blueman-mechanism: loading RfKill  
Sep 12 18:05:34 vivo64 blueman-mechanism: loading Rfcomm  
Sep 12 18:06:06 vivo64 blueman-mechanism: Exiting  
Sep 12 18:23:27 vivo64 -- MARK --
Sep 12 18:43:27 vivo64 -- MARK --
Sep 12 19:03:27 vivo64 -- MARK --
Sep 12 19:23:27 vivo64 -- MARK --
Sep 12 19:43:27 vivo64 -- MARK --
Sep 12 20:03:27 vivo64 -- MARK --
Sep 12 20:22:15 vivo64 kernel: [ 8365.233033] usb 3-3: new full-speed USB device number 2 using xhci_hcd
Sep 12 20:22:15 vivo64 kernel: [ 8365.399280] usb 3-3: New USB device found, idVendor=2a03, idProduct=0043
Sep 12 20:22:15 vivo64 kernel: [ 8365.399297] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=220
Sep 12 20:22:15 vivo64 kernel: [ 8365.399300] usb 3-3: Product: Arduino Uno
Sep 12 20:22:15 vivo64 kernel: [ 8365.399303] usb 3-3: Manufacturer: Arduino Srl            
Sep 12 20:22:15 vivo64 kernel: [ 8365.399306] usb 3-3: SerialNumber: 95437313035351F0E121
Sep 12 20:22:15 vivo64 mtp-probe: checking bus 3, device 2: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-3" 
Sep 12 20:22:15 vivo64 mtp-probe: bus: 3, device: 2 was not an MTP device 
Sep 12 20:22:16 vivo64 kernel: [ 8365.720752] cdc_acm 3-3:1.0: ttyACM0: USB ACM device
Sep 12 20:22:16 vivo64 kernel: [ 8365.721371] usbcore: registered new interface driver cdc_acm
Sep 12 20:22:16 vivo64 kernel: [ 8365.721385] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
Sep 12 20:22:35 vivo64 ModemManager[1053]: <info>  Creating modem with plugin 'Generic' and '1' ports 
bash-4.3$ cncjs -vvv
2017-09-12T23:23:01.650Z - info: init Loading configuration from "/home/sasa/.cncrc"     at Object.createServer (/home/sasa/cncjs/nvm/versions/node/v8.4.0/lib/node_modules/cncjs/dist/cnc/app/index.js:5589:9)
2017-09-12T23:23:01.669Z - info: init Watching "/home/sasa/cncjs/watchdir" for file changes.     at Object.createServer (/home/sasa/cncjs/nvm/versions/node/v8.4.0/lib/node_modules/cncjs/dist/cnc/app/index.js:5612:21)
2017-09-12T23:23:02.022Z - debug: app app.settings: {"x-powered-by":false,"etag":"weak","env":"production","query parser":"extended","subdomain offset":2,"trust proxy":true,"views":["/home/sasa/cncjs/nvm/versions/node/v8.4.0/lib/node_modules/cncjs/dist/cnc/web","/home/sasa/cncjs/nvm/versions/node/v8.4.0/lib/node_modules/cncjs/dist/cnc/app/views"],"jsonp callback name":"callback","view cache":true,"verbose errors":false,"case sensitive routing":true,"strict routing":false,"view engine":"html"}     at appMain (/home/sasa/cncjs/nvm/versions/node/v8.4.0/lib/node_modules/cncjs/dist/cnc/app/index.js:6641:13)
2017-09-12T23:23:03.568Z - debug: app assets: name=web, asset={"routes":["/79eec5c9/","/"],"path":"/home/sasa/cncjs/nvm/versions/node/v8.4.0/lib/node_modules/cncjs/dist/cnc/web","maxAge":31536000000}     at /home/sasa/cncjs/nvm/versions/node/v8.4.0/lib/node_modules/cncjs/dist/cnc/app/index.js:6731:13
2017-09-12T23:23:03.569Z - debug: app > route=web /79eec5c9/     at /home/sasa/cncjs/nvm/versions/node/v8.4.0/lib/node_modules/cncjs/dist/cnc/app/index.js:6739:17
2017-09-12T23:23:03.569Z - debug: app > route=web /     at /home/sasa/cncjs/nvm/versions/node/v8.4.0/lib/node_modules/cncjs/dist/cnc/app/index.js:6739:17
2017-09-12T23:23:03.582Z - debug: service:cncengine Loaded controllers: Grbl,Smoothie,TinyG     at CNCEngine.start (/home/sasa/cncjs/nvm/versions/node/v8.4.0/lib/node_modules/cncjs/dist/cnc/app/index.js:13635:13)
2017-09-12T23:23:03.870Z - info: init Starting the server at http://127.0.0.1:8000     at /home/sasa/cncjs/nvm/versions/node/v8.4.0/lib/node_modules/cncjs/dist/cnc/app/index.js:5689:21
ep-lF6DUctQnHGc_b2UeU_TNJjYP8VNF GET / 200 121.101 ms
2017-09-12T23:23:38.033Z - debug: api:users jwt.verify: id=, name="", iat=2017-09-10T21:28:12.000Z, exp=2017-10-10T21:28:12.000Z     at /home/sasa/cncjs/nvm/versions/node/v8.4.0/lib/node_modules/cncjs/dist/cnc/app/index.js:12297:13
ep-lF6DUctQnHGc_b2UeU_TNJjYP8VNF POST /api/signin 401 11.129 ms
ep-lF6DUctQnHGc_b2UeU_TNJjYP8VNF POST /api/signin 200 237.267 ms
2017-09-12T23:23:48.814Z - debug: service:cncengine New connection from 127.0.0.1: id=SOx70hhXCQBDYwu-AAAA, token.id=7304a00a-2eb5-4d49-bb88-54b4434c16d8, token.name=admin     at Namespace.<anonymous> (/home/sasa/cncjs/nvm/versions/node/v8.4.0/lib/node_modules/cncjs/dist/cnc/app/index.js:13677:17)
2017-09-12T23:23:49.290Z - debug: service:cncengine socket.list(): id=SOx70hhXCQBDYwu-AAAA     at Socket.<anonymous> (/home/sasa/cncjs/nvm/versions/node/v8.4.0/lib/node_modules/cncjs/dist/cnc/app/index.js:13706:21)
2017-09-12T23:23:49.328Z - error: service:cncengine { Error: Command failed: udevadm info --query=property -p $(udevadm info -q path -n /dev/ttyS2)
/bin/sh: udevadm: command not found
/bin/sh: udevadm: command not found

    at ChildProcess.exithandler (child_process.js:270:12)
    at emitTwo (events.js:125:13)
    at ChildProcess.emit (events.js:213:7)
    at maybeClose (internal/child_process.js:927:16)
    at Socket.stream.socket.on (internal/child_process.js:348:11)
    at emitOne (events.js:115:13)
    at Socket.emit (events.js:210:7)
    at Pipe._handle.close [as _onclose] (net.js:545:12)
  killed: false,
  code: 127,
  signal: null,
  cmd: 'udevadm info --query=property -p $(udevadm info -q path -n /dev/ttyS2)' } '    at /home/sasa/cncjs/nvm/versions/node/v8.4.0/lib/node_modules/cncjs/dist/cnc/app/index.js:13710:29'
ep-lF6DUctQnHGc_b2UeU_TNJjYP8VNF GET /api/state?_=1505258629265 200 6.859 ms
ep-lF6DUctQnHGc_b2UeU_TNJjYP8VNF GET /api/commands?_=1505258629267&paging=false 200 9.459 ms
ep-lF6DUctQnHGc_b2UeU_TNJjYP8VNF GET /api/macros?_=1505258629860&paging=false 200 4.661 ms
ep-lF6DUctQnHGc_b2UeU_TNJjYP8VNF GET /api/version/latest?_=1505258630019 200 962.706 ms
无法连接到arduino #197
作者

这是浏览器的屏幕截图,您可以看到根本没有连接,当您在“连接”小部件中打开端口下拉列表时,也没有列出任何端口。
无法连接到arduino #197

无法连接到arduino #197
作者

正如同一用户的测试一样,我可以轻松连接 minicom -D /dev/ttyACM0
无法连接到arduino #197

无法连接到arduino #197
合作者
奇顿 评论了 2017 年 9 月 13 日  

根据您的日志,我发现错误是由以下代码行中的 node-serialport 模块引发的:
https://github.com/EmergingTechnologyAdvisors/node-serialport/blob/4.0.7/lib/list-unix。 js#L88-L91

function lookupPort(file) {
  var udevadm = 'udevadm info --query=property -p $(udevadm info -q path -n ' + file + ')';
  return execAsync(udevadm).then(udevParser);
}

看起来udevadm不在默认路径上。您可以在此处查看相关问题:serialport/node-serialport#1085

你能检查一下你是否可以udevadm 用你的用户(即非root)帐户解析绝对路径吗?

$ which udevadm
无法连接到arduino #197
作者

亲爱的 Cheton,非常感谢您的宝贵时间。是的,这正是我昨天在我的机器上检查的内容。我发现在 Slackware 上我们确实在 /sbin/ 中有“udevadm”命令,但只有 root 可以使用该命令。我也在寻找一种方法来使节点可用,但我还没有找到解决方法。我在想的一件事是在系统范围内安装 noge 作为一个 slackware 包,看看是否能解决它。其他选项是以某种方式将 /dev/ttyACM0 硬编码到
cncjs 中,因为出于某种原因,.cncrc 配置中的内容无法正确获取或在运行时以某种方式更改。

但是你向我展示的这个错误报告可能是解决方案,我对 nvm/node 和所有 js 东西没有太多经验。

无法连接到arduino #197
作者

好的,我将尝试在 /usr/bin 中对 udevadm 进行符号链接,看看是否能解决我的问题。

无法连接到arduino #197
作者

好的,我只是以 root # ln -s /sbin/udevadm /usr/bin/udevadm 创建了一个符号链接,它成功了。
正如该错误报告中所述,这不是解决方案,而是 npm 串行端口的问题。我会看看 Slackware 是否以其他方式解决了这个问题。目前看来一切正常。

非常感谢切顿!