Android Transporter for the Nexus 7 and the Raspberry Pi

The Android Transporter allows you to share the display contents of your Nexus 7 tablet wirelessly with other screens in real time. Now, the first tech demo of the Android Transporter is out!

Introduction The Android Transporter allows you to share display content wirelessly with remote screens in real time. Please be aware that the Transporter is still a technology study and it is missing the maturity of a full-featured product. However, we think that the Android Transporter is already exciting enough to let you play around with it. We believe that with the recently released

Miracast standard you will get a very similar technology in upcoming Android devices, and we are considering making the Transporter compliant with the Miracast specs. The Android Transporter is a custom ROM and not an app since we had to make adjustemts to various parts of the Android platform to make it happen. Be aware that you use the Android Transporter at your own risk and that you will void your tablet’s warranty by following the setup instructions below. Moreover, you are not allowed to bundle further Google apps like the Google Play Store with our firmware image. Read on for the quick start guide and some Android Transporter internals.

Quick start guide Let’s start with the Asus Nexus 7. By installing the Android Transporter firmware on your Asus Nexus 7 all data on the device will be removed including the contents of the

/sdcard directory! So maybe you want to backup some data before you begin. To start, enable USB debugging on your Nexus 7 by switching on this option under Settings -> Developer options. Next, unlock the bootloader of your Nexus 7 device. This will void your device warranty and it will also do a factory reset! Install the adb and fastboot utilities. On Microsoft Windows you will also need Google’s USB drivers. Just search the Internet for instructions how to install this tools. Unlocking the bootloader is done by getting the device into the bootloader using the adb reboot bootloader command. Now unlock it with the fastboot oem unlock command. Download the Android Transporter firmware for the Asus Nexus 7 and unpack it. Reboot your Nexus 7 device into the bootloader using adb reboot bootloader. In the Android-Transporter directory you will find the flash script, which is called flash-all.sh. Be aware that the fastboot utility has to be available in the PATH environment for the flash script. Execute the flash script. Your Asus Nexus 7 is now ready. To switch back to the original Nexus 7 firmware image you should first download it from Google’s factory images site. Then you can flash the original firmware image using the same instructions that you used to flash the Android Transporter firmware image. Let’s move on to the Raspberry Pi. Download the Android Transporter firmware for the Raspberry Pi and unpack it. Insert an SD card into your card reader and flash the firmware image using the dd utility: sudo dd bs=1M if=esrlabs-rpi-android-transporter-2012-10-02.img of=/dev/sdX. Substitute /dev/sdX with the real SD card device name. For more information on flashing the Raspberry Pi see the Embedded Linux Wiki page for the Raspberry Pi. The Raspberry Pi is now also ready. Next, you have to set up the networking between the two devices. You can either connect both devices to your home router or you can make use of the Raspberry Pi Wi-Fi hotspot. Both scenarios require the Raspberry Pi to be plugged into your home router. The Wi-Fi hotspot works with USB Wi-Fi adapters that are supported by the Realtek rtl8192cu Linux driver. We tested the Wi-Fi hotspot with the Netgear N150 Microadapter and with the Asus N13 Wi-Fi Stick. It works well with both Wi-Fi sticks except that we occasionally had some power consumption issues with the Asus device. If you want to make use of the Wi-Fi hotspot plug in the stick before the Raspberry Pi starts up. The network name of the Wi-Fi hotspot is RaspberryPiAP and the default password is E.S.R.Labs. The Wi-Fi hotspot may have the advantage that the Android Transporter has its own dedicated network to minimize the latency jitter during screen mirroring. If you connect both devices to your home router please make sure that the Wi-Fi transmitting power of your router is set to high. Otherwise you may experience high packet loss, which is bad for the Android Transporter. When you now connect your Nexus 7 to the Wi-Fi network and start the Android Transporter you should see the Raspberry Pi in the list of available media hubs. The Raspberry Pi has announced itself as media sink via service discovery. Just tap on the Raspberry Pi item to start the screen mirroring. If you want to stop the screen mirroring just pull down the notification bar and click the Android Transporter “Switch off” item. By default the Android Transporter will make use of the H.264 over RTP over UDP streaming protocols according to RFC3984. If you are in a building with a lot of Wi-Fi networks, it may be possible that the Android Transporter does not work really well because of high packet loss. If that is the case you should switch to the H.264 over RTP over TCP streaming protocols according to RFC3984 and RFC4571. You can do this in the preferences of the Android Transporter app. The latency will typically be around 20-30ms higher when using the reliable TCP transport protocol. Enjoy the Android Transporter tech demo :-).

Android Transporter We did some measurement series to show the total end-to-end screen mirroring latency. The measurements were done using two photo diodes (one on each display) and a test app that really stresses the H.264 encoder and decoder. Furthermore, we are able to measure the time periods taken by each individual step of the screen mirroring process directly on the devices. The picture below shows the box plot for a typical Android Transporter setup where a Nexus 7 is connected to the Wi-Fi hotspot of a Raspberry Pi. The screen is mirrored with a frame rate of 30 FPS, a bit rate of 8 MBit/s and an I-frame interval of 1 using the UDP transport protocol.

You see that the total latency is typically around 207ms. But there are also a few outliers of up to 257ms. The outliers are mainly introduced by the Wi-Fi network. The work that has to be done by the Asus Nexus 7 for one video frame takes around 41ms on average. It is made up of grabbing the screen, H.264 encoding it and sending it over the Wi-Fi network. The rest of the time is mainly due to decoding and displaying it on the Raspberry Pi. To further reduce the latency one needs to work with the hardware vendors in order to minimize the time that is spent in the H.264 hardware encoders and decoders and in the vendor specific OpenMAX implementations. Unfortunately, a latency of around 200ms is too high to play fast 3D games. But it is okay for apps, videos, slide shows, photo presentations, some games, etc. The next picture shows the box plot for a Samsung Nexus S, which is mirroring its screen contents onto a Raspberry Pi. The setup is the same as for the Nexus 7 except that the I-frame interval is set to 0, which means the Nexus S is doing only I-frames and no P-frames. Unfortunately this option does not work on the Nexus 7. As you see, the average end-to-end screen mirroring latency is 175ms with outliers of up to 200ms. One interesting thing is that the Nexus S needs 74ms to grab, H.264 encode and send a video frame to the Raspberry Pi, which is worse than the 41ms needed by Nexus 7. But the Raspberry Pi is a lot faster at decoding the I-frame only video stream, which additionally has a much lower resolution. The Android Transporter player on the Raspberry Pi currently does not do buffering of video frames. It simply plays them back as they arrive. This is quite good for the real-time screen mirroring but not necessarily for all kinds of applications. This strategy is also the reason why video playback on the Raspberry Pi is stuttering a bit from time to time. We will add a buffering strategy in the future. In the meantime, maybe you want to fix that since the source code of the player is freely available on GitHub :-). Since the Android Transporter does currently not support the MPEG-2 TS streaming protocol it is not compliant with the Miracast spec. We also plan to change that in the future.

Raspberry Pi The Android Transporter player supports H.264 video as well as 44.1 kHz PCM and AAC audio streams. The

source code of the Android Transporter player for the Raspberry Pi is available at GitHub under the Apache 2 license. You may try out the player as explained on its GitHub site. E.g. you can stream videos and music to the Android Transporter player on the Raspberry Pi using the VLC streaming server. To substantially improve the real-time capabilities of the Raspberry Pi we recommend applying our Raspberry Pi Linux Kernel patch. The patch is already included in the standard Linux Kernel v3.2.27 for the Raspberry Pi, which is also used by our firmware image. To configure the Wi-Fi hotspot on the Raspberry Pi please edit the /etc/hostapd/hostapd.conf file. This is the right place to change the network name (SSID) and the Wi-Fi password. If you want to change the Raspberry Pi’s overscan settings according to the needs of your television set, video projector or monitor just log in to the Raspberry Pi via SSH and adjust the /boot/config.txt file. The user name for the Raspberry Pi is pi and the password is raspberry. For more information on configuring the overscan mode please see the Embedded Linux Wiki page for Raspberry Pi video modes. Some other configuration options of the Raspberry Pi can be adjusted using the raspi-config tool. Instead of using the Raspberry Pi as viewer for the Android Transporter you can also use the VLC or GStreamer player. The only limitation is that both players only support the UDP transport protocol. Furthermore, the VLC player introduces a much higher latency than the player on the Raspberry Pi or the GStreamer player. To use the VLC or GStreamer player you have to first start the Android Transporter app on your Asus Nexus 7. Next, use the vlc rtsp://:9000/android.sdp command to start the VLC player. Alternatively, use the following command for the GStreamer player: gst-launch -v playbin2 uri=rtsp://:9000/android.sdp uridecodebin0::source::rtpbin0::latency=10

Asus Nexus 7 The Android Transporter app allows you to change various video-encoding settings. It also enables you to announce a Nexus 7 tablet as media sink to mirror the screen contents of one Nexus 7 device to another one. Besides using the service discovery, this can also be done using the

Android Beam feature. Just start the Android Transporter on either one of your Nexus 7 devices and bump the two devices via NFC. Then touch to beam the screen contents. The total end-to-end screen mirroring latency from one Nexus 7 device to the other is around 150ms with the H.264 video decoding process consuming the biggest period of time. You will notice that the Android Transporter firmware supports the landscape mode for the Android Launcher. By default, the landscape mode is also enforced while beaming the tablet’s screen contents to the Raspberry Pi.

What’s next? We are currently working on the audio streaming support for the Nexus 7 and on the Wi-Fi Direct support for the Raspberry Pi.

Update 1 – Samsung Nexus S (GSM) We just released the

Android Transporter firmware for the Samsung Nexus S (GSM) to give you an outlook on game-playing. To flash the Android Transporter firmware please follow the instructions that you find in the quick start guide above. One problem with gaming on the Asus Nexus 7 is that the bit rate settings do not work and therefore it produces bit rates of up to 20-30 MBit/s during fast 3D games. This is way too much for a lot of WiFi routers. The high bit rate results in heavy packet loss which makes gaming on the Asus Nexus 7 nearly impossible. But thankfully, the Samsung Nexus S is pretty good at fast 3D car racing games as we already showed in our previous demo.

Update 2 – Samsung Galaxy Nexus (GSM) Due to demand, we also released the

Android Transporter firmware for the Samsung Galaxy Nexus (GSM). Keep in mind that the H.264 encoder of the Samsung Galaxy Nexus is only capable of about 20 FPS. The total screen mirroring end-to-end latency to the Raspberry Pi is typically around 270ms.

Update 3 – Android 4.2 and Miracast According to the

official Google Blog Android 4.2 will have support for wireless display so you can wirelessly watch movies, YouTube videos and play games right on your Miracast-compatible HDTV. :-) [social]

ShareTwitterFacebookGoogle+

175 Responses

  1. Anders Reply

    This is great news! Can’t wait to test it! Already downloaded and installed to SD Card – but it seems there’s a user and password needed before the fun starts? :-)

    • Anders Reply

      Sorry about that, this was a stupidity of me, not to notice the “pi” and “raspberry” in the documentation. Great work :)

  2. Anders Reply

    Been playing around with this a couple of hours and got it up and running – must say, nice job – nice job indeed!
    Although, the Nexus 7 firmware could have been a bit better (wifi goes off when it goes to sleep after around 30 secs).
    Maybe, sometime it would become possible to make the Android transporter a part of other ROM’s? *cough* Paranoidandroid *cough*

    • Daniel Himmelein Reply

      Thanks! Yes we have not included the WiFi always on option by default. As we said, this is only a tech demo and not a product. But you can adjust the display timeout as a workaround for the WiFi problem. Just go to Settings -> Display -> Sleep and set the timeout e.g. to 10min.

      • Anders Reply

        Alright, i will try that. Not a big problem though :-). Very impressed, seeing as it’s “just” a tech demo as you said :-).

      • Lane Reply

        You can change the WiFi sleep policy instead of the screen timeout. Go to Settings > WiFi then bring up the menu on the bottom right and touch Advanced. Then change WiFi Sleep Policy.

        • Daniel Himmelein Reply

          I think that will not work since the Android Transporter currently does not acquire the WifiLock. We always adjusted the display timeout and used this as shutdown to save battery. But we will add the WifiManager.WifiLock now :-).

  3. Neel Reply

    Hi guys looking great but just needing to know but is this compatible with the Samsung galexy s3 rooted with cyanogenmod 10 so jelly bean?
    Replay ASAP Neel

    • Daniel Himmelein Reply

      No. We also tested the Android Transporter on the Samsung Galaxy S3 but the performance of the H.264 encoder is not good enough when the input is a RGB image. Since the S3 also has the All-Share Cast feature it must be possible to fix that, but the necessary APIs are not documented and therefore not available to us.
      But in principle the Android Transporter should work on any Android 4.x device.

      • Neel Reply

        Ok thanks

      • Neel Reply

        So are you saying I can still try and are the Api’s documented in the documents

        • Daniel Himmelein Reply

          We have a ROM for the Samsung Galaxy S3 containing the Android Transporter. But the performance is that bad so we decided not to release it. Sorry.

          • Ruvort

            Was this the international SGS3 or the US one?

          • Daniel Himmelein

            This firmware image was for the international version.

  4. joesnose Reply

    Looks like a very happy marriage.

    After reading the comments I noted two things:

    -The s3 struggled, does that rule out us s2 users then.

    -It should work on any 4.x device, so this includes the s2. But it will need a Custom rom to support it?

    Good work.

    • Daniel Himmelein Reply

      We have never tested the Android Transporter on the Samsung Galaxy S2, so we don’t know how good the H.264 encoder performs.
      Yes you always have to build a custom ROM for the desired Android 4.x device.

  5. tommy Reply

    Do you plan to support Galaxy Nexus? Looking forward to it.

    • Daniel Himmelein Reply

      We already have it running on the Samsung Galaxy Nexus. The disadvantage of the Galaxy Nexus is that the H.264 encoder is only capable of about 25 FPS. Maybe we will build a firmware image when we are done with audio on the Nexus 7 and with WiFi Direct on the Raspberry Pi.

      • zach Reply

        you say you have it running on the Samsung Galaxy Nexus, do you have a public repo or github? or a publicly released version for the Galaxy Nexus?

        • Daniel Himmelein Reply

          Sorry, no. Currently this is only for internal use. Maybe we will release it when the audio streaming has been added.

    • Daniel Himmelein Reply

      We have just released the Android Transporter firmware for the Samsung Galaxy Nexus (GSM).

      • tommy Reply

        It works very well, thanks.

  6. Nathan Swenson Reply

    Just wanted to say thanks, and it works great! I’m actually surprised how easy it is to set it up, considering you have to flash a new ROM on the nexus 7 and put a new OS on the raspberry pi. Considering that this is necessary, you’ve made the process about as simple as it can be. Just a few notes though:

    On my old, non-HD tv, the sides of the Nexus 7′s display get cut off a bit because of the aspect ratio differences. I’m not sure if there’s currently a way around this, but it might be a good thing to look into.

    The ROM is definitely not perfect. I have trouble waking my Nexus 7 from sleep mode when it falls asleep mirroring the screen to the raspberry pi.

    I also wish the Google Play store would be built-in to the ROM, but I realize there may be legal reasons why this isn’t possible.

    Other than that, just add audio streaming and polish things up a little (reduce latency, etc) and this is a great product! Seriously, congratulations on getting all of this working. It was worth the wait. I knew there had to be some way of mirroring my Nexus 7′s display to a larger screen, and thanks to you guys it’s finally a reality!

    • Daniel Himmelein Reply

      Thank you very much.
      The display cut off problems can be solved by changing the overscan settings of the Raspberry Pi. Just check the post for the link how to change these settings.
      We are also aware of the problem with the sleep mode. It will be fixed in the next release.

  7. tom jones Reply

    What do you mean by: Moreover, you are not allowed to bundle further Google apps like the Google Play Store with our firmware image.

    Also, I assume this image is based on 4.1.1 and not the recently released 4.1.2. Also, in your earlier demo you showed a racing game, but quoting latency of 200 ms. Is there hopes of lowering it still on a nexus 7 device? And will the frame rate remain 30? Again thinking of games. But maybe this type of tech just simply isn’t suited for gaming. I’m wondering if miracast will be similar in performance.

    • Daniel Himmelein Reply

      You are not allowed to bundle the Google Play Store or other apps from the store with our firmware image because of legal reasons.
      Yes, our firmware is based on Android 4.1.1. The problem is not the Nexus 7 in the end-to-end latency but the Raspberry Pi. I think the necessary software parts on the Raspberry Pi can be optimized but unfortunately we do not have access to the source code and therefore we cannot fix it.
      Any technology including Miracast depends on the performance of the H.264 encoders and decoders. So the hardware vendors have to optimize that parts of the software and hardware.

  8. Kevin Reply

    In that this is a “demo” are there plans on making this more “useful”?. I’ve been looking forward to this as a portable business tool. Raspberry Pi with chargeable battery, WiFi Dongle, HDMI cable with DVI adapter if necessary, 4G Smart phone with tether hotspot, Nexus 7 to access it an provide content… but need (require) the rest of the business tools that we use on the Nexus 7 for business access (having a stripped down version won’t work).

    Not sure I understand the requirement for LAN… many situations where TV has no access to wired network. All current Raspberry Pi’s we have are headless, no keyboard, mouse, LAN, just WiFi Dongle, HDMI and power.

    • Daniel Himmelein Reply

      Currently we have no plans to build a full-featured portable business tool from this tech demo without a partner.
      The LAN is just to have an internet connection while the Nexus 7 is connected to the Raspberry Pi WiFi hotspot. This is not necessary anymore once we have WiFi Direct support.

  9. Mael Reply

    Do you think that your job can be upgrade to my windows 7 laptop and make the same mirroring for a projector?

    Congratulation for your very nice job !!

    • Daniel Himmelein Reply

      Currently we focus on Android devices.

      • Mael Reply

        Ok thanks too much for your response.

  10. tom jones Reply

    If anyone can chime in and state if this is in the miracast spec but I’m hoping this is feature of transporter, if not I would think it would be nice to add this down the road.

    The ability to turn off the tablet screen without interrupting the stream. I can think of two scenarios where this would be beneficial: When you are streaming a movie, why would you want the battery draining and displaying the same content when the tablet will probably remain untouched during the movie stream.

    The second involves gaming. If someone is using a gamepad via bluetooth and streaming to a large display, again why have the tablet screen on sitting idle when the screen is what takes the most battery. I know the latency isn’t there for gaming just yet but I could see that being a desired option. Even say someone is browsing the net on large display, they might have a bluetooth keyboard/mouse and again, would not be touching the tablet/phone.

    • Daniel Himmelein Reply

      This is just our implementation. As we already said this is only a tech demo and not a full-featured product. We will fix that in the future.

  11. Bang Reply

    Any possibilities that the PI-firmware could be installed as a sort of “program” in other Pi-firmwares? For instance the XBMC or regular debian?
    Thanks in advance, and nice work!

    • Daniel Himmelein Reply

      Yes, the software is open source as described in the blog post. Hence, it can be used on any other firmware. Just read the article for more information.

  12. Richard Reply

    Hi E.S.R.Labs,

    What a great work! well done ESR!!!

    I have a HP touchpad with CM9 and RPi. Does your Nexus 7 ROM run on these devices?

    Thanks very much.
    Rich

    • Daniel Himmelein Reply

      Sorry, no. We currently have firmware images for the Nexus 7, the Galaxy Nexus and the Nexus S.

  13. Ruvort Reply

    Will you be able to put together a patch for the SGS3?

    • Daniel Himmelein Reply

      No, we currently don’t plan to build a firmware image for the S3 because of the performance issues we had with the H.264 encoder on this device.

  14. catchmartin Reply

    Can this work over the Raspberry Pi’s built-in ethernet connection? I installed the system but don’t have USB wifi dongle. Without this, the ethernet port and other USB devices appear to have been disabled. As a result, I am unable to login to the Raspberry Pi to configure it further.

    • Daniel Himmelein Reply

      Yes, it does. Just connect the Raspberry Pi to your home router via LAN and your Android device via WiFi. Then start the Android Transporter app on your Android device. It should recognize the Raspberry Pi as media sink. Tap on the Raspberry Pi item to start the screen mirroring as described above in the blog post.

      The ethernet port on the Raspberry Pi should always work. We have not changed this behaviour.

      • catchmartin Reply

        Error was caused by the power supply providing insufficient current. Setup works very well!

  15. B Crowie Reply

    Do you have any plans to release the source code for this project so others may be able to implement it into their own custom roms?

    • Daniel Himmelein Reply

      For now, we want to add audio support first. So, let’s see.
      If some hardware vendors would be interested in this to improve the latency of their H.264 hardware and OpenMAX implementations we will definitely think about it :-).

      • Luke Morton Reply

        Are you planning on allowing audio (DTS, etc) to passthrough so it can be decoded downstream (by an AV receiver for example)? If not, what audio codecs will you be supporting?

        • Daniel Himmelein Reply

          We will add a simple PCM audio streaming first.

  16. Rick Reply

    Any chance that this will be updated to a Android 4.1.2 ROM?

    • Daniel Himmelein Reply

      No, sorry. There were only very minor changes in Android 4.1.2. It’s not worth the effort for us.

  17. Ian Reply

    so will more custom roms come out to test which phones are up to encoding,

    • Daniel Himmelein Reply

      No, currently we do not plan to do so. The Nexus 7 encoding performance is already quite good. But the decoding performance could be better.

  18. Michael Reply

    Just tried the Nexus 7 image with VLC.
    Not bad, seriously.
    Thanks a lot for your work, and for porting the mirroring on our nexus 7!

  19. Phil Reply

    Very impressive. Tried it with my Pi and Nexus 7 and video was perfectly watchable.

    BTW thanks for including ROM manager in your firmware it makes life so much easier for reverting back to your original backup after playing with this.

  20. antonioc Reply

    very amazing project :) i just see you released transporter for gnex GSM too, any chanche to stream to samsung smart tv es8000 series? thanks!

    • Daniel Himmelein Reply

      No, currently not. But that would be really cool :-).

      • antonioc Reply

        If you plan to work on it, i Can be your beta tester ;)

  21. lala Reply

    Hi,

    will it give this great stuff as an App in the future?
    Because i dont want to flash a CustomROM on my N7.

    thx lala

    • Daniel Himmelein Reply

      No, this is simply not possible because of technical reasons.

  22. Atsie Reply

    Great work guys! This is really needed for the halo-effect which AirPlay is brining to Android.

    Any release dates on the .apk? :-)

    (having a Xoom,HTC one X RapPi and would be glad to test)

    • Daniel Himmelein Reply

      This is not just an .apk since a whole firmware update is required to make the Android Transporter work. Three firmware releases are already available.

  23. Jonno Reply

    Hi, it would be amazing if you guys could create an audio (just audio not video) streamer to AirPlay speakers.

    I would love to be able to route my Google Music to the Airport Express plugged into my speakers.

  24. Björn Reply

    So… would it be a lot of work to make the pi part of the software compatible with miracast? This would enable it to be used with a lot of coming devices (and the sgs3).

    • Daniel Himmelein Reply

      It is some work. But since the our player on the Raspberry Pi is open source you can help us with that task :-).

      • Björn Reply

        I wish i could! However I know nothing of this. Anyway, the interest for this should have increased even more now that android 4.2 includes miracast. Maybe some other people from the rpi community would be interested?

  25. Prashant Reply

    1. How does the Android phone captures the screen data ? Is it continuous frame capture at 30 fps?
    2. Does it send the image file or the RGB values to Raspberry?
    3. Finally how does Raspberry decodes the image to h.264

    • Daniel Himmelein Reply

      You can adjust how Android captures screen data. You can set 10, 20, 25 and 30 FPS. There is also an option in the Android Transporter app called “Automatic frame rate” which captures a frame only when the screen is recomposited. That’s very good for the battery :-).
      The Android Transporter sends the H.264 data according to RFC3984.
      Since the player on the Raspberry Pi is open source you can take a look at the code to find out how the Raspberry Pi decodes the data. It uses the proprietary OpenMAX API of the Raspberry Pi.

  26. Dan Reply

    How many files need to be modified within Android? Is it simply libs and java? All your releases currently support AOSP but I am wondering what the possibilities of decompiliing aspects of Touchwiz (Galaxy S3) ROMs would be and adding the required code?

    Thanks in advance

    • Daniel Himmelein Reply

      In principle that may be possible. We make adjustments mostly to the native Android platform. The Java code was only adjusted for the Lauchner. So you can give it a try. :-)

      • Dan Reply

        That’s interesting. In which case, any thoughts on releasing a 3rd party launcher or application / plugin on Play?

        Is the amended code published anywhere?

        • Daniel Himmelein Reply

          We do not plan to release the Android Transporter or parts of it on Google Play. The source code is currently also not available. But Google has added this feature to the Android 4.2 source code (at least partially).

  27. Søren Reply

    Nice demo.

    I have a Samsung Galaxy S3 witch has “AllShare Cast” functionality – or miracast functionality. As I understand this is the same thing. Your demo shows what will come when miracast enter android 4.2 Jelly Bean+ hopefully. My interest is in the “miracast” program on the Raspberry pi. Is this just a simple program or does the program require kernel modules or special hardware. What will a miracast linux program require?

    • Daniel Himmelein Reply

      Yes, what the Android Transporter does is very similar to Miracast. One difference is that we use protocols according to RFC3984 while Miracast uses the MPEG-2 TS streaming protocol. One other thing is DRM.
      The player on the Raspberry Pi is inspired by Android’s Stagefright media framework. The player currently only supports RFC3984 and not MPEG-2 TS. The Linux Kernel patch we applied was specific to the Raspberry Pi’s realtime behaviour. So our player does not depend on additional kernel modules. It is just a normal Linux program except for the RPiPlayer class. This class wraps the Raspberry Pi’s proprietary OpenMAX implementation. You would have to adjust this class to make the player work on other systems. What you may do if Google relases the whole Miracast stack (what they hopefully do) with Android 4.2 is to just use their sources to build a Linux Miracast player.

  28. flo Reply

    what is the cheapest hdmi dongle I can get, that supports this and miracast? thx

    • Daniel Himmelein Reply

      I think there is none. You can use the Raspberry Pi, GStreamer or VLC for our Android Transporter and any Miracast-compliant Dongle for Android’s 4.2 Miracast feature.

    • jasemine Reply

      Hi,
      I am very excited about this great thing – I have read about miracast which is implemented in Android 4.2 and will be available in many future devices.
      I would be very interested about some architectural aspects:

      - I have heard about WIFI direct, but is it then also possible to use the Internet uplink of a mobile device (like tablet) in parallel to Miracast
      - is is also possible to implement a player (for miracast) on a rasberry pi
      (would the wifi direct or a cable connection to an existing LAN be used ?)
      - is is also possible to implement a player (for miracast) or on device (such as an existing Linux settop box) which is connected via a cabled LAN to a WLAN network, were also the mobile devide is connected
      - of cause I understand the advantage of having a WIFI direct connection because an existing WLAN is not required, but if one is there and a small (and cheap) device that sits on bottom of a TV (cabled connection) is already available, it would be a great think to reuse this item.

      regards
      Jasemine

      • Daniel Himmelein Reply

        The benefit of Wifi Direct is that your tablet (or phone) can be connected to the internet via your WiFi router and it can simultaneously be connected to a WiFi Direct device. So yes to your first question.
        It is possible to implement a Miracast player on the Raspberry Pi. But I don’t think that the Raspberry Pi supports DRM encryption in hardware which is necessary for realtime video. So you can implement a Miracast player that lacks DRM encryption.
        I am not really sure what you mean with your 3rd and 4th question. But in priniciple you can use many network topoligies for your setup.

        • Jasemine Reply

          Regarding my third and forth question:

          Well, think of an existing flat tv and an existing linux settop box that is connected to a LAN network for internet access through a usual wifi router. ( eg. Dreambox, wd live tv or other). These devices are capable to accept dlna streams. Hardware decoding of h.264 is embedded there and they do have a LAN interface. Usually they do not have a wifi interface for wifi direct. So the question is if miracast is just a kind of protocol that can also be handled over a LAN interface in such a settop box. I mean without the need of a hardware enhancement ( what a wifi direct interface would be)
          Regards
          Jasemine

          • Daniel Himmelein

            Miracast is just a protocol that uses UDP or TCP as transport protocols and wraps the media data within RTP (RTSP, RTCP) packets. So it is independent of the underlying physical layer. It does not matter if you use wired Ethernet or WiFi. So there is no need for WiFi Direct.

  29. Matthew Reply

    Is there an ETA on when we will see wifi direct support as well as audio. I have a tendency to leave my android firmware factory but really would like to see the pi as a low cost Miracast dongle.

    • Daniel Himmelein Reply

      Sorry, no. We have a first version of the Android Transporter that has both WiFi Direct and audio support. But currently we do not have much time to complete that work on the Android Transporter.

  30. CJ Reply

    So nice!
    Thanks to your work, I have the feeling that the main lack of the N7 will be solved. I would like to use my N7 for presentations. And, maybe, it will be possible with your solution.

    Do you plan to release the source code at the phone side? It will be great if persons from the XDA forum will integrate your work in their custom ROM.

    A small question. How long the raspberry pi needs for booting with your configuration?

    • Daniel Himmelein Reply

      Android 4.2 has Miracast support build in. I already checked the source code but I am not sure if that feature is enabled on the Nexus 7 (running Android 4.2). But I am pretty sure that people from XDA will do this if it is not enabled by default. Maybe we will also improve the Nexus 7 based on Google’s Miracast stack :-).
      The Raspberry Pi takes quite long to boot. We have not optimized this. I think it is about 30 seconds.

      • CJ Reply

        As far I know, the N7 will never be miracast compliant. There is no guarentee N7 will work with miracast devices. That’s why I find your project very interesting since it provides a very good alternative.

        • Daniel Himmelein Reply

          So let’s see if we can fill this gap :-)

  31. Uranus Zhou Reply

    Is there any chance to make Android Transporter compatible with Intel Wireless Display?

    Thanks

    • Daniel Himmelein Reply

      Currently we do not plan to do that.

  32. John K. Reply

    Hi again,

    earlier you have mentioned, that this method of wireless display is independent of a specific hardware layer. To my understanding it takes advantage of hardware video encording capabilies on the source side and hardware video decoding capabilites on the target side, while transmitting the content over WIFI.

    Because the WIFI connection is strongly limited by distance and number of walls, WIFI may get problems. I have also taken a look at Intels WIDI (which looks pretty the same for me), but always I only see this WIFI connection.

    What I am searching for is also a possibility to display the desktop of a windows computer in another room in the house.
    (Independent from distance and walls).

    So I am asking: Is it possible to create a source of miracast also on a PC (Windows) and use a wired LAN for transmission. This would definitively increase stability.

    Does your Rasberry Pi implementation of android transporter work over LAN or WIFI ?
    Will you continue to develop this and provide a Miracast compliant implementation on Rasberry PI, which can be used with a Galaxy S3 for example ?

    kind regards
    Jasemine

    • Daniel Himmelein Reply

      The Android Transporter implementation is not independent of a video encoding/decoding HW at all. Currently it uses Android’s Stagefright and OpenMAX APIs to achieve this.
      But the Android Transporter does not depend on whether you use a wired LAN connection or a WiFi network to interconnect the streaming server with the viewers.

      The Miracast spec states that Miracast will only work in conjunction with WiFi. But technically the protocol stack (IP/UDP/MPEG2-TS) is the same for wired local area networks. But you don’t have WiFi Direct on LANs of course. Maybe they will lower these requirements in future to make it work over wired LANs.

      The Raspberry Pi implementation of the Android Transporter works with both LAN and WiFi. Maybe we will make an MPEG2-TS compliant version of the Android Transporter. Then it will be almost Miracast compliant but it will lack DRM encryption. So most probably this will also not work with a Galaxy S3, sorry. But without having DRM encryption/decryption in hardware this makes no sense for realtime video streaming.

  33. tom jones Reply

    As you are probably aware, miracast is not currently enabled on the Nexus 7. Some xda users are speculating that it’s because the wifi is only 2.4 ghz and not 5 ghz. Some saying it’s required in the miracast spec, some not.

    As you are obviously familiar with technology like this, could you see any reason why the nexus 7, from a hardware standpoint, would not meet the requirements for miracast? It’s difficult to accept a hardware limitation considering the work your team has done.

    • Daniel Himmelein Reply

      I am also not sure why they don’t release this feature for the Nexus 7. Maybe it has no DRM hardware encryption support, but I don’t know.

  34. Mark Reply

    Any plans to release the android source in the future? Even just for the playback element (as a reference example for low-latency h264 playback would be immensely useful to alot of people)?

    • Mark Reply

      Oh, and as a quick followup, is there support for multicast, so you could potentially have your one android client serving up content to other android clients/rasbperry pi clients simultaneously?

      • Daniel Himmelein Reply

        Currently there is no multicast support but is sould be only a minor change to enable that feature.

    • Daniel Himmelein Reply

      We are not sure for the encoding side since Android 4.2 already contains some Miracast code. The Raspberry Pi code is already available at GitHub: https://github.com/esrlabs

  35. d1dd1 Reply

    Great project !

    Is there any news about Miracast support ?

    • Daniel Himmelein Reply

      Thanks, currently there is no news about Miracast. Since the Android Transporter is one of our “spare-time” projects we are not constantly working on it. Maybe I find some time to work on the Android Transporter in the new year.

  36. ahmed Reply

    Hello there,

    Good job on the android transporter. I wanted to know if your custom rom is different from the 4.1.1 on my galaxy s3??

    and is there any possibility that this android transported can be turned into an app in the near future, rather than us (users) flashing and installing custom ROMs?

    and whats up with the google play store in your custom ROM? is it not accessible or?

    many thanks and keep up the good work :)

    • Daniel Himmelein Reply

      Yes it is. We touched some services of the Android platform to make it work.
      The Android Transporter requires a firmware upgrade, since we use a lot of private API that is not available in the Android SDK. Furthermore we do not support the Google Play Store.
      But with Android 4.2 Google introduced Miracast into the Android platform, which is basically the same as the Android Transporter.

  37. Eric Reply

    Hello,

    First of all thank you very much for this project!
    I have only one question:

    Is it possible to connect the nexus 7 AND the rasspberry pie to my home network using wifi and Start the transporter? I was only able to get it working using an Ethernet connection. I read through all the comments but it seems no one had asked that yet (maybe i have overseen something….)

    So is there something wrong with my setup or is it simply not possible to connect through wifi and Start the transporter?

    Greetings from Germany

    • Daniel Himmelein Reply

      Yes it is possible to connect both devices as clients to a WiFi router. Therefore you have to stop the WiFi hotspot on the Raspberry Pi. It is started during boot by init. Just use update-rc.d to disable hostapd startup. Then reboot and use the wpa_supplicant comand to connect your Raspberry Pi to your WiFi router.

  38. Aung Reply

    Well I have a Samsung galaxy s3 with android jellybean 4.1.1 running on it.

    I wanted to know if I could possibly connect my s3 to raspberry pi and mirror it on my tv as my s3 already contains the miracast (wifi direct) i.e. like you said it’s the same as android transporter.

    So does that mean i would just need to configure the raspberry pi? And than connect it to my galaxy s3?

    Many thanks :)

    • Daniel Himmelein Reply

      Sorry, but it is currently not possible to use our Raspberry Pi player in conjunction with the Samsung Galaxy S3. One problem is that our software streams the H.264 content via RTP (RFC3984) while Miracast uses the MPEG-2 TS streaming protocol.
      So both technologies are very similar but they use different transport protocols.

  39. Raoul Reply

    Could i run the rapi Linux in a vm?

    • Daniel Himmelein Reply

      No, you can’t. We make use of the Raspberry Pi’s proprietary OpenMAX API which only works on the real hardware.

  40. JCaselles Reply

    Could Android Transported be flashed with MultiROM? It needs a kernel with Kexec-hardboot support, if it does have it’s own modified kernel.

    So, does this custom ROM flash it’s own modified kernel? and if so, could it be possible to include Kexec-hardboot support? I could do it myself, but as far as I know, you won’t release the source code, won’t you?

    This could really solve the issue of flashing a ROM whithout Gapps support…

    • Daniel Himmelein Reply

      The Android Transporter firmware image includes a custom kernel. But the only thing we added is a custom LogCat group named “log_at” for the Android Transporter. E.g. you can add this group to samsung/drivers/staging/android/logger.c.
      With this Linux kernel patch you should be able to run the Android Transporter firmware.

    • Daniel Himmelein Reply

      Since the Android Transporter is not compliant with the Miracast specification it does not work with the LG Nexus 4.
      You have to use Miracast dongle to get the screen mirroring working with the Nexus 4.

  41. Howard Reply

    Any plans to update this to firmware 4.2.1 on the Nexus 7 grouper?

    • Daniel Himmelein Reply

      We plan to do this, but since this is a “spare-time” project we cannot promise to do so.

      • Howard Reply

        Understandable, the Users feature in 4.2.1 is really useful. Is this something you want to open source license, I am sure you would get a lot of help from the community.

  42. JCaselles Reply

    I’ve managed to mirror the nexus7 to the Raspberry Pi using the test procedure explained in the AndroidTransporterPlayer GitHub readme, but I-m not able to do it the “normal” way, if there is any. The Raspberry Pi doesn’t appear in the Android Transporter app, and I can’t figure out what should I do to make it work. Any help would be very much apreciated.

    for example, should I start the ui (“startx”) or it should be visible even without?

    for the record, I’m using the Raspberry Pi wired, not with wifi adapter. Should I change something in the configuration?

    Any help would be very much apreciated.
    Thanks!

    • Daniel Himmelein Reply

      The Android Transporter and the Raspberry Pi make use of the Zeroconf service discovery protocol to find each other. Therefore your router has to correctly forward UDP multicast traffic from LAN to WiFi and vice versa. Maybe the UDP multicast traffic is blocked by your router.
      You do not need to start X on the Raspberry Pi.
      Hope that helps.

  43. anonymous Reply

    please get this for nexus 7 stock rom and maybe to a windows pc

  44. Kyle Reply

    Is it possible to run Android Transporter without a Raspberry PI? Instead, can I use the raspberry pi firmware via bootable usb stick on a computer.

    • Daniel Himmelein Reply

      No that is not possible. The Android Transporter firmware for the Raspberry Pi only runs on the Raspberry Pi and not on other hardware platforms.

  45. Keith Parker Reply

    I’m a new Pi user and I’m just using the WiFi AP functionality of this – works great, thanks! However, powering off the Pi without proper shutdown causes a problem with re-booting the Pi. There’s no way I can get to the OS at all. Had to re-flash the SD card to get going again. Is there a way to shutdown properly other than to SSH and do it manually?

    • Daniel Himmelein Reply

      I don’t know of such a method. But it would really be helpful :-)

      • Keith Parker Reply

        Thanks Daniel. Tried it after changing WiFi settings and saving the SD image and now the Pi appears dead, with just a Raspberry image on screen and one red LED on. Will try it with a ‘normal’ image. Never mind… :(

        • Daniel Himmelein Reply

          Ah, I know that problem. But this is not due to a corrupt filesystem. This is the Raspberry Pi hardware itself. We have five Raspberry Pi’s here and two of them show the behavior you explained from time to time. If you unplug the power cable from the Raspberry Pi and wait a while the problem disappears. Really strange…

          • Keith Parker

            Just got the same result myself – Pi now ok again. Odd behaviour from a digital device…

            Thanks for the help and again for the AP image.

  46. GL Reply

    Is it possible to stream from Nexus S to another android device which has VLC player?

    • Daniel Himmelein Reply

      I have never tried that but it should work.

  47. TBoyH Reply

    Will this be available for the Samsung galaxy s3 soon?

    • Daniel Himmelein Reply

      No. We tried getting this running on the Samsung Galaxy S3 but the H. 264 encoder performance is very poor using the standard OpenMAX APIs. I think they are doing the RGB to YUV conversion in software and not in hardware.

  48. Aaron Carson Reply

    Is anyone else having the issue where the Nexus 7 simply won’t see the Raspberry Pi? It is really irritating :-p The worst thing is though, it worked fine to start off!

    • Daniel Himmelein Reply

      Hm, strange. Can you describe your setup steps a bit?
      A workaround would be to enable the developer options in the settings menu and then use the options menu to manually connect the Nexus 7 to the Raspberry Pi.

  49. John Reply

    Hi,

    I’d like to point out that there’s one thing you guys have done but it’s being downplayed in the post; you have made hostapd work with the RTL8192cu chipset. Myself and many others (just google “RTL8192cu hostapd” or read http://blog.sip2serve.com/post/38010690418/raspberry-pi-access-point-using-rtl8192cu), would really really appreciate it if you published the patch you wrote for hostapd to work with this chipset.

    Thanks a lot!

  50. Martin Reply

    Really nice work!

    Any news about sound streaming?

    Is it possible to mirror the Nexus 7 screen while surfing the internet?

    Please keep working on the Nexus 7. Because of the missing support of Miracast for the Nexus 7, I put my hope on you!

    • Daniel Himmelein Reply

      We have a prototype that does audio streaming but we hadn’t had time to work on the Android Transporter since December. The prototype also supports WiFi Direct.
      You already can surf the internet while mirroring the Nexus 7 screen when you plug your Raspberry Pi’s LAN cable into your home router. Then the Raspberry Pi acts as a WiFi hotspot.
      Currently I cannot make a promise on the future of the Android Transporter since this is one of our “spare-time” projects. Let’s see where we get…

      • Martin Reply

        Alright, thank you. I keep my fingers crossed!
        (And, for sure, I am not alone :)

        • Martin Reply

          What does “prototype” actually mean? A new custom rom or a special device? Anyway if you need someone for testing it, I would suggest myself as a voluntary tester. :)

          • Daniel Himmelein

            By prototype I just mean an newer Android version for the known devices, the Nexus S, Galaxy Nexus and Nexus 7.

      • Sriram Reply

        Hi,
        Really neat demonstration. I am curious as to how you are doing Wi-Fi Direct? Is it on the Raspberry Pi or on the Phone or both sides?

        • Daniel Himmelein Reply

          WiFi Direct is working on both sides.

  51. Tjard Reply

    Bit noobish here, but is it also possible to make this work for htc devices? like the One X? (saw the reply on the gs3, but was hoping for better results for htc)…

    many thanks in advance.

    best regards,

    Tjard

    • Daniel Himmelein Reply

      I really don’t know. We never tried to get the Android Transporter running on HTC devices.

  52. Frank Reply

    Amazing work, this is awsome !

  53. Logan Reply

    This seems like an awesome project. However, I have followed the instructions above for connecting a nexus straight to a raspberry pi over wifi and when I try to connect to the pi the it comes up with an error about libgles2 and an invalid ELF header. Can anyone help?

    • Daniel Himmelein Reply

      Hm seems strange. Do you use our Raspberry Pi firmware image? This should not produce an ELF header error. Maybe you should try to flash the SD card again.

      • Logan Reply

        Yep, flashing the SD card over again fixed it. Should have done that before looking for help.

        This is pretty awesome. Thanks for all the hard work!

  54. Daniel Reply

    Ich habe hierzu mal eine Frage, ist es möglich diese Image nicht als Image zur verfügung zu stellen sondern so das ich sie in meine bestehende Rapsberry Installation einbringen kann? Ich nutze im Moment Xbian auf dem Raspberry und möchte nicht immer zwischen zwei Images hin und her springen….

    • Daniel Himmelein Reply

      Der AndroidTransporterPlayer für den Raspberry Pi ist OpenSource und kann hier heruntergeladen werden: https://github.com/esrlabs/AndroidTransporterPlayer. Auf der Seite ist auch eine Anleitung zum Bauen. Was dann noch fehlt sind die /usr/bin/AndroidTransporterControl, /usr/sbin/mdnsd, /usr/sbin/dnsmasq und /usr/sbin/hostapd Binaries. Diese können einfach von der SD-Karte unseres Images kopiert werden. Außerdem sind hierzu auch noch die Startup-Skripte unter /etc/init.d notwendig (ap, atc, dnsmasq, hostapd, mdnsd). Diese auch einfach kopieren und anschließend aktivieren:

      update-rc.d mdnsd defaults
      update-rc.d atc defaults
      update-rc.d ap defaults
      update-rc.d hostapd defaults
      update-rc.d dnsmasq defaults

      Was jetzt noch fehlt sind die Konfigurationen für dnsmasq und hostapd (/etc/dnsmasq.conf und /etc/hostapd/hostapd.conf).
      Diese ebenfalls kopieren.
      Im root Verzeichnis sollte sich außerdem noch eine Datei namens “create-symlinks.sh” befinden.
      Diese einfach einmal mit root-Rechten ausführen: sudo /create-symlinks.sh.

      Nun sollte hoffentlich alles auch auf einem anderen Image funktionieren.

      • Daniel Reply

        Wäre es möglich das du die Infos hier noch auf der GITHUB Seite ergänzt? Gibt bestimmt paar Projekte die das ganze in ihr eigenes Image implementieren wollen….. Wäre wirklich super!!

  55. Erik Reply

    Hi,

    “Instead of using the Raspberry Pi as viewer for the Android Transporter you can also use the VLC or GStreamer player.”

    Does it mean we can use VLC or GStreamer on PandaBoard as the player?

    Or maybe need the Raspberry Pi Linux Kernel patch at first (with necessary modifications for PandaBoard)?

    Thanks.

    • Daniel Himmelein Reply

      Yes you can use any VLC or GStreamer player. The only thing is that the latency is possibly not as good as using the Raspberry Pi. You don’t need the kernel patch since it is specific to the Raspberry Pi.

  56. Daniel Reply

    one question, do you need a spezial ROM on the Device to use this? I thought this is implemented in Android 4.2 so i dont need a spezial Room on the device!?

    • Daniel Himmelein Reply

      What comes with Android 4.2 is Miracast. Since the Android Transporter is not compatible with Miracast it won’t work without our custom ROMs.

      • Daniel Reply

        oh okay, i thought this Android Transporte IS Miracast compatible…. are there any plans to make it compatible with Miracast?

        • Daniel Himmelein Reply

          Yes we would like to do so, but currently we don’t have the time to work on the Android Transporter :-(.

          • Daniel

            hmmm okay, hope you will find the time for this… i thing when it is miracast compatible there are a lot of people that use this tool…..

  57. tom Reply

    Hallo,

    ich hab grade gelesen, dass es möglich ist, GStreamer als Player zu verwenden ! Heisst das letztlich, dass es einerseits möglich wäre, den Player kompatibel zum Miracast Standard zu machen (als Empfänger) und andererseits zum Beispiel Enigma2 Satellitenreceiver (z.B. Dreamboxen), die per LAN Kabel an einem Heimnetzwerk mit WLAN hängen, (im Enigma2 gibt es GStreamer) zum Player zu machen ?
    Das wäre der WAHNSINN !!

    • Daniel Himmelein Reply

      Da wir als Übertragungsprotokolle H.264 over RTP over UDP nach RFC3984 verwenden, ist es möglich mittels GStreamer und VLC den Stream wiederzugeben. Allerdings kann weder GStreamer noch VLC derzeit einen Miracast Stream wiedergeben, jedenfalls meines Wissens nach.
      Wir können unseren Android Transporter allerdings noch Miracast kompatibel machen, das ist richtig.

      • tom Reply

        Ok, verstehe ich es also richtig, dass der GStreamer sozusagen als Player Backend den Stream abspielen kann und man “nur” das Stück Software im Empfänger so anpassen muss, dass es das Miracast-Protokoll versteht und die empfangenen Daten dann an dem GStreamer weitergibt ?

        • Daniel Himmelein Reply

          Nicht ganz. Der GStreamer Player kann derzeit noch keine Miracast Streams wiedergeben. D.h. auch wenn wir unseren Android Transporter so anpassen würden, dass er Miracast Streams generiert, können diese nicht vom GStreamer Player wiedergegeben werden.
          Im Moment spielt das im Zusammenhang mit dem GStreamer Player auch keine Rolle, da wir die Protokolle H.264 over RTP over UDP nach RFC3984 verwenden. Und diese Streams kann der GStreamer Player heute ja auch schon wiedergeben.

  58. Jacob Robfogel Reply

    I have tried to get this working on my Samsung Nexus S, but do not see anything on the phone. I am not sure if I am installing correctly, as when I try to Flash the phone I get:
    bash-3.2$ ./flash-all.sh
    ./flash-all.sh: line 17: fastboot: command not found
    ./flash-all.sh: line 18: fastboot: command not found
    ./flash-all.sh: line 20: fastboot: command not found
    ./flash-all.sh: line 21: fastboot: command not found
    ./flash-all.sh: line 23: fastboot: command not found

    Any help would be most welcome.

    • Jacob Robfogel Reply

      Sorry I think I figured out the first question, but now failing during the flash-all.sh:

      Device product is ‘herring’.
      Update requires ‘tuna’.

    • Daniel Himmelein Reply

      The fastboot command is missing which is part of the Android SDK. You can download the Android SDK here: http://developer.android.com/sdk/index.html
      After installing the SDK you have to put the platform tools into the path, e.g. “C:Program Files (x86)Androidsdkplatform-tools”.
      Then, it should work.

      • Jacob Robfogel Reply

        Thanks for this, I did get it all installed and working great. I saw another reference to getting Transporter installed within XBMC, but was wondering if you had any more detailed instructions on how to do that. Really appreciate your efforts here.

  59. Tom Reply

    I have a question in regard to the raspberry pi firmware. Is the firmware standalone(includes OS) or is it a package that is installed on top of a pre existing OS on the SD Card?

    When I install the firmware to the SD Card with the method stated. My Raspberry Pi doesn’t not boot. Only get “ACT” light for half a second. I do not get any video or any other response from it. My RP is the newer 512MB Model B.

    Is there some prerequisite that I may be missing that would cause this?

    • Daniel Himmelein Reply

      The Raspberry Pi firmware image is a bootable image including the Linux operating system. Maybe you should try to download and flash the image again. We also have the firmware successfully running on a Model B hardware, so this should not be a problem.

      • Tom Reply

        I’ve tried re downloading the firmware and re flashed the SD card to no avail. Its still doing the same thing.

        Is there an alternative way to get Android Transporter capablilies on my Raspberry Pi besides this firmware?
        Maybe a debian package?

        • Daniel Himmelein Reply

          Hm, sounds strange. Have you already tried another SD card?
          We only have the firmware image, no Debian package, sorry.

    • Eric Reply

      Hi,

      Same problem for me, redownload img, reflash with differents tools, same :-:(

        • Eric Reply

          Yes, with original it’s work !!! Used Win32diskimager and flashnul, same thing with transporter img. doesn’t boot.

          • Daniel Himmelein

            Ah ok. I never used the Win32DiskImager tool. I always used dd. I will check the Win32DiskImager tool tomorrow.

          • Eric

            Tested with dd, same thing. :-(

          • Daniel Himmelein

            I now downloaded and flashed the firmware image again and it works fine for me. I tested it with a 4 and 8 GB SanDisk SD card and with a 16 GB Transcend SD card. Here is what it did:
            1. After downloading the Raspberry Pi firmware image zip file I extracted the img file.
            2. I unmounted all auto-mounted partitions of the SD card: sudo umount /media/<partition-id>
            3. I flashed the image to /dev/sde: sudo dd bs=1M if=esrlabs-rpi-android-transporter-2012-10-02.img of=/dev/sde
            4. I did a “sync”. I don’t think that this is really needed.
            Then it should work.

  60. spriggsy Reply

    hi, i would like to say that you have made a fantastic product that works perfectly. many thanks. however when ever i try to “sudo apt-get upgrade” the pi fails to load. do you know of the correct way to fix this? is it a known problem with any conflicts of the installed programs?

    • Daniel Himmelein Reply

      Hm, interesting. I never tried to update anything up till now. Have to check this next week.

  61. p4trykx Reply

    Have you tried to make a rom for Nexus 4 (the LG one)? I know it has Miracast but Android Transporter seems to be way easier to use.

    Could you tell if it’s feasible to make a Miracast player for Raspi that will support DRM? I suspect that drm is needed to i.e watch videos form apps like Netflix. Or maybe there is some way to hack the Android/app to think it talking to fully protected player.

    • Daniel Himmelein Reply

      No, sadly we didn’t have the time to port the Android Transporter to Android 4.2 and to the Nexus 4. I think realtime DRM support for the Raspberry Pi is quite tricky if not impossible since that has to be done in hardware for efficiency reasons.

      • p4trykx Reply

        Probably the content form Miracast is encrypted and no one will give the decryption keys to an open source player for Raspi. There seems to be a relatively cheap($60) Netgear P2TV which supports Miracast.

Leave a Reply

  • (will not be published)

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>