FRCVision is a software suite that makes it easier to use a Raspberry Pi to offload vision processing tasks from the RoboRIO. Below is the recommended process for vision development: You will need: * [https://www.andymark.com/products/ni-roborio RoboRIO] * 12V DC power source supplied by robot OR you can use an external power supply (ask an electrical mentor for help); you'll need: * 12VDC AC adapter rated for at least 1A such as [https://www.amazon.com/R-Tech-UL-Listed-Switching-Supply-Adapter/dp/B00FEOB4EI/ these] * DC barrel jack pigtails such as [https://www.amazon.com/RuiLing-Pigtail-Security-Connector-Adapter/dp/B07S474B8G these] * RoboRIO power connector such as [https://www.digikey.com/product-detail/en/molex/0395040002/WM13954-ND/2735370 these] * Raspberry Pi [https://www.amazon.com/gp/product/B01N13X8V1 3B] or [https://www.amazon.com/CanaKit-Raspberry-Power-Supply-Listed/dp/B07BC6WH7V 3B+] (4 is not recommended due to need for active cooling (fan). * MicroSD Card at least 8GB or larger from a reputable manufacturer such as [https://www.amazon.com/Samsung-MicroSDHC-Adapter-MB-ME32GA-AM/dp/B06XWN9Q99 this one] (cheap cards such as Patriot often won't work). * Laptop with SD reader/writer or a [https://www.amazon.com/gp/product/B07GKDWFC9/ USB reader/writer] for uSD cards * Raspberry Pi [https://www.amazon.com/Raspberry-Camera-Module-Megapixels-Sensor/dp/B07L82XBNM/ Camera] with cable or USB webcam * 5V/2A or higher [https://www.amazon.com/CanaKit-Raspberry-Supply-Adapter-Listed/dp/B00MARDJZ4/ micro-USB power supply] or a micro-USB cable and a USB 3.0 port on your laptop * [https://www.amazon.com/AmazonBasics-Snagless-Cat-6-Ethernet-Internet/dp/B07RR6BG2X 3x Ethernet cables] * [https://www.amazon.com/NETGEAR-5-Port-Gigabit-Ethernet-Unmanaged/dp/B07S98YLHM Ethernet Switch] Helpful: * [https://www.amazon.com/AmazonBasics-USB-Printer-Cable-Male/dp/B00NH13DV2 USB cable] A-B (USB printer cable) * Download FRCVision [https://github.com/wpilibsuite/FRCVision-pi-gen/releases here] * Follow the instructions [http://wpilib.screenstepslive.com/s/currentCS/m/85074/l/1027253-what-you-need-to-get-the-pi-image-running here] to install the FRCVision image on the microSD card * Connect the camera to the Raspberry Pi * Install the uSD card in the Raspberry Pi By Default, the Raspberry Pi requires a wired Ethernet connection; this is because WiFi is not permitted at competitions. To connect the Pi, the RoboRIO, and your computer for development, it's easiest to connect everything using wired Ethernet and an Ethernet switch: * Connect the Ethernet Switch to your local area network * Connect the Raspberry Pi Ethernet port to the Ethernet Switch * Connect the RoboRIO Ethernet port to the Ethernet Switch * You may need to configure the RoboRIO for DHCP so it will get an IP address from the local area network rather than using its fixed static IP address of 10.25.37.2 * Connect the USB cable from your laptop to the RoboRIO * Open a web browser and connect to the RoboRIO at 172.22.11.2 (the IP address assigned to the USB connection) * Select the Ethernet page and under Configure IPv4 Address select "DHCP or Link Local" * Before competition or when you are done with development, remember to set it back to Static with IP address 10.25.37.2 * Power up the Raspberry Pi and allow time for it to boot (may take 30s or longer) * Try connecting to the Raspberry Pi web server at http://frcvision.local (if this doesn't work, you're going to have to figure out the IP address the Pi has been assigned and connect to it directly (e.g. http://172.30.1.25). You can get the IP address by querying your router if you have access or by or by connecting a monitor to the Pi HDMI port and a keyboard to a Pi USB port and logging in (username is 'pi' password is 'raspberry') then use the ipconfig -a command to see the assigned IP address for the Ethernet port. If all went well, you should be able to download code to your RoboRIO and when you launch the driver station, you will have a new camera choice: 'rPi Camera 0' that is streaming video. The next step is to start writing java code that runs on the roboRIO, does vision processing, and sends processed results (e.g. coordinates of a target) back to the Rio using Network Tables. Network Table support is included with FRCVision and you can view an extensive set of variables included by default in the Variables tab of the Smart Dashboard. FRCVision provides sample vision processing code in C++ and Java. To build the Java vision processing example code, you will need Java 11 installed and: 1. Download and install Gradle (the tool used for building): 1. create a C:\Gradle folder 1. download gradle from [https://gradle.org/install/ here] 1. extract the gradle folder 9e.g. gradle-6.0.1) from the downloaded zip file into C:\Gradle 1. add the extracted bin folder (e.g. C:\Gradle\gradle-6.0.1\bin) to the Windows search path. 1. Download and build the Java vision processing example code 1. Download the example (java-multiCameraserver.zip) from [https://github.com/wpilibsuite/FRCVision-pi-gen/releases here] 1. Extract the .zip file into a folder in your !RobotProjects folder (e.g. FRCTest1) 1. Open the folder in VSCode 1. Open a terminal window in the folder: Select folder then View->Terminal 1. Build the example using the command '''gradle build''' 1. You should now have a jar file (e.g. java-multiCameraServer.jar) in the project build/libs folder ready for upload to your pi See [https://pdocs.kauailabs.com/vmx-rtk/examples/frc/ here] for more info