Serious Problems With USB and Ethernet On the Raspberry Pi
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."
A buggy driver (which can be fixed) is hardly a "serious problem" - give it time, distros and drivers are still progressing on the RasPi
Posted from my Raspberry Pi...
this signature has been removed due to a DMCA takedown notice
Though hast profaned the name of the HOLY PI with thine blasphemous use of facts! We cast thee into the deepest pits of Hell amongst the Beagle Board and Panda Board demons!
All praised be THE PI!
AntiFA: An abbreviation for Anti First Amendment.
When you drill down relentlessly to a specific price point.
If you place a 1 ohm resistor in parallel with F1 and F2, you can get the voltage drop and current higher - fixing a lot of the issues with the USB.
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.
sig? uhh, umm, ok
For 50 dollars, with 512-1 gig of ddr3, multiple usb ports, no ethernet, but 1-3 usb ports, hdmi ports, but no user-accessable gpio.
Why would you not use those for non-prototyping applications, and just get the knockoff development boards for stuff you need GPIO for? They're not any worse price-wise, and while they're all cortex-m3 or below they have a lot more than just a few gpio pins available off them, up to and including canbus support.
But then, maybe I'm missing what was so great about the Raspberry Pi. It must be using the benefits of a Broadcom chip over an ARM reference design. (Although the weak Mali OGL drivers may be a hassle, at least there's current work to remedy that.)
I Just ordered and it arrives Monday.
The data sheet (in particular p. 203-ish) talks about the workarounds required to work around PHY bugs and other USB hardware. Doesn't look particularly complex.
Check out my sci-fi/humor trilogy at PatriotsBooks.
you get what you pay for...in this case, a $35 tiny little board not designed by a company with QA capabilities... Big surprise it has problems...not.
It's a hacker tool - so hack it until it works.
Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
They'll fix these problems soon enough. No need for hysteria.
Yes, yes I know everyone's just *in love* with their Raspberries. But seriously if you want a power tool, cough up the extra bucks and get a BeagleBone.
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.
I'm still confused as to what the appeal of the Pi is.
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.
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 ;)
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.
Broadcom fucked them real bad then?
Prepay Is brr
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 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.
Until then, caveat emptor.
I have LESS problems with USB (incl kbd/mse) on Raspberry Pi using RISCOS than Linux... (also the RPi is overclocked to 800Mhz while on RISCOS)
just download the 1.1 hardware when it becomes available.
The PI should be using a buck-boost regulator that supplies 5.0V *at the USB connector*. Yes, it adds to the cost, but not having it isn't real savings. It's getting the thing out of spec. And why on Earth don't they have (apparently) have power monitoring implemented, I don't know either. There should be an obvious indication to the user that the input voltage is too low etc.
About fucking time!
They had prototypes, didn't they? Didn't they have a limited release while they ramped up production? Wasn't there any time for somebody to actually try to use this wonderful device before the release? Don't get me wrong -- I WANT ONE, or even a dozen.
Forget about buck boost regulators on the rpi. that would increase the cost in 2 to 4 dollars, they should require you to use a regulated +5 VDC power supply that gives *at least* 1A and just wire it up to the USB port. or anything else.
If they don't want to require the use of a regulated power supply, they should just drop in an inexpensive 7805 LDO.
Thanks for letting us know the biggest issue since day one on this thing
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.
I am the submitter of this story. I posted as "lostintime" on the Raspberry Pi forums before I was banned for the post I made in this thread: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=63&t=15320
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.
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 $60, for which you get a device in a case and probably a WiFi antenna.
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 memory could be saved by keeping it at 640x480.
Honestly I wasn't really sure why they put USB ports on the Pi, much less a DisplayPort connector, but I guess that's just what an embedded developer would have expected but the inclusion of those ports makes this a really fascinating machine.
Kriston
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 and
cobble those together to make their products, the cheaper the better. That's another reason
they can't afford to publish anything out in public without a NDA. Broadcom spends money
on 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 clicked on the specs,
saw it was Broadcom and that was the end of that. I'm happy to shell out $75-$100 bucks for
something that actually works and is documented.
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.
The VIA board, at $179, is simply not in the same class. It's not an alternative.
It's for completely different projects.
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.
to 1st.
You're using it as a player, not a server. You probably would not have any problems if it were a server.
The Daddy casts sleep on the Baby. The Baby resists!
My initial plan for my Pi was a data acquisition device that would include a driverless usb GPS device ( BU-353 ) and a driverless usb 3G modem ( HUAWEI E-220); both of which are standard serial devices and neither of which draw over 550 mA. In fact, even under heavy load, I couldn't get either device to draw more than 400 mA; which is 150 mA below the USB standard current. It would constantly drop the network. When I tried adding a wireless N adapter, the device would more or less cease to function. I purchased a 2A external battery as well as a powered hub that DID NOT follow the USB spec and allowed for up to 1A per port and the device simply refused to keep them mounted. It's been very disappointing thus far. I have two devices, one from the initial run and one from the 2nd run. Both suffer from the same issues. I've pretty much given up at this point.
I interfaced my TI Chronos watch with my RaspPi and although it worked the results were dodgy at best - volume changes would hang the USB stack.
I tracked it down to problems in the USB stack and gave up.... one day it will be stable enough to work.
A big part of the problem is:
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).
No sig today...
(ie. the problem is the users, not the design)
No sig today...
Not "sound server" in the sense that you mean.
One of the boards is to be tasked with replacing an aging automatic player in a interactive information booth, the other would replace two loop players in localized FM broadcasts, for the visitors to a tourist centre.
They'd serve sound to the public, not to network clients. But that still makes them servers.
All of these power problems disappear with a beefy enough power adapter. We're using a keyboard and TP-Link WiFi adapter with our Raspberry Pi, and it will fail regularly with a 5V, 1A power brick. As soon as we used a 1.2 amp adapter, all of the lockups instantly went away and haven't returned. Keep in mind that many of these power adapters are not U/L rated. So, even some of the dual USB models that advertise they can supply 2 amps through a single USB port really supply something less than 1 amp per port. We have a thread covering this in more detail for anyone experiencing problems. http://nerd.bz/NsoUj3
Why would they connect the Ethernet controller over USB. From what I understand, USB has a fair bit of CPU overhead, and the Raspberry Pi has a limited CPU.
The proper way to handle realtime hardware interfacing in *nix is with a dedicated microcontroller that isn't affected by kernel scheduling (which isn't realtime).
Therefore just spend $10 on a microcontroller board of your choosing and link it to the Nexus through USB or Bluetooth or Wifi or NFC. Let the microcontroller handle the hardware interfacing without latency, while Linux handles high level issues. Best of both worlds.
The lack of GPIO pins on a Nexus is pretty much an asset, as it keeps you from doing the wrong thing. And Android even has an SDK for exactly this situation, the ADK -- Accessory Development Kit. This is typically used with something like the Arduino ADK, but there are tons of equivalent but much cheaper boards available for the same purpose.
I recall, before they shipped the alpha, that Raspberry Pi was supposed to work from the power supplied by an HDMI cable. Is there some variable to be considered there, as well, or did they abandon that design? I gave up interest pretty early when I was told that I would be considered to receive one of the early models and then never received a follow-up.
"Stratigraphically the origin of agriculture and thermonuclear destruction will appear essentially simultaneous" -- Lee
I finally managed to get my hands on a Raspberry Pi and put it to work as a minidlna server with a large usb hard drive .. ... in my case it was the SD card . First card led to repeating
As a Linux newbie had a few problems getting started
keystrokes . A card from the list on the raspberrypi web site made all the difference.. Now its rock solid and it
just works. Just ordered more Raspberrypis more projects to try.
I had this kind of a problem with my Raspberry Pi, and isolated the problem to a USB hub that (idiotically enough) had 5V output on the USB-cable that connects to the PC end! AFAIK this voids the USB standard (only host ports should supply 5V). When using a proper switch the Ethernet and freezing problems disappeared.
Also, a obvious fix to the freezing when writing to the SD card (where the OS resides) is to mount the root filesystem with the 'async' option. Then it doesn't flush to the SD card for each write and frees up a lot of CPU cycles.
There is electrical interference between the board and the USB interface that results in the Ethernet connection dropping packets. The solution is to cut the +5V (red) wire or insulate the matching pin on a device connecting via USB to the board. In all other ways, things are fine if you're powering 5V at 850mA to 1A. So, just a small bug to fix on the next iteration of the board design.
I signed up *months* ago with RS components to be on the "waiting list" for my Raspberry Pi.
Weeks and months ticked by and eventually I got my "invitation to place an order", complete with the number needed to do so.
Off I went and paid my money with a promised "up to 9 weeks" lead-time.
No worries.
That was about 11 weeks ago -- and still no notification of shipment.
Meanwhile, for the past month or so, friends have been buying them from Element14 and they've been shipped within the week.
WTF?
I emailed RS for an update -- no reply.
Looks like those of us ordering from RS got suckered big-time!
C'mon. It's $35. Who cares?
Why did they connect Ethernet via USB?
Lame and unprofessional, when there presumably exist much cheaper SPI or parallel solutions with better performance.
It's not like IO-ports are running low on this kind of thing.