Vad är Raspberry Pi Compute Module 4 (CM4)?

Om du är ny i Raspberry Pi-serien av mikrodatorer kanske du undrar om Raspberry Pi Compute Module 4 (CM4) passar för ditt användningsområde.

Vad är Raspberry Pi CM4?

Raspberry Pi Compute Module 4 är mycket lik Raspberry Pi 4.

Till skillnad från Pi 4 är CM4 egentligen tänkt som en bas för att bygga inbyggda tillämpningar. Du kan se det som Raspberry Pi 4:s inre utan onödiga funktioner.

Om du vill bygga en prototyp snabbt kan du använda Raspberry Pi CM4 IO-kortet, som har alla de gränssnitt som finns tillgängliga på Raspberry Pi CM4, inklusive en PCI Express Gen 2-plats som du inte får på Raspberry Pi 4.

I slutändan är hela syftet med en CM4 att du ska kunna integrera den i så enkla projekt som digital skyltning, fjärrskrivbord (tunna klienter), automatisering och robotar.

Industriella användare är en av de största målmarknaderna för CM4, men även småföretag och hemanvändare kan dra nytta av den.

Raspberry Pi 4 vs Compute Module 4

Raspberry Pi 4, Compute Module 4 och det officiella IO-kortet (uppifrån och ner)

Nyckeln till detta är anpassningsbarheten.

Du vet hur vissa människor gillar Macs för att de bara fungerar? Du kan inte anpassa den särskilt mycket, men du kan lita på att den fungerar. Å andra sidan gillar andra att bygga sin egen dator med delar från olika tillverkare.

Analogin förklarar skillnaden mellan Pi 4 och CM4.

När du köper en Raspberry Pi 4 är du fast med 4x USB 3.0, Ethernet-portar, CSI-kontakter och USB-C för strömförsörjning bland många andra aspekter som Pi 4 redan har förinställt. Den här kombinationen fungerar dock sömlöst.

Med Compute Module 4 kan du köpa ett bärarkort som gör att du kan driva den med olika metoder, t.ex. en tunnkontakter eller en USB-C-kontakt, beroende på vad du köper. I vissa situationer kanske USB-C på Pi 4 inte räcker - till exempel om du har en installation med hög strömförbrukning.

En stor skillnad med Raspberry Pi 4 är möjligheten att köpa ett bärarkort som exponerar PCIe-platsen, vilket ger mycket mer anpassningsmöjligheter.

När det gäller lagringsutrymme har CM4 redan eMMC på de flesta av korten, vilket är mycket mer tillförlitligt än microSD-kortet på Pi 4, men du kan gå vidare genom att lägga till en SSD med hjälp av ett lämpligt bärarkort.

Varför älskar industrin Pi CM4 så mycket?

I slutändan handlar det om anpassningsbarhet.

Låt oss återgå till argumentet att CM4 och Pi 4 är mycket lika varandra.

Så varför är CM4 bättre än den vanliga Pi 4?

För det första är dess paket med portar och funktioner verkligen avsett för hemmabruk. Om du till exempel använder Pi 4 för att driva ett bevattningssystem för växter hemma och microSD-kortet går sönder... då är det bara en växt som är borta.

Å andra sidan kan industrikunder driva en kritisk komponent i ett kraftverk. Du kan inte bara driva ett kraftverk med en microSD. Det är faktiskt här som CM4 kommer in i bilden, eftersom industriella användare kan bygga sitt eget kort med redundanta lagringsmöjligheter, högre värmetolerans och standardiserade industriella monteringsalternativ, samtidigt som de kan dra nytta av CM4:s låga effekt och lilla storlek.

Certifieringar är i allmänhet en av de största utgifterna för att få ett system godkänt för användning, och det är en av anledningarna till att CM4:s anpassningsbarhet gör det mycket attraktivt för industriella användare.

Ett annat litet skäl är kanske den gemenskap som CM4 har jämfört med sina konkurrenter. Raspberry Pi-communityt arbetar tillsammans för att hålla olika mjukvaruaspekter av kärnan i funktion så att alla i industrisamhället kan dra nytta av dem.

Jämför det med konkurrenterna med enstaka kort, där det krävdes mycket mer ansträngning för att få något att fungera på den specifika datorn med ett enda kort. Med Raspberry Pi CM4 finns det stöd och kontinuitet från samhället.

Specifikationer för Raspberry Pi CM4

Höjdpunkter från Raspberry Pi:

  • Broadcom BCM2711 fyrkärnig Cortex-A72 (ARM v8) 64-bitars SoC @ 1,5 GHz
  • H.265 (HEVC) (upp till 4Kp60 avkodning), H.264 (upp till 1080p60 avkodning, 1080p30 kodning) 
  • OpenGL ES 3.1, Vulkan 1.0
  • Alternativ för 1 GB, 2 GB, 4 GB eller 8 GB LPDDR4-3200 SDRAM (beroende på variant)
  • Alternativ för 0 GB ("Lite"), 8 GB, 16 GB eller 32 GB eMMC Flash-minne (beroende på variant)
  • Tillval för fullt certifierad radiomodul:
    2,4 GHz, 5,0 GHz IEEE 802.11 b/g/n/ac trådlöst;
    Bluetooth 5.0, BLE;
    Inbyggd elektronisk omkopplare för att välja antingen extern antenn eller PCB-antenn.

32 varianter av beräkningsmodulen 4

Raspberry Pi CM4 har 32 varianter med olika RAM-minne, WLAN-alternativ och lagringskapacitet.

Bilden är hämtad från produktbeskrivningen för Raspberry Pi CM4.

I själva verket kan du se den tillgängliga kombinationer och motsvarande priser (i euro) i vår butik.

Är Raspberry Pi CM4 en ersättning för den vanliga Pi?

För allmän användning är det bättre att använda en vanlig Raspberry Pi 4.

Du kan absolut göra samma saker med Raspberry Pi CM4 plus CM4IO-kortet som ger dig anslutningar som HDMI, Ethernet, USB, GPIO-stift och många andra anslutningar som du hittar på Raspberry Pi.

Många saker är dock enklare på Raspberry Pi 4 jämfört med CM4 plus IO-kortet:

Raspberry Pi CM4Raspberry Pi 4
Effekt 5,5×2,1 mm tunnkontakt eller Berg-kontaktUSB-C
Spänningar5V, 12V eller 7,5V till 26V (olika spänningar möjliggör olika funktioner)5V via USB-C
StorlekStörre med IO-kortMindre
MinneeMMC eller SD-kort (med Lite-versionen)SD-kort som standard

Det finns dock andra bärarkort som lämpar sig bättre för att göra CM4 till en stationär dator.

Det är faktiskt här som CM4 är bäst. Du kan fästa den på olika styrelser beroende på vilka portar och funktioner du behöver.

Adapter för Raspberry Pi CM4 till PI4B. Foto från AliExpress.

Till exempel Raspberry Pi CM4 till PI4B Adapter hittades på AliExpress kan omvandla din CM4 till en Raspberry Pi 4 med dubbla micro-HDMI, 4x USB 3.0, GPIO, CSI och Ethernet.

Chipsee AIO-CM4-15 desktop replacement. Foto från Chipsee.

The Chipsee AIO-CM4-156 tar det ett steg längre. Det viktigaste tillägget här är NVMe SSD-platsen som är ännu bättre som lagringslösning än eMMC på Compute Module 4. Sedan finns det de standardportar som du förväntar dig av en stationär dator: USB-portar, USB-C OTG-port, HDMI-utgång, Ethernet-port, microSD-kortplats, ljudutgång och GPIO.

Strömförsörjning av Raspberry Pi CM4 (med IO Board)

Strömförsörjningen av CM4 skiljer sig lite från alla andra Raspberry Pis.

På Raspberry Pi Zero, Pico och Pi 4 får du ström via microUSB- eller USB-C-ingången.

På CM4 IO-kortet har du ett antal valmöjligheter när det gäller hur du vill driva kortet.

Anslutningar för strömförsörjning av beräkningsmodulen 4

Låt oss först tala om kontaktdon.

På Raspberry Pi CM4 IO-kortet finns det två kontakter som är markerade som J19 och J20. Låt oss tala om dem separat.

Ingång för huvudnätet: J19 fatkontakt

Du kan ansluta Raspberry Pi IO-kortet till en strömförsörjning via tunnans kontakt.

Den tar emot en 5,5×2,1 mm DC-anslutning med spets. Dessa kontakter används ofta på routrar, bärbara datorer, laddare och många andra elektroniska produkter.

Du bör leverera 12 V om du inte planerar att använda PCIe-kortplatsen, den externa nätaggregatskontakten eller en 12 V-fläkt, i vilket fall du kan driva den med 7,5 V till 28 V. Här är den exakta ordalydelsen från Raspberry Pi CM4-databladet,

"+12V-ingången matar +12V PCIe-kortplatsen, den externa PSU-kontakten och fläktkontakten direkt. Om dessa inte används är en bredare ingångsförsörjning möjlig (+7,5V till +28V)."

J20 "Berg"-kontakt

raspberry pi cm4 j20 strömkontakt

J20 använder Berg-kontakten, artikelnummer AMP/TE Connectivity 171822-4 eller liknande. Du kan också hitta dessa från gamla datorleveranser som har ett diskettströmsaggregat.

Berg-kontakt (skärmdump från Wikipedia, offentlig egendom)

J20 har två syften. Låt oss börja med hur du kan driva din CM4 med den här kontakten.

Du måste leverera 12V via den gula kabeln. Tillför inte 5V till den röda ledningen.

Berg-kontaktens pinout. Skärmdump från Wikipedia (CC-BY-SA)

Det andra användningsområdet för J20 är att fungera som strömförsörjning för PCIe-periferiprodukter. Som anges i CM4:s datablad,

"Med en +12V-försörjning via DC-uttaget är den externa PSU-kontakten (J20 med +5V och +12V) idealisk för att ansluta till PCIe-kort som kräver en extern PSU. Du bör se till att PSU:erna inte överbelastas"

Hur mycket ström?

Raspberry Pi har ingen rekommenderad strömförsörjning för CM4 och IO-kortet.

De föreslår att du budgeterar 9 W (vid 12 V) för CM4 och sedan lägger till lite utrymme för kringutrustning som är ansluten till CM4.

Sätt in CM4 i IO-kortet

raspberry pi cm4 riktning io board
Så här sätter du in Raspberry Pi CM4 i IO-kortet

För att sätta in din Raspberry Pi CM4 i IO-kortet måste den vara i rätt riktning.

Bilden ovan visar hur Raspberry Pi CM4 ska sättas in i IO-kortet.

Det viktiga är att tänka på att Raspberry Pi-logotypen ska vara längre bort från PCIe-kortet. Med andra ord ska UFL-porten (extern trådlös antenn) vara närmare PCIe-porten.

Tryck nedåt på beräkningsmodulen och du bör höra två klick som visar att båda skenorna har ställts in.

raspberry pi cm4 införd i io board

Observera profilen på CM4- och IO-kortet och se till att de är parallella med varandra. Om de inte är det tyder det på att en skena inte trycktes in ordentligt.

Skriva ett operativsystem till CM4 med IO-kortet

IO-kortet har en SD-kortplats... men den enda gången du kommer att använda denna SD-kortplats är om du har köpt en CM4Lite utan integrerad eMMC-lagring.

Om du har Lite-versionen är det lika enkelt som att flasha ett microSD-kort precis som på en vanlig Raspberry Pi.

Det kan dock hända att du har en icke-Lite-version som kräver några fler steg innan du kan montera eMMC-lagret.

Du behöver:

  • Jumper för att kortsluta J2
  • MicroUSB-kabel för att ansluta till din dator
  • Strömförsörjning

Inaktivera eMMC-start

Om du har en eMMC måste du inaktivera eMMC-start så att du kan montera CM4 som en flyttbar disk. För att göra det lägger du till en jumper på den första kolumnen i J2. J2 är placerad mellan CM4 och fästpunkterna för kamera-/displaykabeln.

Jumpertrådar från kvinna till kvinna

Du kan använda en kopplingstråd från hona till hona som finns i många startpaket, eller så kan du köpa en "kortslutningsbryggare" som är avsedd för det här ändamålet.

Hämta rpiboot

När du flashar ett SD-kort är det superenkelt. Du sätter in det i datorn och det är klart.

Eftersom vi talar om eMMC-versionerna av CM4:orna behöver du dock rpiboot, som gör att din CM4 kan läsas som en flyttbar enhet.

The Github-repo för rpiboot finns här.

Montering av CM4 i Windows

Om du har Windows kan du gå vidare och Ladda ner rpiboot-versionen här.

Extrahera sedan ZIP-filen och gå till win32-katalogen och kör rpiboot_setup.exe.

Windows Defender kan dyka upp och tala om att sidoladdad programvara kan vara farlig. Gå förbi varningen.

Om CM4:s strömförsörjning och microUSB (J11) inte är anslutna, gör det nu och anslut USB till datorn.

Det kanske är bättre att köra rpiboot som administratör. Min fungerade bra utan administratörsrättigheter.

Kör rpiboot. Efter installationsprogrammet bör du kunna hitta det i startmenyn.

Låt den gå igenom sina steg och du kommer att se detta:

Väntar på BCM2835/6/7/2711...
Laddar in inbäddad: bootcode4.bin
Skickar bootcode.bin
Framgångsrik läsning av 4 bytes
Väntar på BCM2835/6/7/2711...
Laddar inbäddad: bootcode4.bin
Andra etappen av startservern
Laddar inbäddad: start4.elf
Läst fil: start4.elf
Andra etappen av startservern klar

Den dödar sig själv och du bör se CM4:s volym visas.

Raspberry Pi Imager med CM4 har monterats framgångsrikt

Så här ser det ut i Raspberry Pi Imager.

Blixtar iväg, gott folk!

Montering av CM4 i Linux

Anvisningarna i rpiboot Github-repo förklarar det tydligt. Kör:

sudo apt install git libusb-1.0-0-dev pkg-config
git clone --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
make
sudo ./rpiboot

Raspberry Pi föreslår att du måste se till att systemdatumet är korrekt inställt, annars kan Git få ett fel.

CM4 på macOS

På macOS är stegen desamma. Enligt Github-repo:n är stegen följande,

git clone --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
brew install libusb
brew install pkg-config
make
sudo ./rpiboot
Uppstart av raspberry pi cm4
Det är stövlar!

Raspberry Pi CM4-projekt

Raspberry Pi CM4 är hjärnan i ett projekt och har använts både på fritiden och i arbetet. Här är några projekt.

Spel: CM4 handdator

Den påminner om Pi 400, men i form av en handhållen spelkonsol.

Raspberry Pi CM4 handdatorn kommer från Daniel Juckett som gav den smeknamnet "Aegis".

Daniel visade att du kan spela spel som Deus Ex: Mankind Divided och Doom 2016 med Moonlight via Retropie på denna handhållna dator. Du kan också surfa på webben och titta på YouTube-videor.

Aegis är ett projekt med öppen källkod och Du kan se Github här.

Med CM4 kunde Daniel anpassa layouten för portarna (jämfört med en Pi 4 med en fast portlayout). För skärmen använde han den officiella Raspberry Pi 7″-skärmen. För kontrollerna använde han Wii U-knappar och joysticks. Slutligen använde han också högtalare och rumble-motorer.

Personliga datorer: PiTray mini

Om du gillar Raspberry Pi 4 men föredrar att ha ett mer användbart system, kan du överväga att använda PiTray mini, designad av Shengyuan Fang och Weihong Guan och säljs av Sourcekit.

Kortet har samma storlek som Raspberry Pi 4, men det är inte en 1:1 ersättning för Pi 4.

PiTray Mini, foto från sourcekit.cc

Som du kan se finns det gamla goda GPIO-, Ethernet- och microSD-platser, men du får bara en enda USB-port och en vanlig HDMI-port (jämfört med 4 USB-portar och 2 microHDMI-portar på Pi 4). Du får inte heller DSI, CSI, ljuduttag eller USB 3.0-hubbar.

Några användningsområden för detta är klusterbyggande och att utnyttja fördelarna med CM4:s eMMC jämfört med Pi 4:s SD-kort för ökad stabilitet och hastighet.

PiTray är en budgetorienterad lösning jämfört med det officiella IO-kortet eftersom det är mycket billigare.

Självhyst server: Turing Pi 2

Ett kluster av Raspberry Pi CM4:or kopplade till en Turing Pi 2 (foto från Turing Pi 2:s pressmeddelande)

Turing Pi 2 är en enkel lösning för personer som vill vara värd för sina egna servrar och köra tjänster som hemassistent, mediaströmning, spelservrar, VPN-tjänster, IoT-server och mycket mer.

Med hjälp av Raspberry Pi CM4 kan du skala upp eller ner beroende på serverbelastningen. Detta har fördelen att din server är så utrustad som den behöver för att utföra sina uppgifter, samtidigt som du ser till att den inte överbelastas.

Turing Pi 2 har en mini ITX-formfaktor och kan ta emot CM4- och Jetson Nano-kort (foto från Turing Pi 2:s pressmeddelande).

Vad kan jag göra med PCIe-kortplatsen?

Teoretiskt sett kan du installera vilket kort som helst som använder PCIe.

Detta inkluderar grafikkort, lagringskort via M.2, NVMe eller SATA, WiFi-kort, USB-kort och många fler.

Den begränsande faktorn är kompatibiliteten med CM4, operativsystemet och tillgången till drivrutiner.

Till exempel är det generellt sett svårare att köra grafikkort på IO Board än något enklare som ett USB-kort. Det förstnämnda kräver nästan alltid en drivrutin och funktionaliteten är inte garanterad, medan det sistnämnda inte kräver några drivrutiner och du får full funktionalitet.

En lista över kompatibla grafikkort sammanställd av Jeff Geerling.

En fullständig lista har sammanställts av Jeff Geerling och finns här. På den här webbplatsen finns följande kategorier av PCIe-kort:

  • GPU:er (grafikkort)
  • USB-kort
  • M.2- och NVMe-adaptrar
  • Nätverkskort (NIC) och WiFi Adapters
  • Multimedia (A/V) och ljudkort
  • SATA-kort och lagring
  • PCIe-växlar och adaptrar
  • Andra kort (FireWire, tidskort, etc.)

Alternativa carrier boards till den officiella IO Board

En lista över alternativa carrier boards sammanställd av Jeff Geerling.

Det finns många bärarkort som ger olika portar och funktioner till IO-kortet.

Du kan hitta en Här hittar du en sammanställning av bärarkort som kan vara bättre för ditt användningsområde.

Galleri för CM4 och IO Board

Raspberry pi cm4 med mmc
Raspberry Pi CM4-kort, 32 GB eMMC, trådlöst
uFL-antennkontakt (överst till höger, bredvid monteringshålet)
raspberry pi cm4 med WiFi-antenn
Raspberry Pi CM4 med WiFi-antenn
Raspberry Pi CM4 Broadcom SoC
Raspberry Pi CM4 Broadcom SoC (mitten)
Raspberry Pi CM4 undersida
Raspberry Pi CM4 undersida

Officiellt IO-kort

Raspberry Pi CM4 CSI-kontakter
Raspberry Pi CM4 DSI/CSI-kontakter för bildskärmar och kameror
Raspberry Pi CM4 IO Board baksida
Raspberry Pi CM4 IO Board baksida
Raspberry Pi CM4 IO Board realtidsklocka batteri
Raspberry Pi CM4 IO Board realtidsklocka batterihållare
Raspberry Pi CM4 IO Board GPIO-stift
Raspberry Pi CM4 IO Board GPIO-stift
Profil för Raspberry Pi CM4 IO Board
Raspberry Pi CM4 IO Board-profil med 2x HDMI, Ethernet, USB, microUSB, SD-kortplats och strömkontakt

Var kan jag köpa en CM4?

Du kan köpa CM4-kort på vår systersida, buyzero.de.

Industriella användare: CM4-bulkbeställningar och lösningar

Om du är en industriell användare av CM4 och behöver mjukvaru- och hårdvarulösningar bör du Kontakta oss för storbeställningar och rådgivning.

Vi kan utforma skräddarsydda mjukvaru- och hårdvarulösningar för CM4.

I denna tid av brist på material avsätter vi alltid en del av vårt CM4-lager för design- och forskningsändamål.

2 Kommentarer

  1. Farah Bouali den augusti 12, 2022 kl 9:59 f m

    Hej
    Jag hoppas att du mår bra!
    Jag heter Farah Bouali och har avslutat mitt andra år i datateknik.
    Jag har faktiskt varit engagerad i ett projekt där jag använder en raspberry pi compute module 4 integrerad i ett waveshare board och jag har upptäckt en del problem, så jag skriver detta mail till dig i hopp om att få din vänliga övervakning och vägledning.

    För det första kunde jag inte hitta något sätt att använda ADC-differentialingångarna som redan finns i min cm4. Jag vill få värden från en AKS 11-sensor (temperatursensor) eller någon annan sensor. Hur kan jag i så fall visualisera resultatet? Vad ska jag lägga in i mitt skript? Jag kan inte ens styra GPIO-ingångar och -utgångar.

    För det andra när du försöker läsa data från en mobilapplikation. Även om jag kunde ansluta två enheter (en seriell Bluetooth-terminal på min mobil och Rpi) genom "bluetoothctl" -kommandot och även kunna visualisera data som tas emot genom detta kommando "minicom -b 9600 -o -D /dev/rfcomm0" men inget skript hjälpte mig att läsa dessa mottagna data och använda dem för att göra specifika beställningar (som att slå på/av sensorer).

    Allt jag vill göra är att få information från en sensor och skicka den till en mobilapp via ble-protokollet och om det är möjligt att styra sensorns funktion.

    Jag skulle vara mycket tacksam om ni kunde hjälpa mig. Jag är tillgänglig på telefon (whatsapp) och e-post för alla frågor.

    Jag har bifogat några länkar som jag har arbetat med och det skulle glädja mig att höra från dig snart.

    Jag är mycket tacksam och ser fram emot ditt svar.

    Konfigurationslänk för Waveshare: https://www.waveshare.com/wiki/Compute_Module_4_PoE_4G_Board#Isolation_GPIO.2FI2C
    Projekt som jag vill börja med: https://www.technologyrecipes.com/using-blueterm-app-to-communicate-over-ble-between-an-android-device-and-raspberry-pi/

    Med vänliga hälsningar,

    Farah Bouali
    Andra årets datateknikstudent vid ENIS (National School of Engineers of Sfax).

    (e-postadress och telefonnummer borttagna för att skydda redaktören Farah)

    • raspi berry den augusti 16, 2022 kl 8:43 f m

      Kära Farah, som ingenjörsstudent måste du studera datablad och prata med leverantörer/tillverkare av dina enheter. Det är en del av ditt arbete som student.
      Om du är intresserad kan vi erbjuda dig en betald konsulttjänst för att lösa dessa problem.

Lämna en kommentar