I have an app that needs to make use of the PL011 UART connected to a modem. It also needs to make use of Bluetooth.
I have configured the Pi to use the
pi3-miniuart-bt overlay to move Bluetooth to the mini-UART. I have updated
hciattach.service to use
/dev/ttyS0. I have removed the attachment to the console from
cmdline.txt. I have set
core_freq to a fixed value in
config.txt. All that works fine, and I can [mostly] use both Bluetooth and the hardware uart OK.
But oddly, every now and then when I boot the mini-UART doesnt respond. hciattach returns timeout when run and nothing, other than rebooting, brings it back to life. This seems to happen 1 boot in every 5 or so. Once its up it seems to stay up OK.
Has anyone else had this?
/boot/cmdline.txt dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait /boot/config.txt dtoverlay=pi3-miniuart-bt enable_uart=1 core_freq=250 # I have also tried combinations of the below to lock core clock as docs seem to differ #arm_freq=700 #arm_freq_min=700 #force_turbo=1 /lib/systemd/system/hciattach.service [Unit] ConditionPathIsDirectory=/proc/device-tree/soc/gpio@7e200000/bt_pins Before=bluetooth.service After=dev-ttyS0.device [Service] Type=forking ExecStart=/usr/bin/hciattach /dev/ttyS0 bcm43xx 921600 noflow - [Install] WantedBy=multi-user.target