<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[The Tinkerer by Mosn]]></title><description><![CDATA[<p>Building and Experiencing<br />by Mosn</p>
]]></description><link>https://tinkerer.mosn.me</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1765114564889/4377205b-e137-478a-bfc8-9b908f8a98f7.png</url><title>The Tinkerer by Mosn</title><link>https://tinkerer.mosn.me</link></image><generator>RSS for Node</generator><lastBuildDate>Tue, 17 Mar 2026 00:09:06 GMT</lastBuildDate><atom:link href="https://tinkerer.mosn.me/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><atom:link rel="first" href="https://tinkerer.mosn.me/rss.xml"/><item><title><![CDATA[Keeping Your Raspberry Pi Cool: A Temperature Manager Tool]]></title><description><![CDATA[<p>Ive been using a Raspberry Pi 4 as a home lab server for quite some time. Initially, I used an Argon NEO Case, which provides passive cooling, but it wasnt enough. So, I 3D printed a custom case with a fan to cool it (<a target="_blank" href="https://youtu.be/Xdq1x2gxGKU?si=_BZ6yyUJuUjHTmcm">watch this video</a>). But, as always, it still wasnt enough! So, I got to work designing temperature management and monitoring for the RPi, and here is what Ive done.</p>
<h3 id="heading-what-is-the-idea">What is the idea?</h3>
<p>Lets talk about what I wanted to create. My idea was to stick with the NEO case but modify it to support a small OLED to display vital information about the RPi, such as network status, temperatures, etc., alongside a fan with speed control to adjust airflow based on system temperatures.</p>
<p>In the following sections, you will learn about the hardware and software I created for it.</p>
<h1 id="heading-hardware">Hardware</h1>
<p>The first step was figuring out the hardware. I decided to go with a 12864px OLED with an SSD1306 driver and a 5V fan with a DRV8833 motor controller.</p>
<ul>
<li><p>12864px OLED SSD1306 - I2C protocol</p>
</li>
<li><p>Miniature 5V fan</p>
</li>
<li><p>DRV8833 Dual Motor Driver</p>
</li>
<li><p>Raspberry Pi 4</p>
</li>
</ul>
<p>After testing the right configuration with the software (well discuss that later), I created the schematic to connect everything to the RPi 4. This is how I connected everything to the Raspberry Pi GPIO:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1731439330554/ac1f729e-1218-4f19-b7a4-a7b3184a3543.png" alt="Diagram of a Raspberry Pi 4 connected to a motor controller, OLED display, and DC fan. Various colored wires represent different connections between the components." class="image--center mx-auto" /></p>
<p>DRV8833 Driver  Rasberry Pi</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td><em>DRV8833</em></td><td><em>Raspberry Pi 4 GPIO</em></td></tr>
</thead>
<tbody>
<tr>
<td>AIN1</td><td>GPIO13</td></tr>
<tr>
<td>AIN2</td><td>GPIO12</td></tr>
<tr>
<td>VM</td><td>5V (Pin #4)</td></tr>
<tr>
<td>GND</td><td>GND (Pin #6)</td></tr>
<tr>
<td>STBY</td><td>GPIO27</td></tr>
</tbody>
</table>
</div><p>5V Fan  DRV8833 Driver</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td><em>5V Fan</em></td><td><em>DRV8833 Driver</em></td></tr>
</thead>
<tbody>
<tr>
<td>5V (RED)</td><td>AIO1</td></tr>
<tr>
<td>GND (BLACK)</td><td>AIO2</td></tr>
</tbody>
</table>
</div><p>OLED (SSD1306)  Raspberry Pi</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td><em>OLED - SSD1306</em></td><td><em>Raspberry Pi 4 GPIO</em></td></tr>
</thead>
<tbody>
<tr>
<td>VCC</td><td>3v3 (Pin #1)</td></tr>
<tr>
<td>SDA</td><td>GPIO2</td></tr>
<tr>
<td>SCL</td><td>GPIO3</td></tr>
<tr>
<td>GND</td><td>GND (Pin #9)</td></tr>
</tbody>
</table>
</div><p>As you can see in the diagram and tables above, this is how to connect the hardware. After this configuration, its time to move on to the case and decide where to place the hardware.</p>
<h1 id="heading-3d-case">3D Case</h1>
<p>As mentioned earlier, Im using an <a target="_blank" href="https://argon40.com/products/argon-neo-case-for-raspberry-pi-4">Argon NEO Case</a>, which has an aluminum shell with two parts, one of which can be removed (as shown in the image below). I planned to modify the top shield to contain the hardware.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1732441944089/b725a066-0c8f-4973-9c43-748836b6fd31.jpeg" alt class="image--center mx-auto" /></p>
<p>I started by measuring the case and designing a 3D file for it to be printed. The plan was to assemble the OLED and fan, where the data would be displayed on the OLED, and the fan would direct airflow from the top and push it out through the rear of the shield via designed grids.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1732442121644/87247f69-1514-4c45-93f3-a0f52f068801.jpeg" alt="A workspace with an open tool box, tablet showing 3D design software, pen, notepad, electronic components, and a caliper measuring a device. A mechanical keyboard is in the background." class="image--center mx-auto" /></p>
<p>After sending the design to the 3D printer, this was the final version of the case (on the left). It was time to assemble everything and try installing it on the Raspberry Pi.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1732442084313/e1283ec3-1f88-46bb-b86f-5e781fabe104.jpeg" alt="Two gray 3D-printed plastic parts with various cutouts placed on bubble wrap." class="image--center mx-auto" /></p>
<p>You can access the 3D design files through this link: <a target="_blank" href="https://www.printables.com/model/1085113-rascase-raspberry-pi-argon-neo-case-add-on">3D Designed Files</a></p>
<h3 id="heading-assembling">Assembling</h3>
<p>Now that everything was ready for final assembly, I first soldered some wires with connector headers to make connecting to the RPi easier. Then, I fixed the components to the 3D-printed part and glued two magnets to the new case to keep it closed. You can use some electrical tape on the circuits to prevent short-circuiting and damage to the components.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1732450323551/668a04b1-f875-4f92-83a9-a687964f6a39.jpeg" alt="A collage showing the assembly of an electronic project. The top images depict various components like circuit boards, wires, and a fan spread out on a desk. The middle images show the components being assembled inside a case. The bottom images display the completed project with components secured in a gray case connected to a power source." class="image--center mx-auto" /></p>
<h1 id="heading-software">Software</h1>
<p>For the software side, I used Python to code a script that would be added to the boot services and run automatically on system boot. This way, if your system shuts down or restarts, the system states will be preservedespecially useful if youre running your Raspberry Pi headless.</p>
<h3 id="heading-getting-started">Getting Started</h3>
<p>First, clone the files from the <a target="_blank" href="https://github.com/mosnfar/raspi-temp-manager">RasPi Temp Manager GitHub repository</a>:</p>
<pre><code class="lang-bash">git <span class="hljs-built_in">clone</span> https://github.com/mosnfar/raspi-temp-manager.git
</code></pre>
<p>To run this script, you need the following libraries: <code>gpiozero</code>, <code>Pillow</code> (PIL), and <code>adafruit_ssd1306</code>, which are not built-in on the Raspberry Pi. To install them, navigate to the repository directory (<code>cd raspi-temp-manager</code>) and run:</p>
<pre><code class="lang-bash">pip install -r requirements.txt
</code></pre>
<blockquote>
<p>Note: If youre using a newer version of Python, please install the libraries globally (not within a virtual environment).</p>
</blockquote>
<p>Next, copy the essential files (such as fonts and boot logos) into the desired directory. First, create a directory named temp_manager at <code>/usr/local/share/</code> using:</p>
<pre><code class="lang-bash">mkdir -p /usr/<span class="hljs-built_in">local</span>/share/temp_manager
</code></pre>
<p>Then, use the following commands to copy files from the repo directory to that location:</p>
<pre><code class="lang-bash">cp ./fonts/lucan.ttf /usr/<span class="hljs-built_in">local</span>/share/temp_manager
cp ./images/raspberrypi_logo_inverted.bmp /usr/<span class="hljs-built_in">local</span>/share/temp_manager
</code></pre>
<h3 id="heading-test-configurations">Test Configurations</h3>
<p>Before moving on, theres a chance the connections might not be correct or all the libraries might not be installed. I wrote a test tool to help debug these issues and ensure everything is in place. Before proceeding, you can run <code>test_</code><a target="_blank" href="http://config.py"><code>config.py</code></a>, which will check:</p>
<ul>
<li><p>Required libraries installation</p>
</li>
<li><p>I2C connection</p>
</li>
<li><p>Fan connection</p>
</li>
<li><p>Essential files</p>
</li>
</ul>
<p>To run the test, use the following command:</p>
<pre><code class="lang-bash">python test_config.py
</code></pre>
<h3 id="heading-boot-setup">Boot Setup</h3>
<p>If there are no errors, lets configure the script to run on boot. First, copy the script file into <code>/usr/local/bin/</code>:</p>
<pre><code class="lang-bash">sudo cp ./<span class="hljs-built_in">source</span>/temp_manager.py /usr/<span class="hljs-built_in">local</span>/bin/
</code></pre>
<p>Next, create a service for the script by running:</p>
<pre><code class="lang-bash">sudo nano /etc/systemd/system/temp_manager.service
</code></pre>
<p>Then, add the following content to the service file and save it:</p>
<pre><code class="lang-plaintext">[Unit]
Description=Temperature Manager
After=network.target

[Service]
ExecStart=/usr/bin/python3 /usr/local/bin/temp_manager.py
Restart=always

[Install]
WantedBy=multi-user.target
</code></pre>
<p>After saving the file, enable and start the service with these commands:</p>
<pre><code class="lang-bash">sudo systemctl <span class="hljs-built_in">enable</span> temp_manager.service
sudo systemctl start temp_manager.service
</code></pre>
<h3 id="heading-hooray">Hooray!</h3>
<p>Everything is now configured correctly. You can test it by running a stress test on the CPU with this command: <code>stress -c 4 -t 900s</code>.</p>
<p>Heres the final view of the project:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1732465209554/50601d9c-824f-4548-b2c7-0a4d4895db62.jpeg" alt="A small computing device with a fan and a screen displaying temperature data, connected with white cables, rests on a blue mat with a grid pattern." class="image--center mx-auto" /></p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://youtu.be/cTe1wpACoGw">https://youtu.be/cTe1wpACoGw</a></div>
<p> </p>
<hr />
<h3 id="heading-lets-connect">Lets Connect </h3>
<p>I hope this helps! Im sharing my experience and findings on my blog, and you can follow me through <a target="_blank" href="https://forge.mosn.me/newsletter">📰 newsletters</a>. You can also subscribe to my <a target="_blank" href="https://www.youtube.com/channel/UC3pFrJCbA9GuHs5uEkexgdw"> YouTube channel</a> to find more helpful content.</p>
<p>Dont forget to leave your comments and feedback 🤝</p>
<hr />
<p>Resources  Here are some of the articles and content that I learned from them:</p>
<ul>
<li><p><a target="_blank" href="https://www.hackster.io/iotengineer22/raspberry-pi-and-drv8833-test-6e4981">Raspberry Pi and DRV8833 T</a><a target="_blank" href="https://www.youtube.com/channel/UC3pFrJCbA9GuHs5uEkexgdw">est</a></p>
</li>
<li><p><a target="_blank" href="https://www.youtube.com/channel/UC3pFrJCbA9GuHs5uEkexgdw">Raspberry P</a><a target="_blank" href="https://www.instructables.com/Raspberry-Pi-Monitoring-System-Via-OLED-Display-Mo/">i Monitoring System Via OLED Display Module</a></p>
</li>
<li><p><a target="_blank" href="https://randomnerdtutorials.com/raspberry-pi-pwm-python/">Raspberry Pi: PWM Outputs with Python (Fading LED)</a></p>
</li>
<li><p><a target="_blank" href="https://electricdiylab.com/how-to-control-dc-motor-with-drv8833/">How to Control DC motor with DRV8833</a></p>
</li>
<li><p><a target="_blank" href="https://gpiozero.readthedocs.io/en/stable/api_output.html#gpiozero.PWMOutputDevice">GPIOZero PWMOutputDevice</a></p>
</li>
<li><p><a target="_blank" href="https://static.raspberrypi.org/files/education/posters/GPIO_Zero_Cheatsheet.pdf">GPIO ZERO CHEATSHEET</a></p>
</li>
<li><p><a target="_blank" href="https://core-electronics.com.au/guides/stress-testing-your-raspberry-pi/">Stress Testing Your Raspberry Pi</a></p>
</li>
<li><p><a target="_blank" href="https://www.studiopieters.nl/raspberry-pi-4-model-b-pinout/">Pi 4 Model B pinout</a></p>
</li>
</ul>
]]></description><link>https://tinkerer.mosn.me/keeping-your-raspberry-pi-cool-a-temperature-manager-tool</link><guid isPermaLink="true">https://tinkerer.mosn.me/keeping-your-raspberry-pi-cool-a-temperature-manager-tool</guid><category><![CDATA[Raspberry Pi]]></category><category><![CDATA[Python]]></category><category><![CDATA[temperature]]></category><category><![CDATA[raspberrypi]]></category><category><![CDATA[engineering]]></category><dc:creator><![CDATA[Mohsen Faraji]]></dc:creator></item><item><title><![CDATA[Stream Raspberry Pi Camera Feed to Cloud]]></title><description><![CDATA[<p>Connecting a camera to a Raspberry Pi through the on-board camera port or USB port can assist in capturing images or videos. This setup can serve various purposes. In this repository, you can find a prebuilt shell script designed to facilitate continuous image streaming to online cloud services such as Google Drive for Linux-operated Raspberry Pi.</p>
<h3 id="heading-use-cases">Use Cases</h3>
<ul>
<li><p>Online Stream of Camera</p>
</li>
<li><p>Frame Capture for Time-lapse</p>
</li>
</ul>
<h3 id="heading-how-to-use">How to use</h3>
<p>First, you should install dependencies like 'ffmpeg', 'rclone'. To do it use the command below:</p>
<pre><code class="lang-bash">sudo apt update &amp;&amp; sudo apt install ffmpeg rclone
</code></pre>
<p>After that, you should configure your cloud service, which here we continue with the Google Drive option. I suggest to use this two complete tutorials for proper configuration:</p>
<ul>
<li><p><a target="_blank" href="https://www.baeldung.com/linux/google-drive-guide#2-rclone">Google Drive by rclone on Bealdung</a></p>
</li>
<li><p><a target="_blank" href="https://rclone.org/drive/">Official rclone Google Drive Document</a></p>
</li>
</ul>
<p>But simply to do that start with rclone, you should use the command below and follow the given instructions:</p>
<pre><code class="lang-bash">rclone config
</code></pre>
<p>Now, You should have a directory on your local device to sync Google Drive with it. Here we create a directory named <code>/home/user/path/to/</code>, to do this you can use this command:</p>
<pre><code class="lang-bash">mkdir /home/user/path/to
</code></pre>
<p>So, Time to <strong>configure a webcam or camera</strong>. Here I'm using a USB webcam but if you want to use the on-board Raspberry Pi camera follow <a target="_blank" href="https://www.codeinsideout.com/blog/pi/set-up-camera/#record-h264-video">this link</a>.</p>
<p>Connect the USB webcam to Raspberry Pi and find the hardware directory which in this example is <code>/dev/video0</code>.</p>
<p>Awesome, All essential parts are configured. Now the script is ready for use.<br />Download the script file to your local machine:</p>
<pre><code class="lang-bash">curl -L https://raw.githubusercontent.com/mosnfar/raspberrypi4-camera-to-cloud/main/run.sh -o ./run.sh
</code></pre>
<p>Before using the script you should change some variables in the script to work correctly. Use <code>nano run.sh</code> to open text editor then go to 'Configure global variables' section and change the variable.</p>
<pre><code class="lang-bash">...

<span class="hljs-comment"># Configure global variables</span>

DRIVE_ADD=<span class="hljs-string">"drive:/parentfolder/subfolder"</span> <span class="hljs-comment">#rclone given address for drive main folder and subfolder</span>

STORE_DIR=<span class="hljs-string">"/home/user/path/to/"</span> <span class="hljs-comment">#Local directory which will link to drive</span>
LOG_DIR=<span class="hljs-string">"/home/user/path/for/log/"</span> <span class="hljs-comment">#Directory to store log for command</span>

CAMERA_ADD=<span class="hljs-string">"/dev/video0"</span> <span class="hljs-comment">#Hardware directory for Video Input</span>

DAY_OF_STORAGE=2 <span class="hljs-comment">#Maximum date for storage - e.g. 2 days</span>
MAX_STORAGE_SIZE=200000000 <span class="hljs-comment">#Maximum size for storage - e.g. 200000000 Byte -&gt; 200 MB</span>

INTERVAL_DELAY=10 <span class="hljs-comment">#Interval between taking frames - e.g. 10 seconds</span>

MAX_RETRIES=10 <span class="hljs-comment">#Times to rclone try</span>

...
</code></pre>
<p>You should change these variables:</p>
<p><strong>Essential Variables</strong></p>
<p>Should change this before running this script according to your configuration.</p>
<ul>
<li><p><strong>DRIVE_ADD</strong>: The address to which you configure Google Drive with rclone command.</p>
</li>
<li><p><strong>STORE_DIR</strong>: This directory will be connected to Drive and sync with it.</p>
</li>
<li><p><strong>LOG_DIR</strong>: Where you want to store your system script logs and errors.</p>
</li>
<li><p><strong>CAMERA_ADD</strong>: Hardware address of video input (webcam|camera) to use.</p>
</li>
<li><p><strong>DAY_OF_STORAGE</strong>: By this variable, you can configure how many days should store the content.</p>
</li>
<li><p><strong>MAX_STORAGE_SIZE</strong>: This variable manages Drive capacity and prevents extending from Google storage limit.</p>
</li>
<li><p><strong>INTERVAL_DELAY</strong>: This is the gap time between taking frames.</p>
</li>
</ul>
<p><strong>Additional Variables</strong></p>
<p>If you customize the script more, you can change this too.</p>
<ul>
<li><strong>MAX_RETRIES</strong>: This variable defines how many times should rclone try.</li>
</ul>
<p>Now everything is done and you should add <code>run.sh</code> command to system jobs to be run on every reboot. To do that use this command:</p>
<pre><code class="lang-bash">sudo chmod +x run.sh &amp;&amp; (crontab -l ; <span class="hljs-built_in">echo</span> <span class="hljs-string">"@reboot /real/path/to/run.sh"</span>) | crontab - &amp;&amp; crontab -l
</code></pre>
<p>And its better to reboot your system.</p>
<p>🎉 It's Done. All is ready.</p>
<hr />
<h3 id="heading-find-more">Find More</h3>
<p>I hope this help you. You can subscribe to my <a target="_blank" href="https://www.youtube.com/channel/UC3pFrJCbA9GuHs5uEkexgdw">yotube channel</a> to find out more stuff which help you.</p>
<p>RESOURCES: <a target="_blank" href="https://raspberrypi-guide.github.io/electronics/using-usb-webcams">Using USB Webcam</a>, <a target="_blank" href="https://www.baeldung.com/linux/google-drive-guide#2-rclone">Use rclone for Google Drive</a>, <a target="_blank" href="https://rclone.org/drive/">rclone, Google Drive</a></p>
]]></description><link>https://tinkerer.mosn.me/stream-raspberry-pi-camera-feed-to-cloud</link><guid isPermaLink="true">https://tinkerer.mosn.me/stream-raspberry-pi-camera-feed-to-cloud</guid><category><![CDATA[Raspberry Pi]]></category><dc:creator><![CDATA[Mohsen Faraji]]></dc:creator></item><item><title><![CDATA[How to run MicroPython on Raspberry Pi Pico via VS Code?]]></title><description><![CDATA[<p>A lot of tutorials to develop and run MicroPython on Raspberry Pico use an IDE called <a target="_blank" href="https://thonny.org/">Thonny</a>; even original <a target="_blank" href="https://projects.raspberrypi.org/en/projects/getting-started-with-the-pico">Raspberry Pi Foundation tutorials</a>. Thonny is a great simple IDE for getting the job done, especially for someone who started recently. But for me is a little inconvenient because for most of my other projects, I use VS Code and even I can connect it to Github easily. So here we will talk about how to connect Pico to VS Code.</p>
<h3 id="heading-extentions">Extentions</h3>
<p>So, Lets start with essential things. You need <a target="_blank" href="https://code.visualstudio.com/">VS Code</a> and extentions which I mentioned below:</p>
<ul>
<li><p>MicroPico<em>(</em><a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=paulober.pico-w-go"><em>Link</em></a><em>)</em></p>
</li>
<li><p>Pylance<em>(</em><a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance"><em>Link</em></a><em>)</em></p>
</li>
<li><p>Python<em>(</em><a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=ms-python.python"><em>Link</em></a><em>)</em></p>
</li>
<li><p>IntlliCode<em>(</em><a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode"><em>Link</em></a><em>)</em></p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1702374919215/1038edbe-1602-45b2-bdc8-3fa868a137b0.png" alt="MicroPico extension on VS Code" class="image--center mx-auto" /></p>
<p>After installing those extensions you should configure the project and connecting Pico.</p>
<h3 id="heading-setup-micropython">Setup MicroPython</h3>
<p>Now connect your Pico to computer through a USB cable.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1702374921267/3509cbf8-a0d9-41ff-86aa-0491f988c0a0.jpeg" alt="Raspberry Pi Pico is connected to Computer" class="image--center mx-auto" /></p>
<p>So, lets drag and drop MicroPython firmware (UF2) files into Raspberry Pi Pico.</p>
<p>First, you should download files from <a target="_blank" href="https://micropython.org/download/">MicroPython site</a>:</p>
<ul>
<li><p><a target="_blank" href="https://micropython.org/download/RPI_PICO/">For Raspberry Pi Pico</a></p>
</li>
<li><p><a target="_blank" href="https://micropython.org/download/RPI_PICO_W/">For Raspberry Pi Pico W</a></p>
</li>
</ul>
<p>After downloading the suitable UF2 files for your Pico, Open file manager on your system and there is an external device mounted with RPI-RP2 name. Now drag and drop your UF2 files into to mounted folder.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1702374922846/f9dff08d-81e6-4d68-99d8-cff2174bd31b.png" alt class="image--center mx-auto" /></p>
<p>After that pico will be detached automatically, now we are ready to go back into VS Code.</p>
<p>If there was any problem you can read more about it on Raspberry Pi site.</p>
<p><a target="_blank" href="https://www.raspberrypi.com/documentation/microcontrollers/micropython.html#drag-and-drop-micropython"><strong>Raspberry Pi Documentation - MicroPython</strong><br /><em>The official documentation for Raspberry Pi computers and microcontrollers</em>www.raspberrypi.com</a></p>
<h3 id="heading-configure-project">Configure Project</h3>
<p>Here you should create or select a folder where you want your MicroPython files and Pico files to be stored.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1702374924828/e91ccbcf-917b-4749-80ed-0d38319d6013.png" alt class="image--center mx-auto" /></p>
<p>After that should press  Command + Shift + P on Mac and Ctrl + Shift + P on Windows to open Show and Run Commands in VS Code.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1702374926736/32eb6ded-7f11-4938-9fcf-6ea587b1dbc0.png" alt class="image--center mx-auto" /></p>
<p>Then type MicroPico: Configure project and press Enter</p>
<p>Si Vola 🥳, Here you can see some hidden files added to folder and can see Pico Connected on left bottom.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1702374928506/71269c3f-6fc5-4958-b861-c0b736529729.png" alt class="image--center mx-auto" /></p>
<p>To open Pico main folder click on Toggle Pico-W-FS at bottom and now you can see files on Pico and create new files on Pico directly.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1702374930479/18621c39-e964-4c83-8657-14c737b83168.png" alt class="image--center mx-auto" /></p>
<p>To run a code on Pico you can use Run action at the bottom of IDE or use Run commands option that we used to configure project and use a command called MicroPico: Remote &gt; Run Current file on Pico.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1702374932494/726ae6fb-7af7-496a-92b0-b9ba85a8a7c5.png" alt class="image--center mx-auto" /></p>
<p>Also, you can sync your local files by Upload project to Pico or Download project from Pico.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1702374934861/56c7c130-fd0c-40e7-b2a4-afe46d566784.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1702374936708/28313638-8cba-481d-b6c0-b4d8ba19b043.png" alt class="image--center mx-auto" /></p>
<p>There is a lot more stuff about using VS Code and MicroPico which I hope to write more about 😊; But for now, you can see more about MicroPico settings on this <a target="_blank" href="https://marketplace.visualstudio.com/items?itemName=paulober.pico-w-go">link</a> also use MicroPico: List all Commands to see all useful commands.</p>
<p>Also dont forget to subscribe to my YouTube channel, Im going to talk more about this stuff there 🤟</p>
<p><a target="_blank" href="https://www.youtube.com/@itsmosn"><strong>itsMosnBuild</strong><br /><em>I love creation 🪚</em>www.youtube.com</a></p>
]]></description><link>https://tinkerer.mosn.me/how-to-run-micropython-on-raspberry-pi-pico-via-vs-code-41d7316f5f73</link><guid isPermaLink="true">https://tinkerer.mosn.me/how-to-run-micropython-on-raspberry-pi-pico-via-vs-code-41d7316f5f73</guid><dc:creator><![CDATA[Mohsen Faraji]]></dc:creator></item></channel></rss>