FPP on Raspberry Pi CM4 with MCUZone CM4-4G Carrier Board

Skymaster

Crazy elf
Global moderator
Generous elf
Joined
Dec 19, 2021
Messages
1,125
Location
Western Sydney
Hey all,

I recently obtained from a forum member, a Raspberry Pi Compute Module 4, as well as an MCUZone Carrier board.
For me, the use case was to run FPP and drive some Colorlight cards for a panel, so having the 1G port for the colorlight interface and the 100M for show network was perfect.

This carrier board has 2x USB2 Type A's, a USB C, two ethernet (1x 1G, and 1x 100M) and a M2 slot & SIM slot for a 4G Card. It also has an SD card slot (not usable, more on this later)
It took a little bit of trickery to get going, so this is a little tutorial on what I did in the hopes that it's useful for anyone else attempting the same build.

This is the carrier board:
1718014345516.png
And this is the CM4:
1718014744531.png

The CM4 specs follow the Raspberry Pi 4, including wifi capability, and my particular board is a 2GB RAM model. It has one added feature, which is the inclusion of 32GB of onboard eMMC. This is perfect for running FPP on.
This is why the SD Slot doesn't work on the carrier board, the pins for the storage are not wired to the bus underneath. You need to use the CM4-Lite which does not contain the eMMC if you want to use the SD Slot.
So this makes it a bit more fun to load FPP on initially. This involves putting a bootloader on so that the eMMC appears as a memory stick to your host PC and then loading on the image. This is covered in the first steps below.

Another interesting fact is that the CM4 only has one USB interface internally. This connects to both the USB-C for device/OTG mode, and to a USB hub in Host mode. However only one mode can be active at once, and USB Host Mode is NOT active by default- which means neither the 100Mb ethernet nor the USB slots work out of the box. By default it's in OTG device mode. So more tinkering there, and covered in the second lot of steps.

Installing FPP to the CM4 eMMC
Here are the steps. My links are to the Windows versions of the software, but you can use MacOS or Linux if either of those are your flavour of choice.
  1. Obtain a copy of Raspberry Pi Imager, if you don't already have it from https://downloads.raspberrypi.org/imager/imager_latest.exe
  2. Obtain a copy of rpi-boot from https://github.com/raspberrypi/usbboot/raw/master/win32/rpiboot_setup.exe
  3. Assemble the CM4 onto the carrier board. This may mean using spacers and screws if you're going to attach the supplied heatsink, which is recommended for a Pi-4 due to its heat output.
  4. Between the CM4 and the ethernet jacks is a header labelled BOOT. You need to install a jumper cap to connect the pins.
  5. Connect the carrier boards' USB-C connector to your computer with an appropriate cable. Two red lights and a green light will illuminate.
  6. Run the rpi-boot application. This will present a console window which will show it loading on a bootloader. It will then close and disappear.
  7. Shortly after this, your PC will detect another drive attached and may prompt you to format it. Ignore this and press no.
  8. Load up Raspberry Pi imager application
  9. Just like if setting up an SD card, click the Choose OS button, find Other Specific-purpose OS, select Falcon Player (FPP), and then choose FPP v7.5 Pi
  10. Now choose Select Storage and find the CM4 eMMC device that appears
  11. Press Next. This will write out the eMMC and then validate it.
  12. Once this is complete, disconnect the carrier board from your USB port on the computer, and remove the jumper cap on the BOOT pins you installed in Step 4.
At this point you have a stock-standard FPP install on the CM4 ready to go. As noted, the USB won't be working at this stage, and therefore the 100Mb network jack wont either. So we need to continue the setup using the gigabit port initially.
If, like me, you intend to use the Gig port for a Colorlight, we wait until everything is ready to go before changing network settings because otherwise we're doubling up for no benefit.

Configuring FPP for USB to work
  1. Look at the carrier board, end on, with the ethernet jacks facing towards you. The gigabit port is on the left, and the 100Mbps port is on the right.
  2. Connect the gigabit port to your router/switch at home which has DHCP running on it. I find this so much easier than any of the tether options. That being said, whilst it should work using the Wifi Tether, I didn't test it.
  3. Power on the carrier board & CM4. Do this over the USB-C socket, however, use an EXTERNAL power supply, not a USB Interface to your laptop. This bit me for a while. Firstly, the CM4 board might pull too much power for your USB port on the PC to handle, but secondly, and more importantly, despite config changes, the CM4 WILL stay in OTG/Device mode and switching it to Host mode is impossible.
  4. Watch for FPP to boot, the green light will blink on eMMC access. Once it slows down from being crazy fast, it's mostly initialised and you should be able to load up the web interface
  5. Browse to http://fpp.local/ from a computer on the same segment, and you'll be greeted with the FPP initial setup screen.
  6. Go through the initial setup, hostnames, timezones, location, sharing etc, as required.
  7. Extend the storage when prompted to cover the full 32GB eMMC rather than the default.
  8. As mentioned, don't set any network settings at this point. Give it a reboot for the storage to take effect.
  9. Once it powers back up, log in using SSH. This can be done from a Windows/Mac/Linux command prompt by typing
    Code:
    ssh fpp@fpp.local
    , subsituting fpp.local for the hostname if you changed it.
  10. Use the default password of falcon unless you explicitly changed it as part of setup.
  11. Now, we need to edit the RPI configuration file, stored in /boot/config.txt - run
    Code:
    sudo nano /boot/config.txt
    to bring it up in the nano text editor.
  12. Find a section called
    Code:
    [cm4]
    and in that section there is an option
    Code:
    otg_mode=1
    - You will want to comment this out by adding a # at the start of the line
    Code:
    #otg_mode=1
  13. Now, scroll futher down and find an option that says
    Code:
    dtoverlay=dwc2
    - This needs to be modified to include additional data on the end -
    Code:
    dtoverlay=dwc2,dr_mode=host
  14. Once this has been modified, Save the file by typing Ctrl-O and hitting Enter. You can then exit nano by typing Ctrl-X.
  15. Finally, shut down the CM4 by typing
    Code:
    sudo halt
  16. Once the device has shut down, unplug the power for 3 seconds, and power the CM4 back on.
  17. Thats it - once it boots back up, we can then validate
Valdiating USB & Ethernet
  1. Log into FPP web interface
  2. Go to FPP - Help -> Troubleshooting Commands
  3. Click on USB Device Tree
  4. This should show a tree of devices that looks like this:1718016550461.png
  5. If it only shows the top Class=root_hub then it's not working. But if you see a bunch of devices, specifically the 'Communications' class, then you're looking good. In my case, I also see the Class=Mass Storage as I had a USB Stick connected as well.
  6. Now scroll to the top of the window and click on Interfaces
  7. You should also see both eth0 (gigabit) and eth1 (100mbit) appearing
1718016666985.png

With that, you're all done and checked. FPP is installed, the USB ports are working, the second ethernet device is working.
You can now configure the rest of FPP to your hearts' content!

Now, if you do an FPP OS upgrade, I'm not sure if it will blow away the config.txt changes. So that will be an interesting one to try down the track.

Hope this helps someone who is in the same boat I was figuring this out.
Feel free to reach out or post in here if there are any questions :)
 

Indigogyre

Journeyman Elf
Generous elf
Joined
Jun 26, 2021
Messages
439
This is a VERY nice write up. How do I know? I installed FPP on three of these and ran two of these exact boards last year in my show and they worked perfectly for me.

I will say there is some slight variation with my experience of the config and @Skymaster's. I did not ever attempt to use a USB device and both of the network adaptors worked right away on the reboot, this process was used on three boards. Also of note, I think I installed FPP 7.0/7.2 version, which ever was available around October of last year so variations in the build could have happened since then.

If I get around to turning these on and testing the USB port I'll follow up with additional comments, but this will certainly get your board up and running.
 

Kent

Apprentice elf
Generous elf
Joined
Nov 21, 2020
Messages
76
I still have a bunch of the CM4 carrier boards and can bring some with me to the Melb mini.

Carrier boards only are free to hobbyists looking to use them in their show.
I can also optionally supply the required CM4 module with Wifi, 2G RAM, 8 or 32GB to go onto the boards for $85 AUD each.

Please reach out to me directly if interested.

Note that the price on the CM4 isn't anything special, currently listed as in stock at Digikey for $95 for the 32GB version and $77.74 for the 8GB version (https://www.digikey.com.au/en/products/detail/raspberry-pi/SC0670/13530937 and https://www.digikey.com.au/en/products/detail/raspberry-pi/SC0668/13530939)
 
Last edited:
Top