diff --git a/boards/beagley/ai/04-expansion.rst b/boards/beagley/ai/04-expansion.rst index 15155205fef434acc2a6fb79bd77618eca9314fe..fbd0fdf0bc0a55c5a1f7fd55d45d97798380b544 100644 --- a/boards/beagley/ai/04-expansion.rst +++ b/boards/beagley/ai/04-expansion.rst @@ -13,5 +13,5 @@ PCIe For software reference, you can see how PCIe is used on NVMe HATs. * :ref:`beagley-ai-expansion-nvme` -* :ref:`beagley-ai-imx219-csi-cameras` -* :ref:`beagley-ai-rtc` +* :ref:`beagley-ai-using-imx219-csi-cameras` +* :ref:`beagley-ai-using-rtc` diff --git a/boards/beagley/ai/05-demos.rst b/boards/beagley/ai/05-demos.rst index aff8255f89edce5e7a6e6953730552994040873d..ea2a23a185b12dadfb873f234c14c13555f528ee 100644 --- a/boards/beagley/ai/05-demos.rst +++ b/boards/beagley/ai/05-demos.rst @@ -6,7 +6,14 @@ Demos and tutorials .. toctree:: :maxdepth: 1 - demos/beagley-ai-expansion-nvme + demos/beagley-ai-using-gpio + demos/beagley-ai-using-pwm + demos/beagley-ai-using-rtc demos/beagley-ai-pca9685-motor-drivers + demos/beagley-ai-expansion-nvme + demos/beagley-ai-using-imx219-csi-cameras demos/beagley-ai-arducam-imx219-v3link-dual-camera-kit + + + diff --git a/boards/beagley/ai/demos/arducam-imx219-v3link-dual-camera-kit.rst b/boards/beagley/ai/demos/beagley-ai-arducam-imx219-v3link-dual-camera-kit.rst similarity index 100% rename from boards/beagley/ai/demos/arducam-imx219-v3link-dual-camera-kit.rst rename to boards/beagley/ai/demos/beagley-ai-arducam-imx219-v3link-dual-camera-kit.rst diff --git a/boards/beagley/ai/demos/pca9685-motor-drivers.rst b/boards/beagley/ai/demos/beagley-ai-pca9685-motor-drivers.rst similarity index 100% rename from boards/beagley/ai/demos/pca9685-motor-drivers.rst rename to boards/beagley/ai/demos/beagley-ai-pca9685-motor-drivers.rst diff --git a/boards/beagley/ai/demos/Using-GPIO.rst b/boards/beagley/ai/demos/beagley-ai-using-gpio.rst similarity index 94% rename from boards/beagley/ai/demos/Using-GPIO.rst rename to boards/beagley/ai/demos/beagley-ai-using-gpio.rst index 9a5c19466f92278929b202987810d4a586a8a184..85cbcb56c1e168d11d58f8cddeaad57bbf624d85 100644 --- a/boards/beagley/ai/demos/Using-GPIO.rst +++ b/boards/beagley/ai/demos/beagley-ai-using-gpio.rst @@ -1,26 +1,25 @@ -.. _beagley-ai-gpio: - -.. todo:: This page is a work in progress. Further testing and images will be added soon - +.. _beagley-ai-using-gpio: Using GPIO ################# +.. todo:: This page is a work in progress. Further testing and images will be added soon! + **GPIO** stands for **General-Purpose Input/Output**. It's a set of programmable pins that you can use to connect and control various electronic components. You can set each pin to either **read signals (input)** from things like buttons and sensors or **send signals (output)** to things like LEDs and motors. This lets you interact with and control the physical world using code! -A great resource for understanding pin numbering can be found at `BeagleY.Pinout.xyz <https://pinout.xyz>`_ +A great resource for understanding pin numbering can be found at `pinout.beagley.ai <https://pinout.beagley.ai/>`_ .. note:: **WARNING** - BeagleY-AI GPIOs are 3.3V tolerant, using higher voltages WILL damage the processor! - Pin Numbering ********************** -You will see pins referenced in several ways. While this is confusing at first, in reality, we can pick our favorite way and stick to it. +You will see pins referenced in several ways. While this is confusing at first, in reality, +we can pick our favorite way and stick to it. The two main ways of referring to GPIOs is **by their number**, so GPIO 2, 3, 4 etc. as seen in the diagram below. This corresponds to the SoC naming convention. For broad compatibility, BeagleY-AI re-uses the Broadcom GPIO numbering scheme used by RaspberryPi. @@ -30,15 +29,17 @@ The second (and arguably easier) way we will use for this tutorial is to use the So, for the rest of the tutorial, if we refer to **hat-08-gpio** we mean the **8th pin of the GPIO header**. Which, if you referenced the image below, can see refers to **GPIO 14 (UART TX)** -.. image:: ../images/gpio/pinout.png - :width: 30 % +.. figure:: ../images/gpio/pinout.png :align: center + :alt: BeagleY-AI pinout + + BeagleY-AI pinout If you are curious about the "real" GPIO numbers on the Texas Instruments AM67A SoC, you can look at the board schematics. Required Hardware -********************** +****************** For the simple blink demo, all that is needed is an LED, a Resistor (we use 2.2K here) and 2 wires. @@ -50,7 +51,7 @@ to simulate a button press. GPIO Write -********************** +*********** At it's most basic, we can set a GPIO using the **gpioset** command. @@ -108,12 +109,12 @@ Now execute it by typing: :width: 50 % :align: center -You can exit by pressing **Ctrl + c** on your keyboard. +You can exit by pressing ``Ctrl + c`` on your keyboard. GPIO Read -********************** +********** -Reading GPIOs can be done using the **gpioget** command +Reading GPIOs can be done using the ``gpioget`` command .. code:: console @@ -122,7 +123,7 @@ Reading GPIOs can be done using the **gpioget** command Results in **1** if the Input is held **HIGH** or **0** if the Input is held **LOW** Read a Button -********************** +************** A push button simply completes an electric circuit when pressed. Depending on wiring, it can drive a signal either "Low" (GND) or "High" (3.3V) @@ -265,6 +266,6 @@ Similarly, copy and paste this to turn **all pins OFF**. Going Further ******************* -* `BeagleY.Pinout.xyz <https://pinout.xyz>`_ +* `pinout.beagley.ai <https://pinout.beagley.ai/>`_ * `GPIOSet Documentation <https://manpages.debian.org/testing/gpiod/gpioset.1.en.html>`_ * `GPIOGet Documentation <https://manpages.debian.org/testing/gpiod/gpioget.1.en.html>`_ diff --git a/boards/beagley/ai/expansion/Connecting-IMX219-CSI-Cameras.rst b/boards/beagley/ai/demos/beagley-ai-using-imx219-csi-cameras.rst similarity index 97% rename from boards/beagley/ai/expansion/Connecting-IMX219-CSI-Cameras.rst rename to boards/beagley/ai/demos/beagley-ai-using-imx219-csi-cameras.rst index 4aa0de07742db6e0e422d6324addba6efbd08951..eb9b66052430ec4250eb8edd3565c755ea9661da 100644 --- a/boards/beagley/ai/expansion/Connecting-IMX219-CSI-Cameras.rst +++ b/boards/beagley/ai/demos/beagley-ai-using-imx219-csi-cameras.rst @@ -1,11 +1,10 @@ -.. _beagley-ai-rtc: - -.. note:: This page is a work in progress. Further drive testing and images will be added soon - +.. _beagley-ai-using-imx219-csi-cameras: Using IMX219 CSI Cameras ############################ +.. note:: This page is a work in progress. Further drive testing and images will be added soon + To enable an IMX219 CSI camera, modify the following file: `/boot/firmware/extlinux/extlinux.conf` We can check the available list of Device Tree Overlays as such: @@ -43,6 +42,7 @@ Your /boot/firmware/extlinux/extlinux.conf file should look something like this: Now reboot... .. code:: console + debian@BeagleBone:~$ ls /dev/ | grep "video" video0 video1 @@ -56,6 +56,7 @@ Troubleshooting ******************* .. code:: console + Found /extlinux/extlinux.conf Retrieving file: /extlinux/extlinux.conf beagley-ai microSD (extlinux.conf) diff --git a/boards/beagley/ai/demos/Using-PWM.rst b/boards/beagley/ai/demos/beagley-ai-using-pwm.rst similarity index 98% rename from boards/beagley/ai/demos/Using-PWM.rst rename to boards/beagley/ai/demos/beagley-ai-using-pwm.rst index f61881f98534fdb690edb308b0bb706a55a495d0..7a39a8fb30abd38b028e107d8f4ae54298afa957 100644 --- a/boards/beagley/ai/demos/Using-PWM.rst +++ b/boards/beagley/ai/demos/beagley-ai-using-pwm.rst @@ -1,11 +1,10 @@ -.. _beagley-ai-pwm: - -.. todo:: This page is a work in progress. Further testing and images will be added soon - +.. _beagley-ai-using-pwm: Pulse Width Modulation (PWM) ############################# +.. todo:: This page is a work in progress. Further testing and images will be added soon + What is it ************ diff --git a/boards/beagley/ai/expansion/Using-the-RTC.rst b/boards/beagley/ai/demos/beagley-ai-using-rtc.rst similarity index 92% rename from boards/beagley/ai/expansion/Using-the-RTC.rst rename to boards/beagley/ai/demos/beagley-ai-using-rtc.rst index b4499caab2b2b7fe3f94b03ce53e16dd569f73c0..3382be35edf50fcb4298eb7bad597d9c10aaa994 100644 --- a/boards/beagley/ai/expansion/Using-the-RTC.rst +++ b/boards/beagley/ai/demos/beagley-ai-using-rtc.rst @@ -1,10 +1,9 @@ -.. _beagley-ai-rtc: - -.. note:: This page is a work in progress. Further testing and images will be added soon - +.. _beagley-ai-using-rtc: Using the on-board Real Time Clock (RTC) -################################################# +######################################### + +.. todo:: This page is a work in progress. Further testing and images will be added soon Real Time Clocks (RTCs) provide precise and reliable timekeeping capabilities, which are beneficial for applications ranging from simple timekeeping to complex scheduling and secure operations. @@ -14,20 +13,20 @@ a constant or reliable network connection. In situations such as these, an RTC a Fortunately, BeagleY-AI comes with a built-in `DS1340 <https://www.analog.com/media/en/technical-documentation/data-sheets/DS1340-DS1340C.pdf>`_ RTC for all your fancy time keeping needs! Required Hardware -********************** +****************** BeagleY provides a **1.25 mm pitch, 2-pin JST GH connector** for a coin cell battery to enable the RTC to keep time even if power is lost to the board. These batteries are available from several vendors: -* Adafruit - `Link <https://www.adafruit.com/product/5817>`_ -* DigiKey - `Link <https://www.digikey.com/en/products/detail/raspberry-pi/SC1163/21658274>`_ -* Amazon (reusable battery holder) - `Link <https://www.amazon.com/KODASW-RTCBattery-Holder-Include-Battery/dp/B0CRKQ2MG1/>`_ +* `Adafruit - Raspberry Pi 5 RTC Battery <https://www.adafruit.com/product/5817>`_ +* `DigiKey - SC1163 <https://www.digikey.com/en/products/detail/raspberry-pi/SC1163/21658274>`_ +* `Amazon (reusable battery holder) <https://www.amazon.com/KODASW-RTCBattery-Holder-Include-Battery/dp/B0CRKQ2MG1/>`_ .. image:: ../images/beagley_rtc.png Uses for an RTC -********************** +****************** 1. **Maintaining Accurate Time:** RTCs provide an accurate clock that continues to run even when the SBC is powered down. This is crucial for maintaining the correct time and date across reboots.