I know we said no hubs

I know that the devices don’t support hubs; however I missed the explanation as to why not? My lack of understanding of how USB is implemented has resulted in this question.


Sorry don’t understand the question, but if you mean ‘no hubs’ as in plugging Gadgeteer into a hub while building devices, that might be better put, ‘if you use a hub your on your own’, as I use 7 port powered hub that I bought so long ago at ThinkGeek that they don’t have them anymore.

But I should add if I get interesting behavior, then I plug it directly into my computer, but that isn’t that often.

I mean as in you cannot use a hub on the USB host port of the .netmf devices. So if your hub is plugged into your Fez, you cannot use any devices that are plugged into that hub, because the .netmf will not see it.

If I remember correctly, USB Hubs should be supported on Host ports.
I think it was in one of the brochures, or in the documentation.
Also the API supports multiple devices.

@ Reinhard Ostermeier - So is that true for all devices?

Cool beans.

I’d say everything that was Premium in the good old 4.2 times.

@ Mr. John Smith - hubs are supported on the EMX, G120, and G400, but not the Cerberus

1 Like

Sheer curiosity - why not?

edit: In particular the Cerbduinos - not the Cerberus.

@ MitchT - Lack of available system resources.

So not enough ram

Is that the only issue? I really only need the CerbBee to deal with 2 joysticks and it’s XBee to forward stuff along for the most part. Was the issue that with the Hub support, the RAM remaining was just too small for most general uses when people just start hotplugging things?

@ MitchT - GHI wanted to make only 1 firmware for all CERB based boards, so they had make some compromises about what feature should go in, and which not. Some features needs pre allocated RAM, some needs more flash.
Some users wanted USB, some wanted RLP. Finally GHI made it to support both, but I guess for multi USB device support the resources were just too little.

To make it compatible with USB standards the host would have to support 255 devices on the USB bus. That would take a fair bit of memory to implement.

Ah, so then the other GHI mainboards can support (in practice) that many USB devices? :snooty:

@ MitchT - All USB host devices are supposed to support that many devices; so yea the GHI devices do. I don’t remember it was 255 or 254 though.

You also need to keep in mind that you will be able support only small number of bus powered devices.

True; you can’t expect to power 255 devices of one usb host port.

Of course :slight_smile:

The point I was trying to make was there is no point in maintaining “USB Standards” since there would be a massive processing (in practice) wall long, long before a RAM wall happened even on the highest end GHI systems. So why not cut some corners and support “2-4 USB devices” instead of the whole stack.

Power is solvable with powered hubs - no one cares about that heh. an XBox pad eats about 100mA when its rumbling so even 2 of them would brown out a Cerbduino that was being powered either by USB (250mA) or through the onboard 5V vreg.

Also… no USB Client for Cerberus either? :frowning: I didn’t know that.