5 Replies Latest reply on Feb 3, 2020 1:52 PM by NoBE_4634256

    How to use an usb to serial converter on a Mac?

    NoBE_4634256

      Hi all,

       

       

      I have bought a blood pressure meter (Microlife BP A200).

      It is based on a cypress usb to serial communications.

      It works fine under Windows and  Linux.

       

       

      Under Linux:

      - a lsusb shows: Bus 001 Device 011: ID 04b4:5500 Cypress Semiconductor Corp. HID->COM RS232 Adapter

      - a device is created: /dev/ttyUSB0

       

      Under Mac

      - a lsusb shows: Bus 020 Device 020: ID 04b4:5500 Cypress Semiconductor USB to Serial

      - no device is created in /dev

       

       

      Under Mac I use other usb to serial converters. Mainly ftdi. All work fine.

      This one doesn't.

       

      VID/PID are correct in both cases.

       

      I have read onCypress website that no drover is needed with Linux and Mac.

      So my question is: how to make it work?

       

       

      Thanks in advance

       

       

      Regards

       

       

      Noury

        • 1. Re: How to use an usb to serial converter on a Mac?
          YatheeshK_36

          Hello,

           

          Can you please confirm if you are testing the same device in Linux as well as MAC?

          You can try connecting the device to windows and check the configuration of the USB-Serial Device, if its configured as UART in CDC mode?

           

          Best Regards,

          Yatheesh

          • 2. Re: How to use an usb to serial converter on a Mac?
            NoBE_4634256

            Hi YatheeshK_36

             

            Thanks for your answer.

             

            Yes, I can confirm I use the same device in Linux, Windows and Mac. I have only one device.

            I can also confirm it works fine with Windows and Linux.

            With MacOs, I can't see the device in /dev.

            With Linux, it use the cypress_m8 module, and it is used as a serial device (/dev/ttyUSB0, 115200 8N1)

             

            I'm going to try to answer your question about Windows.

            Unfortunately, I'm not comfortable with Windows.

             

            The device appears in "user interface peripheral" (I'm translating from my french Windows, so it may different in an English Windows)

            It appears as "HID vendor device"

             

            In the "event tab", I can see:

            in: configured péripheral (input.inf)

             

            L'appareil HID\VID_04B4&PID_5500\6&19dad3d9&0&0000 a été configuré. => (which means has been configured)

             

            Nom du pilote : input.inf

            GUID de classe : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}

            Date du pilote : 06/21/2006

            Version du pilote : 10.0.18362.175

            Fournisseur du pilote : Microsoft

            Section du pilote : HID_Raw_Inst.NT

            Classement du pilote : 0xFF1004

            Numéro d'identification d'appareil correspondant : HID_DEVICE_UPR:FF00-FFFF

            Pilotes surclassés : input.inf:HID_DEVICE:00FF1005

            Appareil mis à jour : false

            Appareil parent : USB\VID_04B4&PID_5500\5&1d3e9afd&0&1

            ======================================================================

            in: started peripheral

            Le périphérique HID\VID_04B4&PID_5500\6&19dad3d9&0&0000 a été démarré. => (which means started)

             

            Nom du pilote : input.inf

            GUID de classe : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}

            Service :

            Filtres inférieurs :

            Filtres supérieurs :

            ======================================================================

            It looks like in Windows, the it is not used as a serial device.

            In Linux, it does.

             

            I haven't seen a mention about UART in CDC mode. But maybe I haven't searched in the good place.

             

            Regards,

            Noury

            • 3. Re: How to use an usb to serial converter on a Mac?
              YatheeshK_36

              Hello,

               

              Please try the following command: "ls -lha /dev/tty*" before and after plugging in the USB Device to the host and check which dev node is created after the plug in by comparing the two lists.

               

              Thanks,

              Yatheesh

              • 4. Re: How to use an usb to serial converter on a Mac?
                NoBE_4634256

                Unfortunately no device appears after plugin the device.

                 

                 

                bigmac:rigol nb$ ls -lha /dev/tty* > before

                bigmac:rigol nb$ ls -lha /dev/tty* > after

                bigmac:rigol nb$ diff before after

                bigmac:rigol nb$

                 

                As you can see there's no difference, unlike when using Linux where /dev/ttyUSB0 appears.

                 

                But in dmesg, the following lines appear. But I don't know how to say what they mean:

                 

                 

                > IntelAccelerator previous NotReady transaction [ID=3640374, IOSurfaceID=2] sent. kr=0x0

                > [IOUserUSBHostHIDDevice.cpp:466][0x1000e0645] Open interface: 0x1000e0640

                > [IOUserUSBHostHIDDevice.cpp:606][0x1000e0645] HID descriptor interface:0 index:0 length:37 37 37

                > AppleUserUSBHostHIDDevice:0x1000e0645 start

                >

                > [ElementContainer] Element value capacity 664

                >

                > [ElementContainer] Report count: 1

                >

                > [ElementContainer] Report ID: 0 input:64 output:64 feature:40

                >

                > [IOUserUSBHostHIDDevice.cpp:310][0x1000e0645] inPipe:1  inputReportSize:8 inMaxPacketSize:8 inBufferSize:8

                > [IOUserUSBHostHIDDevice.cpp:335][0x1000e0645] outPipe:1  outMaxPacketSize:8

                > [AppleUserUSBHostHIDDevice.cpp:103][0x1000e0645] Start ret: 0x0

                > DK: AppleUserUSBHostHIDDevice-0x1000e0645::start(IOUSBHostInterface-0x1000e0640) ok

                > AppleUserUSBHostHIDDevice:0x1000e0645 creating interfaces

                >

                > AppleUserUSBHostHIDDevice:0x1000e0645 new user client

                >

                > IOHIDLibUserClient:0x1000e0651 start

                >

                > IOHIDLibUserClient:0x1000e0651 setValid: true

                >

                > IOHIDLibUserClient:0x1000e0651 setStateForQueues: 0x0

                >

                > IOHIDLibUserClient:0x1000e0651 open

                >

                > AppleUserUSBHostHIDDevice:0x1000e0645 open by IOHIDLibUserClient 0x1000e0651 (0x0)

                • 5. Re: How to use an usb to serial converter on a Mac?
                  NoBE_4634256

                  Hi all,

                   

                  Finally, I have found a solution.

                  It seems that this device, a hid one, is not used as an ordinary serial device in MacOs.

                  As I prefer writing programs in Python, I've found a library named "hidapi".

                  I have installed it from homebrew (Mac users coming from Linux world know what it is)

                  I have also found a Python package named "hid".

                  With both I can retrieve the device and list its properties.

                  But for writing programs it's quiet hard.

                  So I've search a little more, and found a python interface to the HIDAPI library named "python-easyhid".

                  It is available here: A simple interface to the HIDAPI library.

                  This way writing programs becomes very easy.

                   

                  I hope this will be useful for others, and thanks to Yatheesh.