• Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search

    Modbus RTU devices connection

    UniPi Neuron Series
    2
    5
    118
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      padeja last edited by

      Hi all,
      I am trying to connect RS485 devices to Neuron M203 over modbus rtu protocol.

      I have started from raspbian kernel and then installed kernel modules from unipi repository: https://repo.unipi.technology/debian/

      ending up with kernel:
      Linux M203-sn21 5.10.17-v7+

      then I can see the serial device in: "/dev/extcomm/0/0" ("/dev/ttyNS0")

      However, when I switch in my minimal python script from existing serial interface connected to USB (USB<->RS458 converter) to the ttyNS0 device I get timeout error (No communication/answer). The TX light on Neutron blinks once when I send the request.

      #!/usr/bin/env python3
      
      import minimalmodbus
      
      #instrument = minimalmodbus.Instrument('/dev/ttyUSB0', 1, minimalmodbus.MODE_RTU)
      instrument = minimalmodbus.Instrument('/dev/ttyNS0', 1, minimalmodbus.MODE_RTU)
      instrument.serial.baudrate=9600
      instrument.serial.bytesize = 8
      instrument.serial.parity = minimalmodbus.serial.PARITY_EVEN
      
      PV = instrument.read_register(4096, 1)
      print("PV: ", PV, "C")
      
      

      in Evok I have added the setting for the UART Port:uart-config.png

      Could you please advise me how to setup Neuron as a master for RS-485 communication?

      Thanks,
      Jaroslav

      Martin Kudláček 1 Reply Last reply Reply Quote 0
      • Martin Kudláček
        Martin Kudláček administrators @padeja last edited by

        Hi @padeja,
        the /dev/ttyNS* ports are independent of the Evok and you should configure them in Evok in any way, if you wish to access them from your program. Try removing the configuration you did in the Evok.

        Best regards,
        Martin

        P 1 Reply Last reply Reply Quote 0
        • P
          padeja @Martin Kudláček last edited by

          Hi @Martin-Kudláček,

          thank you for you reply and the important information that the serial device ttyNS* has nothing to do with Evok.
          I was actually trying just before installing Evok simply swap the USB-RS485 converter device to the Neuron serial interface in my script, but it didn't work as such. I was testing the connection also from CLI using mbpoll but with the same result - no communication / answer.

          P 1 Reply Last reply Reply Quote 0
          • P
            padeja @padeja last edited by

            @padeja said in Modbus RTU devices connection:

            Hi @Martin-Kudláček,

            thank you for you reply and the important information that the serial device ttyNS* has nothing to do with Evok.
            I was actually trying just before installing Evok simply swap the USB-RS485 converter device to the Neuron serial interface in my script, but it didn't work as such. I was testing the connection also from CLI using mbpoll but with the same result - no communication / answer.

            when I look at USB vs Neron serial device configurations using setserial, I receive following:

            pi@M203-sn21:~ $ setserial -ag /dev/ttyUSB0
            /dev/ttyUSB0, Line 0, UART: unknown, Port: 0x0000, IRQ: 0
                    Baud_base: 24000000, close_delay: 0, divisor: 0
                    closing_wait: infinite
                    Flags: spd_normal
            
            pi@M203-sn21:~ $ setserial -ag /dev/ttyNS0
            /dev/ttyNS0, Line 0, UART: undefined, Port: 0x0000, IRQ: 201
                    Baud_base: 600, close_delay: 50, divisor: 0
                    closing_wait: 3000
                    Flags: spd_normal low_latency
            

            I would say at least UART type and Baud_base should be configured. Did I miss a step in Neuron configuration?

            1 Reply Last reply Reply Quote 0
            • P
              padeja last edited by

              The firmware update from 4.6 to 5.56 made the trick and the /dev/ttyNS0 now works as expected, therefore it can be used as Modbus master as intended.

              nipi@M203-sn21:~$ sudo /opt/unipi/tools/fwspi --auto
              Board on /dev/unipispi firmware=4.6  hardware=0.1 (B-1000) (spi 6MHz)
              New firmware 5.56 for device id=0 fw=4.6
              
              REBOOTING...
              Board on /dev/unipispi firmware=4.6  hardware=8.1 (E-16Di_U-14Ro) (spi 6MHz)
              New firmware 5.56 for device id=1 fw=4.6
              
              REBOOTING...
              

              thanks @Martin-Kudláček for your help!

              1 Reply Last reply Reply Quote 0
              • First post
                Last post