From c22bfd557cc878c5cb1ebac9d9ecfae3fab810aa Mon Sep 17 00:00:00 2001 From: Phani Pavan K Date: Sun, 18 Feb 2024 10:04:59 +0530 Subject: [PATCH] Added setup details and online resources --- 0_Introduction/onlineResources.md | 10 ++++++++++ 0_Introduction/setup.md | 32 ++++++++++++++++++++++++++++-- README.md | 2 +- assets/picoResetButton.png | Bin 0 -> 33219 bytes 4 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 0_Introduction/onlineResources.md create mode 100644 assets/picoResetButton.png diff --git a/0_Introduction/onlineResources.md b/0_Introduction/onlineResources.md new file mode 100644 index 0000000..982d32b --- /dev/null +++ b/0_Introduction/onlineResources.md @@ -0,0 +1,10 @@ +## Online Resources + +[Pinout Reference](https://pico.pinout.xyz/): Interactable webpage for mapping Pin number to GPIO number to its functions. + +[Random Nerd's Pinout Guide](https://randomnerdtutorials.com/raspberry-pi-pico-w-pinout-gpios/#Raspberry-Pi-Pico-Pinout-Diagram): Website with detailed explaination of pin functions. + +[Pico C SDK](https://cec-code-lab.aps.edu/robotics/resources/pico-c-api/index.html): C functions reference for Pico's C SDK. + +[Online Pico Simulator](https://wokwi.com/pi-pico): Online Pico simulator with supports using various components and running Arduino style C Code or Python code using MicroPython. + diff --git a/0_Introduction/setup.md b/0_Introduction/setup.md index 6d662a8..e6a8d39 100644 --- a/0_Introduction/setup.md +++ b/0_Introduction/setup.md @@ -1,4 +1,4 @@ -## Programming Setup +## Programming Software Setup ### Dev Envitonment @@ -17,4 +17,32 @@ Extensions I use: A C Pico project requires additional files to handle compilation: CMakeList.txt and pico_sdk_import.cmake, templates of both available in the installed pico sdk. To automate this, I use [Pico Project Generator](https://github.com/raspberrypi/pico-project-generator). - + + +### Uploading Code + +Currently I program the pico over USB connection, and to do so, +- the USB has to be unplugged +- The button on the board has to be held down to put the board into programming mode +- USB has to be plugged back in and the button can be released + +This will wear-out the port upon time. To solve this, the `RUN` pin #30 can be pulled down/connect to `GND` to reset the board. I use a button to acomplish that, from now on called the reset button, as seen below. + + + +So uploading the code requires following steps: + +- Press and hold reset button (2) +- Press and hold bootloader button (1) +- Release reset button (2) +- Release bootloader button (1) + +This will mount the pico as a storage device, to where the generated `.UF2` file should be copied. + + + +## Hardware Setup + +I have the RaspberryPi Pico Non-W variant: without the wireless chip. Soldered male jumper headers and mounted it onto a large breadboard. I am using solid copper wires for connections, because they stay in set shape. + +I am using a button as mentioned above to upload the program. \ No newline at end of file diff --git a/README.md b/README.md index 3fd5e98..a382473 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,4 @@ A repository containing resources I discovered about Raspberry Pi Picos. Also us This repo mainly focuses on [C SDK](https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-c-sdk.pdf), not [MicroPython](https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-python-sdk.pdf), because I felt there are more references for MicroPython. It specifically targets the [Pico(and w) board](https://www.raspberrypi.com/products/raspberry-pi-pico/) rather than the [RP2040 Controller](https://www.raspberrypi.com/products/rp2040/) itself. -Remember that this is a personal hobby project, hence there is no set upload/response timeline. I am open to resource suggestions and corrections. Please star the repository if you find it helpful. +Note that this is a personal hobby project, hence there is no set upload/response timeline. I am open to resource suggestions and corrections. Please star the repository if you find it helpful. diff --git a/assets/picoResetButton.png b/assets/picoResetButton.png new file mode 100644 index 0000000000000000000000000000000000000000..e1cf86508a72602bdc4a5bfc23c5012044ad9f12 GIT binary patch literal 33219 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

0#I|mNt9A)oa4m@C&Qw?n#@Ojpi6Ea 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