CM4-WRT-A: Raspberry Pi CM4 Gigabit Router Baseboard with NVME Support

By MyTechCatalog, 25 January, 2023

The CM4-WRT-A is a Raspberry Pi CM4 carrier board that can be used to create a gigabit router capable of supporting WiFi 6/6E as well as a 4G/5G backup connection. Currently sold on Tindie https://www.tindie.com/products/mytechcatalog/rpi-cm4-router-baseboard-with-nvme/

Specifications

  • Two PCIe M.2 Key M slots for NVME SSDs. Adapters will be made available soon (if the market does not currently offer any) to convert the middle slot into a M.2 Key B or Mini PCI-E (mPCIe) slot so as to support an optional 4G/5G modem for those who need one.
  • One PCIe M.2 Key E connector for a WIFI 6/6E adapter.
  • Two 1GBit Ethernet connectors: ETH0 the default LAN interface, and ETH1 typically used as the WAN interface.
  • 5V PWM fan connectors: J17 and J18 (next to the CM4). The other two connectors are reserved for special GPIO functions, such as CM4 reset switch and CM4 Boot to USB Mass Storage mode.
  • One Raspberry Pi Pico RP2040 micro-controller performs PWM fan control, board temperature sensor monitoring and watchdog functions.
  • A six-pin header (J12) provides access to the CM4's UART0 and I2C bus. An OLED screen can be connected to this header and mounted into an updated version of the case.
  • One USB 2.0 port connected to the CM4, can be used in both device and host mode.
  • One USB1.1 port connected the RPi Pico, can be used in both device and host mode.
  • Power Input: 12V DC. A power supply with a 5.5 X 2.1mm female barrel connector (center positive) and enough power for all the attached peripherals (36W minimum). A good power supply with sufficient power is critical.
  • Support for power switch to power down CM4, ETH1 and PCIe peripherals.
  • Dimensions: 147.4 x 91.0 mm

3D Printed Case for the CM4-WRT-A Baseboard

There is a 3D printed case available for the CM4-WRT-A baseboard. The files for which are available in the CM4-WRT-A GitHub repo: https://github.com/MyTechCatalog/cm4-wrt-a/tree/main/case 

CM4-WRT-A router
Connections Between Raspberry Pi CM4 and Pico on the CM4-WRT-A board.
CM4PicoNotes
GPIO5 / RXD3GPIO0 / UART0 TX 
GPIO4 / TXD3GPIO1 / UART0 RX 
RUN_PGGPIO1610k pull down near Pico
nEXTRSTGPIO17 
nRPIBOOTGPIO18 
Global_ENGPIO1910k pull down near Pico

#Power Switch

The CM4-WRT-A baseboard supports a power switch via a jumper with reference J16. Connect a momentary switch between pin 3 (GPIO7) and pin 1 (ground). If the service picod is up and running on the CM4, a short button press, (longer than 0.25 seconds and less than 2 seconds) will cause the service picod to issue a graceful shutdown command. RPi Pico will also power down ETH1, and the PCIe peripherals. If the button is pressed for more than 2 seconds, the CM4 will be reset (hard reset) without a chance to save settings or files. A hard reset should only be done as a last resort for an unresponsive RPi CM4.

When the CM4 is gracefully shutdown with a short press of the power button, it can be powered on again with another short button press.

#Dashboard

When compiled for Raspbian, and other Debian variants, the CM4-WRT-A software consists of a service called picod, which communicates with the Raspberry Pi Pico collecting periodic measurements from six temperature sensors on the CM4-WRT-A board, as well as the system fan Revolutions Per Minute (RPM). Below is a screenshot showing an example of a built-in dashboard displaying the six temperature sensors, and system fan RPM of the CM4-WRT-A board.

CM4-WRT-A built-in dashboard

The dashboard is available at http://localhost:8086/ by default. This location is not accessible from outside the RPi CM4 itself. As such, an SSH tunnel can be created with the following command to forward port 8086 to your localhost:

ssh -L 8086:localhost:8086 username@cm4_ip_address

The picod service also natively supports InfluxDB. The network interface (such as localhost above) where the dashboard is accessible, can be configured via the picod config file located at /etc/picod/picod.conf on the CM4-WRT-A router.

Video

I have a video that goes over the setup procedure, or you can skip to the next article: