You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
You can find more information on how to use the Sense HAT in the Raspberry Pi Press book https://github.com/raspberrypipress/released-pdfs/raw/main/experiment-with-the-sense-hat.pdf[Experiment with the Sense HAT]. Written by The Raspberry Pi Foundation's Education Team, it is part of the MagPi Essentials series published by Raspberry Pi Press. The book covers the background of the Astro Pi project, and walks you through how to make use of all the Sense HAT features using the xref:sense-hat.adoc#use-the-sense-hat-with-python[Python library].
Copy file name to clipboardExpand all lines: documentation/asciidoc/computers/compute-module/cm-emmc-flashing.adoc
+46-49Lines changed: 46 additions & 49 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,114 +1,104 @@
1
1
[[flash-compute-module-emmc]]
2
2
== Flash an image to a Compute Module
3
3
4
+
TIP: To flash the same image to multiple Compute Modules, use the https://github.com/raspberrypi/rpi-sb-provisioner[Raspberry Pi Secure Boot Provisioner]. To customise an OS image to flash onto those devices, use https://github.com/RPi-Distro/pi-gen[pi-gen].
5
+
4
6
[[flashing-the-compute-module-emmc]]
5
7
6
8
The Compute Module has an on-board eMMC device connected to the primary SD card interface. This guide explains how to flash (write) an operating system image to the eMMC storage of a single Compute Module.
7
9
8
-
NOTE: **Lite** variants of Compute Modules do not have on-board eMMC. Instead, you can follow the procedure to flash a storage device for other Raspberry Pi devices at xref:../computers/getting-started.adoc#installing-the-operating-system[Install an operating system].
9
-
10
-
When flashing an image to multiple Compute Modules, consider using the Compute Module Provisioner instead:
11
-
12
-
[.whitepaper, title="Mass Provision with the Compute Module Provisioner", subtitle="", link=https://pip.raspberrypi.com/categories/685-whitepapers-app-notes/documents/RP-003468-WP/Using-the-Compute-Module-Provisioner.pdf]
13
-
****
14
-
The Compute Module Provisioner is a web application that helps developers program many Compute Module devices simultaneously.
15
-
16
-
It provides a database of kernel images and the ability to run scripts during the flashing process, in addition to automated label printing and firmware updating.
17
-
****
10
+
**Lite** variants of Compute Modules do not have on-board eMMC. Instead, follow the procedure to flash a storage device for other Raspberry Pi devices at xref:../computers/getting-started.adoc#installing-the-operating-system[Install an operating system].
18
11
19
12
=== Prerequisites
20
13
21
14
To flash the Compute Module eMMC, you need the following:
22
15
23
-
* Another computer, referred to in this guide as the *host device*. You can use Linux (Raspberry Pi OS or Ubuntu), Windows, or macOS.
16
+
* Another computer, referred to in this guide as the *host device*. You can use Linux (we recommend Raspberry Pi OS or Ubuntu), Windows, or macOS.
24
17
* The Compute Module IO Board xref:compute-module.adoc#io-board-compatibility[that corresponds to your Compute Module model].
25
-
* A micro USB cable.
18
+
* A micro USB cable, or a USB-C cable for Compute Module models since CM5.
26
19
27
20
=== Set up the IO Board
28
21
29
22
To begin, physically set up your IO Board. This includes connecting the Compute Module and host device to the IO Board.
30
23
31
-
==== with Compute Module 4 IO Board
32
-
24
+
[tabs%sync]
25
+
======
26
+
Compute Module 5 IO Board::
27
+
+
33
28
To set up the Compute Module 4 IO Board:
34
-
29
+
+
35
30
. Connect the Compute Module to the IO board. When connected, the Compute Module should lie flat.
36
-
37
31
. Fit `nRPI_BOOT` to J2 (`disable eMMC Boot`) on the IO board jumper.
32
+
. Connect a cable from USB-C slave port J11 on the IO board to the host device.
38
33
34
+
Compute Module 4 IO Board::
35
+
+
36
+
To set up the Compute Module 4 IO Board:
37
+
+
38
+
. Connect the Compute Module to the IO board. When connected, the Compute Module should lie flat.
39
+
. Fit `nRPI_BOOT` to J2 (`disable eMMC Boot`) on the IO board jumper.
39
40
. Connect a cable from micro USB slave port J11 on the IO board to the host device.
40
41
41
-
==== with Compute Module IO Board
42
-
42
+
Compute Module IO Board::
43
+
+
43
44
To set up the Compute Module IO Board:
44
-
45
+
+
45
46
. Connect the Compute Module to the IO board. When connected, the Compute Module should lie parallel to the board, with the engagement clips firmly clicked into place.
46
-
47
47
. Set J4 (`USB SLAVE BOOT ENABLE`) to 1-2 = (`USB BOOT ENABLED`)
48
-
49
48
. Connect a cable from micro USB slave port J15 on the IO board to the host device.
49
+
======
50
50
51
51
=== Set up the host device
52
52
53
53
Next, let's set up software on the host device.
54
54
55
-
==== on Linux
56
-
55
+
[tabs%sync]
56
+
======
57
+
Linux::
58
+
+
57
59
To set up software on a Linux host device:
58
-
59
-
. Run the following command to install `rpiboot`:
60
+
+
61
+
. Run the following command to install `rpiboot` (or, alternatively, https://github.com/raspberrypi/usbboot[build `rpiboot` from source]):
60
62
+
61
63
[source,console]
62
64
----
63
65
$ sudo apt install rpiboot
64
66
----
65
-
66
67
. Connect the IO Board to power.
67
-
68
68
. Then, run `rpiboot`:
69
69
+
70
70
[source,console]
71
71
----
72
72
$ sudo rpiboot
73
73
----
74
-
75
74
. After a few seconds, the Compute Module should appear as a mass storage device. Check the `/dev/` directory, likely `/dev/sda` or `/dev/sdb`, for the device. Alternatively, run `lsblk` and search for a device with a storage capacity that matches the capacity of your Compute Module.
76
75
77
-
TIP: Alternatively, you can https://github.com/raspberrypi/usbboot[build `rpiboot` from source].
78
-
79
-
==== on macOS
80
-
76
+
macOS::
77
+
+
81
78
To set up software on a macOS host device:
82
-
79
+
+
83
80
. First, https://github.com/raspberrypi/usbboot?tab=readme-ov-file#macos[build `rpiboot` from source].
84
-
85
81
. Connect the IO Board to power.
86
-
87
82
. Then, run the `rpiboot` executable with the following command:
88
83
+
89
84
[source,console]
90
85
----
91
86
$ sudo ./rpiboot
92
87
----
93
-
94
88
. When the command finishes running, you should see a message stating "The disk you inserted was not readable by this computer." Click **Ignore**. Your Compute Module should now appear as a mass storage device.
95
89
96
-
==== on Windows
97
-
90
+
Windows::
91
+
+
98
92
To set up software on a Windows host device:
99
-
100
-
. Download the https://github.com/raspberrypi/usbboot/raw/master/win32/rpiboot_setup.exe[Windows installer]
101
-
93
+
+
94
+
. Download the https://github.com/raspberrypi/usbboot/raw/master/win32/rpiboot_setup.exe[Windows installer] or https://github.com/raspberrypi/usbboot[build `rpiboot` from source].
102
95
. Double-click on the installer to run it. This installs the drivers and boot tool.
103
-
104
96
. Connect the IO Board to power. Windows should discover the hardware and configure the required drivers.
105
-
106
97
. On CM4 and later devices, select **Raspberry Pi - Mass Storage Gadget - 64-bit** from the start menu. After a few seconds, the Compute Module eMMC or NVMe will appear as USB mass storage devices. This also provides a debug console as a serial port gadget.
107
-
108
98
. On CM3 and older devices, select **rpiboot**. Double-click on `RPiBoot.exe` to run it. After a few seconds, the Compute Module eMMC should appear as a USB mass storage device.
109
99
100
+
======
110
101
111
-
TIP: Alternatively, you can https://github.com/raspberrypi/usbboot[build `rpiboot` from source].
112
102
113
103
=== Flash the eMMC
114
104
@@ -134,21 +124,28 @@ You can mount the `/dev/sdX1` and `/dev/sdX2` partitions normally.
134
124
135
125
=== Boot from eMMC
136
126
137
-
==== with Compute Module 4 IO Board
138
-
127
+
[tabs%sync]
128
+
======
129
+
Compute Module 5 IO Board::
130
+
+
139
131
Disconnect `nRPI_BOOT` from J2 (`disable eMMC Boot`) on the IO board jumper.
140
132
141
-
==== with Compute Module IO Board
133
+
Compute Module 4 IO Board::
134
+
+
135
+
Disconnect `nRPI_BOOT` from J2 (`disable eMMC Boot`) on the IO board jumper.
142
136
137
+
Compute Module IO Board::
138
+
+
143
139
Set J4 (`USB SLAVE BOOT ENABLE`) to 2-3 (`USB BOOT DISABLED`).
140
+
======
144
141
145
142
==== Boot
146
143
147
144
Disconnect the USB slave port. Power-cycle the IO board to boot the Compute Module from the new image you just wrote to eMMC.
148
145
149
146
=== Known issues
150
147
151
-
* A small percentage of CM3 experienced booting problems. We have traced these back to the method used to create the FAT32 partition; we believe the problem is due to a difference in timing between the CPU and eMMC. If you have trouble booting your CM3, create the partitions manually with the following commands:
148
+
* A small percentage of CM3 devices may experience problems booting. We have traced these back to the method used to create the FAT32 partition; we believe the problem is due to a difference in timing between the CPU and eMMC. If you have trouble booting your CM3, create the partitions manually with the following commands:
Copy file name to clipboardExpand all lines: documentation/asciidoc/computers/compute-module/cm-peri-sw-guide.adoc
+3-13Lines changed: 3 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,26 +1,16 @@
1
1
== Wire peripherals
2
2
3
-
This guide helps developers wire up peripherals to the Compute Module pins. Additionally, this guide explains how to make changes to the software to enable these peripherals.
3
+
This guide helps developers wire up peripherals to the Compute Module pins, and explains how to enable these peripherals in software.
4
4
5
-
Most of the pins of the SoC (GPIO, two CSI camera interfaces, two DSI display interfaces, HDMI, etc.) are available for wiring. You can can usually leave unused pins disconnected.
5
+
Most of the pins of the SoC, including the GPIO, two CSI camera interfaces, two DSI display interfaces, and HDMI are available for wiring. You can can usually leave unused pins disconnected.
6
6
7
-
Compute Modules with the DDR2 SODIMM form factor can use any DDR2 SODIMM socket. However, the pinout is not the same as SODIMM memory modules.
7
+
Compute Modules that come in the DDR2 SODIMM form factor are physically compatible with any DDR2 SODIMM socket. However, the pinout is **not** the same as SODIMM memory modules.
8
8
9
9
To use a Compute Module, a user must design a motherboard that:
10
10
11
11
* provides power to the Compute Module (3.3V and 1.8V at minimum)
12
12
* connects the pins to the required peripherals for the user's application
13
13
14
-
Raspberry Pi's IO Boards provide the following functionality:
15
-
16
-
* powers the module
17
-
* wires the GPIO to pin headers
18
-
* wires the camera and display interfaces to FFC connectors
19
-
* wires HDMI to an HDMI port
20
-
* wires USB to USB ports
21
-
* wires activity monitoring to an 'ACT' LED
22
-
* eMMC programming over USB
23
-
24
14
This guide first explains the boot process and how Device Tree describes attached hardware.
25
15
26
16
Then, we'll explain how to attach an I2C and an SPI peripheral to an IO Board. Finally, we'll create the Device Tree files necessary to use both peripherals with Raspberry Pi OS.
To learn more about Compute Module 4 (CM4) and its corresponding IO Board, see the following documents:
@@ -50,7 +64,7 @@ This white paper helps developers migrate from Compute Module 1 or Compute Modul
50
64
51
65
=== Compute Module IO Board schematics
52
66
53
-
The Compute Module IO Board (CMIO) provides a variety of interfaces for CM1, CM3, CM3L, and CM3+. The Compute Module IO Board comes in two variants: Version 1 and Version 3. Version 1 is only compatible with CM1. Version 3 is compatible with CM1, CM3, CM3+, and CM4S. Compute Module IO Board Version 3 is sometimes written as the shorthand CMIO3. To learn more about CMIO1 and CMIO3, see the following documents:
67
+
The Compute Module IO Board (CMIO) provides a variety of interfaces for CM1, CM3, CM3+, and CM4S. The Compute Module IO Board comes in two variants: Version 1 and Version 3. Version 1 is only compatible with CM1. Version 3 is compatible with CM1, CM3, CM3+, and CM4S. Compute Module IO Board Version 3 is sometimes written as the shorthand CMIO3. To learn more about CMIO1 and CMIO3, see the following documents:
54
68
55
69
* https://datasheets.raspberrypi.com/cmio/cmio-schematics.pdf[Schematics for CMIO]
56
70
* https://datasheets.raspberrypi.com/cmio/RPi-CMIO-R1P2.zip[Design documents for CMIO Version 1.2 (CMIO/CMIO1)]
0 commit comments