How to Overwrite a pre-loaded Android R2?

Hi, I just am getting started in the BPI community but I’m hitting some blockers right out of the gate. I received my BPI R2 (v1.2) with Android preloaded on the emmc.

I’ve tried to boot from 3 different images (ubuntu-mate linked in getting started, armbian, opensuse) and 5 different brands of SD card all with no success. I’ve tried dd, bpi-copy, etcher. Same non-result in every case.

No matter what happens, it always just boots into Android. To dig in I’ve tried to hook up the UART dev interface and connect w/minicom or screen.

I have the UART -> USB cable hooked up, and no matter what I do there, I always get garbage on the interface. I’ve tried changing the speeds, using screen vs minicom, using the uart on the 40 pin connector vs the dedicated uart pinout. Nothing works. On the 40pin I never get any input, but on the dedicate uart “dev” pins I only get serial garbage|690x379

At this point I don’t know what I can do to get past this pre-installed android build and on to arm linux distros.

I’m not sure if I have a hardware failure somewhere or if I’m just missing some critical step. Any direction or ideas is appreciated!!

If its of any help, I purchased the kit from here:

Thanks in advance! Andrew

The dedicated pins are right…not the 40pin-header.

I don’t know if android brings anything useful on debug-uart,but preloader should be used also there.

Uart-garbage is mostly a wrong setting. Right is: 115200 8N1 FlowControl: off

As for your main-problem: have you installed android on emmc? With hw-rev 1.2 afaik the boot-switch (above sd-slot) have to be set to sd to boot from this if both devices contain bootable systems. If this is not the case you mabe have flashed images wrong (packed image,flash to partition instead of device)


I’m tapped out for ideas. I’ve tried on OS:

  • Windows (Putty)
  • OSX (Minicom and Screen)
  • Linux (Minicom and Screen)

Using Adapters:

  • USB to RS232(TTL CH340)
  • USB to RS232(TTL PL2303TA)

Using both the UART and the 40pin and all I ever get is garbage on the interface :frowning:

I read in another thread the suggestion of reflashing the boot-loader. Is there a way to flash the boot-loader if I don’t have access to the UART interface? Or am I barking up the wrong tree, would this even help?

I appreciate the feedback, thanks for you time :slight_smile:

Do you connect all3 pins of uart (not only tx and rx)?

Does android also boot if you use sdcard with another image is inserted and switch is set to sd?

Hi Frank, Thanks for the response :slight_smile: Yes, I’m connecting the ground on both sides to the gnd pin, and TX -> RX RX->TX

I’ve now tried another adapter type TTL CP2101 ( )

If the switch is set to SD I can’t get the system to boot at all no matter how long I hold power for.


Have you tried cp2102 with minicom and the settings mentioned? Afair i need to change anything in putty to get a usable output in windows

which image do you have on sd and how do you burned it? If you flashed compressed image or to a partition instead if device you miss boot-headers

I got this resolved. When I was flipping the switch, it wasn’t shifting all the way over :expressionless: Once I identified this as the problem I was able to access the boot uart serial interface.

FYI if you connect to UART and are booting from EMMC while Android is installed on the emmc, it will spew all sorts of garbage on the interface.

Thanks much Frank, without your feedback I doubt I would have circled back to that.


Sounds like hardware-problem/soldering-issue on boot-switch and a buggy/wrong configured uart-driver in android-image right?

Have you got a used bpi-r2 or why is android preinstalled?

I don’t think it was used. It was marked new on Amazon. It was a “kit” from SmartFly but came with Android pre-loaded on the EMMC.

1 Like

Huge thumbs up for this posting. I bought the same unit, and spent HOURS attempting to figure out why the debug UART was giving me garbage and I couldn’t boot off the SDcard. 5 minutes after finding this thread, I was in business.