Posted
by
timothyon Friday August 24, 2012 @06:44PM
from the teething-pains dept.

First time accepted submitter rephlex writes "The USB controller used in the Broadcom BCM2835 (which is the SoC the Raspberry Pi uses) has buggy drivers which have been causing problems for many of its users. In addition to this, the Pi can only supply an unusually low amount of current to its USB devices, just 140 mA approximately, and using a powered hub to sidestep this limit exacerbates the issues caused by the USB drivers. Even Ethernet is affected as the Ethernet controller used on the Raspberry Pi is connected to the SoC via USB. This has resulted in packet loss and even total loss of network connectivity in certain situations. Attempts have been made in the past to fix the buggy USB drivers as there are other devices which use this problematic controller. None of these attempts seem to have achieved very much."

I'd say the bigger question is this....WTF did you expect out of a $35 device? Seriously? Its $35 fricking bucks people! Sure they could have used more robust and thus less likely to fuck up chips, but it wouldn't be $35 then would it?

It looks like people are buying a $35 device and then bitching when it doesn't run like a $200+ device...well duh, really? Hell its a miracle the damned thing works as good as it does considering the BOM, so if you don't like it? Plenty of $200+ Android devices out there that doesn't have those issues..sheesh, talk about a sense of entitlement, its fricking $35!

And I notice no price listed but I bet it costs more than $35! With everything there is a trade off people, and to get the Pi to sell at $35 and still make a buck for the devs you've got to deal with a seriously low BOM just to make sure shipping the thing doesn't cost more than the selling price. At $35 I wouldn't be surprised if the actual BOM wasn't $18 or less, just to cover having it built and shipped.

Moral of the story? You want something bug and hassle free you have to pay more money, simple as that. I'm sure if the Pi guys set the price at $100 per unit they could have used better chips with better drivers and eliminated the hassle, but the whole point of the pi was to have a functional FOSS unit as cheaply as could be made. Well when cheap is your goal corners have to be cut folks, its just THAT simple.

Thanks for proving my point, $179 VS $35, which is exactly what i was pointing out. Sure you could get a version of the Pi with a completely open FOSS chip for USB with zero bugs, one that is rock solid and tested, but you sure as hell ain't gonna buy that chip along with the rest of the BOM and be able to sell it at $35!

So if you buy something THAT cheap you just have to deal with it, it would be like buying one of those $5k Indian cars and then bitching that it don't come with power everything and cruis

I bought two PIs. One for me and one for my son. The purpose was to have a inexpensive piece of hardware on which we can learn the mechanics of embedded Linux development. I noticed all of the above problems on the boards that I bought. As a beginner, I wasn't sure if I was doing something wrong. We spent an entire Saturday working through the power issues, like the crew working on Apollo 13. We did get it worked out, but when you are learning something, it is best to learn on a platform that isn't pr

And there are known workarounds if you need more power on the onboard USB ports - so you can drive your WiFi adapter without a powered hub.

I've soldered 1-ohm resistors over top of the USB polyfuses. This bypasses the very low current limit on those ports, but they still can't draw more than the main polyfuse will allow (700mA, vs. 140mA on the USB's).

Using a 1-ohm resistor helps prevent current being drawn too low when you hot-plug a USB device. That could cause the Pi to reboot.

Obviously you've never had to deal with Broadcom drivers in Linux before. Broadcom is notorious for their poor driver support in Linux, they usually install just fine, but when you go to put the device they control to use it's sporadic at best. It's gotten to be such a huge headache of repeated failure that I avoid broadcom like the plague.

Broadcom does not publish any information needed to write drivers for their crap, that's why.They do not develop a lot of the things they churn out, but instead go buy up IP cores andcobble those together to make their products, the cheaper the better. That's another reasonthey can't afford to publish anything out in public without a NDA. Broadcom spends moneyon marketing, sales, PR and legal and they wouldn't be anywhere without it.

When I first heard about the Raspberries for $25-35 I wanted one. Then I cl

The USB driver may not be fixable, the jury is still out on this one. There are three key problems:

1) Documentation on the Broadcom USB controller is proprietary and is not made openly available by the Raspberry Pi Foundation.

2) The USB core for the Broadcom SoC was bought from a 3rd party, and we are told that not even Broadcom has full documentation, nor understands the driver.

3) The Foundation has discovered that the controller and its driver expect realtime response from the ARM core, and if Linux's non-realtime scheduling doesn't respond in 1 ms, a split transaction USB event can be dropped. Not surprisingly, this occurs regularly and produces lost mouse clicks, stuck keyboard keys, etc..

That's a pretty nasty combination of problems, and it means that assuming that it's fixable may not be a safe prediction. We'll have to wait and see.

For the time being though, USB and networking (which is implemented over USB) have a large catalogue of issues and incompatibilities. All boards have this inherent problem but YMMV on whether the issues bite you, as it depends on exactly what devices you have connnected and what you're doing with the board.

In addition to the above faults, the community discovered a PCB track layout error on the board which causes a proportion of the USB chips to overheat owing to an incorrect connection. It doesn't appear to be critical but wastes power and the heat may shorten board or device lifetime.

Relations are very tense on the forum, and the Foundation has banned people who express their concern about the faults.

I work in a company who does SOC and we have one our SOC that use this USB core IP.

This USB core had so many problem that we end up making it work only in full speed mode (and not high speed one). As you said split transaction don't work well (in our case we had seen irq storm that make linux freeze).

BTW we have full documentation of the chip (broadcom should have this), but the driver is so complex that it is very hard to fix/rewrite (AFAIK samsumg rewrite it).

Also for our newer SOC we used another USB IP made by chipidea, but the funny part is there were brought by synopsis and synopsis want people to buy there crappy dwc USB core...

Can't they have the healthy attitude of accepting the flaws exist and be helpful to those looking for solutions? is it too much to ask?

Well, it's complicated. There are a few very prolific malcontents who were following up on every. damn. thread. they could shoehorn themselves into ranting about how this is yet another failing of the foundation...

The foundation, for their part, seem to be noobs when it comes to moderating forums, and haven't yet gotten the hang of carefully proportioned response.

Both sides kinda suck and are turning this into more drama and less collaboration than would be ideal.

Here's some perspective: I have an Android tablet which I installed Debian on. The 2.6 kernel I use on it is a modified Android kernel, and the 3.1 is a beta kernel provided by Nvidia. I am yet to find a device that works under x86 Linux that is not supported by either of these kernels. Now, I'm more than willing to say that the device

Check the Power Source. I used one power cube that was around the 700mA minimum recommended and I had flaky problems with devices and crashed boots that didn't work, especially on the Pi-XBMC distro as it overclocks the cpu. Switching to a power cube giving 2000mA capacity fixed all that (~$10).

Still have a $4 keyboard that doesn't work but it's on the 'known problem' page. My other portable keyboard works fine.

If you place a 1 ohm resistor in parallel with F1 and F2, you can get the voltage drop and current higher -

My first reaction was that if you put a 1 ohm resistor in parallel with a fuse you should see NO CHANGE in the current, since a fuse has 0 ohms resistance.

Then I read the thing you linked to and found out that they aren't fuses, even though they've been called that. The voltage that comes out of a fuse isn't supposed to sag and cause operational issues, until you reach the current limit of the fuse and then it BLOWS. Zero output.

Ok, for the hyperpicky insignificant: a fuse should have an extremely low, reasonably constant resistance that will vary only slightly with temperature and not with current or voltage applied. Otherwise it isn't a fuse, it's something else. Thermistor, varistor, etc.

Any reasonably astute techincal person, when trying to replace a defective fuse, will ask two questions: what is the current rating and fast vs. slow blow. If he doesn't have one on hand, he may, in a pinch, replace the fuse with a piece of wire and, other than chancing a circuit meltdown (because fuses usually blow for a reason) might be able to get the circuit back online.

Nobody would ask "what is the resistance of your fuse at 100mA?" Nobody would wonder if the circuit needed a specific resistance (or capacitance or inductance) in that fuse. All three of those parameters should be parasitic at best. (That means small and irrelevant in design, sometimes relevant in practice.)

Yes, their "fuses" are technically thermistors, but everyone calls them resettable fuses or PTC fuses or polyfuses. It's not poor labeling.

It is, however, bad BOM selection. It took me thirty seconds on Newark just now to find a resettable fuse with 200 mA limit and just 650 mOhms max initial resistance. Sure, costs two cents more, and it lets through a bit more current. You know what lets through even more current? All the 1 ohm resistors and shorts that people are going to mod into their boards to fix this problem.

Mistakes happen, lord knows I've made enough myself, but did they not test the electrical specs on these boards before sending them out to customers?

If you recall, they were trying to sell about 10,000 to early adopters, to get software written and bugs knocked out. The general public went crazy over the idea and the price, and we basically forced them to change Beta into Release.

I was hit with the USB issues, can't plug in more than two USB devices without the third one failing. There's some experimental kernel patches that solve the problem for some people, but not everyone. I haven't gotten around to trying them yet.

It's not a hacker tool, it's a learning tool. RPi was originally ( and still is) geared towards educational institutions where access to affordable computers is limited.
So while this might be a minor inconvenience for some people here in the states, it *is* a big problem in places where supplies and the budget are limited.

The fantasy that this $35 'stone soup' computer was going to make inroads into the classroom is nuts.

I call this a stone soup computer because of the children's story - to be useful in an educational market the user will need a keyboard, mouse, power supply, case, and a display device that can be driven by the board.

Compare this $35 'wonder board' to the various $50-75 Intel Atom miniITX boards and the folly of the Raspberry Pi becomes apparent. For $100 I can take a RETAIL Atom board with dual core process

It's Broadcom. Anyone who expected it to work flawlessly with Linux hasn't been following that company's past.

Sure, it'll mostly-work-with-bugs-and-binblobs-and-old-kernel-versions, just like anything else Broadcom. If people want better than that, they should've used an SoC vendor that is actually friendly to the open source community and publishes real documentation..

No. It's meant to be a controller board for embedded projects like robots, etc. In fact the BeagleBone has lower power consumption than the Pi.
The Pi has a video interface to aim at the hobby market that demands a GUI instead of command line.

the Nexus 7 16G model is only $199 so it'd be cheaper than the beagle bone plus the LCD7 Cape. If you're into hacking on Android but I think there's a Ubuntu kit for it. If you want more then USB, wifi or bluetooth I/O then you'd have to open it up and hack onto the board.

I got the Raspberry Pi while ago and this is the first time I am hearing of this issue. Of course, that is only because I haven't encountered it. So far I am using it extensively on my network without problems and it is even handling the load I throw at it quite gracefully.

It is a home VPN, DNS, Backup, File and Print server. On top of this, it is even the endpoint for my IPv6 tunnel and it runs a routing advertisement daemon to hand out v6 addresses on the network. So far it handles the v6 network load without any slowdown from my old machine that took care of this. I even threw in a USB stick to talk to 6LoWPAN devices I use at home and it works flawlessly with that too. So obviously both my USBs and the Ethernet are used up.

All this for a $35 computer that eats up a whole lot lesser energy than my old solution. Even if I had to solder a resistor to fix a problem that I haven't had, I am not sure what can beat this.

To be fair, I was initially having major problems on the Ethernet and USB ports, but then I switched out the power supply. The one I was using was from my Nokia phone, labeled as 1.5 amp. The one that worked better was the one that came with my Samsung Nexus phone. The problems with the other power supply was that when I boot up, the USB would lock up sometimes if I had both keyboard and mouse, and Ethernet hooked up (along with a bunch of USB errors on the console). None of that with the other power pl

Yup, here, too. I don't really know why people are trying to use UNPOWERED USB hubs with this machine and using sub-standard power supplies. I have it hooked up to a USB hub and it is working just fine.

They keep touting the damned thing as "open", yet you require binary blobs in the kernel just to get it to boot. The hardware is only "hacker friendly" so long as you're using USB based devices or something that sticks off the GPIO ports, the hardware itself (especially the SoC they're using) is hardly hacker friendly because the entire thing is a proprietary solution that requires proprietary drivers to run.

So can someone please tell me why this platform should be considered "open" at all? It seems to go against everything Linux strives towards. I could see a nice x86 based SoC with a S3 VGA adapter being "open"- all the hardware is well understood and open source drivers exist for everything. The Pi seems to be the exact opposite of that though.

The GPU boots the Pi. Without the GPU blob, it won't run anything at all.

The reason for this, reportedly, is that the team responsible for that SoC at Broadcom is officially a GPU team, so in fact the GPU is the main processor, and the ARM core is tacked on to the side. You're basically running a fully proprietary processor and firmware that just so happens to run Linux on an ARM coprocessor.

For $30 I bought a media streaming device for my lounge room. I've been looking into a dedicated streaming box for a while now and there is nothing on the market which comes close to $30. I don't see how this isn't appealing?

For the record, you can get ARM SoCs that are almost entirely open - the TI OMAP series does a pretty decent job, and last I checked they have excellent open documentation. Sure, the PowerVR graphics crap is proprietary, but you don't have to use it - it's purely a coprocessor that renders to a framebuffer. The video output hardware is independent, open, and documented (i.e. the equivalent of an S3 VGA adapter).

Broadcom, though, is pretty much the antithesis of open documentation.

You can fix the 140 mA issue with a little solder and two small pieces of wire to bridge the polyfuses. A little google foo can give you the power. If my inept soldering skills can get me through then almost anyone should be able to do the same. The only thing to be mindful of is voltage dips if you plug in high power devices after you're already up and running. And even then there are further mods you can do to prevent that if you're so inclined. Also the buggy driver issues have been fixed for awhile, even in Fedora17 which I think was lagging a bit behind. It is a learning device - be daring and learn a little;)

Yes, but, for instance I wanted to use a patriot high speed thumb drive for disk. I didn't want a powered hub just to have a thumb drive work reliably. Seems kind of excessive. Now I just boot off it headless with the thumb drive directly attached with no issue and nothing more than power and ethernet attached. It's a problem with multiple answers - whatever you're comfortable with...

I've had two Raspberry Pi's running side-by-side since June and I did initially experience 'network choke' as described but it was from improperly powering my Pi's. I was using a 5v microUSB adapter but with too low of an amp draw. Pay particular attention to what you're using as a power source would be my first bit of advice.

My second bit is a bit of a rip FTFA. The quote "As I said, the Pi is currently being worked over by a crowd of skilled techno-people" is a bit of a stretch. I'd say maybe20% of Pi users actually have their shit together with enough well-rounded-ness of hardware/EE/development in their background to be productive with the Pi. The other 80% are just trying to use this device as a $35 desktop replacement who want to try and hook up 4 1TB SATA devices to it, followed a long with a board load of "pamper-me" forum posts that will make a self-respective real "geek" nauseated.

Issues like this are seen ALL the time in the 'real hardware engineering world', and they are worked out. Let's not be so quick to judge this device all the time, and see the Pi for what it is: A very easy-to-work-with low cost ARM platform that far beats out the overheard of working with any SBC or emebedded hardware platform that would need JTAG, flash map, kernel/bootloader support to get going...on your own.

Given a lack of other kinds of decent ARM based boards, those of us not interested in hacking the hardware side (and prefer to have working components instead of Broadcom ones) have to use the few boards out there. Personally, I'd like to do software hacking on a well designed "through CPU" multi-port (16 or more) ethernet switch (multiple CPUs to provide many paths and exchange points... not all ports on one CPU) based on ARM. But it's just not out there (and what pretends to be is just 16 ports into a

This. I definitely consider myself on the noob end of the Pi experience spectrum, but it didn't take me long to figure out that all the advice online recommending the use of a solid power supply (> 1A) was *gasp* correct. I started out with a minimum spec power supply when mine first arrived and was experiencing issues. I've since swapped out for beefier power sources and had two Pi's running RaspBMC for a while now, one on ethernet and the other on wifi, with no USB hubs. I don't have a bazillion de

I power my Raspberry Pi using a micro USB connected to the USB port on the opposite side, you jump start it with an external 5V power supply for a second, and the power just goes round and round indefinitely, powering the PI and what ever other devices I have connected to the unpowered 6 port hub connected to the second port. At the moment it's populated exclusively with USB humping dogs.

I bought two Raspberry Pi(es) to use as audio servers and have been disappointed by the sound quality. The on-board audio out's DSP has limited bandwidth so sound is down-sampled to 11 bits. Scratchy. It's not advertised so that was a let-down.

Using a USB AUDIO dongle is no-go either, because of the crappy USB drivers. Stutters non-stop. Here are oscilloscope grabs of two music samples and a 1Khz tone: http://imgur.com/a/rVR99 [imgur.com] The flat parts shouldn't be there. The only way to get good sound now is to use rather expensive USB soundboards or the HDMI output, but extracting line-level audio signals from that isn't a simple or cheap proposition.

The power design should be re-thought. If you power your Pi with exactly 5 volts, the voltage drop in the polyfuses causes early failures if you connect peripherals that have medium current demands. If you're lucky your power adapter might supply a bit more than 5 volts (5.25 is nice) and you might not experience too many problems. Me, I've soldered supply wires to test points T1(vcc) and T2(gnd) and bypassed the fuses completely.

I hope they come up with another revision, add a Low-drop-out regulator (+$2) and figure out the USB naggies.

The power supply issues the Raspberry Pi has are mostly a red herring. The Pi is certainly unusually sensitive to power and can only supply a stupidly low amount of current to USB devices no matter what power supply is used, but these issues have been used as a catch-all to explain away every problem people have been having with USB and Ethernet on the Pi. This has obscured the more pressing issue of buggy drivers which I believe are the root cause of the majority of problems Pi users have been having.

However, being right doesn't make some of what you came up with in that thread helpful or constructive.

It might be helpful for people deciding whether or not to purchase a Raspberry Pi. The Raspberry Pi Foundation has yet to formally acknowledge the existence of these problems with the Pi, something I find unacceptable. Sure, they've commented on these problems in their forums but not everyone will see those posts.

There's nothing wrong with the Raspberry Pi that can't be fixed if you have a digital voltmeter, a scope, an adjustable bench power supply, a surface mount soldering station, and a copy of The Art of Electronics.

If you're not into hardware debugging and are building some kind of "media center", get one of the low-end set-top boxes with an Allwinner A10 Cortex inside. Those will run Linux. They usually come with Google TV/Android installed, but you can flush that and put in something else. They're around

Perhaps these problems are evident when it is used as a desktop with keyboards and mice, but for embedded and server applications, I find the Raspberry Pi to work very well.

My only real complaint is that I cannot allocate less than 16 megabytes of memory to VideoCore. I would actually like to reduce that to the bare minimum possible for 80x24 screen at one megabyte or less, so as to allocate the most memory to the processor as possible. I find it interesting that the console is 1600x1200 when much more me

my use-case is as a webserver to an arduino audio control system. the arduino does the realtime control of volume and other preamp-like things. the linux box contains the ip-stack, webserver and a serial port. oh wait, no serial port! that's what usb is for (for one), to get me usb/serial or usb/ttl.

I also want to play music and I have a UAC2 usb 'dac' or spdif box and without usb, I have no digital audio. hdmi is not what I need/

Once you have UART, it's easy to get 'real serial' through a MAX3232 chip. Unfortunately, those are expensive because 'real serial' runs at 13 volts, so it needs to boost it up from the 3v/5v supply. Keeping the cost down means that there was no 'real serial' included.

All the comments I saw when I briefly scanned the links in the article reference power issues and similar. Another huge problem is that the USB controller in the BCM2835 itself is pretty seriously deficient; it offloads a ton of work that's usually done in HW to SW instead, requiring the CPU to be able to handle interrupts at up to 8KHz, the USB frame rate. Apparently, dropping one of those will then cause issues rather than just delaying transfers. Writing good SW for this HW will be extremely hard.

there up for order now if you want one.takes bought 3 weeks. many of the issues is they don't include a wall plug and many people use usb cable or chargers that are to small. you should be providing 1 amp at 5 volts to it. they do sell the correct charger sepret.

a) They left the power supply up to the users and people are using the wrong type (sorry, 500mA phone chargers aren't good enough)b) The USB ports are only rated at 100mA so a lot of USB devices don't work (people don't RTFM before buying).