diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3c5b43746..dd343d797 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,7 +28,7 @@ jobs: with: ruby-version: 3.2 bundler-cache: true - - uses: seanmiddleditch/gha-setup-ninja@v5 + - uses: seanmiddleditch/gha-setup-ninja@v6 with: version: 1.10.2 - name: Install arm-none-eabi-gcc GNU Arm Embedded Toolchain diff --git a/Gemfile b/Gemfile index 797e2164e..bb73401e4 100644 --- a/Gemfile +++ b/Gemfile @@ -8,7 +8,7 @@ source "https://rubygems.org" # # This will help ensure the proper Jekyll version is running. # Happy Jekylling! -gem "jekyll", "~> 4.3.4" +gem "jekyll", "~> 4.4.1" # This is the default theme for new Jekyll sites. You may change this to anything you like. gem "minima", "~> 2.5" diff --git a/Gemfile.lock b/Gemfile.lock index 92d37db79..2b9e0874e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -6,32 +6,37 @@ GEM asciidoctor (2.0.23) asciidoctor-tabs (1.0.0.beta.6) asciidoctor (>= 2.0.0, < 3.0.0) - bigdecimal (3.1.8) + base64 (0.2.0) + bigdecimal (3.1.9) colorator (1.1.0) concurrent-ruby (1.3.5) + csv (3.3.2) em-websocket (0.5.3) eventmachine (>= 0.12.9) http_parser.rb (~> 0) eventmachine (1.2.7) - ffi (1.17.0) + ffi (1.17.1) forwardable-extended (2.6.0) - google-protobuf (4.28.1) + google-protobuf (4.29.3) bigdecimal rake (>= 13) http_parser.rb (0.8.0) - i18n (1.14.6) + i18n (1.14.7) concurrent-ruby (~> 1.0) - jekyll (4.3.4) + jekyll (4.4.1) addressable (~> 2.4) + base64 (~> 0.2) colorator (~> 1.0) + csv (~> 3.0) em-websocket (~> 0.5) i18n (~> 1.0) jekyll-sass-converter (>= 2.0, < 4.0) jekyll-watch (~> 2.0) + json (~> 2.6) kramdown (~> 2.3, >= 2.3.1) kramdown-parser-gfm (~> 1.0) liquid (~> 4.0) - mercenary (>= 0.3.6, < 0.5) + mercenary (~> 0.3, >= 0.3.6) pathutil (~> 0.9) rouge (>= 3.0, < 5.0) safe_yaml (~> 1.0) @@ -42,14 +47,15 @@ GEM jekyll (>= 3.0.0) jekyll-feed (0.17.0) jekyll (>= 3.7, < 5.0) - jekyll-sass-converter (3.0.0) - sass-embedded (~> 1.54) + jekyll-sass-converter (3.1.0) + sass-embedded (~> 1.75) jekyll-seo-tag (2.8.0) jekyll (>= 3.8, < 5.0) jekyll-watch (2.2.1) listen (~> 3.0) - kramdown (2.4.0) - rexml + json (2.9.1) + kramdown (2.5.1) + rexml (>= 3.3.9) kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) liquid (4.0.4) @@ -73,11 +79,11 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rexml (3.3.7) - rouge (4.4.0) + rexml (3.4.0) + rouge (4.5.1) safe_yaml (1.0.5) - sass-embedded (1.78.0) - google-protobuf (~> 4.27) + sass-embedded (1.83.4) + google-protobuf (~> 4.29) rake (>= 13) slim (5.2.1) temple (~> 0.10.0) @@ -93,7 +99,7 @@ GEM tzinfo (>= 1.0.0) unicode-display_width (2.6.0) wdm (0.2.0) - webrick (1.8.1) + webrick (1.9.1) PLATFORMS ruby @@ -101,7 +107,7 @@ PLATFORMS DEPENDENCIES asciidoctor asciidoctor-tabs (>= 1.0.0.beta.6) - jekyll (~> 4.3.4) + jekyll (~> 4.4.1) jekyll-asciidoc jekyll-feed (~> 0.17) minima (~> 2.5) diff --git a/documentation/asciidoc/accessories/ai-camera/getting-started.adoc b/documentation/asciidoc/accessories/ai-camera/getting-started.adoc index 07d7812a5..967c819ec 100644 --- a/documentation/asciidoc/accessories/ai-camera/getting-started.adoc +++ b/documentation/asciidoc/accessories/ai-camera/getting-started.adoc @@ -2,6 +2,10 @@ The instructions below describe how to run the pre-packaged MobileNet SSD and PoseNet neural network models on the Raspberry Pi AI Camera. +=== Hardware setup + +Attach the camera to your Raspberry Pi 5 board following the instructions at xref:../accessories/camera.adoc#install-a-raspberry-pi-camera[Install a Raspberry Pi Camera]. + === Prerequisites These instructions assume you are using the AI Camera attached to either a Raspberry Pi 4 Model B or Raspberry Pi 5 board. With minor changes, you can follow these instructions on other Raspberry Pi models with a camera connector, including the Raspberry Pi Zero 2 W and Raspberry Pi 3 Model B+. diff --git a/documentation/asciidoc/accessories/camera/camera_hardware.adoc b/documentation/asciidoc/accessories/camera/camera_hardware.adoc index 2c62ce3d6..3b8dafbd5 100644 --- a/documentation/asciidoc/accessories/camera/camera_hardware.adoc +++ b/documentation/asciidoc/accessories/camera/camera_hardware.adoc @@ -43,13 +43,17 @@ WARNING: Cameras are sensitive to static. Earth yourself prior to handling the P === Connect the Camera -The flex cable inserts into the connector labelled CAMERA on the Raspberry Pi, which is located between the Ethernet and HDMI ports. The cable must be inserted with the silver contacts facing the HDMI port. To open the connector, pull the tabs on the top of the connector upwards, then towards the Ethernet port. The flex cable should be inserted firmly into the connector, with care taken not to bend the flex at too acute an angle. To close the connector, push the top part of the connector towards the HDMI port and down, while holding the flex cable in place. +Before connecting any Camera, shut down your Raspberry Pi and disconnect it from power. -We have created a video to illustrate the process of connecting the camera. The following video shows how to connect the original camera on the original Raspberry Pi 1. The principle is the same for all Raspberry Pi boards with a camera connector, though the Raspberry Pi 5 and all Raspberry Pi Zero models require a https://www.raspberrypi.com/products/camera-cable/[different camera cable]. +The flex cable inserts into the connector labelled CAMERA on the Raspberry Pi, which is located between the Ethernet and HDMI ports. The cable must be inserted with the silver contacts facing the HDMI port. To open the connector, pull the tabs on the top of the connector upwards, then towards the Ethernet port. The flex cable should be inserted firmly into the connector, with care taken not to bend the flex at too acute an angle. To close the connector, push the top part of the connector down and away from the Ethernet port while holding the flex cable in place. + +The following video shows how to connect the original camera on the original Raspberry Pi 1: video::GImeVqHQzsE[youtube,width=80%,height=400px] -Depending on the model, the camera may come with a small piece of translucent blue plastic film covering the lens. This is only present to protect the lens while it is being mailed to you, and needs to be removed by gently peeling it off. +All Raspberry Pi boards with a camera connector use the same installation method, though the Raspberry Pi 5 and all Raspberry Pi Zero models require a https://www.raspberrypi.com/products/camera-cable/[different camera cable]. + +Some cameras may come with a small piece of translucent blue plastic film covering the lens. This is only present to protect the lens during shipping. To remove it, gently peel it off. NOTE: There is additional documentation available around fitting the recommended https://datasheets.raspberrypi.com/hq-camera/cs-mount-lens-guide.pdf[6mm] and https://datasheets.raspberrypi.com/hq-camera/c-mount-lens-guide.pdf[16mm] lens to the HQ Camera. diff --git a/documentation/asciidoc/computers/configuration/raspi-config.adoc b/documentation/asciidoc/computers/configuration/raspi-config.adoc index 7f8a0461e..483cb66bc 100644 --- a/documentation/asciidoc/computers/configuration/raspi-config.adoc +++ b/documentation/asciidoc/computers/configuration/raspi-config.adoc @@ -271,7 +271,7 @@ Pass a wireless network name (SSID) and passphrase, if required. The following f The `` option indicates the visibility of the SSID. If the network broadcasts an open SSID, pass `0` or omit the option. If your SSID is hidden, pass `1`. Defaults to `0`. -The `` option indicates whether you intend to pass the passphrase as plaintext. If your passphrase includes a space or a special character like `!`, you must pass `0` and use quotes around your passphrase. Otherwise, you can pass `1` or omit the option. Defaults to `1`. To pass this option, you must specify a value for ``. +The `` option indicates whether the given passphrase is wrapped in an extra set of quotation marks. Most users can ignore this option: as an implementation detail, `raspi-config` may need to add quotation marks before passing the passphrase to other parts of the system, and a `` value of `0` indicates that the quotation marks are already present. A value of `1` indicates that the quotation marks are not present, and the implementation should add them as necessary. Defaults to `1`. To pass this option, you must specify a value for ``. For example, run the following commands to connect to a: @@ -293,7 +293,14 @@ $ sudo raspi-config nonint do_wifi_ssid_passphrase myssid mypassphrase 1 + [source,console] ---- -$ sudo raspi-config nonint do_wifi_ssid_passphrase myssid "my passphrase" 0 0 +$ sudo raspi-config nonint do_wifi_ssid_passphrase myssid 'my passphrase' +---- + +* non-hidden network named `myssid` with the passphrase `mypassphrase`, where you have already added extra quotes to the passphrase: ++ +[source,console] +---- +$ sudo raspi-config nonint do_wifi_ssid_passphrase myssid '"mypassphrase"' 0 0 ---- ==== Audio diff --git a/documentation/asciidoc/computers/raspberry-pi/revision-codes.adoc b/documentation/asciidoc/computers/raspberry-pi/revision-codes.adoc index 08ea876aa..168adcc57 100644 --- a/documentation/asciidoc/computers/raspberry-pi/revision-codes.adoc +++ b/documentation/asciidoc/computers/raspberry-pi/revision-codes.adoc @@ -256,103 +256,103 @@ NOQuuuWuFMMMCCCCPPPPTTTTTTTTRRRR | TTTTTTTT (bits 4-11) | Type -| 0: A +| 0x00: A | | -| 1: B +| 0x01: B | | -| 2: A+ +| 0x02: A+ | | -| 3: B+ +| 0x03: B+ | | -| 4: 2B +| 0x04: 2B | | -| 5: Alpha (early prototype) +| 0x05: Alpha (early prototype) | | -| 6: CM1 +| 0x06: CM1 | | -| 8: 3B +| 0x08: 3B | | -| 9: Zero +| 0x09: Zero | | -| a: CM3 +| 0x0a: CM3 | | -| c: Zero W +| 0x0c: Zero W | | -| d: 3B+ +| 0x0d: 3B+ | | -| e: 3A+ +| 0x0e: 3A+ | | -| f: Internal use only +| 0x0f: Internal use only | | -| 10: CM3+ +| 0x10: CM3+ | | -| 11: 4B +| 0x11: 4B | | -| 12: Zero 2 W +| 0x12: Zero 2 W | | -| 13: 400 +| 0x13: 400 | | -| 14: CM4 +| 0x14: CM4 | | -| 15: CM4S +| 0x15: CM4S | | -| 16: Internal use only +| 0x16: Internal use only | | -| 17: 5 +| 0x17: 5 | | -| 18: CM5 +| 0x18: CM5 | | -| 19: 500 +| 0x19: 500 | | -| 1a: CM5 Lite +| 0x1a: CM5 Lite | RRRR (bits 0-3) | Revision @@ -367,6 +367,8 @@ NOQuuuWuFMMMCCCCPPPPTTTTTTTTRRRR NOTE: This list is not exhaustive - there may be codes in use that are not in this table. Please see the next section for best practices on using revision codes to identify boards. +// This table is now sorted by Type (from table above), then Revision, then RAM, and finally Code. This is the most likley order-of-manufacture, which means we'll normally just add new revision-codes to the very bottom of the table, without having to worry about re-ordering entries. + |=== | Code | Model | Revision | RAM | Manufacturer @@ -382,54 +384,6 @@ NOTE: This list is not exhaustive - there may be codes in use that are not in th | 512MB | Sony UK -| 900092 -| Zero -| 1.2 -| 512MB -| Sony UK - -| 900093 -| Zero -| 1.3 -| 512MB -| Sony UK - -| 9000c1 -| Zero W -| 1.1 -| 512MB -| Sony UK - -| 9020e0 -| 3A+ -| 1.0 -| 512MB -| Sony UK - -| 9020e1 -| 3A+ -| 1.1 -| 512MB -| Sony UK - -| 920092 -| Zero -| 1.2 -| 512MB -| Embest - -| 920093 -| Zero -| 1.3 -| 512MB -| Embest - -| 900061 -| CM1 -| 1.1 -| 512MB -| Sony UK - | a01040 | 2B | 1.0 @@ -442,29 +396,11 @@ NOTE: This list is not exhaustive - there may be codes in use that are not in th | 1GB | Sony UK -| a02082 -| 3B -| 1.2 -| 1GB -| Sony UK - -| a020a0 -| CM3 -| 1.0 -| 1GB -| Sony UK - -| a020d3 -| 3B+ -| 1.3 -| 1GB -| Sony UK - -| a020d4 -| 3B+ -| 1.4 +| a21041 +| 2B +| 1.1 | 1GB -| Sony UK +| Embest | a02042 | 2B (with BCM2837) @@ -472,27 +408,27 @@ NOTE: This list is not exhaustive - there may be codes in use that are not in th | 1GB | Sony UK -| a21041 -| 2B -| 1.1 -| 1GB -| Embest - | a22042 | 2B (with BCM2837) | 1.2 | 1GB | Embest -| a22082 +| 900061 +| CM1 +| 1.1 +| 512MB +| Sony UK + +| a02082 | 3B | 1.2 | 1GB -| Embest +| Sony UK -| a220a0 -| CM3 -| 1.0 +| a22082 +| 3B +| 1.2 | 1GB | Embest @@ -514,6 +450,72 @@ NOTE: This list is not exhaustive - there may be codes in use that are not in th | 1GB | Embest +| 900092 +| Zero +| 1.2 +| 512MB +| Sony UK + +| 920092 +| Zero +| 1.2 +| 512MB +| Embest + +| 900093 +| Zero +| 1.3 +| 512MB +| Sony UK + +| 920093 +| Zero +| 1.3 +| 512MB +| Embest + +| a020a0 +| CM3 +| 1.0 +| 1GB +| Sony UK + +| a220a0 +| CM3 +| 1.0 +| 1GB +| Embest + +| 9000c1 +| Zero W +| 1.1 +| 512MB +| Sony UK + +| a020d3 +| 3B+ +| 1.3 +| 1GB +| Sony UK + +| a020d4 +| 3B+ +| 1.4 +| 1GB +| Sony UK + +| 9020e0 +| 3A+ +| 1.0 +| 512MB +| Sony UK + +| 9020e1 +| 3A+ +| 1.1 +| 512MB +| Sony UK + | a02100 | CM3+ | 1.0 @@ -532,40 +534,46 @@ NOTE: This list is not exhaustive - there may be codes in use that are not in th | 2GB | Sony UK +| c03111 +| 4B +| 1.1 +| 4GB +| Sony UK + | b03112 | 4B | 1.2 | 2GB | Sony UK -| b03114 +| c03112 | 4B -| 1.4 -| 2GB +| 1.2 +| 4GB | Sony UK -| b03115 +| b03114 | 4B -| 1.5 +| 1.4 | 2GB | Sony UK -| c03111 +| c03114 | 4B -| 1.1 +| 1.4 | 4GB | Sony UK -| c03112 +| d03114 | 4B -| 1.2 -| 4GB +| 1.4 +| 8GB | Sony UK -| c03114 +| b03115 | 4B -| 1.4 -| 4GB +| 1.5 +| 2GB | Sony UK | c03115 @@ -574,18 +582,18 @@ NOTE: This list is not exhaustive - there may be codes in use that are not in th | 4GB | Sony UK -| d03114 -| 4B -| 1.4 -| 8GB -| Sony UK - | d03115 | 4B | 1.5 | 8GB | Sony UK +| 902120 +| Zero 2 W +| 1.0 +| 512MB +| Sony UK + | c03130 | 400 | 1.0 @@ -616,12 +624,6 @@ NOTE: This list is not exhaustive - there may be codes in use that are not in th | 8GB | Sony UK -| 902120 -| Zero 2 W -| 1.0 -| 512MB -| Sony UK - | b04170 | 5 | 1.0 diff --git a/documentation/asciidoc/services/connect/troubleshooting.adoc b/documentation/asciidoc/services/connect/troubleshooting.adoc index d05876ab3..16b9268c6 100644 --- a/documentation/asciidoc/services/connect/troubleshooting.adoc +++ b/documentation/asciidoc/services/connect/troubleshooting.adoc @@ -35,14 +35,47 @@ Replacing globally-enabled rpi-connect services with user-enabled ones... ==== Screen sharing not available -If Connect states that screen sharing is unavailable, it cannot connect to the dedicated Connect WayVNC service. +If Connect states that screen sharing is unavailable, one or more requirements for screen sharing support are not met. To help debug the problem, `rpi-connect` and `rpi-connect-lite` include the `doctor` command. Use `rpi-connect doctor` to identify issues with screen sharing. -To find out more about the cause of the issue, run the following commands to check the status of the Connect WayVNC service: +Run the following command: [source,console] ---- -$ systemctl --user status rpi-connect-wayvnc -$ journalctl --user --follow --unit rpi-connect-wayvnc +$ rpi-connect doctor +---- + +If all is well, you should see output similar to the following: + +---- +Screen sharing is supported by this version of rpi-connect +✓ Wayland compositor available +✓ Screen sharing services enabled and active +✓ Communication with Raspberry Pi Connect API +✓ Authentication with Raspberry Pi Connect API +✓ Peer-to-peer connection candidate via STUN +✓ Peer-to-peer connection candidate via TURN +---- + +If there is an issue, you will see something like so: + +---- +Screen sharing is supported by this version of rpi-connect +✓ Wayland compositor available +✗ Screen sharing services enabled and active - Please run rpi-connect on to enable and start all required services +✓ Communication with Raspberry Pi Connect API +✓ Authentication with Raspberry Pi Connect API +✓ Peer-to-peer connection candidate via STUN +✓ Peer-to-peer connection candidate via TURN + +✗ Some checks failed +---- + +If you have repeated issues trying to run Connect's required services, run the following commands to check their status in more detail: + +[source,console] +---- +$ systemctl --user status rpi-connect-wayvnc.service rpi-connect-wayvnc-watcher.path +$ journalctl --user --follow --unit rpi-connect-wayvnc.service --unit rpi-connect-wayvnc-watcher.path ---- If the service fails to start or doesn't exist, ensure that your environment meets the following criteria: @@ -63,7 +96,6 @@ For screen sharing, Connect can only share an existing graphical desktop session Connect usually communicates between devices without requiring changes to your network or firewall. However, especially restrictive networks can sometimes block Connect communication. To help debug problems with such networks, `rpi-connect` and `rpi-connect-lite` include the `rpi-connect doctor` command. `rpi-connect doctor` runs a series of tests to check that Connect communication functions properly on your network. - To run these tests on your device, run the following command: [source,console] @@ -74,6 +106,9 @@ $ rpi-connect doctor If Connect can communicate properly on your network, you should see output similar to the following: ---- +Screen sharing is supported by this version of rpi-connect +✓ Wayland compositor available +✓ Screen sharing services enabled and active ✓ Communication with Raspberry Pi Connect API ✓ Authentication with Raspberry Pi Connect API ✓ Peer-to-peer connection candidate via STUN @@ -82,8 +117,7 @@ If Connect can communicate properly on your network, you should see output simil If Connect can't communicate properly on your network, you'll see an "x" instead of a check next to the failing test case. Ask your network administrator to enable the following connections on your network: -* unauthenticated HTTPS requests to the Raspberry Pi Connect API on port 443 of `api.connect.raspberrypi.com` -* authenticated requests to the Raspberry Pi Connect API on port 443 of `api.connect.raspberrypi.com` +* HTTPS requests to the Raspberry Pi Connect API on port 443 of `api.connect.raspberrypi.com` * requests to Raspberry Pi Connect STUN or TURN servers on UDP port 3478 of all of the following: ** `stun.raspberrypi.com` ** `turn1.raspberrypi.com`