Development environment feedback for multiple devices - ctel, curlftpfs, vscode,syslog, etc.



  • I'm developing on wipy2.0 and am having trouble finding the right setup to fit my needs, so I guess I'm going to describe my attempts to see if here on the forum we can share our experiences and tips around a decent dev environement for wipy (and possibly other pycom products), see https://forum.pycom.io/topic/2262/wipy-2-0-juggling-balls-protoyping about the projet itself (connect interactive juggling balls).

    setup

    The wipys connect to a local mqtt server (mosquitto)

    0_1534778366787_8df7ca9521618bce.jpg

    I can find their IP using nmap or watching the log on the mosquitto server

    0_1534778422765_Screenshot from 2018-08-20 17-15-49.png

    ctel - parallel telnet

    I successfully connect to the three wipy in parallel (it's part of clusterssh for anyone on debian/ubuntu) https://packages.debian.org/stretch/clusterssh or clusterssh.sourceforge.net

    ctel 192.168.0.22 192.168.0.21 192.168.0.17
    

    0_1534777749162_Screenshot from 2018-08-13 18-57-59.png

    One problem with ctel is that I can't use ctel's syntax that includes the username/password, if I do I have to retype the username/password, so I'm guessing the telnet session opens and then the username/password are asked instead of the standard telnet auth. I know this happens quite often on network switches, and there is a workaround using netmiko https://github.com/ktbyers/netmiko will we have to do this for pycom devices or any chance of seeing a proper implementation of the telnet cnx ?

    ctel and vscode

    When using ctel, it seems that I can't connect to the device using the vscode pycom console, any idea why ? Only one connection at once ? I've seen when using USB serial and telnet at the same time working.

    curlftpfs

    The sync mechanism in VSCode only works on one device at a time, so I though I would mount ftp on multiple folders and use rsync or something similar to upload new code. No luck on that front either. I get different directory listings and the FTP ends up timing out. http://curlftpfs.sourceforge.net/ and https://packages.debian.org/stretch/curlftpfs

    for i in 17 21 22; do mkdir wipy$i; curlftpfs ftp://micro:python@192.168.0.$i wipy$i; done
    

    First :

    0_1534778891823_Screenshot from 2018-08-20 17-18-08.png

    Second (no more flash subdir)
    0_1534778980273_Screenshot from 2018-08-20 17-18-27.png

    Third
    0_1534778997586_Screenshot from 2018-08-20 17-18-42.png

    remote logging

    I have usyslog https://github.com/kfricke/micropython-usyslog setup to log messages over UDP onto my dev machine which has rsyslog configured to receive syslog messages over the network, but I'm having some memory issues with that, so I kind of had to disable that logger. Any tips on that ?

    while loop

    I have a while loop to check on mqtt messages and act upon messages

    0_1534779259367_Screenshot from 2018-08-20 17-33-06.png

    But that ends up "blocking" the serial connection, so I have to ctrl-C it when I log on.

    0_1534779464134_Screenshot from 2018-08-20 17-33-37.png

    What's the right way of doing this ? Threads, async etc. tips are welcome.

    conclusion

    As you can see, I'm having trouble finding a comfortable setup to focus on my project. I'm aware that this is a long post and I can do a post per issue if needed. I hope we can share our tips on our setups here and get a better environment out of this awesome platform.


 

Pycom on Twitter