USB Communication between Arduino Nano and UHF Reader module
I am working on a project that requires a UHF reader development kit that can communicate using either RS232 or by USB. Via USB and a Serial terminal, I have been able to send commands to the reader as well as analyze its response.
My goal is to send these same commands to the reader, but through an Arduino Nano. My first instinct was to use the RS232, converting the signal via a MAX232. However, this is for a school project, and my advisor preferred I try to work with USB. I am familiar with UART communication, and I've been under the assumption that USB operates using UART.
I had purchased a USB converter that gives me access to the pins, but it had two additional pins than I was not expecting: CTS and DTR. I attempted to communicate despite these pins (just leaving them open, and connecting Rx, Tx, Vcc and GND as I normally would). When plugged into the UHF reader, the device did power on (as it draws power from the USB connection), however, it did not receive the output signal from the Arduino Nano.
I know that my baud rate and other settings are correct, because, as I have said, communicating via USB and a Serial terminal gives me no problems. My initial thought is that I need to properly connect the CTS and DTR pins, but immediately I could not find a good reference on how to do this, and I am not entirely convinced this is the issue. My other thought was that perhaps I am writing out my HEX values wrong from the Arduino, using a line similar to the following, where "UHF_Reader" is defined by SoftwareSerial:
UHF_Reader.write(0xAA);
However, it appears to me from research that this is indeed the correct way to output HEX values via serial.
My final attempt to resolve this was to connect the micro-USB from the Nano to the USB of the reader, and then use Software Serial in conjunction with the USB converter to analyze the output on a Serial terminal, while powering the Nano via a 5V power supply. However, since the reader draws power from the USB port, it did not even turn on when I attempted this (I am assuming that the Vcc can only be supplied from the USB end?). Regardless, this attempt proved useless as well.
If anyone can offer any advice, or point me towards any references for something similar, I would much appreciate it! I have spent a while on this, and I just can't figure out what the problem is.
For reference, the reader I am using is found here: UHF Reader
And the USB converter I am using is here: USB Converter
usb
migrated from superuser.com Jan 3 at 15:28
This question came from our site for computer enthusiasts and power users.
add a comment |
I am working on a project that requires a UHF reader development kit that can communicate using either RS232 or by USB. Via USB and a Serial terminal, I have been able to send commands to the reader as well as analyze its response.
My goal is to send these same commands to the reader, but through an Arduino Nano. My first instinct was to use the RS232, converting the signal via a MAX232. However, this is for a school project, and my advisor preferred I try to work with USB. I am familiar with UART communication, and I've been under the assumption that USB operates using UART.
I had purchased a USB converter that gives me access to the pins, but it had two additional pins than I was not expecting: CTS and DTR. I attempted to communicate despite these pins (just leaving them open, and connecting Rx, Tx, Vcc and GND as I normally would). When plugged into the UHF reader, the device did power on (as it draws power from the USB connection), however, it did not receive the output signal from the Arduino Nano.
I know that my baud rate and other settings are correct, because, as I have said, communicating via USB and a Serial terminal gives me no problems. My initial thought is that I need to properly connect the CTS and DTR pins, but immediately I could not find a good reference on how to do this, and I am not entirely convinced this is the issue. My other thought was that perhaps I am writing out my HEX values wrong from the Arduino, using a line similar to the following, where "UHF_Reader" is defined by SoftwareSerial:
UHF_Reader.write(0xAA);
However, it appears to me from research that this is indeed the correct way to output HEX values via serial.
My final attempt to resolve this was to connect the micro-USB from the Nano to the USB of the reader, and then use Software Serial in conjunction with the USB converter to analyze the output on a Serial terminal, while powering the Nano via a 5V power supply. However, since the reader draws power from the USB port, it did not even turn on when I attempted this (I am assuming that the Vcc can only be supplied from the USB end?). Regardless, this attempt proved useless as well.
If anyone can offer any advice, or point me towards any references for something similar, I would much appreciate it! I have spent a while on this, and I just can't figure out what the problem is.
For reference, the reader I am using is found here: UHF Reader
And the USB converter I am using is here: USB Converter
usb
migrated from superuser.com Jan 3 at 15:28
This question came from our site for computer enthusiasts and power users.
add a comment |
I am working on a project that requires a UHF reader development kit that can communicate using either RS232 or by USB. Via USB and a Serial terminal, I have been able to send commands to the reader as well as analyze its response.
My goal is to send these same commands to the reader, but through an Arduino Nano. My first instinct was to use the RS232, converting the signal via a MAX232. However, this is for a school project, and my advisor preferred I try to work with USB. I am familiar with UART communication, and I've been under the assumption that USB operates using UART.
I had purchased a USB converter that gives me access to the pins, but it had two additional pins than I was not expecting: CTS and DTR. I attempted to communicate despite these pins (just leaving them open, and connecting Rx, Tx, Vcc and GND as I normally would). When plugged into the UHF reader, the device did power on (as it draws power from the USB connection), however, it did not receive the output signal from the Arduino Nano.
I know that my baud rate and other settings are correct, because, as I have said, communicating via USB and a Serial terminal gives me no problems. My initial thought is that I need to properly connect the CTS and DTR pins, but immediately I could not find a good reference on how to do this, and I am not entirely convinced this is the issue. My other thought was that perhaps I am writing out my HEX values wrong from the Arduino, using a line similar to the following, where "UHF_Reader" is defined by SoftwareSerial:
UHF_Reader.write(0xAA);
However, it appears to me from research that this is indeed the correct way to output HEX values via serial.
My final attempt to resolve this was to connect the micro-USB from the Nano to the USB of the reader, and then use Software Serial in conjunction with the USB converter to analyze the output on a Serial terminal, while powering the Nano via a 5V power supply. However, since the reader draws power from the USB port, it did not even turn on when I attempted this (I am assuming that the Vcc can only be supplied from the USB end?). Regardless, this attempt proved useless as well.
If anyone can offer any advice, or point me towards any references for something similar, I would much appreciate it! I have spent a while on this, and I just can't figure out what the problem is.
For reference, the reader I am using is found here: UHF Reader
And the USB converter I am using is here: USB Converter
usb
I am working on a project that requires a UHF reader development kit that can communicate using either RS232 or by USB. Via USB and a Serial terminal, I have been able to send commands to the reader as well as analyze its response.
My goal is to send these same commands to the reader, but through an Arduino Nano. My first instinct was to use the RS232, converting the signal via a MAX232. However, this is for a school project, and my advisor preferred I try to work with USB. I am familiar with UART communication, and I've been under the assumption that USB operates using UART.
I had purchased a USB converter that gives me access to the pins, but it had two additional pins than I was not expecting: CTS and DTR. I attempted to communicate despite these pins (just leaving them open, and connecting Rx, Tx, Vcc and GND as I normally would). When plugged into the UHF reader, the device did power on (as it draws power from the USB connection), however, it did not receive the output signal from the Arduino Nano.
I know that my baud rate and other settings are correct, because, as I have said, communicating via USB and a Serial terminal gives me no problems. My initial thought is that I need to properly connect the CTS and DTR pins, but immediately I could not find a good reference on how to do this, and I am not entirely convinced this is the issue. My other thought was that perhaps I am writing out my HEX values wrong from the Arduino, using a line similar to the following, where "UHF_Reader" is defined by SoftwareSerial:
UHF_Reader.write(0xAA);
However, it appears to me from research that this is indeed the correct way to output HEX values via serial.
My final attempt to resolve this was to connect the micro-USB from the Nano to the USB of the reader, and then use Software Serial in conjunction with the USB converter to analyze the output on a Serial terminal, while powering the Nano via a 5V power supply. However, since the reader draws power from the USB port, it did not even turn on when I attempted this (I am assuming that the Vcc can only be supplied from the USB end?). Regardless, this attempt proved useless as well.
If anyone can offer any advice, or point me towards any references for something similar, I would much appreciate it! I have spent a while on this, and I just can't figure out what the problem is.
For reference, the reader I am using is found here: UHF Reader
And the USB converter I am using is here: USB Converter
usb
usb
asked Jan 3 at 15:24
KC FordKC Ford
31
31
migrated from superuser.com Jan 3 at 15:28
This question came from our site for computer enthusiasts and power users.
migrated from superuser.com Jan 3 at 15:28
This question came from our site for computer enthusiasts and power users.
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
I've been under the assumption that USB operates using UART.
No. You have it backwards. Devices can emulate a UART (known as CDC/ACM) over a USB connection as one of the many possible device profiles, but it is about as far from being a UART as an F1 car is from a Penny Farthing.
USB operates on a strict Master / Slave principle. That is, it has a single master device, called the Host, which coordinates all the devices on the bus and makes requests to them. Everything you plug into a USB system is a Device and requires a Host to tell it what to do.
Neither the Nano, nor this adaptor you bought, are Hosts. They are just Devices. And Devices cannot talk to Devices. Only Hosts can talk to Devices.
Which means you need a Host in there somewhere. If you want it controlled by Arduino then you need a USB Host Shield (or something similar) which normally communicates over SPI.
If the device you are trying to talk to uses the CDC/ACM profile then you can use the USB Host Shield with it. If it uses a proprietary profile, like the CH340G or FT232, then getting it to work with the USB Host Shield will be much harder (maybe even impossible) unless you are intimate with the underlying protocol used.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("schematics", function () {
StackExchange.schematics.init();
});
}, "cicuitlab");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "540"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2farduino.stackexchange.com%2fquestions%2f60289%2fusb-communication-between-arduino-nano-and-uhf-reader-module%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I've been under the assumption that USB operates using UART.
No. You have it backwards. Devices can emulate a UART (known as CDC/ACM) over a USB connection as one of the many possible device profiles, but it is about as far from being a UART as an F1 car is from a Penny Farthing.
USB operates on a strict Master / Slave principle. That is, it has a single master device, called the Host, which coordinates all the devices on the bus and makes requests to them. Everything you plug into a USB system is a Device and requires a Host to tell it what to do.
Neither the Nano, nor this adaptor you bought, are Hosts. They are just Devices. And Devices cannot talk to Devices. Only Hosts can talk to Devices.
Which means you need a Host in there somewhere. If you want it controlled by Arduino then you need a USB Host Shield (or something similar) which normally communicates over SPI.
If the device you are trying to talk to uses the CDC/ACM profile then you can use the USB Host Shield with it. If it uses a proprietary profile, like the CH340G or FT232, then getting it to work with the USB Host Shield will be much harder (maybe even impossible) unless you are intimate with the underlying protocol used.
add a comment |
I've been under the assumption that USB operates using UART.
No. You have it backwards. Devices can emulate a UART (known as CDC/ACM) over a USB connection as one of the many possible device profiles, but it is about as far from being a UART as an F1 car is from a Penny Farthing.
USB operates on a strict Master / Slave principle. That is, it has a single master device, called the Host, which coordinates all the devices on the bus and makes requests to them. Everything you plug into a USB system is a Device and requires a Host to tell it what to do.
Neither the Nano, nor this adaptor you bought, are Hosts. They are just Devices. And Devices cannot talk to Devices. Only Hosts can talk to Devices.
Which means you need a Host in there somewhere. If you want it controlled by Arduino then you need a USB Host Shield (or something similar) which normally communicates over SPI.
If the device you are trying to talk to uses the CDC/ACM profile then you can use the USB Host Shield with it. If it uses a proprietary profile, like the CH340G or FT232, then getting it to work with the USB Host Shield will be much harder (maybe even impossible) unless you are intimate with the underlying protocol used.
add a comment |
I've been under the assumption that USB operates using UART.
No. You have it backwards. Devices can emulate a UART (known as CDC/ACM) over a USB connection as one of the many possible device profiles, but it is about as far from being a UART as an F1 car is from a Penny Farthing.
USB operates on a strict Master / Slave principle. That is, it has a single master device, called the Host, which coordinates all the devices on the bus and makes requests to them. Everything you plug into a USB system is a Device and requires a Host to tell it what to do.
Neither the Nano, nor this adaptor you bought, are Hosts. They are just Devices. And Devices cannot talk to Devices. Only Hosts can talk to Devices.
Which means you need a Host in there somewhere. If you want it controlled by Arduino then you need a USB Host Shield (or something similar) which normally communicates over SPI.
If the device you are trying to talk to uses the CDC/ACM profile then you can use the USB Host Shield with it. If it uses a proprietary profile, like the CH340G or FT232, then getting it to work with the USB Host Shield will be much harder (maybe even impossible) unless you are intimate with the underlying protocol used.
I've been under the assumption that USB operates using UART.
No. You have it backwards. Devices can emulate a UART (known as CDC/ACM) over a USB connection as one of the many possible device profiles, but it is about as far from being a UART as an F1 car is from a Penny Farthing.
USB operates on a strict Master / Slave principle. That is, it has a single master device, called the Host, which coordinates all the devices on the bus and makes requests to them. Everything you plug into a USB system is a Device and requires a Host to tell it what to do.
Neither the Nano, nor this adaptor you bought, are Hosts. They are just Devices. And Devices cannot talk to Devices. Only Hosts can talk to Devices.
Which means you need a Host in there somewhere. If you want it controlled by Arduino then you need a USB Host Shield (or something similar) which normally communicates over SPI.
If the device you are trying to talk to uses the CDC/ACM profile then you can use the USB Host Shield with it. If it uses a proprietary profile, like the CH340G or FT232, then getting it to work with the USB Host Shield will be much harder (maybe even impossible) unless you are intimate with the underlying protocol used.
edited Jan 3 at 16:11
answered Jan 3 at 15:39
Majenko♦Majenko
67.5k43277
67.5k43277
add a comment |
add a comment |
Thanks for contributing an answer to Arduino Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2farduino.stackexchange.com%2fquestions%2f60289%2fusb-communication-between-arduino-nano-and-uhf-reader-module%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown