element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Raspberry Pi
  • Products
  • More
Raspberry Pi
Raspberry Pi Forum Combining BeagleBone and Raspberry Pi
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Raspberry Pi to participate - click to join for free!
Featured Articles
Announcing Pi
Technical Specifications
Raspberry Pi FAQs
Win a Pi
Raspberry Pi Wishlist
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 39 replies
  • Subscribers 678 subscribers
  • Views 7116 views
  • Users 0 members are here
  • raspberry_pi
Related

Combining BeagleBone and Raspberry Pi

morgaine
morgaine over 13 years ago

Well I finally couldn't wait any longer for an ARM Linux board (my Pi isn't due until the end of June), so I bought a BeagleBone. image

 

(This post is about technology.  I am not interested in "A is better than B" arguments.  Horses for courses.)

 

It's a very nice board, much more like an Arduino in concept than a Pi -- the two rows of female headers give it that feel.  Farnell provided their usual (in my experience so far) perfect quality of service and delivered it the very next day --- http://uk.farnell.com/circuitco/bb-bone-000/kit-dev-beaglebone-cortex-a8/dp/2063627

 

The power design is particularly noteworthy, given our recent discussions about polyfuses.  The BeagleBone uses a TPS65217B power management IC (PMIC) to generate stable supply voltages regardless of input power, which can come from a barrel connector or from the mini-USB.

 

The mini-USB itself deserves a mention, as it's impressively multi-functional.  In addition to being an alternative source of power, it provides a front-end two-port USB client-side hub --- this is entirely unrelated to the separate host-mode USB type A socket which is also available.  One port of this hub goes directly to the TI AM3359 SoC, while the other port connects to a dual-port FT2232H USB-to-serial converter to provide user-host communications (Linux console by default) and JTAG debugging simultaneously.

 

The SoC USB connection to the front-end hub works in one of two modes which can be toggled at will at any time:  it either presents the SD card as a mountable USB storage device to the host, or it provides an Ethernet-over-USB networking interface which yields an extremely simple quick-start.  (This is additional to the BeagleBone's normal 10/100 Ethernet interface, which is directly implemented in the SoC rather than hanging off USB.)  It all worked immediately using my Gentoo machine as host, providing full IPv4 and IPv6 connectivity out of the box.

 

Which brings me to BeagleBone and Raspberry Pi.  These two devices are very different, enjoying different strengths and suffering different weaknesses, and their most appropriate applications would naturally fall in different areas because of these differences.  I'm interested in how the best features of each could be combined to provide better functionality than either does alone.

 

I already have one idea in this area.

 

The BeagleBone doesn't provide an on-board graphics interface (despite its SoC containing a PowerVR GPU), and as a result, if you want direct graphics you have to buy a "DVI-D cape" containing the interface circuitry ("cape" == BeagleBone daughterboard).  The trouble is, that cape costs more than a Pi Model B!!!! imageimageimageimage

 

Which of course provides an ideal opportunity to combine BeagleBone and Pi, since the Pi could handle the graphics side while the BeagleBone does most of the computing which suits its Cortex-A8 nicely.  I'm currently thinking what the best way to achieve this might be, but one simple way is available out of the box since X11 is inherently a networked protocol.

 

This is obviously just the beginning, and I'm quite excited to see where this combination might lead. image

 

Morgaine.

  • Sign in to reply
  • Cancel
Parents
  • morgaine
    morgaine over 13 years ago

    Because of the dreadful 8k polls per second that the Broadcom SoC has to perform to handle the external USB and Ethernet, it occurs to me that the most effective way to combine a graphics-handling Pi with the BeagleBone is to use a Pi Model A, so that USB is handled properly by interrupt hardware on the Broadcom SoC.

     

    The X11 traffic can then be sent to the Pi through the built-in USB channel using Ethernet-over-USB networking, which the BeagleBone provides out of the box anyway to give beginners a fast and simple QuickStart experience.  Since there are no Model A boards in the wild yet, I'll have to use the less efficient Model B for now, but it's a goal to keep in mind for the future.

     

    Morgaine.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 13 years ago in reply to morgaine

    Apparently the issue is caused by the Broadcom SoC itself, not by SMSC's LAN9512 device .  From a snippet that jbeale quoted in another thread:

     

    jbeale wrote (quoting the Foundation's dom):

    Yes, the USB hardware is "dumb" and needs to be told what

    to do (by the core) every frame. More advanced USB hardware

    blocks would handle the simple responses in hardware, and so

    produce less load on the CPU (esp. when idle).

     

    So, given that tjhe dumb USB controller on the SoC would have fewer things to poll on a Model A because the LAN9512 is not present and there would be no need for 12Mbit/s operation in this application, we could decrease the USB poll rate on a Model A to a low rate suitable for X11 transfers through Ethernet-over-USB

     

    SMSC suggests a slow poll rate of every 4ms for Hi-Speed operation in their LAN9512 datasheet, but we can reduce the rate further as it's mostly a tradeoff between latency and bandwidth efficiency I think.  Combining a reduced polling rate with a better USB host driver will hopefully compensate for the SoC's Synopsys USB core being "dumb" as stated.

     

    Morgaine.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • morgaine
    morgaine over 13 years ago in reply to morgaine

    Apparently the issue is caused by the Broadcom SoC itself, not by SMSC's LAN9512 device .  From a snippet that jbeale quoted in another thread:

     

    jbeale wrote (quoting the Foundation's dom):

    Yes, the USB hardware is "dumb" and needs to be told what

    to do (by the core) every frame. More advanced USB hardware

    blocks would handle the simple responses in hardware, and so

    produce less load on the CPU (esp. when idle).

     

    So, given that tjhe dumb USB controller on the SoC would have fewer things to poll on a Model A because the LAN9512 is not present and there would be no need for 12Mbit/s operation in this application, we could decrease the USB poll rate on a Model A to a low rate suitable for X11 transfers through Ethernet-over-USB

     

    SMSC suggests a slow poll rate of every 4ms for Hi-Speed operation in their LAN9512 datasheet, but we can reduce the rate further as it's mostly a tradeoff between latency and bandwidth efficiency I think.  Combining a reduced polling rate with a better USB host driver will hopefully compensate for the SoC's Synopsys USB core being "dumb" as stated.

     

    Morgaine.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
  • morgaine
    morgaine over 13 years ago in reply to morgaine

    Hmmm, no, that's not going to work because USB doesn't have Ethernet-like jumbo frame capability, its frames are limited to 1024 bytes at Hi-Speed.  So, it seems that there's a showstopper on trading off response latency for polling efficiency.  Bah.

     

    Since we can't do that, I guess we have to look at the timing demands imposed by multiple 1024-byte chunks of X11 data wanting to be transferred over to the Pi using Ethernet-over-USB at an instantaneous peak rate of 480Mbit/s.  Just to get a feel for the numbers, let's ignore all issues of encapsulation, signaling, and protocol stacks.

     

    That frame transfer seems to take about 17 microseconds for the raw data transfer down the wire considering only the peak rate, so if such chunks of data were sent in a continuous stream then we would have to poll at around 58KHz to avoid gaps where nothing is happening.  This may not even be possible, but even if it were possible then the Pi's dumb USB controller would be slugged to death by it using the existing driver.

     

    So, "it's not that simple".  We'll have to do lots of measurements and see where this goes.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 13 years ago in reply to morgaine

    I have a Freescale imx53 QSB sitting next to my Pi. It has a USB OTG and I have run a network connection between the two (CDC ECM - don't have EEM in my antiquated kernel for the imx) and tried running NBD for swap and have yet to try using a usb storage driver which might be a bit more efficient. I mainly use it to compile for the Pi as I have it running Raspbian in a chroot and the faster cpu, extra ram and sata hard disk make things run a bit faster than the Pi. I can imagine them bundled up in a box together with the imx doing compiles courtesy of distcc and providing some of its 1G ram as swap.

     

    I think using a second arm board as a "coprocessor" for the Pi is an interesting idea but the status of the Pi's USB does put a damper on it. Another option is to use the Pi as a "graphics card" for another arm board as the Pi's videocore is pretty decent. I can imagine remote controlling a stack of Pi's bolted onto HD displays.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 13 years ago in reply to Former Member

    That's very interesting Paul.  I was looking at the i.MX53 QSB myself not long ago when looking for an ARM board to fill in the gap during the long Pi pre-ordering wait, but decided on the BeagleBone instead.  I'll undoubtedly purchase other ARM boards before long though, since I want gigabit Ethernet and lots of RAM.

     

    I'm very interested in your mention of CDC EEM.  Because EEM doesn't seek to do all the NIC-type signaling that full CDC ECM does, this might mean that more of the SoC's time can be dedicated to bulk transfers and less to control frames, which might translate into less polling being required.

     

    Yes, I agree completely that the VideoCore seems really good on the graphics and media side --- the main problems being addressed here are on the communications side.  This is why at least in principle using the Pi to run the BeagleBone's X11 server and a few related ancillaries like the window manager seems like a good idea.

     

    It's certainly proving a worthwhile topic for head scratching, even without my Pi having arrived yet. image

     

    Morgaine.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 13 years ago in reply to Former Member

    Paul Shirren wrote:

     

    I think using a second arm board as a "coprocessor" for the Pi is an interesting idea but the status of the Pi's USB does put a damper on it. Another option is to use the Pi as a "graphics card" for another arm board as the Pi's videocore is pretty decent. I can imagine remote controlling a stack of Pi's bolted onto HD displays.

     

    It's the 2nd of the above that I'm focused on.

     

    I have a thread about non-HPC cluster systems over here -- http://www.element14.com/community/thread/17542?tstart=90 --, and it's going to be a heterogenous cluster with different horses for different courses.

     

    Cortex-A8/A9/A15 are likely to figure highly for "compute nodes" in the cluster, while the Pi is probably the best board around at this time for "display nodes"..  I envisage having at least 3 display nodes in the cluster once Pi boards are available ex-stock, one for each of my 1920x1200 LCD screens.

     

    PS. I keep having to state "non-HPC" because so many people seem to think that clusters have only the single purpose of performance, which is most definitely not the case. image

     

    Morgaine.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 13 years ago in reply to morgaine

    The XRF radios that Simon Monk has been advocating here are nicely applicable to BeagleBone as well as to Raspberry Pi, and could conceivably  be used even to link the two together for low-bandwidth messaging.  In case an application arises, some handy links:

     

    • Simon's project post --- http://www.element14.com/community/thread/18613?tstart=0
    • XRF home sites --- http://www.openmicros.org/index.php/articles/84-xrf-basics , http://shop.ciseco.co.uk/ , http://www.openkontrol.org/wiki/tiki-index.php
    • RF regulatory links --- http://www.element14.com/community/message/53650#53650
    • Texas Instruments CC1110F32RSPCC1110F32RSP datasheet --- http://www.ti.com/lit/ds/symlink/cc1110f32.pdf

     

    This could be particularly useful when the Pi Model A comes out, since it has no on-board Ethernet comms.

     

    Yet another idea is to put one XRF on either a BeagleBone or a Pi, and the remote standalone XRF on something like the Olimexino-STM32 instead, because the latter has a built-in Li-Poly battery charger --- http://www.olimex.com/dev/olimexino-stm32.html --- And since this Olimex board costs under 17 quid from Farnell, that matches the low-price XRF modules perfectly -- http://uk.farnell.com/olimex/olimexino-stm32/board-dev-olimexino-stm32/dp/2061325

     

    PS. Blog post on combining BeagleBone with XRF -- http://www.e-ssociation.com/blog/?p=112

     

     

    Morgaine.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube