Announcement

Collapse
No announcement yet.

Sheeva Plug

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Sheeva Plug


    Review by Gary, aka chunkyks

    Thanks to some work I'd been doing, I found myself targeting the
    SheevaPlug http://www.plugcomputer.org/ for a project, despite
    not actually having one of these plugs myself. mp3car.com very
    generously offered to send me one, as part of a process to
    provide innovation grants to forum users. I cannot thank them
    enough for the opportunity.

    See this product on the mp3Car Store here.



    I'm a long-term unix and Linux software developer, so anticipate
    this review leaning in that direction.

    features

    Low Energy ARM chip [entire device is rated at 5W]
    Small Form-factor [entire computer inside a regular sized power brick]

    Comes with Ubuntu 9.04, but trivially reflashable

    Communications with the outside world: Gigabit Ethernet,
    USB2.0, SDIO. Also has a USB slave port as a serial console

    512M DDR2, 512M Flash

    pros

    Excellent documentation
    Does exactly what you'd expect. No less, and probably a little more
    Extremely affordable
    Stock Ubuntu install.

    Zero configuration. Out of the box it boots and can be logged into

    cons
    There's an expectation that you are familiar with Linux.
    Slow boot times and disk access
    Lack of useful kernel modules in the box
    Occasionally the plug feels warm to the touch

    The Short Review:

    I love this device, and everyone should get one. It's a fully
    functional Linux box, and magically Just Works for all my needs.

    See our forums for the Full review, details, and thoughts for the future and follow up with conversation


    Full Review:
    Right out of the box, it does exactly what I expect a modern
    computer to do. You can log into it, install software from the
    Ubuntu repositories, and run stuff on it. The software corpus
    available for easy download is massive, and includes all the
    usual development tools and user programs you'd expect or need.

    The plug is running an ARM chip - as is common for low-power
    embedded devices. The ARM architecture is a little bit different
    from your typical desktop computer. To me, this is a Good Thing,
    as I subscribe to the belief that portable code running on more
    architectures is better than code that doesn't. [Notably, while
    porting to other architectures, bugs often surface that otherwise
    wouldn't have]. On the downside it means that occasionally, you
    may find software that doesn't work for you on the plug. During
    testing I found nothing I needed that didn't work immediately,
    but the potential is there.

    It's absolutely worth starting with the new plugger howto [http://www.plugcomputer.org/plugwiki...Plugger_How_To
    ] and making a couple system changes to ensure you won't run into
    problems. There are apparently some situations where an
    inopportune update immediately after getting the plug can render
    it un-bootable. It's easily re-flashable, but it's a lot easier to
    just edit a couple files first.

    The plug wiki and documentation tends to assume that the user has
    a certain level of familiarity with Linux or unix. Most notably,
    the wiki in a few places [not the least of which is the new
    plugger howto] just said ‚Edit this file, without further
    elucidating. Anyone familiar with unix will recognize this;
    editing text on unix is historically a matter of both holy wars
    and extreme difficulty to the novice user. This reviewer has
    edited the wiki to provide a little more help, but as a whole a
    small amount of Linux knowledge is certainly helpful.

    Something I haven't commented on up until now is that there's no
    easy way to plug a screen into the Sheeva. This is self-evident
    from looking at the device, but bears mentioning. I successfully
    used remote X over ssh with the plug, but primarily the Sheeva is
    a command-line device that you ssh into - again, a level of unix
    familiarity cannot hurt.

    Up to now, everything I've commented was things that are ‚good‚
    in my view, but some of them may be perceived as problems. There
    are a couple of real downsides to the plug:

    Boot times are noticeable [on the other of 20-30 seconds, which
    feels high for a small embedded device] and large un-cached disk
    accesses tend to be pretty slow. This is because the plug uses a
    file system called jffs2, which is very good for wear-leveling
    and error handling in flash, but can be slow. There are good
    alternatives [eg, ubifs], but switching to them again requires
    re flashing the plug, something I will almost certainly be doing
    in the near future. If you plan on doing a lot of disk writes, or
    large disk writes [as I do], then it's definitely better to pick
    up an SDIO card or a USB flash drive, and write to that. Those
    are supported out of the box.

    The plug feels warm to the touch. I believe it's still not using
    much power, but there's obviously some inefficiency somewhere.
    Some mp3car forum users have converted their plugs to run off 12V
    as provided by their car, and apparently the new 12V PSU
    dissipates less energy in the form of heat.

    3.3 Running my own software

    The specific goal for me on the plug is to run my pet project,
    OBD GPS Logger. Due to past experience with portable code, I was
    happy to see obdgpslogger build first time on the plug, after
    installing the requisite tools [six packages plus their
    dependencies, starting with what was in the box]. I didn't build
    the GUI tools [no need for them here] but obdsim, obdgpslogger,
    and the conversion tools worked immediately. On the CD in the
    box, or for free download, are cross-compiling tools;
    obdgpslogger also builds just fine using that environment.

    One problem was that as it comes in the box, the Sheeva doesn't
    have the necessary kernel modules [aka “drivers”] that an mp3car
    reader might need; specifically, ftdi for an OBDPro scantool [http://www.obdpros.com/
    ] or similar, or any bluetooth modules. Since the OBD devices I
    have are all either ftdi or bluetooth, this was an issue. This
    has been discussed on the Sheeva forums [http://plugcomputer.org/plugforum/index.php?topic=84.0
    ], where the best [only] proposed answer was to reflash the
    kernel on the device.

    While that's not difficult in practice, that's kinda fearsome to
    someone unfamiliar with Linux or serial consoles. I came up with
    a somewhat different solution to the ftdi problem: I wrote a
    small userland tool using libftdi [which is available in the
    Ubuntu repositories] to proxy my ftdi device to a unix
    pseudoterminal. At time of writing, it's not fully working with
    obdgpslogger yet, but it works enough to access my OBDPro
    scantool.

    Overall, I found the Sheeva a fantastic tool; it really is a
    complete Linux system that does everything I need.

    4 Future Uses

    In writing this review, I found myself coming up with various
    ideas for using the plug, beyond a simple host for obdgpslogger.
    Of particular interest is that it's simply a low-cost device that
    you can run always-on and always-connected-to-the-internet for
    cheap. For want of a number, a quick back-of-the-envelope
    calculation says that it costs me about 1.7 cents per day to run,
    or about six dollars a year... and I live in a part of the US
    where electricity is relatively expensive.

    Some food for thought for others picking up one of these plugs:

    Webcam. The plug can run a webcam and either host a live
    stream, or regularly upload photos to another site. Great for
    those of us with jobs and dogs. This way my power-hungry
    desktop can remain asleep during the day and I can still watch
    my dogs.

    Storage server. Plug a huge external hard drive into it and use
    it for network attached storage. Typical uses might include a
    streaming server for a PS3 [using the fantastic mediatomb http://mediatomb.cc/
    a backup server, or a bittorrent tracker or downloader.
    Combine a few of these things and you get:

    Leave an RSS reader running on the plug all day, reading
    streams from torrent sites and automatically downloading
    things you like. When you get home in the evening, turn on
    your TV and PS3 and start watching. Imagine if your cable
    company's on-demand didn't suck - that's what this is.

    In the past, I've used squid to block ads and as a network
    cache; the Sheeva is perfectly placed to handle that. Nowadays,
    fast internet and intelligent browsers make a lot of that moot,
    but squid can still pull off some pretty neat tricks.

    Home automation. It's nice to have something you can ssh into
    before leaving work, perhaps to start a coffee machine or
    something. The Sheeva could perhaps control some X10 devices.

    For people interested in a whole new worldview of instant
    messaging, the Sheeva makes a great Bitlbee server.

    Similar to DD-WRT, it's not hard to imagine complete images to
    flash to the device. The RSS-bittorrent-PS3 configuration above
    could easily be prepared to an image, and have end-users simply
    download and flash the whole bundle.

    On the topic of DD-WRT, some people don't like to reflash their
    wireless routers or similar devices; the Sheeva could run all
    the services you otherwise would have liked your wireless
    router to do [such as DHCP with static allocation - the main
    reason I upgraded to DD-WRT in the first place]

    See this product on the mp3Car Store here.

  • #2
    For reference, forum user PaulF was the one that did the 12V conversion using a 25-dollar part available on mp3car's store. He documented it here: hhttp://paulfurtado.com/hacking-sheeva-power.php.

    The formatting came out a little squiffy. But yay! I really cannot thank mp3car enough for this thing.

    I posted some other pictures here: http://icculus.org/~chunky/sheevapics/, but I can't garauntee they'll be there forever.

    Have fun,
    Gary (-;
    OBDGPSLogger, for logging OBDII and/or GPS data
    OBDSim, an OBDII/ELM327 software simulator
    mp3car forums: obdgpslogger, obdsim

    Comment


    • #3
      Hey thanks for mentioning me, Gary.

      I've changed that url to http://paulfurtado.com/hacking-sheeva-power.php

      I got an official web host to make my site more reliable as I'm actually making a real site now.

      Once the site is running nicely and I find some time, I'll be posting more guides for the sheeva plug.
      My Nearly Complete Car:
      http://www.mp3car.com/vbulletin/show...ed-car-pc.html

      Micro Control Center... Control Your Car Across the Internet
      http://www.mp3car.com/fusion-brain/1...-internet.html

      Website: (It's a work in progress, really. All my projects have taken me from ever really developing it.)
      http://paulfurtado.com/

      Comment


      • #4
        Fixed the URL in my post; and I couldn't help but provide a link; you did great work on it :-)

        Gary (-;
        OBDGPSLogger, for logging OBDII and/or GPS data
        OBDSim, an OBDII/ELM327 software simulator
        mp3car forums: obdgpslogger, obdsim

        Comment


        • #5
          Guys, I was thinking maybe we...well okay, maybe YOU...could help put together a distro that would be a good mobile version that could be flashed to the plug for car use?

          I'm sort of stuck-ish right now with a need to do FTDI to move forward and not really sure how to go about it. I'm pretty sure I can flash it but not sure how to set up a distro for it.

          What do you think?
          Originally posted by ghettocruzer
          I was gung ho on building a PC [until] just recently. However, between my new phone having internet and GPS and all...and this kit...Im starting to have trouble justfiying it haha.
          Want to:
          -Find out about the new iBug iPad install?
          -Find out about carPC's in just 5 minutes? View the Car PC 101 video

          Comment


          • #6
            Sounds like a thread worth starting to discuss the actual needs, somewhere? Obviously ftdi, but what about other stuff? obdgpslogger in the box, obviously .. :-)

            I'm still short on time; haven't even been able to work on obdgpslogger recently :-(

            Gary (-;
            OBDGPSLogger, for logging OBDII and/or GPS data
            OBDSim, an OBDII/ELM327 software simulator
            mp3car forums: obdgpslogger, obdsim

            Comment


            • #7
              Well, I'm working on sticking debian on my sheeva plug now... a basic debian install with full access to the debian repositories should be good, no?
              My Nearly Complete Car:
              http://www.mp3car.com/vbulletin/show...ed-car-pc.html

              Micro Control Center... Control Your Car Across the Internet
              http://www.mp3car.com/fusion-brain/1...-internet.html

              Website: (It's a work in progress, really. All my projects have taken me from ever really developing it.)
              http://paulfurtado.com/

              Comment


              • #8
                Thread linky

                A thread to bring up stuff people want in a distribution, if relevant.

                Gary (-;
                OBDGPSLogger, for logging OBDII and/or GPS data
                OBDSim, an OBDII/ELM327 software simulator
                mp3car forums: obdgpslogger, obdsim

                Comment


                • #9
                  Just bumping for some new notes:

                  1) The SheevaPlug Installer:
                  http://www.openplug.org/plugwiki/ind...Plug_Installer

                  Running this against your plug reflashes it with an UBIFS filesystem, a new kernel with all the modules you need or want, and some other bits & pieces. If you get a plug, you want to do this. Just do it. Thanks mainly to ubifs, my plug now boots in about 10 seconds [including the 5-second pause in the bootloader]

                  2) FTDI without reflashing
                  obdgpslogger now has a module in it called "obdftdipty". If you build obdgpslogger on a system that has libftdi-dev on it, it will build that program. That program does exactly what I needed: it connects to the device and presents a pty as if it were a serial device.

                  For the benefit of obdgpslogger mainly, it also writes to a config file so that hotplugging an FTDI device will write a config file that lets obdgpslogger know which pty to connect to. Of course, you can use that with other things.


                  Guys, I was thinking maybe we...well okay, maybe YOU...could help put together a distro that would be a good mobile version that could be flashed to the plug for car use?
                  The SheevaPlug installer is almost everything you need, there, and does all of the hard work for you. The only remaining thing is getting other software on there. Thanks in large part to kev000, obdgpslogger now has the stuff it needs to build a debian package. So, for convenience, if you want obdgpslogger running on your sheeva in one easy step:
                  Code:
                  wget http://icculus.org/obdgpslogger/downloads/obdgpslogger_0.10-1_armel.deb && dpkg -i obdgpslogger_0.10-1_armel.deb
                  Be warned that that doesn't set up any hotplugging or anything. But it gets the software onto your plug :-)


                  Right now I'm looking for a USB LCD character screen. If anyone has any suggestions, please let me know. this thing looks to be the best price/feature combo for me, but I just don't know.

                  Gary (-;
                  OBDGPSLogger, for logging OBDII and/or GPS data
                  OBDSim, an OBDII/ELM327 software simulator
                  mp3car forums: obdgpslogger, obdsim

                  Comment


                  • #10
                    getting it updated sure has been fun...

                    doing a sudo php runme.php nand results in:

                    Code:
                    Open On-Chip Debugger 0.2.0 (2009-12-09-22:29) Release
                    $URL: http://svn.berlios.de/svnroot/repos/openocd/tags/openocd-0.2.0/src/openocd.c $
                    For bug reports, read http://svn.berlios.de/svnroot/repos/openocd/trunk/BUGS
                    Error: The specified JTAG interface was not found (ft2232)
                    The following JTAG interfaces are available:
                    Runtime error, file "openocd/config//interface/sheevaplug.cfg", line 7:
                         ****	openocd FAILED
                     ****	Is the mini USB cable connected?
                     ****	Try powering down, then replugging the Sheevaplug
                    I can connect to it and read output via screen now. It complains about no MMC available and drops to a MARVEL>> prompt. I've searched all over and can't find anyone else that has come across this.

                    Any help would be appreciated
                    Former author of LinuxICE, nghost, nobdy.
                    Current author of Automotive Message Broker (AMB).
                    Works on Tizen IVI. Does not represent anyone or anything but himself.

                    Comment


                    • #11
                      What's on line 7 of the sheevaplug.cfg file? Looks like the jtag interface isn't working as expected. Is there a difference in the version being used on the Sheeva vs. the version the openocd expects?
                      Originally posted by ghettocruzer
                      I was gung ho on building a PC [until] just recently. However, between my new phone having internet and GPS and all...and this kit...Im starting to have trouble justfiying it haha.
                      Want to:
                      -Find out about the new iBug iPad install?
                      -Find out about carPC's in just 5 minutes? View the Car PC 101 video

                      Comment


                      • #12
                        Originally posted by Bugbyte View Post
                        What's on line 7 of the sheevaplug.cfg file? Looks like the jtag interface isn't working as expected. Is there a difference in the version being used on the Sheeva vs. the version the openocd expects?
                        Code:
                        interface ft2232
                        ft2232_layout sheevaplug
                        #ft2232_vid_pid 0x0403 0x6010
                        ft2232_vid_pid 0x9e88 0x9e8f
                        ft2232_device_desc "SheevaPlug JTAGKey FT2232D B"
                        jtag_khz 2000
                        line 7 is the "interface ft2232". Anyone know if there is an irc channel for the sheeva?
                        Former author of LinuxICE, nghost, nobdy.
                        Current author of Automotive Message Broker (AMB).
                        Works on Tizen IVI. Does not represent anyone or anything but himself.

                        Comment


                        • #13
                          IRC channel: #openplug on freenode

                          Because I'm on a 64-bit machine I had to do it anyway, but you might be served by downloading and building the most recent openocd release - just replace the openocd binary in your flashing directory tree with the one you built, and you should be good to go.

                          Gary (-;
                          OBDGPSLogger, for logging OBDII and/or GPS data
                          OBDSim, an OBDII/ELM327 software simulator
                          mp3car forums: obdgpslogger, obdsim

                          Comment


                          • #14
                            the problem was me compiling openocd with no ftdi support. Everything up and running now!
                            Former author of LinuxICE, nghost, nobdy.
                            Current author of Automotive Message Broker (AMB).
                            Works on Tizen IVI. Does not represent anyone or anything but himself.

                            Comment


                            • #15
                              Awesome! Is it running better now that you have ubifs on there?

                              Gary (-;
                              OBDGPSLogger, for logging OBDII and/or GPS data
                              OBDSim, an OBDII/ELM327 software simulator
                              mp3car forums: obdgpslogger, obdsim

                              Comment

                              Working...
                              X