Trouble connecting to USB pen plotter

I’m trying to create a basic lib (I’ll publish something for others) that lets me send GCode directly to a GRBL-based pen plotter.

The plotter is an iDraw H, it’s an arduino-based clone of an Axidraw. I have a similar arduino-based laser cutter that has been working fine with Circuits.UART, meaning that I plug the device into my rpi, and Circuits.UART.enumerate shows the interface.

With this new pen plotter, I can’t seem to connect. I’m pretty inexperienced with this kind of interface, so any advice is really appreciated.

My debugging information so far:

  • I can connect on my mac using “Universal Gcode sender”. In the logs I see the connection is called “cu.usbmodem201912341” and the protocol is “jserialcomm://cu.usbmodem201912341:115200”. This indicates UART @ 115200 baud.
  • I can’t see anything relevant at /dev. The full list from System.cmd("ls", ["/dev"]) is:
pmsg0
rfkill
mem
null
zero
full
random
urandom
kmsg
tty
console
tty0
vcs
vcsu
vcsa
vcs1
vcsu1
vcsa1
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11
tty12
tty13
tty14
tty15
tty16
tty17
tty18
tty19
tty20
tty21
tty22
tty23
tty24
tty25
tty26
tty27
tty28
tty29
tty30
tty31
tty32
tty33
tty34
tty35
tty36
tty37
tty38
tty39
tty40
tty41
tty42
tty43
tty44
tty45
tty46
tty47
tty48
tty49
tty50
tty51
tty52
tty53
tty54
tty55
tty56
tty57
tty58
tty59
tty60
tty61
tty62
tty63
gpiochip0
fb0
ptmx
ttyprintk
hwrng
vc-mem
vcio
gpiomem
ram0
ram1
ram2
ram3
ram4
ram5
ram6
ram7
ram8
ram9
ram10
ram11
ram12
ram13
ram14
ram15
loop-control
loop0
loop1
loop2
loop3
loop4
loop5
loop6
loop7
vchiq
ttyAMA0
ttyS0
watchdog
watchdog0
spidev0.0
spidev0.1
i2c-1
mmcblk0
mmcblk0p1
mmcblk0p2
mmcblk0p3
pts
shm
rootdisk0
rootdisk0p3
rootdisk0p2
rootdisk0p1
log
vcsm-cma
video10
video11
video12
video18
video31
media0
video13
video14
video15
video16
media1
video20
video21
video22
video23
media2
snd

Not all devices are required to respond to the enumerate request, so Circuits.UART.enumerate may not return anything. If that is the case, I would run dmesg before and after connecting the device (assuming USB?) and noting the difference. It should should were it connects and what /dev you need to use.

So I spent a while debugging dmesg and getting absolutely nothing, before realising… I’m on a RPI Zero, and I remembered has some funny OTG stuff on the usb port.

I reclaimed a rpi4 from my homelab and tried on there, and I now have the device being enumerated. :man_facepalming:

Thanks for helping and pointing me in the right direction.