Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

USB limitations in a Pi 3B+?



  • Planning to put together an arcade cabinet using zero-delay USB controllers (joystick and buttons), with Retropie on a RPi 3B+. I purchased the CanaKit power supply that many recommend for the Pi.

    With the Pi having four USB ports, I am wondering if I can do the following:
    ---1 port for player one controller - joystick and buttons only
    ---1 port for player two controller - joystick and buttons only
    ---1 port for another controller that would only have dedicated buttons for save, load, exit, reset, RGUI, etc. (all the normal hotkey functions, but with dedicated buttons)

    Can I set those dedicated buttons on a third controller if that controller has no actual "player" function (no joystick or action buttons) assigned? Or do those functions have to be assigned to a "player" that exists to actually play?

    I understand I would have to do some work in the config file regarding dedicated hotkey buttons - that's fine - I just want to know whether those "hotkey functions" can be given to a "dedicated" controller on a separate USB port.



  • Each zero day controller has 10 (a,b,x,y r, r1, r2, l ,l1, l2) buttons + start and select

    so thats 24 buttons that should be enough for you. With the two controllers if you need more than 24 buttons go for a 3rd controller



  • A trick I found handy on my mini bartop build (in progress, just cosmetic stuff to do) is keeping a wireless keyboard dongle plugged in, that way if you need extra functions you can map them to the keyboard and keep it out of the way until you need it.



  • you do have to pay attention if your wireless keyboard shows up as both a keyboard and a controller. A lot of the mini ones do. If that is the case you want to put it on usb port 3 (the 4th port. Bottom right)



  • @edmaul69 just add a usb hub if you want more ports 4 is plenty for mode cases but you can just add a hub if you dont have enough



  • @grant2258 im well aware. I use a 13 port usb hub. I was stating it so he doesn’t have a keyboard show up as player 1or 2.



  • @edmaul69 sorry mean to @PJPJPJPJ no you was my bad



  • I wasn't going to bring that up in this thread but since we went that direction...
    I was actually planning my cabinet to have player one as one set of joystick/buttons off of Pi USB 1, player two as the second set off Pi USB 2, the dedicated buttons on the third controller on Pi USB 3, and then a hub stuck into Pi USB 4 which would tie (via extension cables) to two external USB ports on the cabinet, to which I could plug in a keyboard, or two SNES joypads or other types of joypads or joysticks. I was going to cross that "hot swappable/which is active/how do I program that" bridge when I came to it.

    It sounds like, from above, it actually matters which of the 4 USB ports on the Pi I plug into? I figured they were all just addressed the same. Is that true? If so, I assume I plug a hub into USB 4 and those become 4, 5, 6, 7...?

    To clarify what I'm actually doing...

    I'm making a portable console like those ones you can buy online, which simply has a power cord and an HDMI cable and can be plugged into a TV anywhere. But my intent is to have the central portion of the panel have all the "hotkey default" dedicated buttons - save, load, exit, reset, etc. - and then have each of the two joy/button controller areas be small pull-out boxes with long cords, so the "base" can sit on the coffee table while the two controllers get passed between the kids sitting on the sectional sofa. I have plans in my head, and I'm using USB extension cables as the "pull out" cables (connecting the zero-delay boards to the Pi in the base).

    But what this means is that I can't (at least easily) use the pin plugs on the zero-delay boards in each "remote controller" for the buttons which I want on the base. Each zero-delay board will be in the pull-out box, and the "hotkey" dedicated buttons will be several feet away in the base on the coffee table. The only way to have those "hotkey" buttons plugged into the boards which operate the joysticks and action buttons would be to do some wire dissecting and soldering, and I don't want to bother with that.

    So my original question above was, can I use a third zero-delay board in the "base" which would only have those load-save-exit-reset-RGUI dedicated buttons, but NO actual controls tied to it? I suppose another way of looking at it is, can you "null" out all the hotkeys on player one and player two, and then null out all the directional/joystick/X/Y/A/B stuff on player 3 and still assign the hotkey commands?

    I'm working up a sketch of what I'm imagining for more clarity and will post when done, if this isn't clear... or too long that you didn't read it... :)



Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.