Designed by Oratek in Switzerland
Version 1.0
The TOFU board is a carrier board for use with Raspberry Pi Compute Module 4 (CM4). Inspired by the official CM4IO board, it is intended for industrial applications. With user friendly additions, it may also be used by enthusiasts looking for a compact yet complete solution to interface the many inputs and outputs of the single board computer.
The size of the board is 9x9cm and its main features are :
- Standard Raspberry Pi 40 pin GPIO header
- Gigabit Ethernet port with PoE through the official Raspberry Pi PoE HAT
- M.2 2242/3042 socket (key B) with micro SIM card holder. See compatibility list.
- 3x USB-A ports
- Full size HDMI port
- Camera and display ports (newer 22pin version, flexible adapter cables can be purchased separately here)
- Two power inputs for industrial connectors (2.1mm barrel and standard 3.5mm terminal block)
- Large input voltage range, from 7.5 to 28V. Also available on 3x1 header pins for sharing to HATs requiring higher voltages (recommended power rating: >24W)
- Micro SD card slot. Only used for CM4Lite (no eMMC memory)
- USB-C port to use it as an OTG device and for programming purposes. May also be used to power the CM4, with power constraints if used with peripherals.
- Circuit protections added for safety reasons (ESD, over- and reverse-current protections)
- Standard Raspberry Pi, CM4 and 4 additional M3 mounting holes for design flexibility
M.2 connectivity (key B) enables to fully take advantage of the new PCIe lane (here with a LTE/GPS module)
Top layer design (also see pin configurations)
Feature | Description |
---|---|
CM4 connectors | 1.45mm height |
Raspberry Pi header | Standard 40pin connector, refer to Raspberry Pi datasheets |
EEPROM WP, eMMC boot | Optional jumper (2.54mm pitch, see pin configurations) |
Gb Ethernet | ESD protected, Power over Ethernet (PoE) capabilities through the official Raspberry Pi PoE HAT. If using this HAT, we recommend using 10mm, M2.5 spacers, and covering the transformer with electrical tape for added protection. Using this HAT, the board will be compatible with 802.3af PoE networks. The CM4 will also enjoy a little breeze from the included fan. A higher current than 2.5A is advised for all peripherals. |
Double USB A | Stacked USB 2.0 connectors, 1.5A current limit for all USB ports |
Main power fuse | Littelfuse, 3.5A, NANO2 (045303.5MR, or similar) |
PWR/ACT LEDs | Red power LED, green flashing activity LED |
Power jack | 2.1mm inside, 5.5mm outside diameter. Outer connection is ground, inner conductor is positive voltage. |
Terminal block | Standard 2 positions, 3.5mm pitch |
AC/DC power supply | No external AC/DC power supply provided. 24W is the minimum recommended power. An example could be ACM24US12 from XP Power. |
Input voltage breakout | Intended as power output (supply for connected HATs). Can be used as input but caution is advised as it is located after the reverse polarity protection. |
Display, camera outputs | Standard Raspberry Pi connections, 22pin, 0.5mm pitch |
HDMI port | ESD protected, current limit protection |
Single/double USB A | Depending on whether a USB line is needed for the M.2 port, a single or double (stacked) connector can be mounted. The USB line can be deviated through two 0402 jumpers. |
USB C port | ESD protected. When plugged, the board will switch to USB slave (connected USB devices will stop functioning). The USB C can power the Raspberry Pi for programming purposes. Power limitations can occur with peripherals due to the maximum current of 3A for USB-C. |
Micro SD | Card slot for CM4 modules without eMMC. Push-push type connector. |
Micro SIM | For use with compatible M.2 modules. Push-push type connector. |
M.2 connector | The 2242 B key slot enables the use of SSDs, often with B+M key configuration, as well as network modules, which can then use the onboard micro SIM card. 1.5mm base height for the connected module. Network cards are more often available as 3042 format, which is also compatible. An adapter can be purchased separately to connect up to 2280 M key NVMe SSDs. |
Note: When powering the device through PoE or other power HATs (5V line of RPi header as power input), or with USB-C, a hissing noise may appear from the unused power supply. The fuse may be removed for silent operation in these cases.
Edit note: After feedback from our customers, it appears PoE and power HATs will in fact power on the m.2 connector. However, the output current is often limited to 2.5A on these boards. We recommend a higher current rating for proper operation of all peripherals.
- KingSpec NE 2242, 128GB
- Western Digital PC SN520, 128GB
- Transcend MTE452T, 128GB
- Western Digital Blue SN550, 256GB, M.2 2280
- Western Digital Black SN750, 1TB, M.2 2280
- Samsung 970 Pro, 512GB, M.2 2280
- Huawei ME906s-158
- Huawei ME936
- Sierra Wireless AirPrime EM7345
To fully utilize the board possibilities, both USB ports and NVMe interfaces have to be enabled.
As indicated on the CM4IO board datasheet:
"The USB interface is disabled to save power by default on the CM4. To enable it you need to add the following to the config.txt file :"
dtoverlay=dwc2,dr_mode=host
NVMe support is also not enabled by default on Raspberry Pi OS. The command
sudo modprobe nvme-core
is needed, followed by a reboot to enable the NVMe kernel module. More information on NVMe can be found on Jeff Geerling's CM4 review.
To boot on eMMC, hold down the nRPIBOOT button while plugging the USB-C cable for flashing (no other power input). The USB cable will power the CM4 while it boots. You may release the button after having plugged the cable. More information for flashing the eMMC can be found here.
First you need to partition the storage, following this tutorial from pidramble. Note that /dev/sda1 will most likely be replaced by /dev/nvme0n1.
An alternate possibility for mounting can be found on Raspberry Pi's website, here (with a formatted device).
A neat benchmark test can be run to find your SSD performance by following the 3 commands on jamesachambers.com, with results here. If following the Raspberry Pi mounting procedure, simply run:
sudo ./Storage.sh /mnt/mydisk
as the last command.
M.2 network cards often use the USB line of the connector as interface. Remember to enable the USB interface, as mentioned above.
The tested cards work natively using Balena OS with Network Manager and Modem Manager being pre-installed. You will just have to set up a configuration file and it works straight out of the box (more details).
Another way is to manually install Network Manager and Modem Manager and configure it. This is not specific to the TOFU board but more general to Linux. A guide to get started can be found here.
On the TOFU board, the camera and display ports are cam1 and disp1. You can find help on enabling these on the Raspberry Pi documentation (camera and display). You can for example download the file "dt-blob-disp1-cam1.dts" at the bottom of the page.
You then need to compile the file (this will display lots of warnings which can be ignored):
sudo dtc -I dts -O dtb -o dt-blob-disp1-cam1.dtb dt-blob-disp1-cam1.dts
Then install the dt-blob.bin:
sudo cp dt-blob-disp1-cam1.dtb /boot/dt-blob.bin
reboot, and you should be all set. More information can also be found here.
Output voltage selection, Raspberry Pi 'Enable' and 'Run' pins, and wireless options
- Raspberry Pi Compute Module 4 datasheet
- Raspberry Pi Compute Module 4 IO Board datasheet
- General Raspberry Pi documentation
- Complete (all connectors, 3x USB A, one USB line in M.2)
Other components may be removed (for example no M.2, 4x USB A) upon request for large quantities (>200 pieces)
For any enquiry, please contact us at [email protected]
Raspberry Pi is a trademark of the Raspberry Pi Foundation