麦斯科技 · 2023年05月28日 · 四川

树莓派CM4使用BTT Pad 7触摸屏显示器

https://www.cnx-software.com/2023/05/21/using-btt-pad-7-touchscreen-display-with-raspberry-pi-cm4/
作者:Jean-Luc Aufranc (CNXSoft) 2023年5月21日

BTT Pad 7或BIGTREETECH Pad 7(https://www.cnx-software.com/2023/05/02/bigtreetech-pad-7-7-inch-3d-printer-control-display-runs-klipper-on-allwinner-h616-som-or-raspberry-pi-cm4/)是一款7英寸触摸屏显示器,随CB1 Allwinner H616系统一起提供,模块与树莓派 CM4兼容。

显示器主要是为具有SPI和CAN总线接口的3D打印机设计的,但它也可以用作标准平板电脑。

因此,今天,我将使用树莓派CM4 Lite模块切换CB1,并报告我进行转换的经验,并将其用作运行树莓派 OS的树莓派 CM4平板电脑,并在稍后的另一篇文章中使用Klipper的3D打印机对其进行测试。

在BTT Pad 7中安装树莓派 CM4(Lite)模块
我们需要Pad 7、树莓派 CM4和一些工具。

1.png

第一步是使用2.0mm六角扳手拧松四个螺钉,以及使用较小的1.5mm六角钥匙拧松盖子,以卸下红色散热器。我使用了Creality Ender-3 S1 Pro 3D打印机(https://www.cnx-software.com/2023/01/11/review-creality-ender-3-s1-pro-2-in-1-3d-printer-laser-engraver-unboxing-assembly/)附带的。

2.png

现在,我们可以从CB1模块上断开Wifi天线,卸下两个短定位器,然后用塑料工具弹出模块。

3.png

该对位真的很小,不容易操作,特别是如果你手指比较粗。我没有合适的工具,所以我用了一对(生锈的)钳子来代替…

4.png

现在,我们可以插入树莓派CM4模块,连接天线电缆,并向左调整USB Choose和CS Choose开关,以配置CM4模块的Pad 7。用户手册不是很详细,我最初假设CM4安装将与CB1安装相同,因此我将相同的螺母柱拧紧到位…

5.png

在尝试拧回六角螺钉之前,将备用散热垫放在CM4上……但不要这样做,因为CM4模块比CB1模块厚,并且您无法拧紧所有四个螺钉。

6.png

在与BigTreeTech讨论后,我发现我必须使用四个备用的定位器和螺钉,这是用户手册目前根本没有解释的。所以我取出散热器,切下隔热垫,在两个支架周围留出足够的空间。实际上,您希望首先将散热垫放在散热器上,而不是CM4模块上,因为您可能会看到我的散热垫向左移动了太多…

7.png

作为一个附带说明,我喜欢在组装产品时在户外工作,因为有新鲜空气,照明更适合拍照,但缺点是可能有一些灰尘,一旦灰尘落在隔热垫上,就很难清除!

8.png

现在,在拧紧四个螺钉以保持散热器就位之前,我们可以在左侧安装两个较长的定位器,在右侧安装短的定位器。尽管散热器仍然略微倾斜,并且与PCB并不完全平行,但这看起来要好得多。我们将在稍后进行压力测试时查看这是否重要。安装的最后一步是放回小盖子。

为树莓派OS准备microSD卡

硬件安装基本完成,因此我们现在可以用我们选择的操作系统准备microSD卡。该公司建议使用最新的MainsailOS映像(https://github.com/mainsail-crew/MainsailOS/releases/tag/1.1.1)来管理Klipper 3D打印机,但由于它现在是我们的目标,因此我刚刚使用树莓派OS Desktop 32位,使用RPI Imager实用程序。

一旦完成了这一步,您将需要更改一些配置文件,并且用户手册对于这一部分非常有用。我们首先需要对显示器背光进行一些更改,因为我们被告知CM4的背光IO不支持PWM,因此只能将其设置为最大亮度。

首先编辑/boot/cmdline.txt并删除“console=serial0115200”,然后编辑/boot/config.txt以添加以下两行:

dtoverlay=gpio-led
dtparam=gpio=14,label=Pad7-lcd,active_low=1

我们还被要求删除/boot/config.txt中的行“enable_uart=1”(如果它在那里),但它不适合我。

我们仍然没有完成编辑/boot/config.txt,因为我们需要配置HDMI分辨率(1024×600):

hdmi_group=2
hdmi_mode=87
hdmi_cvt 1024 600 60 6 0 0 0
hdmi_drive=1

并启用USB Host:

dtoverlay=dwc2,dr_mode=host

这就是我自己所做的一切,但如果要将Pad 7连接到3D打印机,您还需要在/boot/config.txt中设置SPI到CAN总线:

dtparam=spi=on
dtoverlay=mcp2515-can0,oscillator=12000000,interrupt=24,spimaxfrequency=10000000

使用与Klipper一致的设置编辑/etc/network/interfaces.d/can0,例如:

allow-hotplug can0
iface can0 can static
bitrate 1000000
up ifconfig $IFACE txqueuelen 1024

最后,如果要使用提供的ADXL345 IMU模块,则需要将以下配置添加到printer.cfg文件中:

[mcu CM4]
serial: /tmp/klipper_host_mcu
[adxl345]
cs_pin: CM4:None
spi_bus: spidev0.1
axes_map: z,y,-x # Modify according to the actual orientation of the ADXL345 installed on the printer.

现在保存所有内容,并取出microSD卡将其插入BTT Pad 7。但在此之前,您需要卸下带有CB1操作系统的microSD卡,它对我来说并不容易取出。我无法用手指将其取出,我不得不使用工具,施加比我所能承受的更大的力,以防可能损坏卡或平板电脑。我告诉了BIGTREETECH这个问题,他们意识到了:

是的。我们还注意到了这个问题,这似乎是一个小概率,将只发生在我们的第一批,我们已经在后续批次中优化了这个问题。

所以好消息是,它发生在我和潜在的其他评论或测试版测试人员身上,但不应该发生在客户身上,因为Pad7仍处于预订购阶段。

配置和测试树莓派 OS

无论如何,我将带有树莓派 OS的microSD卡插入BTT Pad 7,连接了电源,在几秒钟内,我进入了桌面界面,触摸屏也在工作。

9.png

如果不使用机械键盘或空气鼠标,则可能需要安装屏幕键盘(https://shorts.cnx-software.com/2023/05/20/raspberry-pi-onscreen-keyboard/),如“matchbox”键盘:

sudo apt install matchbox-keyboard

10.png

但事实证明,在最新版本的树莓派中它不是很好用,并且不能轻松关闭,例如,至少在不更改布局文件的情况下不能关闭。但我发现了一个更好的选择与“板载”键盘。at-spi2-core软件包是可选的,但某些功能需要:

sudo apt install onboard at-spi2-core

它较小,但可定制,并且易于与通知栏中的图标一起使用,以显示/隐藏它,并访问其首选项。

11.png

12.png

我还必须找到一种在Linux中测试多点触摸的方法。Ubuntu中推荐的程序是PyMT,但它很旧,不会安装在树莓派OS上。evtest是一个命令行选项,但它将不断地输出数据,因此我最终在Chromium中使用了一个基于HTML5的触摸测试仪网站。

13.png

您可以观看一个简短的演示,展示使用树莓派 CM4在BTT Pad 7上支持触摸屏界面,同时使用上面的触摸测试仪和车载键盘浏览web。

14.png

视频链接:

B站:https://www.bilibili.com/video/BV1mu411s794/

Youtube: https://www.youtube.com/watch?v=IsJVlRK-Fv0

我还测试了Pad 7的其他功能:

• USB端口–良好。所有三个USB 2.0端口都已使用鼠标和键盘的RF适配器进行了测试
• 内置扬声器–正常
• 音频插孔–使用一对USB供电的扬声器进行了OK测试
• 以太网–在千兆以太网速度下工作良好,使用iperf3测试为936 Mbps。
• WiFi–它可以工作,但在距离双频路由器和几堵墙约6米处,信号看起来比预期的弱,并且系统将仅检测2.4GHz SSID。如果放在同一房间中,还检测到5GHz SSID,WiFi信号强,连接稳定。
• 电源按钮–它将打开和关闭系统,但不允许软关机,它只是一个物理打开和关闭电源的按钮。
• 音量按钮–音量按钮用于控制内置扬声器的音量,但请注意,它不会显示在系统的音量中。它是一种硬件,就像电源按钮一样。

15.png

Pad 7运行Rhythmbox,扬声器组连接到3.5毫米音频插孔。

最后,我运行了sbc-bench.sh脚本来检查冷却是否有效工作,或者至少足以避免热节流:

pi@pad7-pios:~ $ ./sbc-bench.sh -r
Warning: for useable results this tool needs to be run as root
 
pi@pad7-pios:~ $ sudo ./sbc-bench.sh -r
Starting to examine hardware/software for review purposes...
 
Average load and/or CPU utilization too high (too much background activity). Waiting...
 
Too busy for benchmarking: 10:19:30 up 11 min,  4 users,  load average: 0.52, 1.12, 0.86,  cpu: 26%
Too busy for benchmarking: 10:19:35 up 11 min,  4 users,  load average: 0.48, 1.10, 0.85,  cpu: 5%
Too busy for benchmarking: 10:19:40 up 11 min,  4 users,  load average: 0.52, 1.10, 0.85,  cpu: 5%
Too busy for benchmarking: 10:19:45 up 11 min,  4 users,  load average: 0.48, 1.08, 0.85,  cpu: 15%
Too busy for benchmarking: 10:19:50 up 11 min,  4 users,  load average: 0.44, 1.06, 0.84,  cpu: 0%
Too busy for benchmarking: 10:19:55 up 11 min,  4 users,  load average: 0.48, 1.06, 0.84,  cpu: 0%
Too busy for benchmarking: 10:20:00 up 11 min,  4 users,  load average: 0.44, 1.04, 0.84,  cpu: 1%
Too busy for benchmarking: 10:20:06 up 11 min,  4 users,  load average: 0.41, 1.02, 0.83,  cpu: 0%
Too busy for benchmarking: 10:20:11 up 12 min,  4 users,  load average: 0.38, 1.01, 0.83,  cpu: 0%
Too busy for benchmarking: 10:20:16 up 12 min,  4 users,  load average: 0.35, 0.99, 0.82,  cpu: 0%
 
sbc-bench v0.9.41
 
Installing needed tools: apt -f -qq -y install lm-sensors sysstat lshw stress-ng smartmontools mmc-utils, tinymembench, ramlat, mhz (can't build cpuminer) Done.
Checking cpufreq OPP. Done.
Executing tinymembench. Done.
Executing RAM latency tester. Done.
Executing OpenSSL benchmark. Done.
Executing 7-zip benchmark. Done.
Throttling test: heating up the device, 5 more minutes to wait. Done.
Checking cpufreq OPP again. Done (15 minutes elapsed).
 
Results validation:
 
  * Measured clockspeed not lower than advertised max CPU clockspeed
  * No swapping
  * Background activity (%system) OK
  * No throttling
 
Full results uploaded to http://ix.io/4wj8
 
 
 
 
# Raspberry Pi Compute Module 4 Rev 1.1
 
Tested with sbc-bench v0.9.41 on Sun, 21 May 2023 10:36:27 +0700. Full info: [http://ix.io/4wj8](http://ix.io/4wj8)
 
### General information:
 
    BCM2711, Kernel: aarch64, Userland: armhf
    
    CPU sysfs topology (clusters, cpufreq members, clockspeeds)
                     cpufreq   min    max
     CPU    cluster  policy   speed  speed   core type
      0        0        0      600    1500   Cortex-A72 / r0p3
      1        0        0      600    1500   Cortex-A72 / r0p3
      2        0        0      600    1500   Cortex-A72 / r0p3
      3        0        0      600    1500   Cortex-A72 / r0p3
 
3794 KB available RAM
 
### Governors/policies (performance vs. idle consumption):
 
Original governor settings:
 
    cpufreq-policy0: ondemand / 1500 MHz (conservative ondemand userspace powersave performance schedutil / 600 700 800 900 1000 1100 1200 1300 1400 1500)
 
Tuned governor settings:
 
    cpufreq-policy0: performance / 1500 MHz
 
### Clockspeeds (idle vs. heated up):
 
Before at 50.1°C:
 
    cpu0 (Cortex-A72): OPP: 1500, ThreadX: 1500, Measured: 1498 
 
After at 68.7°C:
 
    cpu0 (Cortex-A72): OPP: 1500, ThreadX: 1500, Measured: 1498 
 
### Performance baseline
 
  * memcpy: 2531.8 MB/s, memchr: 1250.0 MB/s, memset: 3254.2 MB/s
  * 16M latency: 161.9 163.1 162.3 163.5 162.2 163.3 195.5 198.0 
  * 128M latency: 189.9 180.4 182.1 180.1 184.3 186.6 204.4 221.2 
  * 7-zip MIPS (3 consecutive runs): 5690, 5730, 5751 (5720 avg), single-threaded: 1648
  * `aes-256-cbc      50494.15k    59840.38k    63452.50k    64302.76k    64419.16k    64716.80k`
  * `aes-256-cbc      50645.94k    59683.14k    63472.73k    64389.12k    64697.69k    64673.11k`
 
### Storage devices:
 
  * 29.1GB "SD32G" UHS DDR50 SD card as /dev/mmcblk0: date 09/2022, manfid/oemid: 0x0000b1/0x4847, hw/fw rev: 0x6/0x1
 
### Swap configuration:
 
  * /var/swap on /dev/mmcblk0p2: 100.0M (0K used) on ultra slow SD card storage
 
### Software versions:
 
  * Raspbian GNU/Linux 11 (bullseye)
  * Build scripts: http://archive.raspberrypi.org/debian/ bullseye main
  * Compiler: /usr/bin/gcc (Raspbian 10.2.1-6+rpi1) 10.2.1 20210110 / arm-linux-gnueabihf
  * OpenSSL 1.1.1n, built on 15 Mar 2022          
  * ThreadX: 82f3750a65fadae9a38077e3c2e217ad158c8d54 / Mar 17 2023 10:50:39 
 
### Kernel info:
 
  * `/proc/cmdline: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_hdmi=0 video=HDMI-A-1:1024x600M@60 smsc95xx.macaddr=E4:5F:01:E4:B8:E5 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  console=tty1 root=PARTUUID=47e4a404-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles`
  * Vulnerability Spec store bypass: Vulnerable
  * Vulnerability Spectre v1:        Mitigation; __user pointer sanitization
  * Vulnerability Spectre v2:        Vulnerable
  * Kernel 6.1.21-v8+ / CONFIG_HZ=250
 
Kernel 6.1.21 is not latest 6.1.29 LTS that was released on 2023-05-17.
 
See https://endoflife.date/linux for details. Perhaps some kernel bugs have
been fixed in the meantime and maybe vulnerabilities as well.
 
All known settings adjusted for performance. Device now ready for benchmarking.
Once finished stop with [ctrl]-[c] to get info about throttling, frequency cap
and too high background activity all potentially invalidating benchmark scores.
All changes with storage and PCIe devices as well as suspicious dmesg contents
will be reported too.
 
Time        fake/real   load %cpu %sys %usr %nice %io %irq   Temp    VCore
10:36:28: 1500/1500MHz  3.42  46%   4%  40%   0%   0%   0%  64.3°C  0.8700V
10:37:28: 1500/1500MHz  1.26   0%   0%   0%   0%   0%   0%  60.4°C  0.8700V
10:38:28: 1500/1500MHz  0.54   0%   0%   0%   0%   0%   0%  59.4°C  0.8700V
10:39:28: 1500/1500MHz  0.20   0%   0%   0%   0%   0%   0%  56.5°C  0.8700V

除了microSD卡上的插拔外,没有其他不满…rpi监视器的温度图确认CPU温度从未超过70°C。

16.png

测量在环境温度约为28°C的房间中进行。红色的散热器摸起来很热,但这意味着它工作良好。

结论

BIGTREETECH表示,Pad7“不仅是Klipper Pad”,也是一台微型计算机。所以,我将其用作在模块上安装覆盆子Pi CM4 Lite系统的平板电脑来测试它。安装CM4模块并根据我的需要配置Raspberry Pi操作系统花费了一些精力,但最终,一切都很好地满足了我的期望,包括所有功能和冷却解决方案。主要缺点是WiFi信号相对较弱,并且缺少软电源按钮,这将非常方便,但如果需要,您也可以使用菜单将其关闭。

该公司目前不出售BTT Pad 7的裸板版本,而是在BIQU网站上以129.00美元的价格(https://shrsl.com/41qxi)附带BIGTREETECH CB1模块(https://www.cnx-software.com/2022/10/20/bigtreetech-cb1-a-raspberry-pi-cm4-compatible-allwinner-h616-system-on-module/)。如果他们将来提供裸板模型,那么裸板模型可能会花费约99.90美元。我很快就会从树莓派CM4切换回CB1模块,将BTT Pad 7连接到3D打印机,并与提供的IMU一起将其用作Klipper pad。

============================

欢迎加入 Arm软件开发者社区 微信群

2.jpg

============================

推荐阅读
关注数
5845
内容数
525
定期发布Arm相关软件信息,微信公众号 ArmSWDevs,欢迎关注~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息