> For the complete documentation index, see [llms.txt](https://support.eimtechnology.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.eimtechnology.com/documentation/stepico.md).

# STEPico

RP2040 based micro-controller with Type C connector and 4 full color LEDs

{% hint style="info" %}
Join our <img src="https://2395483440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFcgTb7Dst30iGr6yQqof%2Fuploads%2FVFw4ge85Cd1Rf7PaLt5u%2F636e0a6a49cf127bf92de1e2_icon_clyde_blurple_RGB.png?alt=media&amp;token=5f2bf79c-1206-4e4c-a4e3-450e51f54b3c" alt="" data-size="line"> [Discord](https://discord.gg/urh8hW2YFa) channel for more information. &#x20;
{% endhint %}

**Shop link:** currently on <img src="https://2395483440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFcgTb7Dst30iGr6yQqof%2Fuploads%2FhQ46zB9QClohxeuSNdDb%2Fkickstarter.png?alt=media&amp;token=77c0dd53-6da5-4c8b-9268-282fbc5da6c5" alt="" data-size="line"> [Kickstarter](https://www.kickstarter.com/projects/evoinmotion/learning-through-building-traffic-light-module?ref=discovery\&term=traffic%20light)&#x20;

## Features

STEPico Core is a low-cost but high-performance miniature development board designed based on the microcontroller RP2040 launched by Raspberry Pi. STEPico Core reserves the full compatibility to the original PICO2040, with further improvements that the original Micro-USB connector was replaced by Type C, and 4 full color LEDs, a power light indicator and a hardware reset button were added on-board for easier debugging purposes. A series of extension boards and kits were also developed and can be found in STEPico series products.

<figure><img src="https://2395483440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFcgTb7Dst30iGr6yQqof%2Fuploads%2FdjTGKRT8wZktLYUx2CUM%2FSTEPico_lightingEffect_1.gif?alt=media&amp;token=1bf42c37-a4a8-4206-bc59-983f62adde47" alt="" width="518"><figcaption></figcaption></figure>

## General Functions

In general, the STEPico Core board is fully compatible with PICO2040 in terms of the pin functions, except that the MicroUSB was replaced to Type C and some buttons and LEDs were added making the board more user friendly for debugging. The pin diagram of STEPico-Core is shown:

<figure><img src="https://2395483440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFcgTb7Dst30iGr6yQqof%2Fuploads%2FiRibStx0NmMsQ9JtbQpQ%2Fimage.png?alt=media&amp;token=75fec8ef-e173-4a3e-9058-5e35dfaee517" alt=""><figcaption><p>General Pin Diagram and Functional Blocks of STEPico</p></figcaption></figure>

### Power up the Board

Powering STEPico-Core is same as PICO2040, for which you may use either way as indicated:

<figure><img src="https://2395483440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFcgTb7Dst30iGr6yQqof%2Fuploads%2Fy2SIko4Ip4Gi9UsuoEzW%2Fimage.png?alt=media&amp;token=3d51a662-fb40-4257-809c-36838ddd9a36" alt=""><figcaption></figcaption></figure>

### The Four LEDs on Board

Comparing to PICO2040 which uses RT6150 to convert the 5V USB to 3.3V and occupied GPIO23 to control the PWM/PFM mode of the DC-DC converter (details can be found in PICO datasheet section 4.3 and 4.4), the STEPico-Core uses SGM6012 DC-DC converter and the extra left <mark style="color:red;">**GPIO23**</mark> was used to control the four LEDs on board. See the [Schematic](/documentation/stepico.md#hardware-design) of the board.

## Technical Specifications

### Electrical Parameters

| Parameter           | Specs                         |
| ------------------- | ----------------------------- |
| Microcontroller     | RP2040                        |
| Processor           | Dual-core Arm Cortex-M0+      |
| Clock Speed         | 133MHz                        |
| Supply Voltage      | 1.8-5.5V                      |
| Working Temperature | -20C to 85C                   |
| On-chip SRAM        | 264KB                         |
| On-board QSPI Flash | 2MB                           |
| Communication Ports | UART x 2; SPI x 2; I2C x 2    |
| GPIOs               | 26 (including 3 ADC channels) |
| PWM Channels        | 16                            |
| PIO Channels        | 8                             |
| Power saving modes  | Sleep/dormant                 |
| Sensors             | Temperature                   |
| Footprint           | DIP40/stampholes              |

### Hardware Design

The schematic of STEPico is shown in the figure below:

<figure><img src="https://2395483440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFcgTb7Dst30iGr6yQqof%2Fuploads%2Fk72nD1zcgrouQJ18nX37%2Fschematic.png?alt=media&amp;token=9cc898ac-f093-49f6-be6e-044f38271486" alt=""><figcaption></figcaption></figure>

The main parts used on this board is listed in the Table.

<table><thead><tr><th width="121.33333333333331" align="center">ID</th><th width="265" align="center">Main part used</th><th align="center">Descriptions</th></tr></thead><tbody><tr><td align="center">U1</td><td align="center"><a href="https://www.raspberrypi.com/documentation/microcontrollers/rp2040.html">RP2040</a></td><td align="center">    Microcontroller of the board</td></tr><tr><td align="center">U2</td><td align="center"><a href="http://www.sg-micro.com/uploads/soft/20200209/1581256238.pdf">SGM6012</a></td><td align="center">    5 to 3.3V DC-DC converter</td></tr><tr><td align="center">U3</td><td align="center"><a href="https://www.puyasemi.com/uploadfiles/2018/08/20180807152503253.pdf">P25Q16H</a></td><td align="center">    Serial interface flash memory</td></tr><tr><td align="center">D4-D7</td><td align="center"><a href="https://cdn-shop.adafruit.com/datasheets/WS2812B.pdf">WS2812B</a></td><td align="center">    Integrated full color LED</td></tr><tr><td align="center">Q1</td><td align="center"><a href="https://www.vishay.com/docs/70628/70628.pdf">SI2302</a></td><td align="center">    N-Channel MOSFET</td></tr></tbody></table>

### Dimensions

Referring to the following dimensions in case you would like to design an enclosure for the board; all quantities are in milimeters.

<figure><img src="https://2395483440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFcgTb7Dst30iGr6yQqof%2Fuploads%2Fceo0doJDuHHj5UcqBiiD%2Fimage.png?alt=media&amp;token=e8ef414b-f130-417b-ac2b-99022b9a6bf9" alt=""><figcaption></figcaption></figure>

## Software Development Kit

STEPico is designed based on RP2040 microcontroller and the board was configured to be fully compatible with all software development kits (SDK) and utilities specified in Raspberry Pi Pico product page:

{% embed url="<https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html>" %}

If you are new to microcontrollers and embedded programming, we recommend using Python SKD as a quick and easy kick start. A concise and detailed tutorial for Python and RP2040 can be found in this [document](https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-python-sdk.pdf):

The board also supports C/C++ SDK, available at this [document](https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-python-sdk.pdf).

## Board Configuration

Both our [STEPico](/documentation/stepico.md) and Raspberry Pi Pico use the same [RP2040](https://www.raspberrypi.com/documentation/microcontrollers/rp2040.html) as the core chip therefore you can simply follow the same procedures while figuring out the initial board setup.&#x20;

{% hint style="info" %}
This tutorial is tailored for Windows users. For those using different operating systems, there are numerous guides readily available via a quick Google or YouTube search
{% endhint %}

Please follow the following quick steps to configure the board or updating firmware.&#x20;

**Option 1:** you can follow these steps for: Start by downloading and installing Thonny, which is an integrated development environment (IDE) that makes it easy to write and run code.&#x20;

<details>

<summary>STEP 1: Install Thonny</summary>

You can download Thonny from the official website (<https://thonny.org/>) and follow the installation instructions for your operating system.

![](https://2395483440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFcgTb7Dst30iGr6yQqof%2Fuploads%2FjVyykbWKFVh3Z1F6JV0D%2Fimage.png?alt=media\&token=0592de78-9d66-4495-8ea3-40d41880be88)

</details>

<details>

<summary>STEP 2: Connect the board to USB</summary>

Now, take your STEPico board and connect it to your computer using a USB cable. Make sure the board is properly connected and powered on.

![](https://2395483440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFcgTb7Dst30iGr6yQqof%2Fuploads%2FGWyjqWNxTeJWTN7VEAi1%2Fimage.png?alt=media\&token=09fc4b48-7639-4091-8ebc-648547152cdb)

</details>

<details>

<summary>Step 3: Set the STEPico in Bootloader Mode</summary>

To program the STEPico, you need to put it in bootloader mode. This mode allows you to transfer your code to the board. To do this, press and hold the BOOT button on your STEPico board (the button is usually labeled as "BOOT" or "SW1"). While holding the button, press the RUN button on the board (labeled as "RESET," "SW2," or “RUN”). Release the BOOTSEL button.

![](https://2395483440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFcgTb7Dst30iGr6yQqof%2Fuploads%2F5FyWyjsmelS6aM4k6Dh8%2Fimage.png?alt=media\&token=7a8fd169-811c-4031-b240-b68f779d585b)

</details>

<details>

<summary>Step 4: STEPico Appears as a Drive</summary>

After entering bootloader mode, your STEPico will appear as a removable drive on your “This PC” found in the file explorer. It may be named "RPI-RP2" or something similar. Open the drive.

![](https://2395483440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFcgTb7Dst30iGr6yQqof%2Fuploads%2FDGCRHVvoi0i4BFu43egx%2Fimage.png?alt=media\&token=7208c046-35eb-4285-8231-b2ecf95fd9d8)

</details>

<details>

<summary>Step 5: Download MicroPython</summary>

Visit the MicroPython website (<https://micropython.org/download/rp2-pico/>) and download the latest "<mark style="color:red;">**uf2**</mark>" file for the STEPico.

![](https://2395483440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFcgTb7Dst30iGr6yQqof%2Fuploads%2F8BVBFcO85ajLI2ctNJXl%2Fimage.png?alt=media\&token=de518208-0c13-414e-9c68-ee5ae2653e9a)

</details>

<details>

<summary>Step 6: Transfer MicroPython to the STEPico</summary>

Locate the downloaded "uf2" file and drag it to the STEPico drive that appeared in step 4. This will transfer the MicroPython firmware to the board.

![](https://2395483440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFcgTb7Dst30iGr6yQqof%2Fuploads%2FIejnuPuIKdZjhGmM049n%2Fimage.png?alt=media\&token=14917951-9979-415a-abf5-56130421da5a)

</details>

<details>

<summary>Step 7: STEPico Reboots</summary>

After transferring the MicroPython firmware, the STEPico board will reboot automatically. Wait a few seconds for the reboot to complete. The device should **no longer** show up under devices and drives.

</details>

<details>

<summary>Step 8: Open Thonny</summary>

Open the Thonny IDE that you installed in step 1. It should detect the STEPico board automatically.

![](https://2395483440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFcgTb7Dst30iGr6yQqof%2Fuploads%2FJCeuXXFduSEZHZBdgEBk%2Fimage.png?alt=media\&token=2dba344d-83f4-42d4-b38c-80d333cfd906)

</details>

<details>

<summary>Step 9: Select Board and Serial Port</summary>

In Thonny, go to the "Tools" menu and select "Options." Under the "Interpreter" tab, choose "MicroPython (RP2040)" as the board. Then, select the correct serial port (port number may vary) for your RP2040 board. Click "OK" to save the settings.

![](https://2395483440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFcgTb7Dst30iGr6yQqof%2Fuploads%2FomZZfhRB8XBsFQ4KC2TS%2Fimage.png?alt=media\&token=bdb5f7ee-0907-4c7b-958c-d4c83eae7e47)

</details>

<details>

<summary>Step 10: Write and Run Code</summary>

Now you're ready to write and run code on your STEPico! In the Thonny editor, start writing your MicroPython code. When saving the code, there will be an option to save locally on your PC or directly onto the STEPico.&#x20;

</details>

**Option 2:** You can directly uploading latest firmware Directly on Thonny IDE by:

<details>

<summary>STEP 1: Install Thonny</summary>

You can download Thonny from the official website (<https://thonny.org/>) and follow the installation instructions for your operating system.

</details>

<details>

<summary>STEP 2: Enter Bootloader Mode</summary>

Before connecting your STEPico board to your computer, press and hold the **BOOT** button on the board while plugging in the USB cable. Your computer should automatically recognize the board as a USB drive, typically named **RPI-RP2**, and a File Explorer window should appear. This confirms that the board has successfully entered bootloader mode.

<figure><img src="https://2395483440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFcgTb7Dst30iGr6yQqof%2Fuploads%2FaicVFN5hgDCmSRuJguOw%2FSTEP1.JPG?alt=media&amp;token=cf7961b1-077a-4713-a30f-ff3110a369f6" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>STEP 3: Open the Firmware Installer</summary>

In Thonny IDE, navigate to **Tools → Options → Interpreter**, then click **Install or update MicroPython** to open the firmware installer.

<figure><img src="https://2395483440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFcgTb7Dst30iGr6yQqof%2Fuploads%2FpxaG0sjF9zrPpaGCjJ4c%2FSTEP1.5.JPG?alt=media&amp;token=0ce8f875-7f2a-4593-bd09-984cce0e4e10" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>STEP 4: Select and Install the Firmware</summary>

Since STEPico uses the Raspberry Pi Pico (RP2040) platform, select the following settings:

* **Variant:** Raspberry Pi Pico
* **Version:** Latest available version

Click **Install** and wait for the firmware installation to complete.

Once the installation is finished, reconnect your STEPico board and reselect it in Thonny IDE if necessary. Your board should now be ready to use with the updated firmware.

<figure><img src="https://2395483440-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFcgTb7Dst30iGr6yQqof%2Fuploads%2F9Hk603f2wWesUsE2xioI%2FStep2.JPG?alt=media&amp;token=5b652a64-0c67-41f8-ac61-dbc613d67d5a" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>STEP 5: Ready to rock</summary>

After you installed, your STEPico firmware is now updated! Reconnect your board, open Thonny IDE, and you're ready to start coding.

The updated firmware should now include the built-in **NeoPixel library**. Happy coding!

</details>
