Skip to content

Commit 88850a3

Browse files
Merge pull request #3943 from raspberrypi/develop
Roll out to production!
2 parents 47329d0 + 7a647e7 commit 88850a3

29 files changed

+26992
-156
lines changed

documentation/asciidoc/accessories/sense-hat/software.adoc

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -189,8 +189,3 @@ $ sudo ./eepflash.sh -f=sense.eep -t=24c32 -w
189189
$ i2cset -y -f 1 0x46 0xf3 0
190190
----
191191
192-
[.booklink, booktype="free", link=https://github.com/raspberrypipress/released-pdfs/raw/main/experiment-with-the-sense-hat.pdf, image=image::images/experiment-with-the-sense-hat.png[]]
193-
194-
== Further reading
195-
196-
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].

documentation/asciidoc/computers/compute-module/cm-emmc-flashing.adoc

Lines changed: 46 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,114 +1,104 @@
11
[[flash-compute-module-emmc]]
22
== Flash an image to a Compute Module
33

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+
46
[[flashing-the-compute-module-emmc]]
57

68
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.
79

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].
1811

1912
=== Prerequisites
2013

2114
To flash the Compute Module eMMC, you need the following:
2215

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.
2417
* 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.
2619

2720
=== Set up the IO Board
2821

2922
To begin, physically set up your IO Board. This includes connecting the Compute Module and host device to the IO Board.
3023

31-
==== with Compute Module 4 IO Board
32-
24+
[tabs%sync]
25+
======
26+
Compute Module 5 IO Board::
27+
+
3328
To set up the Compute Module 4 IO Board:
34-
29+
+
3530
. Connect the Compute Module to the IO board. When connected, the Compute Module should lie flat.
36-
3731
. 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.
3833
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.
3940
. Connect a cable from micro USB slave port J11 on the IO board to the host device.
4041
41-
==== with Compute Module IO Board
42-
42+
Compute Module IO Board::
43+
+
4344
To set up the Compute Module IO Board:
44-
45+
+
4546
. 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-
4747
. Set J4 (`USB SLAVE BOOT ENABLE`) to 1-2 = (`USB BOOT ENABLED`)
48-
4948
. Connect a cable from micro USB slave port J15 on the IO board to the host device.
49+
======
5050

5151
=== Set up the host device
5252

5353
Next, let's set up software on the host device.
5454

55-
==== on Linux
56-
55+
[tabs%sync]
56+
======
57+
Linux::
58+
+
5759
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]):
6062
+
6163
[source,console]
6264
----
6365
$ sudo apt install rpiboot
6466
----
65-
6667
. Connect the IO Board to power.
67-
6868
. Then, run `rpiboot`:
6969
+
7070
[source,console]
7171
----
7272
$ sudo rpiboot
7373
----
74-
7574
. 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.
7675
77-
TIP: Alternatively, you can https://github.com/raspberrypi/usbboot[build `rpiboot` from source].
78-
79-
==== on macOS
80-
76+
macOS::
77+
+
8178
To set up software on a macOS host device:
82-
79+
+
8380
. First, https://github.com/raspberrypi/usbboot?tab=readme-ov-file#macos[build `rpiboot` from source].
84-
8581
. Connect the IO Board to power.
86-
8782
. Then, run the `rpiboot` executable with the following command:
8883
+
8984
[source,console]
9085
----
9186
$ sudo ./rpiboot
9287
----
93-
9488
. 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.
9589
96-
==== on Windows
97-
90+
Windows::
91+
+
9892
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].
10295
. Double-click on the installer to run it. This installs the drivers and boot tool.
103-
10496
. Connect the IO Board to power. Windows should discover the hardware and configure the required drivers.
105-
10697
. 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-
10898
. 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.
10999
100+
======
110101

111-
TIP: Alternatively, you can https://github.com/raspberrypi/usbboot[build `rpiboot` from source].
112102

113103
=== Flash the eMMC
114104

@@ -134,21 +124,28 @@ You can mount the `/dev/sdX1` and `/dev/sdX2` partitions normally.
134124

135125
=== Boot from eMMC
136126

137-
==== with Compute Module 4 IO Board
138-
127+
[tabs%sync]
128+
======
129+
Compute Module 5 IO Board::
130+
+
139131
Disconnect `nRPI_BOOT` from J2 (`disable eMMC Boot`) on the IO board jumper.
140132
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.
142136
137+
Compute Module IO Board::
138+
+
143139
Set J4 (`USB SLAVE BOOT ENABLE`) to 2-3 (`USB BOOT DISABLED`).
140+
======
144141

145142
==== Boot
146143

147144
Disconnect the USB slave port. Power-cycle the IO board to boot the Compute Module from the new image you just wrote to eMMC.
148145

149146
=== Known issues
150147

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:
152149
+
153150
[source,console]
154151
----

documentation/asciidoc/computers/compute-module/cm-peri-sw-guide.adoc

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,16 @@
11
== Wire peripherals
22

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.
44

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.
66

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.
88

99
To use a Compute Module, a user must design a motherboard that:
1010

1111
* provides power to the Compute Module (3.3V and 1.8V at minimum)
1212
* connects the pins to the required peripherals for the user's application
1313
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-
2414
This guide first explains the boot process and how Device Tree describes attached hardware.
2515

2616
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.

documentation/asciidoc/computers/compute-module/cmio-camera.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ image::images/CMIO-Cam-Adapter.jpg[alt="Connect the adapter board", width="60%"]
107107
+
108108
image:images/CMIO-Cam-GPIO2.jpg[alt="GPIO connection with additional camera", width="60%"]
109109

110-
. _(CM4 only)_: Connect the J6 GPIO pins with two vertical-orientation jumpers.
110+
. _(CM4 and CM5)_: Connect the J6 GPIO pins with two vertical-orientation jumpers.
111111
+
112112
image:images/j6_vertical.jpg[alt="Connect the J6 GPIO pins in vertical orientation", width="60%"]
113113

documentation/asciidoc/computers/compute-module/datasheet.adoc

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
== Specifications
22

3+
=== Compute Module 5 datasheet
4+
5+
To learn more about Compute Module 5 (CM5) and its corresponding IO Board, see the following documents:
6+
7+
* https://datasheets.raspberrypi.com/cm5/cm5-datasheet.pdf[CM5 datasheet]
8+
* https://rpltd.co/cm5-design-files[CM5 design files]
9+
10+
=== Compute Module 5 IO Board datasheet
11+
12+
Design data for the Compute Module 5 IO Board (CM5IO) can be found in its datasheet:
13+
14+
* https://datasheets.raspberrypi.com/cm5/cm5io-datasheet.pdf[CM5IO datasheet]
15+
* https://rpltd.co/cm5io-design-files[CM5IO design files]
16+
317
=== Compute Module 4 datasheet
418

519
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
5064

5165
=== Compute Module IO Board schematics
5266

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:
5468

5569
* https://datasheets.raspberrypi.com/cmio/cmio-schematics.pdf[Schematics for CMIO]
5670
* https://datasheets.raspberrypi.com/cmio/RPi-CMIO-R1P2.zip[Design documents for CMIO Version 1.2 (CMIO/CMIO1)]

0 commit comments

Comments
 (0)