USB Host Shield connection with Quectel Device RM510Q

I have Quectel_5G-mmWave_EVB (with the module RM510Q). I want to interface the sensors with the microcontroller. The microcontroller will send the sensor data to the Quectel device using the USB connection. The Quectel device will send the data to base station using the 5G mmWave.

I am using Arduino with USB HOST shield, but I am facing difficulty in interfacing the Arduino with the Quectel device. Arduino USB host shield library has several examples, but nothing is working. I am unsure, how can I select the AT port (COM11) using the USB host shield/Arduino. As per my understanding, the Arduino should act as a host and should be able to select the port i.e. COM11 in my case. I can see three ports on the Quectel device when I connect the device to the PC.

I am also unsure about the protocol for communicating between the MCU and Quectel device. I am afraid that the unavailability of the Quectel device driver for Arduino could be a possible reason.

Your assistance will be highly appreciated!

https://www.quectel.com/wp-content/uploads/2021/07/Quectel_5G-mmWave_EVB_User_Guide_V1.0-1.pdf refers in chapter 5) to a document Quectel_RM5xxQ-GL&RG500Q_Series_AT_Commands_Manual. That should give you the protocol; that would be a good start (it did not show up in my quick search on the web, you might have to contact the manufacturer if you don't have it).

I'm not familiar with USB host shields and their examples. Is https://docs.arduino.cc/retired/shields/arduino-usb-host-shield what you're using? If so, which examples from GitHub - felis/USB_Host_Shield_2.0: Revision 2.0 of USB Host Library for Arduino. did you try?

Thank you @sterretje for your reply.

I tried acm, ftdi, cdc, and pl2303 examples. None of them work for Quectel device.

In order to check the correctness of the Arduino USB host shield, I made the following setup using the ACM example.:

It worked without any problem. When I replace Arduino Mega with the Quectel device it doesn't work. I think the reason could be a selection of the port as three ports are available shown in my previous post. I am unsure how can I select the desired using the Arduino code.

Thanks!

As said, no experience with the USB host shield but I think that you can have a look at the hub_demo example.

If you give up on the USB host shield, try a Raspberry Pi. Even the cheapest Raspberry Pi Zero has a USB host port and a USB stack.

Thanks for the help!

Using the hub_demo example I am able to get the following information. Unfortunately, I can't see any function for sending or receiving data in USB or USBHUB library. I tried to incorporate ACM and FTDI examples in the hub_demo example but neither of them works. Could you please assist me in how can I send the data?

Thanks!

Start


01
--
String Descriptors:
Manufacturer:		Quectel
Product:		RM510Q-GL
Serial:			5c8315a8

Device descriptor: 
Descriptor Length:	12
Descriptor type:	01
USB version:		0210
Device class:		00
Device Subclass:	00
Device Protocol:	00
Max.packet size:	40
Vendor  ID:		2C7C
Product ID:		0800
Revision ID:		0414
Mfg.string index:	01
Prod.string index:	02
Serial number index:	03
Number of conf.:	01

Configuration descriptor:
Total length:		00D1
Num.intf:		05
Conf.value:		01
Conf.string:		04
Attr.:			A0
Max.pwr:		FA

Interface descriptor:
Intf.number:		00
Alt.:			00
Endpoints:		02
Intf. Class:		FF
Intf. Subclass:		FF
Intf. Protocol:		30
Intf.string:		00

Endpoint descriptor:
Endpoint address:	81
Attr.:			02
Max.pkt size:		0040
Polling interval:	00

Endpoint descriptor:
Endpoint address:	01
Attr.:			02
Max.pkt size:		0040
Polling interval:	00

Interface descriptor:
Intf.number:		01
Alt.:			00
Endpoints:		03
Intf. Class:		FF
Intf. Subclass:		00
Intf. Protocol:		00
Intf.string:		00
Unknown descriptor:
Length:		05
Type:		24
Contents:	0010010524
Unknown descriptor:
Length:		05
Type:		24
Contents:	0100000424
Unknown descriptor:
Length:		04
Type:		24
Contents:	02020524
Unknown descriptor:
Length:		05
Type:		24
Contents:	0600000705

Endpoint descriptor:
Endpoint address:	83
Attr.:			03
Max.pkt size:		000A
Polling interval:	20

Endpoint descriptor:
Endpoint address:	82
Attr.:			02
Max.pkt size:		0040
Polling interval:	00

Endpoint descriptor:
Endpoint address:	02
Attr.:			02
Max.pkt size:		0040
Polling interval:	00

Interface descriptor:
Intf.number:		02
Alt.:			00
Endpoints:		03
Intf. Class:		FF
Intf. Subclass:		00
Intf. Protocol:		00
Intf.string:		00
Unknown descriptor:
Length:		05
Type:		24
Contents:	0010010524
Unknown descriptor:
Length:		05
Type:		24
Contents:	0100000424
Unknown descriptor:
Length:		04
Type:		24
Contents:	02020524
Unknown descriptor:
Length:		05
Type:		24
Contents:	0600000705

Endpoint descriptor:
Endpoint address:	85
Attr.:			03
Max.pkt size:		000A
Polling interval:	20

Endpoint descriptor:
Endpoint address:	84
Attr.:			02
Max.pkt size:		0040
Polling interval:	00

Endpoint descriptor:
Endpoint address:	03
Attr.:			02
Max.pkt size:		0040
Polling interval:	00

Interface descriptor:
Intf.number:		03
Alt.:			00
Endpoints:		03
Intf. Class:		FF
Intf. Subclass:		00
Intf. Protocol:		00
Intf.string:		00
Unknown descriptor:
Length:		05
Type:		24
Contents:	0010010524
Unknown descriptor:
Length:		05
Type:		24
Contents:	0100000424
Unknown descriptor:
Length:		04
Type:		24
Contents:	02020524
Unknown descriptor:
Length:		05
Type:		24
Contents:	0600000705

Endpoint descriptor:
Endpoint address:	87
Attr.:			03
Max.pkt size:		000A
Polling interval:	20

Endpoint descriptor:
Endpoint address:	86
Attr.:			02
Max.pkt size:		0040
Polling interval:	00

Endpoint descriptor:
Endpoint address:	04
Attr.:			02
Max.pkt size:		0040
Polling interval:	00

Interface descriptor:
Intf.number:		04
Alt.:			00
Endpoints:		03
Intf. Class:		FF
Intf. Subclass:		FF
Intf. Protocol:		FF
Intf.string:		07

Endpoint descriptor:
Endpoint address:	88
Attr.:			03
Max.pkt size:		0008
Polling interval:	20

Endpoint descriptor:
Endpoint address:	8E
Attr.:			02
Max.pkt size:		0040
Polling interval:	00

Endpoint descriptor:
Endpoint address:	0F
Attr.:			02
Max.pkt size:		0040
Polling interval:	00

Addr:1(0.0.1)

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.