Pi3 wont boot 2.43.0 (Dev) with a Adafruit hat installed

Hello,

I’m new to Balena and working on my first diy project (having previously built a project from a blog).

For some context, I’m using a PI3A+, OS 2.43.0 and an adafruit GPS hat (which connects via serial interface).

Essentially, I cannot get the Dev version of 2.43.0 to boot when the hat is fitted to the Pi… In fact its slightly worse than that, even if you remove the hat the OS still wont boot and requires the SD card to be recreated!

I don’t have any issue with the production version of 2.43.0 - that happily boots with the hat installed.

I first thought it may be the console serial output (as I read elsewhere the dev build comes with this activated - unlike the prod one), however, I disabled it by making the root fs read/write and editing the cmdline.txt - Still no good.

With the hat installed and the SD loaded with the dev OS release - I get no output on the tty when observed via the hdmi port and the green activity led just blinks a couple of times.

What could I be doing wrong???!

Thanks

Following on from the post below - It appears the issue is version dependent. I’ve just been able to boot the pi running 2.32.0 Dev.

I would assume there is an issue introduced between 32 and 43 that is causing my device not to boot.

Thanks

Hi @mr-p do you have a link to the Hat you are using? I heard reports of a similar thing happening on the piZERO with the pimoroni enviro+ hat, which has a particulate sensor on the UART pins. Also since you report its version dependent, by guess would be that something in the raspbian upstream boot firmware has introduced the issue. If you have a spare SD card, it would be interesting to grab the latest raspbian and see if it has the same issue.

Hello @shaunmulligan, thanks for your reply.

The hat I am using is an Adafruit ultimate GPS - Ultimate GPS

It connects via the UART pins on the PI (requiring the Pi3 on board bluetooth to be disabled of course) and also connects via GPIO4 to provide the PPS signal for accurate time signalling.

I have a working prototype of my project running natively on Raspbian without any issues at all - Clean install of the latest Raspbian release boots no issue with the hat installed.

pi@raspberrypi : ~ $ cat /etc/os-release
PRETTY_NAME=“Raspbian GNU/Linux 10 (buster)”
NAME=“Raspbian GNU/Linux”
VERSION_ID=“10”
VERSION=“10 (buster)”
VERSION_CODENAME=buster
ID=raspbian

As per my first post, the production edition of 2.43.0 boots up fine with the hat installed, it just appears to be an issue with the development edition?

Thanks

The development version of the OS is using those UART pins for a serial console already, maybe that’s the issue? We have a feature request tracked to be able to disable that part of the development OS versions, so that might help you. For the time being we would recommend using production OS versions for projects that use that same UART so that there’s no such clash in usage.

Found the open issue @Mr_p, this is what you could subscribe to, so that you would have progress updates. (there’s more info in the ticket, besides the title)

hey @Mr_p I think I know what might be causing this. On the .dev image, the OS development team enabled a feature in uboot that would allow serial to interrupt the boot process so they could debug stuff in uboot. What I think is happening is the hat serial is sending random characters that interrupt the boot. This has been fixed in balenaOS 2.44 (I am told) which is on our staging server. So 3 options to work around this for now.

  1. grab the 2.44 .dev image from https://dashboard.balena-staging.com/ and put a config.json from your app into that image and then flash it
  2. copy the u-boot binary from the .prod to the .dev image you have.
  3. use the .prod image ( I assume this option is not appealing as it doesn’t allow for easy development)

Hi @shaunmulligan

Long delay (haven’t got round to testing it until today), but the good news is option 1 worked. I downloaded 2.44 Dev from the staging instance, booted my PI without the hat, set the BT disable overlays, rebooted with the HAT installed - Successfully booted for the first time using the Dev version of the OS!!

Thanks

Iain