diff --git a/.gitignore b/.gitignore index 0798a239e6cc..60dc347c328b 100644 --- a/.gitignore +++ b/.gitignore @@ -139,4 +139,6 @@ yarn.lock # plugin FrontMatter frontmatter.json -taxonomyDb.json \ No newline at end of file +taxonomyDb.json + +XIAO_ESP32C6_Swift_Matter.md \ No newline at end of file diff --git a/docs/Edge/NVIDIA_Jetson/Carrier_Boards/A203v2/reComputer_A203_Flash_System.md b/docs/Edge/NVIDIA_Jetson/Carrier_Boards/A203v2/reComputer_A203_Flash_System.md index 878f47e55614..ddfa819be407 100644 --- a/docs/Edge/NVIDIA_Jetson/Carrier_Boards/A203v2/reComputer_A203_Flash_System.md +++ b/docs/Edge/NVIDIA_Jetson/Carrier_Boards/A203v2/reComputer_A203_Flash_System.md @@ -280,6 +280,8 @@ Now, we need to install the driver as well to make sure each component on the bo + + !!!Note There are two JetPack 5.0.2 drivers for A203 included in the downloaded files. Both work fine, except that one of them supports **IMX-219 camera** and the other one supports **IMX-477 camera**. @@ -454,8 +456,10 @@ After we unzip the package, we need to install the driver as well to make sure e -!!!Note +:::note + There are two JetPack 5.0.2 drivers for A203 included in the downloaded files. Both work fine, except that one of them supports **IMX-219 camera** and the other one supports **IMX-477 camera**. +::: ### Step 4. Unzip the Driver in the file diff --git a/docs/Edge/NVIDIA_Jetson/Carrier_Boards/A603/A603_Flash_JetPack.md b/docs/Edge/NVIDIA_Jetson/Carrier_Boards/A603/A603_Flash_JetPack.md index 591fb7046ef2..70602a1d7801 100644 --- a/docs/Edge/NVIDIA_Jetson/Carrier_Boards/A603/A603_Flash_JetPack.md +++ b/docs/Edge/NVIDIA_Jetson/Carrier_Boards/A603/A603_Flash_JetPack.md @@ -110,19 +110,20 @@ First of all, you need to install the peripheral drivers for this board. These a Jetson Orin NX 8GB/ 16GB,
Jetson Orin Nano 4GB/ 8GB 5.1.2 35.4.1 - Download + Download Jetson Orin NX 8GB/ 16GB,
Jetson Orin Nano 4GB/ 8GB 6.0 36.3 - Download + Download + **Note:** Currently we provide the above drivers. We will keep updating the drivers in the future with the release of new JetPack versions. ## Flash to Jetson @@ -287,10 +288,6 @@ sudo apt install unzip unzip A603-JP5.1.2.zip ``` -:::caution -Here it will ask whether to replace the files. Type **A** and press **ENTER** to replace the necessary files. -::: - **Step 5:** Configure your username, password & hostname so that you do not need to enter the Ubuntu installation wizard after the device finishes booting. ```sh @@ -346,10 +343,6 @@ sudo apt install unzip sudo unzip A603-JP6.0.zip ``` -:::caution -Here it will ask whether to replace the files. Type **A** and press **ENTER** to replace the necessary files. -::: - **Step 5:** Configure your username, password & hostname so that you do not need to enter the Ubuntu installation wizard after the device finishes booting. ```sh diff --git a/docs/Edge/NVIDIA_Jetson/Carrier_Boards/A607/A607_Flash_JetPack.md b/docs/Edge/NVIDIA_Jetson/Carrier_Boards/A607/A607_Flash_JetPack.md index b143db8f5c1e..1f0e960cba39 100644 --- a/docs/Edge/NVIDIA_Jetson/Carrier_Boards/A607/A607_Flash_JetPack.md +++ b/docs/Edge/NVIDIA_Jetson/Carrier_Boards/A607/A607_Flash_JetPack.md @@ -82,7 +82,7 @@ First of all, you need to install the peripheral drivers for this board. These a 6.0 36.3 - Download + Download Jetson Orin Nano 4GB @@ -93,7 +93,7 @@ First of all, you need to install the peripheral drivers for this board. These a 6.0 36.3 - Download + Download Jetson Orin Nano 8GB @@ -104,12 +104,13 @@ First of all, you need to install the peripheral drivers for this board. These a 6.0 36.3 - Download + Download + **Note:** Currently we provide the above drivers. We will keep updating the drivers in the future with the release of new JetPack versions. ## Flash to Jetson diff --git a/docs/Edge/NVIDIA_Jetson/Carrier_Boards/A608/A608_Flash_JetPack.md b/docs/Edge/NVIDIA_Jetson/Carrier_Boards/A608/A608_Flash_JetPack.md index 63e9d7c7973f..2db04b88e2eb 100644 --- a/docs/Edge/NVIDIA_Jetson/Carrier_Boards/A608/A608_Flash_JetPack.md +++ b/docs/Edge/NVIDIA_Jetson/Carrier_Boards/A608/A608_Flash_JetPack.md @@ -72,7 +72,9 @@ Here we will use NVIDIA L4T 35.3.1 to install Jetpack 5.1.1 on the A608 Carrier
-**Step 2.** [Download](https://nv-jetson-images.oss-us-west-1.aliyuncs.com/A608/a608_jp511.tar.gz?OSSAccessKeyId=LTAI5tKm7UD2hmuFW85cz42T&Expires=4861269491&Signature=801mYzDJxj5g68Vqo2H4k7VVLkM%3D) peripheral drivers and put all the drivers in same folder. +**Step 2.** [Download](http://recomputer-jetson.oss-us-west-1.aliyuncs.com/A608/608_jp511.zip) peripheral drivers and put all the drivers in same folder. + + Now you will see three compressed files in the same folder: @@ -92,7 +94,9 @@ cd Linux_for_Tegra/ sudo ./apply_binaries.sh sudo ./tools/l4t_flash_prerequisites.sh cd .. -tar -zxvf a608_jp511.tar.gz +unzip 608_jp511.zip +cp -r ./608_jp511/Linux_for_Tegra/* ./Linux_for_Tegra/ + ``` **Step 4.** Flash the system to A608. @@ -128,7 +132,8 @@ Here we will use NVIDIA L4T 35.4.1 to install Jetpack 5.1.2 on the A608 Carrier **Step 1.** [Download](https://developer.nvidia.com/embedded/jetson-linux-r3541) the NVIDIA drivers on the host PC. The required drivers are shown below:
-**Step 2.** [Download](https://nv-jetson-images.oss-us-west-1.aliyuncs.com/A608/608_jp512.zip?OSSAccessKeyId=LTAI5tKm7UD2hmuFW85cz42T&Expires=4866749054&Signature=GavBxI%2Fe6tSG%2BTKECy4NNQ%2BtI7g%3D) peripheral drivers and put all the drivers in same folder. +**Step 2.** [Download](http://recomputer-jetson.oss-us-west-1.aliyuncs.com/A608/608_jp512.zip) peripheral drivers and put all the drivers in same folder. + Now you will see three compressed files in the same folder: diff --git a/docs/Edge/NVIDIA_Jetson/Carrier_Boards/J401/reComputer_J4012_Flash_Jetpack.md b/docs/Edge/NVIDIA_Jetson/Carrier_Boards/J401/reComputer_J4012_Flash_Jetpack.md index 9a116552139e..65e1f5798963 100644 --- a/docs/Edge/NVIDIA_Jetson/Carrier_Boards/J401/reComputer_J4012_Flash_Jetpack.md +++ b/docs/Edge/NVIDIA_Jetson/Carrier_Boards/J401/reComputer_J4012_Flash_Jetpack.md @@ -456,26 +456,27 @@ Here we will use NVIDIA L4T 36.3 to install Jetpack 6.0 on the reComputer Jetson Orin NX 16GB - Download + Download 6.0 36.3 Jetson Orin NX 8GB - Download + Download Jetson Orin Nano 8GB - Download + Download Jetson Orin Nano 4GB - Download + Download + **Step 2:** Extract the downloaded image file: ```bash sudo tar xpf mfi_xxxx.tar.gz diff --git a/docs/Edge/NVIDIA_Jetson/reComputer_Jetson_Series/reComputer_Industrial/reComputer_Industrial_Getting_Started.md b/docs/Edge/NVIDIA_Jetson/reComputer_Jetson_Series/reComputer_Industrial/reComputer_Industrial_Getting_Started.md index 6f189a80afd8..89f4219f72ef 100644 --- a/docs/Edge/NVIDIA_Jetson/reComputer_Jetson_Series/reComputer_Industrial/reComputer_Industrial_Getting_Started.md +++ b/docs/Edge/NVIDIA_Jetson/reComputer_Jetson_Series/reComputer_Industrial/reComputer_Industrial_Getting_Started.md @@ -315,34 +315,35 @@ The first method download is around 14GB and the second method download is about reComputer Industrial J4012 - Download + Download 5.1.1 35.3.1 reComputer Industrial J4011 - Download + Download reComputer Industrial J3011 - Download + Download reComputer Industrial J3010 - Download + Download reComputer Industrial J2012 - Download + Download reComputer Industrial J2011 - Download + Download + The source code for the above images can be found [here](https://github.com/Seeed-Studio/Linux_for_Tegra) - **Step 2:** Extract the generated file diff --git a/docs/Edge/NVIDIA_Jetson/reServer_Jetson_Series/reServer_Industrial_J30_J40/reServer_Industrial_Getting_Started.md b/docs/Edge/NVIDIA_Jetson/reServer_Jetson_Series/reServer_Industrial_J30_J40/reServer_Industrial_Getting_Started.md index 88128d8c03e0..c031d4802ec5 100644 --- a/docs/Edge/NVIDIA_Jetson/reServer_Jetson_Series/reServer_Industrial_J30_J40/reServer_Industrial_Getting_Started.md +++ b/docs/Edge/NVIDIA_Jetson/reServer_Jetson_Series/reServer_Industrial_J30_J40/reServer_Industrial_Getting_Started.md @@ -313,14 +313,14 @@ import TabItem from '@theme/TabItem'; 5.1.1 35.3.1 - Download + Download 6.0 36.3 - Download + Download @@ -328,14 +328,14 @@ import TabItem from '@theme/TabItem'; 5.1.1 35.3.1 - Download + Download 6.0 36.3 - Download + Download @@ -343,14 +343,14 @@ import TabItem from '@theme/TabItem'; 5.1.1 35.3.1 - Download + Download 6.0 36.3 - Download + Download @@ -358,20 +358,21 @@ import TabItem from '@theme/TabItem'; 5.1.1 35.3.1 - Download + Download 6.0 36.3 - Download + Download + - **Step 2:** Extract the generated file diff --git a/docs/Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Computer-Vision/benchmark_on_rpi5_and_cm4_running_yolov8s_with_rpi_ai_kit.md b/docs/Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Computer-Vision/benchmark_on_rpi5_and_cm4_running_yolov8s_with_rpi_ai_kit.md index 1c79ca2b9fa1..85169cc2dc5d 100644 --- a/docs/Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Computer-Vision/benchmark_on_rpi5_and_cm4_running_yolov8s_with_rpi_ai_kit.md +++ b/docs/Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Computer-Vision/benchmark_on_rpi5_and_cm4_running_yolov8s_with_rpi_ai_kit.md @@ -155,8 +155,6 @@ lspci | grep Hailo The right result show as bellow:

pir

-Open terminal on the reCompuer R1000, and input command as follows to run YOLOv8. - ### Run Project diff --git a/docs/Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Computer-Vision/tutorial_of_ai_kit_with_raspberrypi5_about_yolov8n_object_detection.md b/docs/Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Computer-Vision/tutorial_of_ai_kit_with_raspberrypi5_about_yolov8n_object_detection.md new file mode 100644 index 000000000000..861fa28636b7 --- /dev/null +++ b/docs/Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Computer-Vision/tutorial_of_ai_kit_with_raspberrypi5_about_yolov8n_object_detection.md @@ -0,0 +1,327 @@ +--- +description: This wiki demonstrates how to use yolov8n to do object detection with ai kit on raspberry pi5 from traing to deploying +title: Tutorial of AI Kit with Raspberry Pi 5 about YOLOv8n object detection +keywords: + - Edge + - rpi5 + - Ai kit + - YOLO +image: https://files.seeedstudio.com/wiki/wiki-platform/S-tempor.png +slug: /tutorial_of_ai_kit_with_raspberrypi5_about_yolov8n_object_detection +last_update: + date: 08/6/2024 + author: Jiahao + +no_comments: false # for Disqus +--- + +# Tutorial of AI Kit with Raspberry Pi 5 about YOLOv8n object detection +## Introduction + +[YOLOv8](https://github.com/ultralytics/ultralytics) (You Only Look Once version 8) is the popular most YOLO series of real-time pose estimation and object de tection models. It builds upon the strengths of its predecessors by introducing several advancements in speed, accuracy, and flexibility. The [Raspberry-pi-AI-kit](https://www.seeedstudio.com/Raspberry-Pi-AI-Kit-p-5900.html) is used to accelerate inference speed, featuring a 13 tera-operations per second (TOPS) neural network inference accelerator built around the Hailo-8L chip. + +This wiki we will show you how to use yolov8n to do object detection with ai kit on raspberry pi5 from traing to deploying. + +## Prepare Hardware + +
+ + + + + + + + + + + + + +
Raspberry Pi5 8GBRaspberry Pi AI Kit
+
+ + + +## Install Hardware + +Please refer to [this](https://www.raspberrypi.com/documentation/accessories/ai-kit.html) + +## Host computer + +:::note +We will install hailo software, make sure you have a hailo account. +::: + +### Install Ultralytics and train model: + +Install python3.11 +``` +sudo apt install python3.11 +``` + +Creat yolo_env as your virtual environment + +``` +python3.11 -m venv yolo_env +``` + +Activate the environment + +``` +source yolo_env/bin/activate +``` + +Install ultralytics + +``` +pip install ultralytics +``` + +Train yolov8n, here we use coco as dateset, if you want train your own dataset, you can use [this](https://docs.ultralytics.com) to train your own dataset. + +``` +mkdir yolomodel && cd yolomodel +yolo detect train data=coco128.yaml model=yolov8n.pt name=retrain_yolov8n epochs=100 batch=16 +``` + +

pir

+ +You will get best.pt model after your training like below: + +``` +cd ./runs/detect/retrain_yolov8n/weights/ +ls +``` +

pir

+ +Convert pt model to onnx + +``` +yolo export model=./best.pt imgsz=640 format=onnx opset=11 +``` +Result like below: +

pir

+ +### Install hailo software: + +Install python 3.8 + +``` +cd ~ +sudo apt install python3.8 +``` + +Creat hailo_env as your virtual environment + +``` +python3.8 -m venv hailo_env +``` + +Activate the environment + +``` +source hailo_env/bin/activate +``` + +Install [Hailo Dataflow Compiler 3.27](https://hailo.ai/developer-zone/software-downloads/), here you need to register Hailo and login, and download the software. + +

pir

+ +``` +pip install hailo_dataflow_compiler-3.27.0-py3-none-linux_x86_64.whl + +``` +Install [Model zoo](https://hailo.ai/developer-zone/software-downloads/), here you need to register Hailo and login, and download the software. + +

pir

+ +``` +pip install hailo_model_zoo-2.11.0-py3-none-any.whl +``` + +Test hailo_model_zoo weather it can work + +``` +hailomz -h +``` +

pir

+ + +Install hailo_model_zoo github file + +``` +cd yolomodel/runs/detect/retrain_yolov8n/weights + +git clone https://github.com/hailo-ai/hailo_model_zoo.git +``` + +Install coco dataset for evaluate/optimize/compile the yolov8n model + +``` +python hailo_model_zoo/datasets/create_coco_tfrecord.py val2017 +python hailo_model_zoo/datasets/create_coco_tfrecord.py calib2017 +``` +### Use hailomz to parse the model: + +Use hailomz to parse the model + +``` +hailomz parse --hw-arch hailo8l --ckpt ./best.onnx yolov8n +``` + +

pir

+ +### Use hailomz to optimize the model: + +:::note +If you excute the following command, you may get some errors, but you can copy ```./hailo_model_zoo/hailo_model_zoo``` to your local library. And if the error is about not find dateset, you can enter ```~/.hailomz``` and find the dataset, and copy it to your local dataset. +::: + +``` +hailomz optimize --hw-arch hailo8l --har ./yolov8n.har yolov8n +``` + +

pir

+ +### Use hailomz to compile the model: + +``` +hailomz compile yolov8n --hw-arch hailo8l --har ./yolov8n.har +``` + +

pir

+ +After all you will get a hef format model, you can use it to deploy on reComputer r1000. + +``` +ls +``` +

pir

+ +## raspberry pi5 + +### update the system: + +``` +sudo apt update +sudo apt full-upgrade +``` + +### Set pcie to gen2/gen3(gen3 is faster than gen2): + +Add following text to ```/boot/firmware/config.txt``` + +``` +#Enable the PCIe external connector + +dtparam=pciex1 + +#Force Gen 3.0 speeds + +dtparam=pciex1_gen=3 + +``` +:::note +If you want to use gen2,please comment dtparam=pciex1_gen=3 +::: + +### Install hailo-all and reboot: + +Open terminal on the Raspberry Pi5, and input command as follows to install Hailo software. + +``` +sudo apt install hailo-all +sudo reboot +``` +### Check Software and Hardware: + +Open terminal on the Raspberry Pi5, and input command as follows to check if hailo-all have been installed. + +``` +hailortcli fw-control identify +``` + +The right result show as bellow: +

pir

+ +Open terminal on the Raspberry Pi5, and input command as follows to check if hailo-8L have been connected. + +``` +lspci | grep Hailo +``` + +The right result show as bellow: +

pir

+ + +### Clone the project: + +``` +git clone https://github.com/Seeed-Projects/Benchmarking-YOLOv8-on-Raspberry-PI-reComputer-r1000-and-AIkit-Hailo-8L.git +cd Benchmarking-YOLOv8-on-Raspberry-PI-reComputer-r1000-and-AIkit-Hailo-8L +``` + +### Copy your model to the raspberry pi5: + +make a directory named ```hailomodel``` +``` +mkdir hailomodel +``` + +:::note +The command below you should run on your host computer, not your raspberry pi5, and make sure your host computer and raspberry pi5 at the same net. +::: + +``` +scp -r ./yolomodel/runs/detect/retrain_yolov8n/weights/yolov8n.hef name@:ip /home/pi/Benchmarking-YOLOv8-on-Raspberry-PI-reComputer-r1000-and-AIkit-Hailo-8L/hailomodel/ +``` + +### Change code + +Find line 105 and 106 in ```object-detection-hailo.py```, and change the code like below: +``` + elif args.network == "yolov8n": + self.hef_path = os.path.join(self.current_path, './hailomodel/yolov8n.hef') +``` + +Find line 172 in ```object-detection-hailo.py```, and change the code like below: +``` + parser.add_argument("--network", default="yolov8n", choices=['yolov6n', 'yolov8s', 'yolox_s_leaky'], help="Which Network to use, defult is yolov6n") +``` + +### Run the code: + +``` +bash run.sh object-detection-hailo +``` + +## Result + + +
+ +
+ + +## Tech Support & Product Discussion + +Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs. + +
+ + +
+ +
+ + +
\ No newline at end of file diff --git a/docs/Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Home-Assistant/recomputer-r1000-home-assistant.md b/docs/Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Home-Assistant/recomputer-r1000-home-assistant.md new file mode 100644 index 000000000000..886611e83647 --- /dev/null +++ b/docs/Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Home-Assistant/recomputer-r1000-home-assistant.md @@ -0,0 +1,156 @@ +--- +description: Learn how to set up and configure Home Assistant on a reComputer R1000 +title: reComputer R1000 with Home Assistant +keywords: + - Home Assistant + - reComputer R1000 + - Home Automation + - Bookworm + +image: https://files.seeedstudio.com/wiki/reComputer-R1000/recomputer_r_images/01.png +slug: /recomputer_r1000_home_automation +last_update: + date: 08/02/2024 + author: Kasun Thushara +--- + +## Introduction + +The reComputer r1000, designed for Building Automation Systems, features multiple isolated RS485 channels that support both high and low-speed communication. It is compatible with BACnet, Modbus RTU, and Modbus TCP/IP protocols, making it versatile for various automation needs. This guide provides a concise introduction to installing Home Assistant on the reComputer r1000, enabling seamless integration and control of your smart home devices. + +
+ +[Home Assistant](https://www.home-assistant.io/) is a free and open-source software for home automation, serving as a central control system or smart home hub for various devices. Designed with local control in mind, it ensures your Building Management System (BMS) operates independently of remote servers or internet connections, enhancing security and reliability. This means your BMS can run 24/7 without the vulnerabilities associated with cloud-connected devices, providing a robust and secure automation solution. + +## Getting Start + +Before you start this project, you may need to prepare your hardware in advance as described here. + +### Hardware Preparation + +
+ + + + + + + + + + + + +
reComputer R1000
+
+ +:::note +During the HA installation process, we tested using wireless connectivity. +::: + +### Software Preparation + +The reComputer comes with a pre-installed Bookworm 64 bit version. This guide covers the steps for **installing Home Assistant Supervised** on that system. + +## Why Home Assistant Supervised? + +There are a few methods to install Home Assistant on your reComputer. You can opt for a full installation of Home Assistant, or if you plan to run Home Assistant alongside other applications on top of your operating system, the supervised method is ideal. Another option is to use Docker, but this requires setting up separate Docker containers as add-ons. This guide focuses on the more complex installation process of the **Supervised method**. Don't worryโ€”we'll walk you through it step by step. + + +## Home Assistant Supervised Installation - Bookworm + +#### Step 1: Update and Install Dependencies + +```bash +sudo apt update +sudo apt-get install -y jq wget curl udisks2 apparmor-utils libglib2.0-bin network-manager dbus systemd-journal-remote systemd-resolved +``` + +#### Step 2: Start and Enable Network Manager + +Check the status of Network Manager + +```bash +sudo systemctl status NetworkManager.service +``` + +NetworkManager does not start, start and enable + +```bash +sudo systemctl start NetworkManager +sudo systemctl enable NetworkManager +``` + +#### Step 3: Modify Boot Parameters + +Edit the `cmdline.txt` file: +```bash +sudo nano /boot/firmware/cmdline.txt +``` + +Add the following at the end of the line: + +```bash +systemd.unified_cgroup_hierarchy=false lsm=apparmor +``` + +Reboot the system: +```bash +sudo reboot +``` + +#### Step 4: Install Docker + +```bash +sudo curl -fsSL get.docker.com | sh +sudo gpasswd -a $USER docker +newgrp docker +``` + +#### Step 5: Install OS Agent + +```bash +wget https://github.com/home-assistant/os-agent/releases/download/1.6.0/os-agent_1.6.0_linux_aarch64.deb +sudo dpkg -i os-agent_1.6.0_linux_aarch64.deb +``` + +#### Step 6: Install Home Assistant Supervised + +```bash +wget https://github.com/home-assistant/supervised-installer/releases/download/1.6.0/homeassistant-supervised.deb +sudo dpkg -i homeassistant-supervised.deb +``` + +Upon successful correction, a blue screen will appear, allowing you to select **Raspberry Pi4 64** model. + +
+ +After a few minutes, the installation will begin. + +You can then view the Home Assistant Dashboard UI on a web browser using `:8123`. + +It will take some time to finish the initial startup process. Once it has finished starting up, create an account and follow the initial setup instructions + +
+ +:::note +If there are warnings in notifications, please reboot the reComputer. +::: + +## Tech Support & Product Discussion + +Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs. + +
+ + +
+ +
+ + +
+ + diff --git a/docs/Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Home-Assistant/recomputer-r1000-modbus-home-assistant.md b/docs/Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Home-Assistant/recomputer-r1000-modbus-home-assistant.md new file mode 100644 index 000000000000..63cd3f948735 --- /dev/null +++ b/docs/Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Home-Assistant/recomputer-r1000-modbus-home-assistant.md @@ -0,0 +1,202 @@ +--- +description: Learn how to set up and configure Modbus TCP and Modbus RTU with Home Assistant on a reComputer R1000, a powerful Raspberry Pi-powered solution for seamless integration and control of your Modbus devices in a Building Management System (BMS). +title: reComputer R1000 and Modbus with Home Assistant +keywords: + - Home Assistant + - reComputer R1000 + - Home Automation + - BMS + - Modbus + +image: https://files.seeedstudio.com/wiki/reComputer-R1000/recomputer_r_images/01.png +slug: /recomputer_r1000_home_assistant_modbus +last_update: + date: 08/07/2024 + author: Kasun Thushara +--- + +## Introduction + +In modern building management systems (BMS), integrating various protocols and devices is crucial for efficient monitoring and control. This guide focuses on leveraging the capabilities of Modbus communication protocols (Modbus TCP and Modbus RTU) with Home Assistant OS, using the powerful reComputer R1000, a Raspberry Pi-powered solution. Whether you're setting up a new system or enhancing an existing one, this guide will walk you through the process of connecting your Modbus devices to Home Assistant, ensuring seamless integration and control. + +## Getting Start + +Before you start this project, you may need to prepare your hardware in advance as described here. + +### Hardware Preparation + +
+ + + + + + + + + + + + +
reComputer R1000
+
+ +### Software Preperation + +Before diving into the integration process, it's crucial to ensure that all necessary drivers and tools are installed. Proper [installation of drivers](https://wiki.seeedstudio.com/reComputer_r1000_use_rs485_modbus_rtu/) is a prerequisite for seamless communication between Modbus RTU devices and Home Assistant. It is highly recommended to thoroughly study and install the required drivers before proceeding with this guide. + +Additionally, if you haven't installed Home Assistant yet, please follow the [Home Assistant installation guide](https://wiki.seeedstudio.com/recomputer_r1000_home_automation/) to set it up on your reComputer R1000. + +## File Editor Add-on + +While you can configure most of Home Assistant directly from the user interface under Settings, some parts require you to edit files such as configuration.yaml. This file contains integrations to be loaded along with their configurations. By adding code snippets to this configuration file, you can enable specific functionalities, including Modbus integration. + +To get started, you need to install the File Editor add-on in Home Assistant: + +- Open Home Assistant. +- Navigate to `Settings > Add-ons`. + +
+ +- Click on the `Add-on Store`. + +
+ +- Search for `File Editor` and click on it. + +
+ +- Click the Install button. +- Once installed, click on Start to launch the File Editor. +- Optionally, enable Show in Sidebar for quick access. + +
+ +With the File Editor add-on, you can now edit the `configuration.yaml` file to add Modbus integration + +
+ +## Enabling Modbus TCP Integration + +To enable the Modbus integration in Home Assistant, you need to add specific parameters to your configuration.yaml file. Below are the parameters and their descriptions that you will need to configure: + +- **name**: The name of this hub. Must be unique. +- **host**: The IP address or name of your Modbus device, e.g., `192.168.1.1`. +- **port**: The network port for communication. +- **type**: The type of Modbus connection. Options are tcp or serial.Here we used `tcp` + +To configure entities for your Modbus integration, you need to define various parameters for each entity. Below are the parameters required for setting up binary sensors: +There are several entities. You can check on [Offical modbus Home Assistant page](https://www.home-assistant.io/integrations/modbus). + +- **binary_sensors**: A list of all binary sensors configured for this connection. +- **address**: The address of the coil/register. +- **name**: The name of the entity, which must be unique within the entity type. +- **scan_interval**: The update interval in seconds. Set scan_interval = 0 for no polling. Entities are read shortly after startup and then according to scan_interval. +- **slave**: Identical to device_address. +- **input_type**: The type of request. Options are coil, holding, or input. + +**Example** : + +```bash +modbus: + - name: modbus_hub + type: tcp + host: IP_ADDRESS_of_PLC + port: 502 + binary_sensors: + - name: Relay_1 + address: 8193 + slave: 1 + input_type: coil + scan_interval: 1 + - name: Relay_2 + address: 8194 + slave: 1 + input_type: coil + scan_interval: 1 +``` +
+ +:::note +It is neccesary save and restart HA after changing configuration.yml file +::: + +## Enabling Modbus RTU Integration + +To enable Modbus RTU integration in Home Assistant, you need to add the following parameters to your configuration.yaml file: + +- **name**: The name of this hub. Must be unique. +- **type**: The type of Modbus connection. Here, it should be serial. +- **port**: The serial port or USB device where your Modbus device is connected to your Home Assistant host. We found that it is `/dev/ttyAMA30` +- **baudrate**: The speed of the serial connection. +- **method**: The method of connection to Modbus. Options are rtu and ascii. +- **parity**: The parity of the data bytes. Options are E (Even), O (Odd), N (None). +- **bytesize**: The data size in bits of each byte. Typically 8. +- **stopbits**: The stop bits of the data bytes. + +To configure entities for your Modbus RTU integration, you need to define various parameters for each sensor. Below are the parameters required for setting up sensors: + +- **sensors**: The Modbus sensor allows you to gather data from Modbus registers. +- **name**: The name of the entity, which must be unique within the entity type. +- **address**: The address of the register. +- **slave**: Identical to device_address. +- **input_type**: The Modbus register type for the sensor. Options are holding or input. +- **scale**: The scale factor. +- **device_class**: The type/class of the sensor to set the icon in the frontend. +- **unit_of_measurement**: The unit to attach to the value. + + +Example: + +```bash +modbus: + - name: modbus_hub2 + type: serial + port: /dev/ttyAMA30 + baudrate: 9600 + bytesize: 8 + method: rtu + parity: N + stopbits: 1 + sensors: + - name: Room Temperature + address: 1 + input_type: input + slave: 1 + scale: 0.01 + device_class: temperature + unit_of_measurement: ยฐC + - name: Room Humidity + address: 2 + input_type: input + slave: 1 + scale: 0.01 + unit_of_measurement: '%' + device_class: humidity +``` +
+ +:::note +It is neccesary save and restart HA after changing configuration.yml file +::: + +Finally you will be able to see the working phenomina. + +
+ + +## Tech Support & Product Discussion + +Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs. + +
+ + +
+ +
+ + +
\ No newline at end of file diff --git a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C3/XIAO_ESP32C3_Getting_Started.md b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C3/XIAO_ESP32C3_Getting_Started.md index 2c46673f76a1..57997eb9de54 100644 --- a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C3/XIAO_ESP32C3_Getting_Started.md +++ b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C3/XIAO_ESP32C3_Getting_Started.md @@ -39,7 +39,7 @@ This wiki will show you how you can quickly get started with XIAO ESP32C3! ## Specifications comparison -| Item | Seeed Studio XIAO ESP32C3 | Seeeduino XIAO | Seeed XIAO RP2040 | Seeed XIAO BLE | Seeed XIAO BLE Sense | +| Item | Seeed Studio XIAO ESP32C3 | Seeeduino XIAO | Seeed XIAO RP2040 | Seeed XIAO nRF52840 | Seeed XIAO nRF52840 Sense | |-----------------------|--------------------------------|------------------------|-------------------------------------|----------------------------------------|-----------------------------------------| | Processor | ESP32-C3 32-bit RISC-V @160MHz | SAMD21 M0+@48MHz | RP2040 Dual-core M0+@133Mhz | nRF52840 M4F@64MHz | nRF52840 M4F@64MHz | | Wireless Connectivity | WiFi and Bluetooth 5 (LE) | N/A | N/A | Bluetooth 5.0/BLE/NFC | Bluetooth 5.0/BLE/NFC | @@ -85,30 +85,6 @@ According to the chip manual of ESP32C3, **GPIO2**, **GPIO8** and **GPIO9** in t First, we are going to connect XIAO ESP32C3 to the computer, connect an LED to the board and upload a simple code from Arduino IDE to check whether the board is functioning well by blinking the connected LED. -### Hardware setup - -You need to prepare the following: - -- 1 x [Seeed Studio XIAO ESP32C3](https://www.seeedstudio.com/seeed-xiao-esp32c3-p-5431.html) -- 1 x Computer -- 1 x USB Type-C cable - -:::tip - -Some USB cables can only supply power and cannot transfer data. If you don't have a USB cable or don't know if your USB cable can transmit data, you can check [Seeed USB Type-C support USB 3.1](https://www.seeedstudio.com/USB-3-1-Type-C-to-A-Cable-1-Meter-3-1A-p-4085.html). - -::: - -- **Step 1.** Connect XIAO ESP32C3 to your computer via a USB Type-C cable. - -
- -- **Step 2.** Connect an LED to D10 pin as follows - -
- -**Note:** Make sure to connect a resistor (about 150ฮฉ) in series to limit the current through the LED and to prevent excess current that can burn out the LED - ### Software setup - **Step 1.** Download and Install the latest version of Arduino IDE according to your operating system @@ -140,15 +116,40 @@ Navigate to **Tools > Board > ESP32 Arduino** and select "**XIAO_ESP32C3**". The Navigate to **Tools > Port** and select the serial port name of the connected XIAO ESP32C3. This is likely to be COM3 or higher (**COM1** and **COM2** are usually reserved for hardware serial ports). +### Hardware setup + +You need to prepare the following: + +- 1 x [Seeed Studio XIAO ESP32C3](https://www.seeedstudio.com/seeed-xiao-esp32c3-p-5431.html) +- 1 x Computer +- 1 x USB Type-C cable + +:::tip + +Some USB cables can only supply power and cannot transfer data. If you don't have a USB cable or don't know if your USB cable can transmit data, you can check [Seeed USB Type-C support USB 3.1](https://www.seeedstudio.com/USB-3-1-Type-C-to-A-Cable-1-Meter-3-1A-p-4085.html). + +::: + +- **Step 1.** Connect XIAO ESP32C3 to your computer via a USB Type-C cable. + +
+ +- **Step 2.** Connect an LED to D10 pin as follows + +
+ +**Note:** Make sure to connect a resistor (about 150ฮฉ) in series to limit the current through the LED and to prevent excess current that can burn out the LED + ### Blink the LED - **Step 1.** Copy the below code to Arduino IDE +Make sure your `D10` is connected to an LED as shown in the diagram above. + ```cpp + // define led according to pin diagram in article -int led = D10; -// Blink the onboard charge led -// int led = LED_BUILTIN; +const int led = D10; // there is no LED_BUILTIN available for the XIAO ESP32C3. void setup() { // initialize digital pin led as an output diff --git a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C6/XIAO_ESP32C6_Getting_Started.md b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C6/XIAO_ESP32C6_Getting_Started.md index 8ac8dd6449a0..c121a034915b 100644 --- a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C6/XIAO_ESP32C6_Getting_Started.md +++ b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32C6/XIAO_ESP32C6_Getting_Started.md @@ -10,7 +10,7 @@ slug: /xiao_esp32c6_getting_started toc_max_heading_level: 4 sidebar_position: 1 last_update: - date: 07/16/2024 + date: 08/05/2024 author: Spencer --- diff --git a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32S3/XIAO_ESP32S3_Getting_Started.md b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32S3/XIAO_ESP32S3_Getting_Started.md index c7482231c588..467781fb5050 100644 --- a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32S3/XIAO_ESP32S3_Getting_Started.md +++ b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_ESP32S3/XIAO_ESP32S3_Getting_Started.md @@ -7,10 +7,13 @@ keywords: image: https://files.seeedstudio.com/wiki/seeed_logo/logo_2023.png slug: /xiao_esp32s3_getting_started last_update: - date: 03/23/2023 - author: Citric + date: 08/07/2024 + author: Spencer --- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + # Getting Started with Seeed Studio XIAO ESP32S3 (Sense)
@@ -264,6 +267,91 @@ If you need to know the detailed parameter information of ov5640, you can refer All the programs about cameras in the Wiki are compatible with both OV5640 and OV2640 cameras. ::: + + ### Software Preparation The recommended programming tool for the XIAO ESP32S3 is the Arduino IDE, so as part of the software preparation, you will need to complete the Arduino installation. diff --git a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_RP2040/XIAO-RP2040-with-Arduino.md b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_RP2040/XIAO-RP2040-with-Arduino.md index 9eee9e902253..ef31392f380b 100644 --- a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_RP2040/XIAO-RP2040-with-Arduino.md +++ b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_RP2040/XIAO-RP2040-with-Arduino.md @@ -96,7 +96,7 @@ Once uploaded, you should be able to see the pin 25 Green (USER) LED on the boar If uploading the Arduino program fails, try holding down the "BOOT" button and then clicking the "RUN" button. At this point, Seeed Studio XIAO RP2040 will enter boot mode (your computer will load a removable disk), and you will be able to upload the Arduino program again. ::: -## **Pin Multuiplexing on the Seeed Studio XIAO RP2040** +## **Pin Multiplexing on the Seeed Studio XIAO RP2040** The Seeed Studio XIAO RP2040 contains 11 digital pins, 4 analog pins, 11 PWM Pins,1 I2C interface, 1 UART interface, 1 SPI interface, 1 SWD Bonding pad interface. We are going to provide the tutorials about these interfaces to make it helpful for your projects. diff --git a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_RP2350/XIAO-RP2350-with-MicroPython.md b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_RP2350/XIAO-RP2350-with-MicroPython.md new file mode 100644 index 000000000000..d80907d40271 --- /dev/null +++ b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_RP2350/XIAO-RP2350-with-MicroPython.md @@ -0,0 +1,104 @@ +--- +description: how to use MicroPython for RP2350 +title: Seeed Studio XIAO RP2350 with MicroPython +image: https://files.seeedstudio.com/wiki/seeed_logo/logo_2023.png +slug: /xiao-rp2350-micropython +sidebar_position: 1 +last_update: + date: 2024-08-08T07:21:33.838Z + author: Spencer +--- + +## Introduction + +Welcome to the guide on using MicroPython with the Seeed Studio XIAO RP2350! This guide will help you get started with setting up MicroPython, writing and running your first script, and exploring the capabilities of the XIAO RP2350 using the Thonny IDE. + +## What You'll Need + +- Seeed Studio XIAO RP2350 +- USB-C cable +- Computer with internet access +- Thonny IDE (recommended for beginners) + +## Setting Up MicroPython on the XIAO RP2350 + +1. **Download and Install Thonny IDE** + + Thonny IDE is a beginner-friendly Python IDE that is perfect for writing and running MicroPython scripts. You can download it from [here](https://thonny.org/). + +2. **Install MicroPython Firmware** + + To use MicroPython on the XIAO RP2350, you need to flash the MicroPython firmware onto the board. + + - Download the latest MicroPython firmware for RP2040 from the [official site](https://micropython.org/download/rp2-pico/). + - Connect the XIAO RP2350 to your computer while holding the BOOTSEL button to enter the bootloader mode. + - Drag and drop the downloaded `.uf2` file onto the RP2040 storage device that appears. + +3. **Configure Thonny IDE** + + - Open Thonny IDE. + - Go to `Tools` > `Options` > `Interpreter`. + - Select `MicroPython (Raspberry RP2350)` as the interpreter and select the corresponding COM port. + +## Writing Your First MicroPython Script + +1. **Hello, World!** + + Let's start with a simple script to print "Hello, World!" to the console. + + ```python + print("Hello, World!") + ``` + +2. **Running the Script** + + - Type the script in the Thonny editor. + - Click the `Run` button or press `F5`. + - You should see "Hello, World!" printed in the console. + +## Exploring GPIO Control + +Let's explore how to control the GPIO pins on the XIAO RP2350 with MicroPython. + +1. **Blinking an LED** + + Connect an LED to a GPIO pin (e.g., GP25) with a suitable resistor. + + ```python + import machine + import time + + led = machine.Pin(25, machine.Pin.OUT) + + while True: + led.value(1) # Turn LED on + time.sleep(1) + led.value(0) # Turn LED off + time.sleep(1) + ``` + +2. **Running the LED Blinking Script** + + - Type the script in the Thonny editor. + - Click the `Run` button or press `F5`. + - The LED should start blinking on and off. + +## Additional Resources + +- [Raspberry Pi Documentation](https://www.raspberrypi.com/documentation/microcontrollers/micropython.html) +- [Raspberry Pi Pico Python SDK](https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-python-sdk.pdf) +- [Thonny IDE Setup Guide](https://raspberrytips.com/thonny-ide-raspberry-pi/) + +## Tech Support & Product Discussion + +Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs. + +
+ + +
+ +
+ + +
\ No newline at end of file diff --git a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_RP2350/XIAO-RP2350-with-SDK.md b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_RP2350/XIAO-RP2350-with-SDK.md new file mode 100644 index 000000000000..64b6fbef1eee --- /dev/null +++ b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_RP2350/XIAO-RP2350-with-SDK.md @@ -0,0 +1,267 @@ +--- +description: how to use SDK for RP2350 +title: Seeed Studio XIAO RP2350 with C/C++ SDK +image: https://files.seeedstudio.com/wiki/seeed_logo/logo_2023.png +slug: /xiao-rp2350-c-cpp-sdk +sidebar_position: 2 +last_update: + date: 2024-08-06T09:04:18.916Z + author: Spencer +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## Introduction + +The Pico SDK represents a comprehensive software development kit tailored for the Raspberry Pi RP-family of microcontrollers, with a particular focus on the XIAO RP2350 board. This SDK incorporates a wide range of libraries and tools designed to facilitate the development of advanced applications, serving both novice enthusiasts and experienced professionals. The SDK functions as a foundational platform for exploiting the extensive capabilities of the RP2350 microcontroller across various projects. + +## Prerequisites + +Before initiating SDK programming on the XIAO RP2350, the following equipment is required: + +- A USB Type-C cable +- The XIAO RP2350 board +- A personal computer equipped with a Linux/Unix operating system + +:::caution Attention + +This documentation predominantly addresses development under a Linux environment. Windows users are advised to consult the following resource for compatible setup instructions: [Raspberry Pi Pico Setup on Windows](https://github.com/raspberrypi/pico-setup-windows). + +::: + +## Installation Guide โ–ถ๏ธ + +### Step 1: Install System Dependencies + +Execute the following commands in your Linux terminal to install the essential system dependencies: + +```bash +sudo apt update +sudo apt install cmake gcc g++ git +``` + +### Step 2: ๐Ÿ”จ Toolchain Installation {#install_gcc_arm} + +To compile code for the RP2350, installation of a specific toolchain, `gcc-arm-none-eabi`, is imperative. This toolchain provides the necessary compilers and libraries for ARM architecture. Two methods for installation are provided below. + + + + +The manual installation process offers precise control over the installation environment by following these steps: + +1. **Download the Toolchain**: + + Access the ARM Developer Downloads page and download the `.tar.bz2` file for the `gcc-arm-none-eabi` toolchain from [here](https://developer.arm.com/downloads/-/gnu-rm). + +2. **Extract the Archive**: + + After downloading, open a terminal window, navigate to the directory containing the file, and execute the command below to extract the archive: + + ```shell + tar -xjf {downloaded-file}.tar.bz2 + ``` + +3. **Update System Path**: + + To make the toolchain accessible from any terminal session, add its directory to your system's PATH by inputting the following command, substituting `{VERSION}` with the actual version number of the toolchain: + + ```shell + echo "export PATH=\$PATH:$(pwd)/gcc-arm-none-eabi-{VERSION}/bin" >> ~/.bashrc + ``` + +4. **Apply Configuration Changes**: + + To activate the PATH update immediately, source your `.bashrc` file: + + ```shell + source ~/.bashrc + ``` + + + + +Opt for a scripted installation to streamline and automate the setup process with the following steps: + +1. **Download and Execute the Script**: + + Utilize `curl` to download the installation script and set the necessary execution permissions: + + ```shell + curl -O https://raw.githubusercontent.com/Seeed-Projects/Seeed-xiao-rp2350-sdk/main/install_gcc_arm.sh + chmod +x install_gcc_arm.sh + ./install_gcc_arm.sh + ``` + +
View Script Code + +The script automates the download, extraction, and PATH configuration processes, as outlined below: + +```shell +#!/bin/bash + +# Handle the automatic download and installation of the gcc-arm-none-eabi toolchain +TOOLCHAIN_URL="https://developer.arm.com/-/media/Files/downloads/gnu-rm/{VERSION}/gcc-arm-none-eabi-{VERSION}-linux.tar.bz2" +wget $TOOLCHAIN_URL -O toolchain.tar.bz2 +tar -xjf toolchain.tar.bz2 +echo "export PATH=\$PATH:$(pwd)/gcc-arm-none-eabi-{VERSION}/bin" >> ~/.bashrc +source ~/.bashrc +rm toolchain.tar.bz2 +``` + +
+ +
+
+ +

+ +### Step 3: โ›“๏ธ SDK Installation {#install_sdk} + +The Pico SDK is crucial as it provides the libraries, examples, and documentation necessary for software development on the RP2350. It abstracts much of the hardware complexity through user-friendly APIs and is regularly updated to incorporate new features and performance enhancements. + +#### Installation Instructions + +To install the Pico SDK, execute the following commands in your terminal: + +```shell +git clone https://github.com/raspberrypi/pico-sdk.git +echo "export PICO_SDK_PATH=$(pwd)/pico-sdk" >> ~/.bashrc +source ~/.bashrc +``` + +These commands clone the SDK from its repository, set the `PICO_SDK_PATH` environment variable to its location, and update your shell configuration to include this path, ensuring the SDK is accessible in your development environment. + +:::tip Enhanced Setup on Raspberry Pi 4B or Pi 400 + +If you are developing directly on a Raspberry Pi 4B or Raspberry Pi 400, you can streamline the installation process with a setup script that automates these steps: + +```shell +wget https://raw.githubusercontent.com/raspberrypi/pico-setup/master/pico_setup.sh +chmod +x pico_setup.sh +./pico_setup.sh +``` + +This script configures your development environment specifically for the Pico on Raspberry Pi hardware, simplifying the initial setup and allowing you to focus on development. + +::: + +#### Expanded SDK Download and Setup + +
Expand to view the detailed SDK setup script + +For a more tailored SDK installation, especially if working with different shell environments, consider using the detailed setup script below: + +```shell +#!/bin/bash + +# Clone the appropriate Pico SDK repository +git clone https://github.com/raspberrypi/pico-sdk.git # should be pico-sdk-rp2350-a1 +cd pico-sdk +PICO_SDK_PATH="$HOME/pico-sdk-rp2350-a1" + +# Add the SDK path to your shell's configuration file +if [ -n "$ZSH_VERSION" ]; then + echo "export PICO_SDK_PATH=$PICO_SDK_PATH" >> ~/.zshrc + source ~/.zshrc +elif [ -n "$BASH_VERSION" ]; then + echo "export PICO_SDK_PATH=$PICO_SDK_PATH" >> ~/.bashrc + source ~/.bashrc +else + # For other shells, adjust accordingly + SHELL_CONFIG_FILE="$(basename $SHELL)rc" + echo "export PICO_SDK_PATH=$PICO_SDK_PATH" >> ~/$SHELL_CONFIG_FILE + source ~/$SHELL_CONFIG_FILE +fi + +# Verify the environment variable setting +echo "PICO_SDK_PATH is set to ${PICO_SDK_PATH}" +``` + +This script ensures that the SDK path is correctly set up in your environment, regardless of the shell you use, and verifies that the `PICO_SDK_PATH` environment variable is correctly set. + +
+ +## Exploring the Examples and Building Projects + +For newcomers to SDK programming, a practical approach involves studying the code of pre-existing Pico examples. This provides valuable insight into coding conventions and methodologies employed within the SDK environment. + +### Steps to Execute the Code + +The following steps outline the process from setting up the development environment to running your code on the XIAO RP2350 board: + +1. **Development Environment Setup**: Initiate by configuring your development environment. Detailed instructions can be found on the [Setting Up the Pico SDK](/xiao-rp2350-c-cpp-sdk) documentation page. This setup is essential for ensuring that all necessary tools and libraries are correctly installed and configured. + +2. **Code Composition**: Utilize a preferred text editor or Integrated Development Environment (IDE) to develop your application. For an initial test, you may start by writing the sample `blink.c` program, which toggles the board's LED. Save this file within your project directory. + +3. **Code Compilation**: + To compile your program, the Pico SDK offers a suite of tools streamlined for this purpose. Execute the following sequence of commands in your terminal, ensuring you are in the project directory where `blink.c` is located: + + ```sh + mkdir build + cd build + cmake .. + make + ``` + + This process will generate a build environment, configure the project, and compile the source code into an executable format. + +4. **Code Upload**: + Upon successful compilation, a binary file with the `.uf2` extension is created in the `build` directory. This file must be transferred to the XIAO RP2350 board for execution. Connect the board via USB and copy the `.uf2` file to the device's mounted storage, typically appearing as a removable drive on your computer. + + After transferring the file, the XIAO RP2350 will automatically reboot, and you should observe the onboard LED blinkingโ€”indicating that the program is running effectively. + +### Example 1: LED Blink + +To demonstrate basic SDK usage, the following example details programming the onboard LED to blink: + +```c title="blink.c" +#include "pico/stdlib.h" + +const int sleep_time = 250; + +int main() { + const uint LED_PIN = PICO_DEFAULT_LED_PIN; // GPIO25 + gpio_init(LED_PIN); + gpio_set_dir(LED_PIN, GPIO_OUT); + while (true) { + gpio_put(LED_PIN, 1); + sleep_ms(sleep_time); + gpio_put(LED_PIN, 0); + sleep_ms(sleep_time); + } +} +``` + + + +## Reference + +- ๐Ÿ“„**[PDF]** [Getting started with Raspberry Pi Pico](https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf) - Official Raspberry Pi documentation. + +## Additional Resources + +- ๐Ÿ“„**[PDF]** [Raspberry Pi Pico C/C++SDK](https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-c-sdk.pdf) the book which documents the SDK APIs +- ๐Ÿ“ฝ๏ธ**[Video]** [Intro to Raspberry Pi Pico and RP2040](https://www.youtube.com/watch?v=B5rQSoOmR5w) - A video tutorial. + +## Tech Support & Product Discussion + +Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs. + +
+ + +
+ +
+ + +
\ No newline at end of file diff --git a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_RP2350/XIAO-RP2350.md b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_RP2350/XIAO-RP2350.md new file mode 100644 index 000000000000..b68515f589e1 --- /dev/null +++ b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_RP2350/XIAO-RP2350.md @@ -0,0 +1,373 @@ +--- +title: Getting Started with Seeed Studio XIAO RP2350 +description: | + XIAO RP2350, a cutting-edge microcontroller from Seeed Studio. It features a dual-core processor, increased SRAM and flash memory, and enhanced connectivity. +image: https://files.seeedstudio.com/wiki/XIAO-RP2350/img/RP2350-thumbnail.png +slug: /getting-started-xiao-rp2350 +keywords: + - xiao + - RP2350 +sidebar_position: 0 +author: Spencer +last_update: + date: 2024-08-08T14:19:47.057Z +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## Seeed Studio XIAO RP2350 + +
+ +
+ +

+ +The XIAO RP2350 packs the power of the Raspberry Pi RP2350 (dual Cortex-M33 cores running at 150MHz with FPU, enhanced security and encryption) into the classic XIAO form factor. Measuring just 21x17.5mm, it features 19 multifunction GPIOs, an RGB LED, and a Battery Management System with ultra-low power consumption of 27ฮผA, battery power supply, and direct battery voltage measurement. Thanks to the XIAO ecosystem, the XIAO RP2350 is compatible with a wide range of add-ons, including displays, LED matrix, Grove modules, CAN Bus, Vision AI sensors, and mmWave sensors. With native support for MicroPython, C, and C++, the XIAO RP2350 is perfect for developers of all levels looking to create compact, battery-powered applications for smart control, wearables, DIY keyboards, and more. + +## Features + +- **Powerful MCU Board:** Equipped with a Raspberry Pi RP2350 chip featuring symmetric dual Arm Cortex-M33 @ 150MHz with FPU. +- **Enhanced Security Features:** Built-in secure boot and encrypted bootloader ensure application security. +- **Software Support:** Compatible with C/C++ and MicroPython, ensuring easy project development and prototyping. +- **Rich Onboard Resources:** Integrates an RGB LED, 2MB Flash, 520kB SRAM, and 19 multifunction GPIOs(Analog, Digital, IยฒC, UART, SPI, PWM). +- **Expanded 8 New IOs:** Compared to previous XIAO MCUs, the addition of 8 IO pins on the back supports more complex applications. +- **Efficient Power Design:** Ultra-low power consumption of just 27ฮผA in sleep mode, enabling battery power supply. Direct battery voltage measurement via internal IO enhances the battery management system (BMS). +- **Compact Thumb-Sized Design:** Measuring 21 x 17.5mm, adopting Seeed Studio's classic XIAO form factor, ideal for space-conscious applications. +- **Production-friendly:** Surface Mount Device (SMD) design with all components on the front and stamp holes on both sides, facilitating efficient mass production. + +## Specification + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProductXIAO RP2040XIAO RP2350
ProcessorRaspberry Pi RP2040Raspberry Pi RP2350
Dual Cortex-M0+ @ 133MHzDual Cortex-M33 @ 150MHz, FPU
RAM264kB SRAM520kB SRAM
Flash2MB Onboard2MB PSRAM
LEDs1 user LED, 1 power LED, two LEDs for serial port downloading, 1 RGB LED1 user LED, 1 power LED๏ผŒ1 RGB LED
Interface11 Pins:4x Analog,11x Digital, 1x IยฒC, 1x UART, 1x SPI, All PWM19 Pins:3x Analog,19x Digital, 2x IยฒC, 2x UART, 2x SPI, All PWM
Button1 RESET button, 1 BOOT button1 RESET button, 1 BOOT button
Security - OTP, Secure Boot, Arm TrustZone
Low power - 27ฮผA
Software compatibilitySupport Micropython / Arduino / CircuitPythonSupport Micropython / C,C++
Working Temperature-20ยฐC-70ยฐC-20ยฐC-70ยฐC
Dimensions21x17.5 mm21x17.5 mm
+ +## Hardware Overview + +
+ + + + + + + + + + + + + + + + + + + +
XIAO RP2350 Front Pinout
XIAO RP2350 Front Pinout
XIAO RP2350 Back Pinout
XIAO RP2350 Back Pinout
XIAO RP2350 Components
XIAO RP2350 Components
+
+ +Need more details on pinouts? Navigate to [Assets and Resources](#assets--resources) below. + +## Platform Supported + +The XIAO RP2350, powered by the RP2350, supports MicroPython and the C/C++ SDK provided by Raspberry Pi. This flexibility allows developers to choose their preferred programming language and environment for prototyping and development. + +
+ + + + + + + + + +
C/C++ SDKMicroPython
+ c-cpp logo + + MicroPython +
+
+ +## Getting Started โ–ถ๏ธ + +:::info +This page primarily focuses on MicroPython users. For those interested in learning SDK programming or advanced users, you can visit [XIAO RP2350 with C/C++ SDK](/xiao-rp2350-c-cpp-sdk) to learn about setting up the environment and running example code. +::: + + +If your board doesn't have the firmware or you want to upgrade to a new version of MicroPython, you'll need to upload the `UF2` bootloader. For this step, please visit the [XIAO RP2350 with MicroPython](/xiao-rp2350-micropython) for detailed instructions on getting started with MicroPython on the XIAO RP2350. + +:::tip about MicroPython + +[MicroPython](https://micropython.org/) is an interpreted language similar to [Python](https://www.python.org/). However, unlike Python, MicroPython runs directly on the hardware (bare-metal), providing an interactive prompt (REPL) to execute commands immediately, as well as the ability to run and import scripts from the built-in filesystem. + +To connect to the XIAO RP2350 board and start writing and running your Python code, you can use any terminal tool that supports serial connections, such as minicom, PuTTY, electerm, warp, and more. For a more *user-friendly experience*, you can use **[Thonny](https://thonny.org/)** for its ease of use, integrated features, and beginner-friendly interface. This way, you can enjoy writing and running your Python code directly on the device. + +::: + + + + +
+ +
+ + +
+ +
+
+ + +If your device is ready with MicroPython, let's start with a simple project: + +### Let's Make It Blink! โœจ + +Getting the board to blink an LED is often the first program everyone runs. The same goes for the XIAO RP2350. + + + + +```python showLineNumbers +from machine import Pin # Import the Pin class from the machine module +from time import sleep # Import the sleep function from the time module + +# Initialize GPIO25 as an output pin, which controls the USER LED +led = Pin(25, Pin.OUT) + +# Turn off the LED initially +led.off() # Equivalent to led.value(0) +sleep(0.5) # Wait for 0.5 seconds + +# Turn on the LED +led.on() # Equivalent to led.value(1) +sleep(0.5) # Wait for 0.5 seconds + +# Enter an infinite loop +while True: + # Toggle the LED state (on to off or off to on) + led.toggle() + # Print the current state of the LED + print(f"LED {'ON' if led.value() == 1 else 'OFF'}") + sleep(0.5) # Wait for 0.5 seconds before the next toggle +``` + +Once you have copied the code into Thonny IDE, as shown in the image below, simply click the `Run current script` button or press `F5`. This will execute the code snippet and you'll see the LED on the XIAO RP2350 start to blink. + + + + + + +
+ +
+
+ + + + + +### Battery & Power Management + +Is it possible to read the battery voltage without extra components? Yes! We heard you. With more pins provided, the XIAO RP2350 makes it possible. For previous members of the XIAO family, such as the [XIAO ESP32C3](/XIAO_ESP32C3_Getting_Started/#check-the-battery-voltage), reading the battery voltage level required manually connecting to *A0* with a resistor. + +However, with the XIAO RP2350, this is no longer necessary. You can now use the `A3/GPIO29` pin to directly read the battery voltage level, simplifying your design and development process. Additionally, for battery level reading, the `GPIO19` must be set to a high value, which is the enable pin for reading the battery level. + +Follow along with this code snippet to read the battery voltage using the Pico SDK: + + + + +```python +from machine import Pin, ADC +import time + +# Function to initialize the GPIO pin for enabling battery voltage reading +def init_gpio(): + enable_pin = Pin(19, Pin.OUT) + enable_pin.value(1) # Set the pin to high to enable battery voltage reading + +def main(): + print("ADC Battery Example - GPIO29 (A3)") + + init_gpio() # Initialize the enable pin + adc = ADC(Pin(29)) # Initialize the ADC on GPIO29 + + conversion_factor = 3.3 / (1 << 12) # Conversion factor for 12-bit ADC and 3.3V reference + + while True: + result = adc.read_u16() # Read the ADC value + voltage = result * conversion_factor * 2 # Calculate the voltage, considering the voltage divider (factor of 2) + print("Raw value: 0x{:03x}, voltage: {:.2f} V".format(result, voltage)) + time.sleep(0.5) # Delay for 500 milliseconds + +if __name__ == '__main__': + main() +``` + + + + +```c title='adc_bat.c' +#include +#include "pico/stdlib.h" +#include "hardware/gpio.h" +#include "hardware/adc.h" + +// Function to initialize the GPIO pin for enabling battery voltage reading +void init_gpio() { + const int enable_pin = 19; // Pin to enable battery voltage reading + + gpio_init(enable_pin); // Initialize the pin + gpio_set_dir(enable_pin, GPIO_OUT); // Set the pin as output + gpio_put(enable_pin, 1); // Set the pin to high to enable battery voltage reading +} + +int main() { + stdio_init_all(); // Initialize standard input/output + printf("ADC Battery Example - GPIO29 (A3)\n"); + + init_gpio(); // Initialize the enable pin + adc_init(); // Initialize the ADC + + // Initialize the ADC GPIO pin (GPIO29) + adc_gpio_init(29); + // Select ADC input 3 (corresponding to GPIO29) + adc_select_input(3); + + while (1) { + // 12-bit conversion, assume max value == ADC_VREF == 3.3 V + const float conversion_factor = 3.3f / (1 << 12); // Conversion factor for 12-bit ADC and 3.3V reference + uint16_t result = adc_read(); // Read the ADC value + // Calculate the voltage, considering the voltage divider (factor of 2) + printf("Raw value: 0x%03x, voltage: %f V\n", result, result * conversion_factor * 2); + sleep_ms(500); // Delay for 500 milliseconds + } +} +``` + + + + + +## Assets & Resources + +The XIAO RP2350 harnesses the power of the Raspberry Pi RP2350, leveraging a wealth of shared resources from the Raspberry Pi community. This opens up a world of possibilities for you to tailor your projects on this tiny board with boundless creativity. Below are essential resources and assets to help you get started. + + +- ๐Ÿ“„ **[PDF]** [Seeed Studio XIAO RP2350 Schematic](https://files.seeedstudio.com/wiki/XIAO-RP2350/res/Seeed-Studio-XIAO-RP2350-v1.0.pdf) +- ๐Ÿ“„ **[XLSX]** [Seeed Studio XIAO RP2350 pinout sheet](https://files.seeedstudio.com/wiki/XIAO-RP2350/res/XIAO-RP2350-pinout-sheet.xlsx) +- ๐Ÿ”— **[Link]** [Raspberry Pi Documentation](https://www.raspberrypi.com/documentation/microcontrollers/rp2040.html) + + + +### Expansion and Applications + +[The XIAO series](/xiao_topic_page) has a huge range of peripherals and peripheral accessories for you to learn and use, whether you want a colorful screen that allows for perfect interaction, an integrated board with bright and simple RGB lights, and so on, just waiting to be checked out. + +As a member of the XIAO family, the XIAO RP2350 does the same. Of course, to make better use of the extra pins drawn out, new *peripherals and boards* will keep coming along, fully utilizing the performance for which it was created. + +- ๐ŸŒŸ **[Expanding with Accessories](/SeeedStudio_XIAO_Series_Introduction/#seeed-studio-xiao-series-compatible-accessories)** + Discover the wide range of add-ons and modules compatible with the XIAO Family, from displays and LED matrices to Grove modules and sensors, and learn how they can enhance your projects. + +### Community and Learning + +Furthermore, dive into the vibrant Raspberry Pi community to expand your knowledge and discover new project ideas. Leverage community-shared resources, forums, and tutorials to enhance your experience with the XIAO RP2350. In addition to the Seeed Studio Wiki, here are a few other recommended places to learn: + +- **[Raspberry Pi Forums](https://www.raspberrypi.org/forums/)**: Engage with other enthusiasts, ask questions, and share your projects. +- **[XIAO GitHub Repository](https://github.com/Seeed-Studio/OSHW-XIAO-Series)**: Explore the official XIAO repository for more centralized documentation and more interaction with our team, **Join Us!** +- **[r/embedded on Reddit](https://www.reddit.com/r/embedded/)**: Join the embedded systems community, share insights, and discuss various topics. +- **[Pico Topic on GitHub](https://github.com/topics/pico)**: Explore repositories and discussions related to the Pico. +- **[Hackster.io](https://www.hackster.io/)**: Discover projects and tutorials related to various hardware platforms, including XIAO and Raspberry Pi. +- **[Instructables](https://www.instructables.com/)**: Find DIY projects and step-by-step guides for creating with XIAO and other hardware. +- **[Element14 Community](https://www.element14.com/community/)**: Participate in discussions, webinars, and projects related to electronics and embedded systems. + +And more, you're always welcome to share your projects on our [Seeed Studio Discord](https://discord.com/invite/kpY74apCWj) and [Seeed Studio Forum](https://forum.seeedstudio.com/). These platforms provide an excellent opportunity to connect with other makers, get feedback, and find inspiration. Whether you need help troubleshooting an issue, want to show off your latest creation, or simply wish to be part of a supportive community, *Seeed Studio's Discord and Forum* are the perfect places to engage and collaborate. + +## Tech Support & Product Discussion + +Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs. + +
+ + +
+ +
+ + +
\ No newline at end of file diff --git a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_RP2350/_category_.yml b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_RP2350/_category_.yml new file mode 100644 index 000000000000..07a31d70af24 --- /dev/null +++ b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_RP2350/_category_.yml @@ -0,0 +1,10 @@ +position: 2 # float position is supported +label: 'XIAO RP2350' +collapsible: true # make the category collapsible +collapsed: true # keep the category open by default +className: xiao_rp2350 +# link: +# type: generated-index +# slug: Develop_with_SenseCAP_Indicator +# title: Develop With SenseCAP Indicator +# description: This tutorial will guide you through the process of developing with SenseCAP Indicator. \ No newline at end of file diff --git a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_SAMD21/Seeeduino-XIAO-by-Nanase.md b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_SAMD21/Seeeduino-XIAO-by-Nanase.md index dc9e43a2a671..86724c3dddd9 100644 --- a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_SAMD21/Seeeduino-XIAO-by-Nanase.md +++ b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_SAMD21/Seeeduino-XIAO-by-Nanase.md @@ -115,7 +115,7 @@ Contrary to the original Arduino, it is turned on at LOW and turned off at HIGH. The official website describes two other built-in LEDs as `two LEDs for serial port downloading`. However, looking at the schematic, there is no physical pin connected to these RX and TX LEDs. -If you look at [USBCore.cpp](https://github.com/Seeed-Studio/ArduinoCore-samd/blob/1.7.2/cores/arduino/USB/USBCore.cpp#L622-L627) here, you can see that they are turned on by `digitalWrite` every time serial USB transmission / reception occurs, which means that the two LEDs are are programmable. +If you look at [USBCore.cpp](https://github.com/Seeed-Studio/ArduinoCore-samd/blob/1.7.2/cores/arduino/USB/USBCore.cpp#L622-L627) here, you can see that they are turned on by `digitalWrite` every time serial USB transmission / reception occurs, which means that the two LEDs are programmable. ```cpp uint32_t USBDeviceClass::recv(uint32_t ep, void *_data, uint32_t len) @@ -305,7 +305,7 @@ Temp: 22.05 ยฐC, Humidity: 44.72 %, Pressure: 1008.9 hPa Temp: 22.06 ยฐC, Humidity: 44.81 %, Pressure: 1008.9 hPa ``` -## UART +### UART As mentioned earlier, the physical UART pins are different from those on the USB CDC. `Serial1` is used for serial communication using the TX and RX pins. diff --git a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_SAMD21/XIAO-SAMD21-MicroPython.md b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_SAMD21/XIAO-SAMD21-MicroPython.md index 0bb9e1027814..a9acfe21ac2e 100644 --- a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_SAMD21/XIAO-SAMD21-MicroPython.md +++ b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_SAMD21/XIAO-SAMD21-MicroPython.md @@ -43,7 +43,7 @@ First, we are going to connect the Seeed Studio XIAO SAMD21 to the computer and
-- **Step 4**. Chose the "Interpreter" interface and select the device as **"MicroPython(generic)"** and the port as **"Try to detect prot automatically"** +- **Step 4**. Chose the "Interpreter" interface and select the device as **"MicroPython(generic)"** and the port as **"Try to detect port automatically"**
diff --git a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_Series_Projects.md b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_Series_Projects.md index 84ca58c387c9..9a3ab85d3800 100644 --- a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_Series_Projects.md +++ b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_Series_Projects.md @@ -379,7 +379,7 @@ This section aims to list the tutorials in the Wiki on some of the function poin This section will list the major platforms supported by XIAO, including PlatformIO, MicroPython, CircuitPython. support is updated in real time. -#### Plarform IO +#### Platform IO
diff --git a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_nRF52840-Sense/XIAO_BLE.md b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_nRF52840-Sense/XIAO_BLE.md index e7b437bf4ccb..c4b8867176ae 100644 --- a/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_nRF52840-Sense/XIAO_BLE.md +++ b/docs/Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_nRF52840-Sense/XIAO_BLE.md @@ -56,7 +56,7 @@ Seeed Studio XIAO nRF52840 Sense is compatible to the Seeed Studio XIAO expansio | Onboard Buttons | N/A | Reset/ Boot Button | Reset Button | Reset Button | | Onboard LEDs | N/A | Full-color RGB/ 3-in-one LED | 3-in-one LED/ Charge LED | 3-in-one LED/ Charge LED | | Battery Charge Chip | N/A | N/A | BQ25101 | BQ25101 | -| Programming Languages | Arduino/ CircuitPython | Arduino/ MicroPython/ CircuitPython | Arduino/ MicroPython/ CircuitPython | Arduino/ MicroPython/ CircuitPython | +| Programming Languages | Arduino/ MicroPython/ CircuitPython | Arduino/ MicroPython/ CircuitPython | Arduino/ MicroPython/ CircuitPython | Arduino/ MicroPython/ CircuitPython | ## Hardware overview diff --git a/docs/Sensor/SenseCAP/SenseCAP_Watcher/Getting_Started/sensecap_watcher_as_grove.md b/docs/Sensor/SenseCAP/SenseCAP_Watcher/Getting_Started/sensecap_watcher_as_grove.md index 46012e061570..ccab126de710 100644 --- a/docs/Sensor/SenseCAP/SenseCAP_Watcher/Getting_Started/sensecap_watcher_as_grove.md +++ b/docs/Sensor/SenseCAP/SenseCAP_Watcher/Getting_Started/sensecap_watcher_as_grove.md @@ -13,6 +13,9 @@ last_update:
+**SenseCAP Watcher, is now pre-launched on Kickstarter proudly with the official KS badge of "Project We Love"!** +[Click to subscribe ~](https://www.kickstarter.com/projects/seeed/sensecap-watcher-open-source-ai-assistant-for-smarter-spaces?ref=aulzfo) + In this wiki, we will explore the exciting possibilities that arise when Watcher, acting as a Grove sensor, leverages its UART (Universal Asynchronous Receiver/Transmitter) functionality. By enabling UART communication, Watcher can transmit valuable data such as captured images and recognition results through its UART interface, located on the back of the device. This opens up a world of opportunities for integrating Watcher with various hardware platforms and creating innovative applications. Throughout this wiki, we will dive into the details of reading and interpreting the data output from Watcher's UART interface. Additionally, we will provide comprehensive tutorials on how to parse and utilize this data using popular development boards and platforms, including XIAO, Arduino, Raspberry Pi, and Jetson. diff --git a/docs/Sensor/SenseCAP/SenseCAP_Watcher/watcher_main_page.md b/docs/Sensor/SenseCAP/SenseCAP_Watcher/watcher_main_page.md index 32375ace75ec..b0726599c4a9 100644 --- a/docs/Sensor/SenseCAP/SenseCAP_Watcher/watcher_main_page.md +++ b/docs/Sensor/SenseCAP/SenseCAP_Watcher/watcher_main_page.md @@ -87,7 +87,7 @@ Introducing the Watcher Product Catalogue, your comprehensive guide to setting u - Watcher & Discord Message Alerts *(Planning)* -- Watcher & Whatsapp Message Alerts *(Planning)* +- [Watcher & Whatsapp Message Alerts](https://wiki.seeedstudio.com/watcher_node_red_to_discord) - Watcher & X (Twitter) Message Alerts *(Planning)* diff --git a/docs/Sensor/Wio_Terminal/Wio_Terminal_Intro.md b/docs/Sensor/Wio_Terminal/Wio_Terminal_Intro.md index 041a8c6bc0b6..f9e55563b45d 100644 --- a/docs/Sensor/Wio_Terminal/Wio_Terminal_Intro.md +++ b/docs/Sensor/Wio_Terminal/Wio_Terminal_Intro.md @@ -6,147 +6,523 @@ keywords: image: https://files.seeedstudio.com/wiki/wiki-platform/S-tempor.png slug: /Wio_Terminal_Intro last_update: - date: 07/19/2023 - author: Matthew + date: 08/6/2024 + author: Frank --- +## Introduction +
+The Wio Terminal is a versatile development board powered by an ATSAMD51 microcontroller and equipped with a 2.4" LCD screen. It includes onboard Wi-Fi/Bluetooth capabilities, a built-in accelerometer, microphone, buzzer, microSD card slot, and various I/O interfaces. The Wio Terminal is designed to simplify the development of IoT applications, making it an ideal tool for both beginners and experienced developers. + +## The Idea of OSHW (Fabricatable Open Source Hardware) + +Open Source Hardware (OSHW) refers to hardware whose design is made publicly available so that anyone can study, modify, distribute, make, and sell the design or hardware based on that design. [The Wio Terminal embodies the OSHW philosophy by providing extensive documentation, open-source code, and design files](https://github.com/Seeed-Studio/OSHW-WioTerminal), allowing users to fully understand and replicate the hardware. This openness fosters innovation, collaboration, and learning within the developer community. + ## Getting Started with Wio Terminal -
+ + + + + + + + + + + + + + + + + + + + + + + +
Get Started with Wio TerminalCircuitPython on Wio TerminalHow to use FreeRTOS to Multi-tasking in Arduino
In this show, our engineer Lakshantha will explain how to use the Wio terminal along with the software and present you with fun demos as well! This wiki introduce how to install and run the official CircuitPython by Adafruit Industries on the Seeeduino Wio Terminal! For Arduino compatibility, we have ported FreeRTOS into the Arduino framework so that you are able to use FreeRTOS with your favorite Arduino boards with ease! This wiki introduce how to start with FreeRTOS for Arduino.
-
-## Application -### Easy IoT with Wio Terminal - -
-
-
Easy IoT
- Google Cloud IoT -
- Wappsto IoT -
- Azure IoT Central, - Azure IoT Hub -
+## Hardware Overview + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
LCD UsageInput/OutputIMU Usage
This wiki introduce how to install the TFT LCD library used on Wio Terminal. It provides basic graphical functions to the Wio Terminal with minimum effort!This wiki introduce how to use the Grove IOs on the Wio Terminal. This allows you to enjoy the plug and play functionality of the Grove Ecosystem as well as using the 40 pin Raspberry pi compatible GPIO!This wiki introduce how to install the built-in 3-Axis Digital Accelerometer(LIS3DHTR) library used on Wio Terminal. This allows you to access the accelerometer information of the Wio Terminal as well as using it for motion control and etc.
-
-### Embedded Machine Learning with Wio Terminal - -
-
-
TinyML with Edge Impulse
- > Continuous Motion Recognition -
- > Audio scene recognition -
- > People counting with Ultrasonic sensor -
- > Distinguishing Beverage -
- > Anomaly detection for Predictive Maintenance -
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
SD CardWi-FiBluetooth
This wiki introduce how to install the File System library used on Wio Terminal. It provides basic functionality of File operating with the SD card, allowing to Read/Write in or from the SD card using SPI interface.This wiki introduces how to update the latest firmware for the Wireless Core Realtek RTL8720 on the Wio Terminal, as well as installing all the dependent libraries for Wio Terminal to enable wireless connectivity.This wiki introduces how to update the latest firmware for the Wireless Core Realtek RTL8720 on the Wio Terminal, as well as installing all the dependent libraries for Wio Terminal to enable Bluetooth connectivity.
-
-
TinyML with TensorFlow Lite
- > TensorFlow Lite Micro Getting Started -
- > Weather Prediction -
- > Speech Recognition and Speech-to-Internet -
- > Gesture Recognition -
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
RTCInfrared EmitterMicrophone
This wiki introduces how to use the built-in RTC functionality inside the SAMD51 core within Wio Terminal for you to keep track of time. This feature saves you from adding an external RTC module to the system!This wiki demonstrates how to use the built-in Infrared Emitter as component in Wio Terminal. The Infrared Emitter is a Digital Interface and can be used to send IR signal, just like what a remote control does!This wiki introduces how to use the built-in microphone for audio input in Wio Terminal. The microphone can be used to detect surrounding sound and respond accordingly.
+ +
+ +
+ + + + + + + + + + + + + + + +
Buttons5 Way Switch
This wiki demonstrates how to use the configurable buttons in Wio Terminal. There are three buttons that can be used for Wio Terminal. This wiki demonstrates how to use the 5 way Switch in Wio Terminal.
-## Wio Terminal Extension Board - -
- +
+ +
+ + + + + + + + + + + + + + + +
Light SensorBuzzer
This wiki demonstrates how to use the built-in light sensor as a component in Wio Terminal. The light sensor uses Analog interface and you can simply read the surrounding Light sensor values via reading its pin. This wiki demonstrates how to use the built-in piezo buzzer as a component in Wio Terminal. The piezo can be connected to an analog pulse-width modulation(PWM) output to generate various tones and effects!
-## Kit with courses by Wio Terminal - -
-
-
Courses with Wio Terminal
- What is TinyML -
- Applications Kit ML101 with Prof. Vijay Course -
- Introduction to Artificial Intelligence for Makers -
+ +## Extension Board + +
+ +
+ + + + + + + + + + + + + + + + + + + + +
Wio Terminal Chassis Battery(650mAh)Wio Terminal LoRaWan Chassis with Antenna-built-in LoRa-E5 and GNSS, EU868/US915 +
The Wio Terminal Battery Chassis is a must-have extension board for Wio-Terminal Dev Board as it provides an external power source for Wio Terminal to enhance its portability and compactness. Wio Terminal LoRaWan Chassis with Antenna-built-in LoRa-E5 and GNSS, EU868/US915 embedded with LoRa-E5 STM32WLE5JC, powered by ARM Cortex M4 ultra-low-power MCU core and LoRa SX126x, is a wireless radio module supporting LoRa and LoRaWAN protocol on the EU868 & US915 frequency and (G)FSK, BPSK, (G)MSK, LoRa modulations.
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + +
Ethernet ConnectionAudio Extension Board
This wiki introduces how to use the ENC28J60 OVERLAYS HAT for Raspberry Pi on Wio Terminal for stable network connectivity. This is a perfect example of using Raspberry Pi 40 Pi extensions board on Wio Terminal. This wiki introduces how to use the Audio library with Wio Terminal using ReSpeaker 2-Mic Hat. With the help of this library, you are able to record, play and analysis audio using Wio Terminal! Furthermore, this audio library can be implemented into different areas such as Speech recognition and much more!
+
+ +## Kit with Courses + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Applications Kit ML101 with Prof. Vijay CourseWhat is TinyML?Introduction to Artificial Intelligence for Makers
This book is designed specifically for educators to be able to adopt the Wio Terminal into the classroom or workshops to show learners the power of TinyML. It provides the basic underpinnings that one would have to cover to teach the very basics of ML while keeping the concepts grounded in hands-on exercises.ML as you might have guessed stands for Machine Learning and in most of cases (not always though) nowadays refers to Deep Learning. Tiny in TinyML means that the ML models are optimized to run on very low-power and small footprint devices, such as various MCUs. It is a subset of ML on the Edge or Embedded Machine Learning.The purpose of this article to build interest and provide a general understanding for makers who want to start their deep learning journey. I will point some of the common use cases and potential pitfalls. Also at the end of this article, I'll recommend some courses and books to learn more about this topic.
+ + + +## Application + +### Easy IoT + +
+ +
+ + + + + + + + + + + + + + + + + + + + +
Connect Wio Terminal to Microsoft Azure IoT CentralConnecting the Wio Terminal to Microsoft Azure IoT
In this tutorial, we will walk you through the process of connecting the Wio Terminal to Microsoft Azure IoT Central and send telemetry data from the onboard sensors/ hardware on the Wio Terminal such as the 3-axis accelerometer, light sensor, 3 buttons to Microsoft Azure IoT Central. This sample application shows you how to connect your Wio Terminal to Azure IoT Hub. It is built on top of the Azure SDK for Embedded C, a small footprint, easy-to-port library for communicating with Azure services.
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + +
Connect Wio Terminal to Google Cloud IoT CoreGet Started with Wio Terminal and Wappsto IoT
In this tutorial, we will walk you through the process of connecting the Wio Terminal to Google Cloud IoT Core and send telemetry data from the Wio Terminal to the Google Cloud IoT core. In this tutorial, we will guide you through connecting the Wio Terminal to Wappsto IoT and using the various features of Wappsto after the connection.
-## Tutorials and Projects - -
-
- - How to play retro games on Wio Terminal -
- USB Host for a - Keyboard, - Mouse, - Xbox -
- USB Client for a - Keyboard, - Mouse, - MIDI, - HMI -
- How to display Gyro on Wio Terminal -
- How to use Wio Terminal to store data -
- How to use Wio Terminal to display photos -
+### Embedded ML + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Projects based Edge ImpulseProjects based TensorFlow LiteLoRa Node with AIoTs GPS
Edge Impulse enables developers to create the next generation of intelligent device solutions with embedded Machine Learning. Machine Learning at the very edge will enable valuable use of the 99% of sensor data that is discarded today due to cost, bandwidth or power constraints. + Now, Wio Terminal is officially supported by the Edge Impulse. Let's see how to get Wio Terminal started with the Machine learning at the very edge!This article introduces how to install the official Arduino Tensorflow Lite library into your Wio Terminal, allowing you to test out some Machine Learning models using Wio Terminal.In this project, it will be used a built-in 3 axis accelerometer sensor and the neural network algorithm to build up an intelligent recognition system. Based on the movement of Wio Terminal, it can show you its state in real-time.
-
-
Wio Terminal Fun Projects
- Use Codecraft compling platform connect Azure IoT -
- Wio Terminal Interactive Faces Demo -
- Pressure sensor using the Wio terminal -
- Reading Coronavirus Live Data using Wio Terminal -
- How to measure noise levels with Wio Terminal -
- How to Use Wio Terminal as RTL8720DN Dev Board -
+ + + + + +## Tutorial + +### Basic Usage + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
USB HostUSB ClientDisplaying Gyro
This wiki introduces how to use the Wio Terminal as a USB-Host, which means you could plug USB devices into the Wio Terminal and play with it just like a computer!This wiki introduce how to use the Wio Terminal as USB-Client, including using it for Human Interface Device(HID) such as keyboard, mouse and etc. It also supports Musical Instrument Digital Interface(MIDI).This example demonstrates how to draw line graph on Wio Terminal. In this example, the 3-axis accelerator readings(3 sets of data) are plotted into one line graph to show the real-time positioning of the Wio Terminal!
-
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Storing DataDisplaying PhotosInteractive Faces Demo
This example demonstrates using the line graph functions to display the Grove - Light sensor reading on Wio Terminal, just like the Serial Plotter! To add more, the light sensor data are stored in the SD Card.This example demonstrates how to display images from SD card in loop.This example demonstrates how to display multiple images (eyes) onto the LCD screen through SD card (BMP format), and with the use of the built-in buttons and gyroscope to interact with users.
+
+ +### Project + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Pressure sensor using the Wio TerminalReading Coronavirus Live Data using Wio TerminalBuild a IR Thermal Imaging Camera using Wio Terminal
The demo shows that the Grove- high precision pressure sensor DPS310 is fully compatible with the Wio terminal, and its measurement has high precision.This wiki is a modification of Reading Github Repository Stats from Wio Terminal, where it is modified to access to Coronavirus COVID19 API and parse the data and display Live COVID-19 data on the LCD screen.With Grove - Infrared Temperature Sensor Array (AMG8833) and Wio Terminal, we can build a low cost FLIRโ„ข like Thermal Imagining camera with ease!
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Build a HMI Display for Raspberry PiHow to measure noise levels with Wio TerminalAccessing to GitHub using Wio Terminal
In this wiki, we will introduce how to use Wio Terminal as a HMI (Human Machine Interface) USB display for Raspberry Pi, Nvidia Jetson Nano, BeagleBone and even Odyssey X86J4105.This example detects dB using the mic on ReSpeaker 2-Mic Hat, The around evirnment is detected, then displayed on the display.This wiki introduces how to use Wio Terminal to access to HTTPS server, which means you could use Wio Terminal to grab live data from the internet! Here, Wio Terminal is connected to a Wi-Fi and obtain data from the Github.
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Blynk for Wio TerminalEdge Impulse TunerCodecraft connecting Azure IoT with Wio Terminal
This wiki introduces how to use the Wio Terminal with the Blynk software to interact with Wi-Fi or Bluetooth. This allows you to use Wio Terminal as the core of an IoT device and able to control hardware from phones very easily!Here we gonna provide the audio classification project and show you the usage of EON Tuner. If you are interested in Using LoRa to transmit data based on Wio Terminal and Edge Impulse, you can always click and see the example project.Here we gonna show you how to connect Codecraft with Azure IoT based on Wio Terminal and apply sensors to IoT projects.
+
+ + ## โœจ Contributor Project diff --git a/docs/Top_Brand/Raspberry_Pi/Application/Raspberry_Pi_as_a_NAS.md b/docs/Top_Brand/Raspberry_Pi/Application/Raspberry_Pi_as_a_NAS.md new file mode 100644 index 000000000000..0d6247dd91bc --- /dev/null +++ b/docs/Top_Brand/Raspberry_Pi/Application/Raspberry_Pi_as_a_NAS.md @@ -0,0 +1,344 @@ +--- +description: Raspberry Pi as a NAS +title: Raspberry Pi as a NAS +keywords: +- Application +image: https://files.seeedstudio.com/wiki/wiki-platform/S-tempor.png +slug: /Raspberry_Pi_as_a_NAS +last_update: + date: 8/5/2024 + author: Frank +--- + + +# Use the Raspberry Pi as a NAS (Network-Attached Storage) + +The Raspberry Pi is a powerful microcomputer, popular among tech enthusiasts. It can be used for various DIY projects, including setting up a Network Attached Storage (NAS). In this , we will explore the following aspects: + +- [Is Raspberry Pi good for NAS?](#jump1) +- [How to convert Raspberry Pi 5 to NAS?](#jump2) +- [Common Issues and Solutions When Using Raspberry Pi as a NAS](#jump3) + +## Is Raspberry Pi Good for NAS? + +
pir
+ + + +The Raspberry Pi has strong processing capabilities and flexible configuration options, making it an ideal choice for building a NAS. Here are its advantages: +- Cost-Effective: The Raspberry Pi is relatively inexpensive compared to traditional NAS devices. +-Low Power Consumption: The Raspberry Pi has very low power consumption, making it suitable for 24/7 operation. +- Flexibility and Customizability: You can install various operating systems and software to configure the NAS as needed. +- Community Support: The Raspberry Pi has a large user community, providing abundant resources and technical support. + +However, there are some limitations to consider: +- Performance Limitations: The Raspberry Pi may have performance constraints compared to high-end NAS devices, especially when handling large amounts of data. +- Storage Limitations: The Raspberry Pi itself does not have built-in large-capacity storage and requires external hard drives or SSDs. + +## How to Convert Raspberry Pi 5 to NAS? + +Converting the Raspberry Pi 5 into a NAS is not complicated. Just follow these steps: + +### Step 1: Prepare the Hardware +- [A Raspberry Pi 5](https://www.seeedstudio.com/Raspberry-Pi-5-8GB-p-5810.html) +- A microSD card (32GB or larger recommended) +- A stable power adapter +- External hard drive or SSD +- Network connection (wired or wireless) + +### Step 2: Install the Operating System + +1. Use a tool like [Raspberry Pi Imager](https://www.raspberrypi.com/software/) to write the OS image to the microSD card. + +
pir
+ +2. Select "Raspberry Pi 5" -> "Raspberry Pi OS (32-bit)" -> SD card (make sure to select the correct device to avoid data loss if other USB devices are connected), then click "Next." Here is an example: + +
pir
+ +3. Then, edit the settings. Hereโ€™s an example of the settings provided: +- Enter your chosen hostname nas (recommended in this tutorial). +- Enter a username and password, which you will need later for authentication. +- Check the box next to "Configure WiFi" so your Pi can automatically connect to Wi-Fi. +- Enter your network SSID (name) and password. +- Check the box next to "Enable SSH," so we can connect to the Pi without using a mouse and keyboard. + +
pir
+ +4. After clicking "Save," start burning the image. The process may take some time. When it appears as shown in the image below, it indicates that the burning is complete. + +
pir
+ +### Step 3: Remote Connection to the Pi + +After inserting the SD card, power up the Raspberry Pi (if possible, connect it to the network via an Ethernet cable, but in this tutorial, we will use WiFi chosen during imaging). + +Open a terminal session on your computer and access the Raspberry Pi via SSH by running the following command, replacing **username** and **hostname** with the ones set during imaging: + +```bash +$ ssh @.local +``` + +For example: + +```bash +$ ssh seeed@nas.local +``` + +You will need to enter the password you created during imaging. Here is an example: + +
pir
+ +Now that we have completed the SSH connection, itโ€™s time to turn it into a NAS. + +### Step 4: Install and Configure NAS + +#### 1.Locate the Drive + +First, connect the storage device to the Raspberry Pi, then check the connected storage devices with the following command: + +```bash +$ lsblk +``` + +You will see output similar to this: + +
pir
+ +:::tip +In this output, mmcblk0 is your microSD card, and the first connected USB storage device appears as sda (Storage Device A). Additional devices will be sdb, sdc, etc. +::: + +#### 2.Partition the Drive + +Next, partition the drive so that Raspberry Pi OS can recognize it as a single storage device: + +```bash +$ sudo fdisk /dev/sda +``` + +Here are some relevant commands: +- Create a new partition: n +- List current partitions: p +- Delete a partition: d +- Quit without saving changes: q + +In this project, we will proceed to create a fresh partition by entering โ€˜**n**โ€™ followed by pressing the **Enter** key, and we will designate it as a primary partition by typing โ€˜**p**โ€™ and then pressing **Enter**. For the remaining options, we will opt for the default settings by simply pressing **Enter**. Should an existing partition be present, we will remove it by typing โ€˜**d**โ€™.Here is an example: + +
pir
+ +:::tip +If the message "**All space for primary partitions is in use**" appears, it means there are already four primary partitions or three primary partitions and an extended partition on the disk, and you will need to delete a partition (**d**). +::: + +:::note +If there are mounted partitions on the disk (like my sda1), follow these steps to unmount them: +1. Exit fdisk: Type q and press Enter to exit fdisk and avoid accidental modifications. +2. Unmount file systems: If there are mounted partitions on the disk, unmount them first. You can view the mounted partitions with the following command: + +```bash +$ mount | grep /dev/sda +``` + +3. Then unmount them using the umount command, for example: + +```bash +$ sudo umount /dev/sda1 +``` + +4. Run: + +```bash +$ sudo fdisk /dev/sda +``` + +Here is an example: + +
pir
+ +Then, return to the partitioning step above. +::: + +#### 3.Format the Drive + +Now that the drive has been partitioned, it's essential to format it to ensure that the Raspberry Pi OS can access and manipulate data on it. To format your drive with the ext4 file system, use the following command: + +```bash +$ sudo mkfs.ext4 /dev/sda1 +``` + +
pir
+ +#### 4.Mount the Drive + +Next, mount the drive to make it available in the Raspberry Pi's file system: +```bash +$ sudo mount /dev/sda1 /mnt +``` + +And ensure that the drive is mounted every time the system starts: +```bash +$ sudo nano /etc/fstab +``` + +Add the following line to the end of the file: +``` +/dev/sda1 /mnt/sda1/ ext4 defaults,noatime 0 1 +``` + +Press **Ctrl**+**X**, then **Y**, and finally **Enter** to save the edited file in nano. Here is an example: + +
pir
+ +#### 5.Create a Shared Folder + +Run the following command to create a shared folder on your drive: +```bash +$ sudo mkdir /mnt/sda1/shared +``` + +Grant read, write, and execute permissions to all users on the Raspberry Pi with the following command: +```bash +$ sudo chmod -R 777 /mnt/sda1/shared +``` + +Here is an example: + +
pir
+ + +### Step 5: Share the Drive Over the Network + +Run the following command to install [Samba](https://www.samba.org/), a tool for sharing directories over a network: +```bash +$ sudo apt install samba samba-common-bin +``` + +Here is an example: + +
pir
+ + +Then, configure Samba to share the directory over the network. We can instruct Samba through the Samba configuration file. Open the configuration file in an editor: smb.conf +```bash +$ sudo nano /etc/samba/smb.conf +``` + +Add the following lines at the end of the file: +``` +[shared] +path=/mnt/sda1/shared +writeable=Yes +create mask=0777 +directory mask=0777 +public=no +``` + +Press **Ctrl**+**X**, then **Y**, and finally **Enter** to save the edited file in nano. Here is an example: + +
pir
+ +Restart Samba to apply the configuration changes: +```bash +$ sudo systemctl restart smbd +``` + +Here is an example: + +
pir
+ + +### Step 6: Grant access to the drive + +Finally, you need to grant access to the Samba share so that only authenticated users can access the files over the network. Run the following command to create a user to manage the Samba share, naming the username as pinas in this example: + +```bash +$ sudo adduser +``` + +Here is an example: + +
pir
+ + +Then, add a password for that user using the following command: +```bash +$ sudo smbpasswd -a +``` + +Here is an example: + +
pir
+ + +### Step 7: Access and Use the NAS + +#### From Windows + +1. Open File Explorer and select "Map network drive" from the Computer menu. +2. Choose a drive letter and enter the folder path, using a domain name format to easily access the device even if the IP address changes (in this tutorial, the path is \\nas\pinas). +3. Enter the login username and password. Here is an example: + +
pir
+ +4. Once logged in, you can access the files on the server. + +
pir
+ +### Next Step + +If you want to make your hard drive and Raspberry Pi look more organized and aesthetically pleasing, you can use a 3D printer to create brackets and enclosures to secure the Raspberry Pi and the external hard drive, and then assemble them together. + + +## Common Issues and Solutions When Using Raspberry Pi as a NAS + +Here are some common issues you might encounter when using a Raspberry Pi as a NAS and how to solve them: + +### Question 1: How to improve Raspberry Pi NAS performance? + +- Use an SSD instead of an HDD to improve data read speeds. +- Ensure the Raspberry Pi is connected via a wired network for more stable performance. +- Optimize the Samba configuration file by adjusting cache settings and maximum connections. + +### Question 2: How to secure Raspberry Pi NAS? +- Regularly update the system and software to patch security vulnerabilities. +- Use strong passwords and limit SSH access. +- Configure a firewall and use a VPN for remote access. + +### Question 3: How to automate backups to Raspberry Pi NAS? +- Use the rsync tool to set up periodic backup tasks: +```bash +rsync -av --delete /source_directory /mnt/external_hdd/backup_directory +``` +- Configure cron jobs for automatic backups. + + + + + + + + + + + + + +## Tech Support & Product Discussion + + +Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs. + +
+ + +
+ +
+ + +
diff --git a/sidebars.js b/sidebars.js index 651df129ad53..8afccba50c81 100644 --- a/sidebars.js +++ b/sidebars.js @@ -1088,6 +1088,16 @@ const sidebars = { }, ], }, + { // XIAO RP2350 + type: 'category', + label: 'XIAO RP2350', + items: [ + { + type: 'autogenerated', + dirName: 'Sensor/SeeedStudio_XIAO/SeeedStudio_XIAO_RP2350', + }, + ] + }, { type: 'category', label: 'XIAO nRF52840 (Sense)', @@ -3021,6 +3031,17 @@ const sidebars = { ], }, + { + type: 'category', + label: 'Home Assistant', + items: [ + 'Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Home-Assistant/recomputer-r1000-home-assistant', + 'Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Home-Assistant/recomputer-r1000-modbus-home-assistant', + + ], + }, + + { type: 'category', label: 'Cloud Solutions', @@ -3039,7 +3060,8 @@ const sidebars = { 'Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Computer-Vision/benchmark_on_rpi5_and_cm4_running_yolov8s_with_rpi_ai_kit', 'Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Computer-Vision/install_m.2_coral_to_rpi5', 'Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Computer-Vision/convert_model_to_edge_tpu_tflite_format_for_google_coral', - 'Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Computer-Vision/pose_based_light_control_with_nodered_and_rpi_with_aikit' + 'Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Computer-Vision/pose_based_light_control_with_nodered_and_rpi_with_aikit', + 'Edge/Raspberry_Pi_Devices/reComputer_R1000/Applications/Computer-Vision/tutorial_of_ai_kit_with_raspberrypi5_about_yolov8n_object_detection' ], }, @@ -4163,6 +4185,13 @@ const sidebars = { 'Top_Brand/Raspberry_Pi/Kit/Grove_Starter_Kit_for_IoT_based_on_Raspberry_Pi', ], }, + { + type: 'category', + label: 'Application', + items: [ + 'Top_Brand/Raspberry_Pi/Application/Raspberry_Pi_as_a_NAS', + ], + }, ], },