Raspberry Pi 3 (64 bit) on RPI4 application


We’ve an app, created for the Raspberry Pi 4 (64 bit), but we’d like to support older Raspberry Pi’s that are already running in the field. So I downloaded the Raspberry Pi 3 (64-bit) image, configured it so that it’s connected to the RPI4 application, and (with some small changes) all went well!

However, I created a production image where I added the os.ssh-keys option to the config.json, and there the deviceType changed to raspberrypi4-64, because the application is configured for that device type.

So far, everything runs well on both the RPI4 as the RPI3, but I just wanted to know if this can cause any problems? We’ll test our releases on both devices, so the application itself won’t be a problem.


Hi @bversluijs, can you clarify how you got there? For reference I tried to replicate following this steps:

  1. Create an application with default device type: Raspberry Pi 4
  2. Add a new device to the app with device type Raspberry Pi 3 (using 64bit OS)
  3. Download balenaOS

Upon inspecting the contents of config.json I see: "deviceType":"raspberrypi3-64"

Is this not the case for you? I suspect your workflow is slightly different but not sure how it differs, please let me know!

Hi Tomas,

I’m using openBalena, so I’m using the Balena CLI as follows:

balena configure os <path-to-image> --app <app>

The config.json file had raspberrypi3-64 in it before I configured it via the CLI, but after configuring it, it changed to raspberrypi4-64. The device-type.json stayed raspberrypi3-64.

I’m using Balena CLI version 12.38.4 (haven’t updated my production environment of openBalena yet)

Edited, because my first response was short, not detailed (was on my phone)

Thank you for clarifying your steps, that’s very helpful!

From what I can understand the CLI is using details from the provided app (--app <app>) to populate config.json so it’s inheriting the default application type of the app, which is raspberrypi4-64 in this case.

Fortunately the real source of truth for a device type is device-type.json which is unchanged from raspberrypi3-64 as you noticed so the behaviour of your device and application should be unaffected.

That being said, I find this behaviour a little odd so I’m going to bring it up for discussion internally to confirm it’s expected and what the plans are going forward regarding config.json vs device-type.json.

Thank you for bringing this to our attention!

1 Like