0
\$\begingroup\$

For my home project I need to connect multiple Arduino's to a Raspberry Pi. My raspberry pi controls everything in my house and the arduino's are going to be used to get sensor data.

I want to connect multiple Arduino's (up to maybe 20 or more) and I think it will be best to use a powered usb hub to do that (connected to the raspberry pi and use serial communication to get the data at the Raspberry Pi). To make it as best for my case I would like to build a PCB so I can make it exactly as I want, the only question is... how.

I have made multiple PCB's but I don't have a degree in it, I just want to make it for my hobby, can someone help me to start with it, or is it too difficult or can't it be done?

\$\endgroup\$
10
  • \$\begingroup\$ Have you got the system working with a commercial hub yet? How are you going to identify the Arduinos? \$\endgroup\$
    – Transistor
    Commented Mar 15, 2020 at 17:36
  • \$\begingroup\$ I have connected an Arduino to a cheap usb hub and I can identify every connected usb device and give it a unique name, so far that worked, also here it is confirmed: raspberrypi.stackexchange.com/a/12109 \$\endgroup\$
    – BLB
    Commented Mar 15, 2020 at 17:39
  • 2
    \$\begingroup\$ Btw, USB doesn't allow for arbitrarily deep hub "trees", so make sure your architecture works before pulling cables. \$\endgroup\$ Commented Mar 15, 2020 at 18:33
  • 1
    \$\begingroup\$ I think Marcus means that you can't keep connecting hubs to hubs and keep getting more ports (I think people start seeing issues after connecting ~5 hubs in series?). Bandwidth and latency also becomes an issue when you have a large number of devices on a single bus. tl;dr: wire everything up and test first. \$\endgroup\$
    – tangrs
    Commented Mar 15, 2020 at 21:48
  • 1
    \$\begingroup\$ USB allows 7 levels of hubs, including your computer, the actual device, and possibly a hub inside the device. So that leaves 4 levels of hubs. 10-port hubs are probably 3 hubs in series (using up either 2 or 3 levels). There is also a maximum of 127 devices on a tree (some devices are multiple devices, and this includes hubs). en.wikipedia.org/wiki/USB_hub \$\endgroup\$ Commented Mar 15, 2020 at 23:53

1 Answer 1

1
\$\begingroup\$

I would also advise against doing a USB hub if you're not familiar with PCB design. As mentioned in the comments already, you're much better off getting a commercially made USB hub.

PCB design involving high speed busses like USB usually need special consideration when laying out the board (like impedance matching, trace length matching, reducing cross-talk , etc). If you're not careful, you might end up with a hub that only works with USB 1.1, one that's unreliable, or not functional at all.

If you really want to give it a go, find a USB hub chip that fits your requirements using the parametric parts selector of your favourite electronic parts distributor. The datasheet for the chip usually contains a schematic of a reference design that you can use in your design.

\$\endgroup\$
3
  • \$\begingroup\$ I assume that Arduinos only speak full speed USB 1, so it's an insanely high speed. \$\endgroup\$ Commented Mar 15, 2020 at 23:53
  • \$\begingroup\$ Does anyone have some information how to start? I would like to try it as a hobby, i am not sure if it will be reliable but i would like to try \$\endgroup\$
    – BLB
    Commented Mar 16, 2020 at 21:10
  • \$\begingroup\$ @Bluebird Like I mentioned, pick a USB hub chip, and use the reference design in its data sheet as a starting point. Also, the electrical specs of USB is useful background reading, as well as how differential signalling works in general. \$\endgroup\$
    – tangrs
    Commented Mar 17, 2020 at 12:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.