Using BTT Pad 7 touchscreen display with Raspberry Pi CM4

The BTT Pad 7, or BIGTREETECH Pad 7 in full, is a 7-inch touchscreen display that ships with the CB1 Allwinner H616 system-on-module compatible with Raspberry Pi CM4. The display is mostly designed for 3D printers with its SPI and CAN Bus interfaces, but it can also be used as a standard tablet PC. So today, I’ll switch the CB1 with a Raspberry Pi CM4 Lite module and report my experience doing the conversion and using it as a Raspberry Pi CM4 tablet PC running Raspberry Pi OS, and test it with a 3D printer with Klipper in another post later on.

Installing a Raspberry Pi CM4 (Lite) module in the BTT Pad 7

We’ll need the Pad 7, a Raspberry Pi CM4, and a few tools.

BTT Pad 7 Raspberry Pi CM4 Lite

The first step is to remove the red heatsink by loosening four screws with a 2.0mm hex key, as well as the cover with a smaller 1.5mm hex key. I used the ones that came with the Creality Ender-3 S1 Pro 3D printer.

BigTreeTech Pad 4 Remove heatsink cover

We can now disconnect the Wifi antenna from the CB1 module, remove two short standoffs, and pop out the module with a plastic tool.

Remove CB1 system-on-module Pad 7 tablet PC

The standoff are really small, and not easy to remove especially if you have fat fingers. I did not have an appropriate tool, so I used a pair of (rusty) pliers instead…

Raspberry Pi CM4 installation Pad 7

We can now insert the Raspberry Pi CM4 module, connect the antenna cable, and adjust the USB-Choose and CS-Choose switches to the left to configure the Pad 7 for the CM4 module. The user manual is not very detailed, and I initially assumes the CM4 installation would be the same as the CB1 installation, so I tightened the same standoffs in place…

Thermal Pad CM4 module

and placed the spare thermal pad on the CM4, before trying to put back the hex screws… But don’t do that, as the CM4 module is thicker than the CB1 module, and you will not be able to tighten all four screws.

Cannot install Raspberry Pi CM4 BigTreeTech Pad 7

After discussing with BigTreeTech, I found out I had to use what I thought were four spare standoffs and screws, something the user manual does not currently explains at all. So I took out the heatsink, cut out the thermal pad to leave enough space around two of the standoffs. You actually want to place the thermal pad on the heatsink first, rather than the CM4 module, because you may see mine is shifted to the left a bit too much…

Pad 7 Cut thermal pad

As a side note, I like to work outdoors when assembling products because I get some fresh air and the lighting is better for photos, but a downside is there may be some dust that is quite difficult to remove once it ends up on the thermal pad!

Install Raspberry Pi CM4 in BTT Pad 7

Now we can install the two longer standoffs on the left and the short standoffs on the right, before tightening the four screws to keep the heatsink in place. This looks much better although the heatsink is still slightly inclined, and not perfectly parallel to the PCB. We’ll see if that matters when doing a stress test later on. The final step of the installation is to put back the small cover.

Preparing a microSD card with Raspberry Pi OS

The hardware installation is mostly complete, so we can now prepare a microSD card with the operating system of our choice.  The company recommends the latest MainsailOS image for managing Klipper 3D printers, but since it is now our goal at this time, I just went with Raspberry Pi OS Desktop 32-bit using the RPI Imager utility.

Once this is done, you’ll need to change some config files, and the user manual is pretty good for that part. We’ll first need to make some changes for the display backlight which can only be set to maximum brightness because we’re told the backlight IO of the CM4 does not support PWM.

First edit /boot/cmdline.txt and remove “console=serial0,115200“, then edit /boot/config.txt to add the following two lines:


We’re also asked to remove the line “enable_uart=1” in /boot/config.txt if it is there, but it was not for me.

We’re still not done editing /boot/config.txt, as we need to configure the HDMI resolution (1024×600):


and enable USB host:


That’s all I did myself, but if you’re going to connect the Pad 7 to a 3D printer, you’ll also want to setup SPI to CAN bus in /boot/config.txt:


Edit /etc/network/interfaces.d/can0 with settings that are consistent with Klipper, for example:


Finally, if you’re going to use the provided ADXL345 IMU module, you’ll need to add the following configuration to the printer.cfg file:


Now save everything, and take out the microSD card to insert it into the BTT Pad 7. But before that, you’ll need to remove the microSD card with the OS for the CB1, and it did not come out easily for me. I could not take it out with my finger, and I had to use a tool and exert a bit more force than I’m comfortable with in terms of potentially damaging the card or tablet. I told BIGTREETECH about the issue, and they are aware of it:

Yea. We have also noticed this problem, which seems to be a small probability and will only occur in our first batches, and we have optimized this problem in subsequent batches.

So the good news is that it happened to me and potentially other reviews or beta testers, but should not happen to customers since the Pad 7 is still at the pre-order stage.

Configuring and testing Raspberry Pi OS

Anyway, I inserted the microSD card with Raspberry Pi OS in the BTT Pad 7, connected the power supply, and within a few seconds, I got to the desktop interface with the touchscreen also working.

BTT Pad 7 Raspberry Pi OS

If you’re not using a mechanical keyboard or air mouse, you’ll probably want to install an onscreen keyboard such as the “matchbox” keyboard:


matchbox keyboard raspberry pi OS

But it turns out it’s not very good in the latest version of Raspberry Pi and can’t be closed easily for example, at least not without changing the layout file. But I found a better option with the “onboard” keyboard. The at-spi2-core package is optional, but required for some features:


It’s smaller, but customizable and easier to use with an icon in the notification bar to show/hide it, and access its preferences.

Raspberry Pi onboard onscreen keyboard

Onboard keyboard preferences

I also had to find a way to test multi-touch in Linux. The recommended program in Ubuntu is PyMT, but it’s old, and won’t install on Raspberry Pi OS. evtest is a command line option, but it will spew data continuously, so I eventually ended up using an HTML5-based touch tester website in Chromium.

Raspberry Pi Multi Touch screen test

You can watch a short demo showcasing touchscreen interface support on the BTT Pad 7 with Raspberry Pi CM4 while browsing the web, using the Touch Tester above, as well as the Onboard keyboard.

YouTube video player

I also tested the other features of the Pad 7:

  • USB port – Fine. All three USB 2.0 ports have been tested with RF dongles for a mouse and keyboard
  • Built-in speaker – OK
  • Audio jack – OK tested with a pair of USB-powered speakers
  • Ethernet – Works fine at Gigabit Ethernet speed, tested at 936 Mbps with iperf3.
  • WiFi – It works, but the signal looks weaker than expected at about 6 meters from a dual-band router and a few walls, and the system would only detect the 2.4GHz SSID. If placed in the same room, the 5GHz SSID was also detected, the WiFi signal was strong, and the connection stable.
  • Power button – It will turn on and off the system, but it will not allow for a soft shutdown, it’s just a button that physically turns on and off the power.
  • Volume buttons – The volume buttons are working to control the built-in speaker volume, but note it will not show up in the system’s volume. It’s a hardware thing like the power button.
BIGTREETECH Pad 7 music player
Pad 7 running Rhythmbox with a speaker set connected to the 3.5mm audio jack.

Finally, I’ve run sbc-bench.sh script to check if cooling was working efficiently, or at least well enough to avoid thermal throttling:


There are no complaints except for the swap on the microSD card… The temperature chart from rpi-monitor confirms the CPU temperature never exceeded 70°C.

BTT Pad 7 Raspberry Pi CM4 CPU temperature chart

The measurements were done in a room with an ambient temperature of around 28°C. The red heatsink feels quite hot to the touch, but that means it’s doing its job.

Conclusion

BIGTREETECH says the Pad 7 is “Not only a Klipper Pad”, but also a mini-computer. So I tested that by using it as a tablet PC fitted with a Raspberry Pi CM4 Lite system-on-module. It took some effort to install the CM4 module and configure Raspberry Pi OS to my needs, but eventually, everything works fine to my expectations including all features and the cooling solution is adequate. The main downsides are the relatively weak WiFi signal and the lack of a soft power button, which would be convenient, but you can also use the menu to turn it off if needed.

The company does not sell a barebone version of the BTT Pad 7 at this time, and instead, it ships with the BIGTREETECH CB1 module for $129.00 on BIQU website. A barebone model would probably cost around $99.90 if they offer one in the future. I’ll soon switch from the Raspberry Pi CM4 back to the CB1 module to connect the BTT Pad 7 to a 3D printer and use it as a Klipper pad together with the provided IMU. Continue reading: “Review of BIGTREETECH Pad 7 Klipper pad with Creality Ender-3 Pro S1 3D printer

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX RK3588 mini-ITX motherboard

6 Replies to “Using BTT Pad 7 touchscreen display with Raspberry Pi CM4”

  1. Hello Jean-Luc, did you have a chance to see if CAN interface works with rpi cm4?

    Thank you.
    CIO

    1. I don’t have any hardware to connect to it. But I’ve just tried to enable it by modifying the config.txt file and creating the /etc/network/interfaces.d/can0 file as explained in the user manual and the post above. But after a reboot, nothing shows up in dmesg:

      Checking the SPI devices does not show any “net” folders either:

      But I’m not entirely sure how to test it.

      1. I should have done a case-insensitive grep:

  2. Hi, I am trying doing what you decribed here above installing raspiOS on the CM4 installed on my pad7. However I do not succeed and the screen remains black. No PiOs loading or detected. I try to connect using SSH but it is not working either. Do you have any suggestions that can help me getting the pad7 working with my M4 and RaspiOS? Thanks in beforehand

    1. Does the CM4 still work with another carrier board?
      I can’t remember if it is possible on the Pad 7, but using a USB to serial debug board to monitor the boot process might help.
      It might also be a connection issue, try to remove the module and reinsert it.

Leave a Reply

Your email address will not be published. Required fields are marked *

Boardcon Rockchip and Allwinner SoM and SBC products
Boardcon Rockchip and Allwinner SoM and SBC products