Banana Pi BPI-M6 (Raspberry Pi 5 replacement) initial setup and firmware burning

Banana Pi BPI-M6: Initial setup and image burning

First test of Banana Pi BPI-M6

In my previous article, I compared the hardware features of the Banana Pi BPI-M6 and the Raspberry Pi 5. Both have excellent hardware technology and shouldn’t have much of a problem in terms of performance.
Today I wanted to test out the Banana Pi. As a first test, I simply connected the Banana Pi BPI-M6 to my monitor via HDMI output (TX) and used a USB charger to power the Banana Pi, which I once measured could handle 3.1 at 5 volts. Amperes of current. That should be enough. The Banana Pi BPI-M6’s two HDMI ports are designed as miniature versions and are located close together. I can’t connect two HDMI ports at the same time without the Slim Cable HDMI Micro to Regular Adapter or the HDMI Micro to Regular Cable. A micro HDMI adapter with a narrow plug on the cable has been ordered, but it will be a while before it arrives from China via AliExpress. If you’re in a hurry, you can buy an adapter like the Raspberry Pi HDMI Adapter for about 6 to 8 euros each, which is about two to three times the price in German stores. I currently only have a “short” HDMI micro adapter (no cable) and a regular HDMI cable. Luckily, the adapter is narrow enough so I can plug in a USB-C plug for power without any interference. You can’t connect HDMI in and HDMI out at the same time without a suitable adapter, so it’s best to order one at the time of purchase. And please don’t force a plug that’s too wide, because it’s not fun to replace a micro HDMI port like this on the BPI-M6’s motherboard. When I power my Banana Pi BPI-M6, my monitor or HDMI 5 to 1 switch automatically switches from source 1 (PC) to source 2 (BPI-M6), but the screen stays black and just says “No Signal” information. But there was no reason to worry at first. The Raspberry Pi won’t display anything unless a bootable SD card is inserted. But I thought to myself, maybe there would be a logo, or standard software would be loaded, after all there is 16 GB of eMMC memory on the Banana Pi BPI-M6 board. Something may have been saved in the delivered state.

Initial setup of Banana Pi BPI-M6


So I plugged the Banana Pi into a USB socket on my Windows PC.
The “VS680 S/N…” device was also detected, but not surprisingly, Windows couldn’t find its driver.
The serial number of my M6 board “12345678A” is also interesting. This may be because I did an early revision of Banana Pi where everyone still had a dummy number, maybe that will change. According to the getting started instructions on the Banana Pi homepage,
Before we can do anything we first have to download the SenarySocSystemTool, also known as the “USB Burning Tool”, launch it and use it to “burn” the image onto the eMMC. Without the image, the screen will remain black due to lack of firmware, just like a Raspberry Pi with no image on the μSD card. The zip file was just a setup and didn’t work under my Windows 7 initially. It might be designed for Windows 10, or maybe it’s because my Windows is a little special to all SDKs. However, when I set the compatibility settings for Windows 7 in the installation properties, it worked and installed in the selected folder. During the installation process, file names such as “ffmpeg.exe” and some file names with Chinese characters flashed by. It will be exciting to see if it works… Another surprise shortly before the end: unfortunately, I don’t speak Chinese. But there’s Google Lens, for example. The internet version of it just creates blurry, hard-to-read text in images, but you can use it on your smartphone. Now I see it more clearly: of course I want to install the USB driver, so the check mark remains checked. You don’t have to run the tool yourself yet. So we can keep the default settings and click “Done”. Unfortunately, an error message pops up immediately: If you’re still using Windows 7, I think you’ve done something stupid. I probably wouldn’t have these issues using Windows 10.


Next I tried the micro SD card made for the Raspberry Pi with RetroPi as well as the desktop Raspbian, but unfortunately the screen was still black here too. Nothing happens except that the Banana Pi BPI-M6 uses about 400 mA and the red LED lights up. Unfortunately it’s not that simple. Banana Pi support also confirmed to me that the Banana Pi is not compatible with Raspberry Pi images, so you cannot simply boot from them.

Manually install the driver under Windows 7

However, in the directory where the installer installed the tool, I found a “DPInst64.exe” that looked very similar to the “USB Boot USB Driver” described above:

 Verzeichnis von D:\Program Files (x86)\SenarySocSystemTool\Syna_WinUSB_Driver

02.11.2023 07:51 <DIR> .
02.11.2023 07:51 <DIR> ..
20.11.2018 04:57 6.148 .DS_Store
02.11.2023 07:51 <DIR> amd64
07.05.2010 20:52 930.272 DPInst64.exe
02.11.2023 07:51 <DIR> ia64
25.11.2022 11:19 18.479 Syna_WinUSB.cat
25.11.2022 11:19 14.957 Syna_WinUSB.inf
02.11.2023 07:51 <DIR> x86

Let’s run DPInst64.exe manually. Of course, you must agree to the red driver installation warning. Then, the familiar “USB device plugged in” tone sounds, and a success message appears:

Named “APSE_WinUSB_Release (WinUSB) USB (07 /20/2012 3.3.2.3)” driver has been installed. When I put the M6 into boot mode, the corresponding device also shows up in Device Manager without errors (more on that later): In

In the directory next to it, I found another “DPInst64.exe”, which looks suspiciously like the one above called “Android USB Driver”:

 Verzeichnis von D:\Program Files (x86)\SenarySocSystemTool\UsbDriver

02.11.2023 07:51 <DIR> .
02.11.2023 07:51 <DIR> ..
02.11.2023 07:51 <DIR> amd64
05.09.2022 09:42 11.151 androidwinusb86.cat
05.09.2022 09:42 11.187 androidwinusba64.cat
12.02.2018 17:05 5.917 android_winusb.inf
07.05.2010 20:52 930.272 DPInst64.exe
02.11.2023 07:51 <DIR> i386
05.09.2022 09:42 17.391 package.xml
05.09.2022 09:42 64 source.properties

This DPInst64.exe runs fine under Windows 7 if you call it directly and install a device named “Google, Inc. (WinUSB) AndroidUsbDeviceClass (08/28/2014 11.0.00000 00000)”:

Run SenarySocSystemTool

I can also find the tool itself on my hard drive as “SenarySocSystemTool.exe”. There is also “SOC programming tool usage instructions.docx”, which may be instructions for the tool in Microsoft Word format, but everything is in charming Chinese. I machine translated the document into German. You can download SenarySocSystemTool-Anleitung-deutsch.zip here. Thanks to the Banana Pi organization for allowing this.
The tool itself also has a Chinese version, which is no surprise. When I asked, I found out that this was only an early version and that an English version of the program was in development and should be available when the Banana Pi BPI-M6 becomes widely available. I translated the individual buttons into German and wrote the translation next to them. With this and a background knowledge of the tool for writing images to the 16 GB eMMC of the Banana Pi BPI-M6, you can definitely use this tool. The eMMC image is basically the same as the one on the Raspberry Pi μSD card, except that the Raspi does not have eMMC and must always boot from the μSD card. Both SD and eMMC are based on flash memory technology, and eMMC is generally faster than SD, but not as good as SSD. We want to use this tool to write an image to the eMMC of the Banana Pi BPI-M6. Of course, to do this we first have to choose a suitable image (click on “Browse” and select an image. Currently, according to the Wiki (image publishing section), there are only Android images, which you can download from Google Drive. I think it is Obviously, there will be more images later. It might be worth taking a look at the Wiki page from time to time. The fact that there is already a “Linux” section still populated means that there may be a link to a Linux mirror soon. Then I asked Banana Pi The organization asked and confirmed that they are developing a Linux image and will release an image soon. Then we finally click on “Burn Image” in the lower right corner and click to write the image to Banana Pi BPI-M6. Because the Chinese at the bottom of the middle We explain that the device is not recognized. How is it possible? ? Driver installation was successful. Quick help, or their translation can help us:

1. Enter UBOOT mode: Method 1 – Press the USBBOOT button > Press the RESET button – > Release the RESET button – > Release the USBBOOT button. Method 2 – Press the USBBOOT button? Power on the board -> Release the USBBOOT button
2. Exit UBOOT mode: Method 1 – Press the RESET button -> Release the RESET button; Method 2 – Power on the card again. 3. When programming MDK Recovery, first select UBoot and then enter UBOOT mode, otherwise the programming mode cannot be started.
4. Recognize the USB port when using it for the first time: connect the device and put it into UBOOT mode. After the tool displays the device, note the binding ID.
5. After each round of programming, the results are displayed in the table on the right. Successful devices are shown in black, failed devices are shown in red.
6. Insert all devices that need to be updated, enter UBOOT mode, and then start programming
7. Please enter UBOOT mode again. Device programming must be completed before [Start Programming], otherwise device programming cannot be started.

Aha! So we also had to put the Banana Pi BPI-M6 into programming mode ourselves. A security measure to prevent you from accidentally overwriting the eMMC. To do this, simply hold down the “USB” button and then plug the USB cable into the PC (thus powering it), or if the cable is already plugged in and the Pi is powered, hold down the “USB” button and then briefly press the reset button (“RST”) and release the USB button again.
Both buttons are located on the side of the Pi board with the 40-pin GPIO header. The USB on the upper right is located between the USB-C socket and the HDMI-Out socket, and the reset button is located diagonally below the right; it is located below the USB-C socket and to the left of the white LCD port. The buttons are really small and you have to be careful not to slip on them with your fingernails.
Unfortunately, this doesn’t seem to work for me. Even after putting it into USB boot mode and restarting the tool, it still says “Device not recognized” (Chinese).

Root cause research and debugging

Maybe it’s because I’m still using Windows 7. It should work though: the driver “Synaptics IoT: Toolkit USB Driver for VS680 Boot Device” is installed, shows up in Device Manager, and says “Device is working fine” under properties.
Now I’m a bit at a loss because so far I can only get black HDMI images from the Banana Pi BPI-M6, or in other words nothing. Will my brand new BPI-M6 not be defective? On the BPI-M6 board, I found a three-pin header labeled “G RX TX” near the outermost USB socket. Could this stand for “ground, receive, transmit” and thus a serial interface? The behavior of ESP32 is to output useful debugging information over the serial port, even for off-the-shelf modules such as the TTGO ESP32 VGA32 board or the ESP32-Cam Baord. At first I was a little annoyed by the lack of a VCC or 3V3 power port, but thinking about it more, I think I’m just used to my serial adapter and it’s not really necessary. Basically, a line (TX) that turns the ground voltage (G) on and off is enough to transmit the necessary bit pattern. Still, I’d rather connect the board to my oscilloscope just to be on the safe side. After pressing the reset button, the board should happily transmit on TX. I expected at least a brief startup message. But nothing. During reset, Oszi only shows a brief low-high, followed by a long period of silence or nothing at all. It behaves exactly like when I use the USB button to enter boot mode. Out of curiosity I also pressed the SPI button. Hey: Something’s going on in the oscilloscope. There’s something going on here that looks like a signal. Since the voltage was within the tolerable range, I connected the TX and G of the BPI-M6 board to the RX and GND of the FTDI adapter, opened a terminal window on my PC set to “115200 bps, 8N1” and pressed my Press and hold the SPI button, then press briefly again to reset. Indeed: I get readable output:

So my device doesn’t appear to be entirely defective. What I’ve read indicates that the BPI-M6 is trying to boot from the SD card. But this fails because SD is empty. If flashing with eMMC doesn’t work, it might help to somehow image the μSD card and then boot from it.

...
  
ULT (byte[0:7]) = 43111a826e719115
Chip version = 0x01
Leakage ID = 1705
 i2c status:0x00000750, send_num:1 (expect:1), recv_num:0 (expect:1)
 tx abort source:0x801000
  bit12:lost arbitration
MMC is SD
emmc_wait_card_detect: No card present

Without a μSD card, the motherboard still thinks the memory is SD. I don’t take this for granted. Because in the next line he says that the card image cannot be found in the eMMC memory – that’s my interpretation. Either the eMMC memory is defective (I hope but don’t believe it) or it throws that message because I don’t know without the image I flushed the eMMC memory – since I haven’t been able to do that yet.
OK I have a good feeling now that my BPI-M6 isn’t completely broken, but that doesn’t really get me anywhere.
Simply copying 1.5 GB of data from the eMMCImg directory to a FAT32 formatted μSD didn’t help me either. I only get one more

gpt header data corrupted!
get gpt error!

He may not like FAT32. I also get the same message when I insert a μSD with a Raspberry Pi image. Banana Pi may have its own image format.

Let’s try it on another computer

Although the driver seems to run fine on my Window 7 PC. Maybe it has something to do with this computer. Because others in the Banana Pi forum may have already burned the image without any further issues.
I first tried it on a Windows 10 system because I thought the tool might not be suitable for older Windows versions like Windows 7. But I haven’t had any luck on an Acer tablet running Windows 10 either. The installation was successful, but the driver didn’t work. Moreover, the Senary tool cannot be started and is obviously incompatible with the operating system. Strange.

And it still works!

I finally succeeded on an old Toshiba laptop with Windows 7. It has Synaptics’ touchpad, maybe that’s why 😉 The Senary/Synaptics tool feels right at home and comfortable, and installs easily, as does the two drivers that are installed directly. It then booted up without any issues and immediately found my Banana Pi BPI-6M board.

The font in the bottom center is no longer red. “1 device found” in Chinese, under port 1 you can now also see something labeled with ID “6-3”. Just don’t click on the tempting “[Chinese] eMMC” button! Chinese means “delete”. The green button on the left only deletes eMMC. Instead, we press the button in the lower right corner, which is responsible for uploading or “burning”.
However, we are faced with a dangerous-looking message with a lot of red Chinese text in the middle:

But after translation, the horror quickly disappeared :

Titel: Best?tigen Sie den Bildpfad

Bitte best?tigen Sie, dass der Image-Pfad korrekt ist.

[Pfad ?ndern] [Weiter programmieren]

[] Keine Erinnerung mehr, einfach direkt in der Zukunft programmieren

---freundliche Erinnerung---

W?hlen Sie, um den Pfad zu ?ndern: Kehren Sie zur Hauptoberfl?che zurück, um den Bildpfad erneut auszuw?hlen, und klicken Sie dann auf die Schaltfl?che, um das Brennen des Bildes erneut zu starten.

W?hlen Sie ?Weiterbrennen": Starten Sie dann direkt das Brennen des Bildes

So I select the correct button and “continue burning”. Then I can see the progress bar while the image is uploading:


The progress bar eventually reaches 100%. Firmware flashing successful!
On notepad, upload the firmware with the Android TV image from the Banana Pi site to the board and it’s done in no time. Everything went smoothly, just as you’d expect. If you have a computer and Windows, that’s no problem. In my opinion, the Senary tool is a bit finicky here.
I guess I was a little unlucky in the beginning. But in the end it worked. The good thing about taking the circuitous route is that I studied and learned a lot about the Banana Pi BPI-6.
For example, use the SPI button to pass debug messages after reset. By the way, if you hold reset, USB, and boot at the same time, i.e. enter boot mode, the debug output will remain empty; then release reset, then release USB. There is no output to indicate that you are now in boot mode or anything like that. Would have been quite practical, but probably technically impossible.

Results, upload image test

Now comes the important moment: does my Banana Pi BPI-M6 work properly? Does flashing work? Will the M6 turn on? What does the Android image look like? What can you do with it?
So I disconnected the Banana Pi from my laptop and connected it again to my HDMI monitor. Then I powered it up. The Synaptics logo flashes briefly (I think you can set this up yourself using the Senary tool, but I haven’t tried it yet), then the Android TV logo appears, and finally my Banana Pi displays the following screen: Here it is again in video form for you:

After about 30 seconds, Android TV is loaded. Banana Pi is ready to start.
You’ll find out in my next article what Android TV Image does, what you can do with it and how the Banana Pi BPI-M6 does things with it.