Waveshare Compute Module PoE with Raspberry Pi CM3+ (32GB)

I recently found out about balenaOS and I think it could be an excellent fit for my embedded project. I’m looking to use the Raspberry Pi Compute Module 3+ (32GB for development, probably 8GB for production). I have looked at the balenaFin, but for my project I need it to be very small (to fit in a 2-gang electrical box), so I think I ultimately have have to design my own board.
That being said, for development I bought the Waveshare Compute Module PoE board, since it has all the features I need (PoE primarily) and I’m trying to get balenaOS up on it. I can run the standard Raspbian from raspberrypi.org) fine on it, but balenaOS never boots up, the HDMI monitor turns on, but there’s nothing on the screen, it never shows up on the network.

It’s very possible I’m doing something wrong, or it’s simply not supported, but I figured I’d start here to see if anyone has had success with this set up.

Here’s a link to the board: https://www.waveshare.com/wiki/Compute_Module_PoE_Board.

I don’t have experience with Yocto, and I can’t find any Yocto overlays for this board, but since the Raspbian build works I assumed it wouldn’t be too hard to get balenaOS to work.


Hi there,

What device type did you choose to download balenaOS and which balenaOS version did you download?

I selected the Raspberry Pi 3 B/B+ Development 2.47.0+rev1 image.


My Waveshare PoE board arrived today. I have a 16Gb Compute module. I downloaded the same BalenaOS image as you (not 64 bit) and it connected to BalenaCloud no probs and is currently downloading my application.
It is running powered from PoE

Application downloaded and running fine.

What did you use to burn the BalenaOS onto the compute module? I used etcher.

Ah, interesting. Do you have a monitor hooked up? Where did you find the non-64bit image, I used the “Add device” from balenaCloud and the only option for RPi3 is 64-bit. I used etcher as well after running rpiboot on Win10.

No monitor hooked up. Our application is headless.
When you add device you should get this…

Hmm, interesting, I don’t have that option.

Ah, my app is 64-bit, that’s why it only shows the 64-bit option.

Was just about to ask that

Ok, so the 32-bit images (both the cloud and the standalone) work great, even HDMI output. I guess the issue is with 64-bit, and obviously the Raspbian image was 32-bit. In the end I guess I could run 32-bit, my application isn’t too demanding, it’s just that I figured it would be better to make sure it all works on 64-bit, but at least I’m unblocked. Thanks Chris for your help!

Have you tried it again with 64bit OS just to check it wasn’t due to a bad write of the OS to the module the first time?

Glad I could help. Just lucky my board arrived today so I could test it for you!

Yea I’ve tried it 3 times, my guess is that there’s something going on with the 64-bit images for RPi3. If I have time I can do some more testing. I have a RPi4 that runs the 64b image just fine, FWIW. I’ll try a regular RPi3 with 64b later.

I tested the 64-bit image (the same one I downloaded for the CM3) on a regular RPi3 and it works fine, so I know the image is good. It must be something odd with the CM3 or the Wareshare I assume.

Hey everyone,

We love when community members interact and help one another, great job! For some reasons, the specific carrier board does not support the vanilla 64-bit balenaOS, probably because it misses some overlays in the Yocto build. We had a similar request for our own balenaFin which currently supports 32bit OS but can be hacked to use the 64bit RPI3 image.

In any case, you can try to find what are the required layers for the carrier board to function properly and then build balenaOS yourselves.

Thanks for reaching out ! :muscle:

1 Like

I just tested the Ubuntu 20.04 LTS 64-bit image from raspberrypi.org and it works fine on the CM3+. So it must be something with the carrier board. Waveshare doesn’t provide any yocto files, what is the recommended way to troubleshoot and solve this? Where should we go to get started on getting this resolved? Should I open a ticket with Balena as a placeholder as a starter? What are the hacks for the balenaFin for 64-bit, maybe it’s the same?

If you are building the balenaOS for Raspberry Pi in any form factor (in your case this Waveshare board), I suggest you start by looking at this page here. This shows how to use our GitHub repo - https://github.com/balena-os/balena-raspberrypi - to build an image.

The docs have information on what files you’ll need and where all you can make changes. If you run into issues with building the vanilla image, or making changes, you can raise an issue on the balena-raspeberrypi GH repo under the balenaOS org.

I opened an issue to keep as a placeholder (https://github.com/balena-os/balena-raspberrypi/issues/486). I’ll try to see if I can get the build to run, but I’m a little in the dark what I would need from WaveShare to make it all work together. Are you aware of Yocto files that are used to build the Ubuntu Server (which works) that I could look at to compare (I realize Ubuntu may not use Yocto, but figured I’d ask if anyone is aware)?

Hi there,

We’ve raised this internally with our devices team to ask them to chime in here. Most of that team is based in Europe, so I wouldn’t expect it may take up to a day for them to get back to you.

Thanks for your patience,

1 Like

For anybody else we have moved the conversation to this github ticket: https://github.com/balena-os/balena-raspberrypi/issues/486