Hey everyone,
I was hoping someone might be able to give me some guidance.
Iv created a HID (flight simpit) using the Arduino DUE board.... however Iv run out of pins!
I have ordered a 2nd and 3rd DUE board and continue with my project... however I want to try and avoid having to plug several USB's (multiple individual Arduinos) into my PC. so my question is this: How do I go about routing the "Keystrokes" from multiple DUE (boards) via a single USB ?
I know that one solution could be to use a USB hub but then my pc would have to deal with multiple HID's... While simple ( IMHO ) this might not be the "optimal" approach.
perhaps a better way to ask my question is this :
Is there a way to string together multiple DUE boards to act as a SINGLE HID with a SINGLE USB to PC connection ?
Thanks for your time!
I look forward to hearing from the creativeness of the community!
A USB link, to the best of my knowledge, is a serial data link. I don't think the designers expected anyone to parallel multiple devices on it. I'd give this a low chance of working.
What is wrong with a hub? I use one (MAC), and talk to as many as three processors at the same time. In fact, if you download CoolTerm (don't know about PC's), you can have multiple terminal windows displaying the action from different processors.
Yes, you can have one Due act as the master and then daisy-chain slaves on a serial or I2C link. Then you have created another problem: you need to specify the communication protocol between the boards.
Just buy a hub.
If you have run out of pins it is by far the simpler option to use a port expander or shift register to get more. Using multiple Arduino is almost always a bad idea.
jrdoner:
What is wrong with a hub?
Thanks for the reply,
my aversion to using one is mostly cosmetic and I wanted to eliminate the number of independent HID the my pc would detect, I would like to project to be a single HID emulator as apposed to several.
MorganS:
Yes, you can have one Due act as the master and then daisy-chain slaves on a serial or I2C link. Then you have created another problem: you need to specify the communication protocol between the boards.
MorganS, I agree with you, the master slave concept had occurred to me, but the communication conflict is what caused my initial hesitation (or at least my poor understanding of how to accomplish it) , and thus lead to this post.
Grumpy_Mike:
If you have run out of pins it is by far the simpler option to use a port expander or shift register to get more.
Grumpy, I'm not familiar with expanding ports on an Arduino, could you provide me clarification as to how this is done ? this sounds like a promising lead.
This is a typical port expander MCP23017 - i2c 16 input/output port expander : ID 732 : $6.95 : Adafruit Industries, Unique & fun DIY electronics and kits
It gives you 16 I/O pins and attaches to the SPI port. You can fit eight of these chips directly on the SPI bus directly and attach them in groups of additional eight chips by using just one extra pin per group.
Edit- sorry that was the I2C version of that chip the SPIversion is described here it is the MSP23S17
http://playground.arduino.cc/Main/MCP23S17