I’m looking forward to develop a handheld device that could communicate with PCs over WiFi network, Bluetooth and USB. I have looked at the forums about Rpi, and they say it does not support Usb communication with PC since they are both masters. So my question is what are some boards that have equivalent specifications to Rpi 3+ or Banana Pi m2/3 that allow USB/Bluetooth/WiFi communication with PC?

Edited: Limit those devices to those that capable to run Linux/Ubuntu/Raspbian OSs

  • 2
    To be specific, microcontroller should be used for a Cortex-M/arduino type of device running bare metal or a real-time OS. If you want to run linux, you (mostly) need an MMU and that means A-class (or maybe R-class) in Arm nomenclature. The software approach is different, and the power consumption. Sep 29, 2018 at 8:27
  • 1
    You may also want to expand on "communicate via USB". What sort of communication do you need, Would just serial be enough?
    – hardillb
    Sep 29, 2018 at 9:11

2 Answers 2


The Raspberry Pi Zero (and Model A) have just one USB port and as such can be used in device mode (it's the USB hub used to give the extra ports and the ethernet that stops the USB controller working device mode on the bigger raspberry pis).

There are several guides online to using a Pi Zero in "USB Gadget" mode

If you need a little more grunt than a normal Raspberry Pi Zero then the Banana Pi Zero has a quad core A7


The USB-C port on the Raspberry Pi 4 can be used as a USB gadget. Docs here: https://www.hardill.me.uk/wordpress/2019/11/02/pi4-usb-c-gadget/

  • 1
    Thank you for great answer! So as I understand from your description, it is the multiple usb ports that don’t allow usb comms with the device?
    – alex_z
    Sep 29, 2018 at 10:11
  • 1
    The hub prevents the USB controller acting as a device instead of a host (computer)
    – hardillb
    Sep 29, 2018 at 10:18

In order to use USB gadget mode, you either need two USB controllers native on the device (so one can act as master, and one as slave), or all of the other peripherals (Bluetooth, Wifi, Ethernet, Keyboard, etc) will need to be connected by serial, SPI or something similar.

Since the 'normal' use case of a single board Linux computer will be to support some extra peripherals over USB, the two USB interface is probably as common as the very cut-down approach of the Pi-Zero. This port may be described as 'USB on the go', and you need to check that it will operate at the same time as the other peripherals that you need.

You will probably find a wider range of microcontroller parts which support this peripheral combination, but to use these you would need lower-level software (including interfacing with the USB stack at some level - maybe a serial over USB).

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.