Skip to content

Commit bd95c13

Browse files
committed
update the arduino guide for v 2.x.x and introduce tabs
1 parent d67db5a commit bd95c13

File tree

5 files changed

+56
-32
lines changed

5 files changed

+56
-32
lines changed

.github/workflows/docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626

2727
- name: Install dependencies
2828
run: |
29-
pip install sphinx sphinxawesome-theme myst-parser
29+
pip install sphinx sphinx-design sphinxawesome-theme myst-parser
3030
3131
- name: Build documentation
3232
run: |

Docs/conf.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
'sphinx.ext.autosectionlabel',
1111
'sphinx.ext.todo',
1212
'sphinx.ext.mathjax',
13+
"sphinx_design",
1314
]
1415

1516
templates_path = ['_templates']

Docs/getting_started.md

Lines changed: 20 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,49 +2,23 @@
22

33
# Getting Started
44

5-
Hello! So you’ve got the **Shrike-lite FPGA** - nice!
6-
7-
Before we explain how programming works on Shrike-lite, it’s important to understand what Shrike-lite actually is and how it differs from all kind of other embedded development boards.
8-
9-
These points will give you the right foundation, especially if you are new to electronics or computing systems. If you already know the basics of microcontrollers, FPGAs, and embedded systems, you can skip this introduction and jump directly into the programming section.
10-
11-
Shrike-lite is special because it combines two worlds on a single board:
12-
 **A Microcontroller (MCU)** — Raspberry Pi’s [RP2040](https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html) (Pico 1 Family)
13-
 **An FPGA (Field-Programmable Gate Array)**
14-
15-
You can write software for the micro-controller and create digital circuits on the FPGA, and then let them work together to build powerful and fun projects. If you’re curious to learn more about FPGAs, you can read about them here.
16-
17-
In Shrike-lite, the micro-controller (RP2040) is connected to the FPGA through an SPI bus. The SPI bus is used for two main purposes:
18-
19-
 1. **Configuring the FPGA** - loading the bitstream into the FPGA via the RP2040
20-
 2. **Communication** - between the microcontroller (RP2040) and the FPGA.
21-
22-
While your program is running on the micro-controller, you can configure the FPGA at any time to perform specific tasks. Not only that, once the FPGA is programmed, it can also communicate with the RP2040 back and forth.
23-
The beauty of this setup is that you can reprogram the FPGA an unlimited number of times, and that’s exactly where reconfigurable computing comes to life.
24-
25-
As discussed earlier, we’ll need to learn how compilation works for both systems: the FPGA and the micro-controller (RP2040).
26-
27-
The binary files that the FPGA understands are called **bitstreams**.
28-
Follow the guide here to learn how to generate a bitstream for the FPGA: [Generating Your First Bitstream](https://vicharak-in.github.io/shrike-lite/generating_your_first_bitstream.html)
29-
30-
Once you have the bitstream, you’re ready to load it into the FPGA through a microcontroller (RP2040) program.
31-
32-
We’ll start with a simple blink-LED example to say hello to the world of hardware.
33-
Along the way, we’ll also set up the required software and toolchain.
5+
In this getting started guide we will see how to blink an led on shrike both on fpga and RP2040.
346

357
You can program the microcontroller on Shrike-lite using two methods:<br>
368
&emsp;**1. Arduino (C/C++)**
379
&emsp;**2. MicroPython using the UF2 bootloader**
3810

3911
Both are beginner-friendly, and you can switch between them anytime.
40-
Now that you have the hardware in hand, let’s follow the steps and get Shrike-lite up and running!
12+
Let’s follow the steps and get Shrike-lite up and running!
13+
14+
::::{tab-set}
15+
:::{tab-item} ArduinoIDE
4116

4217
# Using it with ArduinoIDE
4318

4419
If you already know Arduino and love working with the Arduino IDE, you can continue using it with Shrike-lite. You do not have to switch to MicroPython unless you want to.,
4520

4621

47-
4822
We will follow these steps to setup our arduino IDE for shrike. If you don't have arduino IDE already ,you can download it from [here](https://www.arduino.cc/en/software/) or if you are using linux(ubuntu)then just run
4923
```
5024
sudo apt install arduino
@@ -100,6 +74,10 @@ You will need to restart the Arduino IDE and you should see the Pico Little FS t
10074

10175
For more details on the PicoLittleFS tool checkout this [repository](https://github.com/earlephilhower/arduino-pico-littlefs-plugin).
10276

77+
> [!NOTE]
78+
> For Arduino IDE version 2.x.x please follow [this](https://randomnerdtutorials.com/arduino-ide-2-install-esp32-littlefs/) guide instead of step 2 to setup the Little FS tools and you can come back for step 3.
79+
> Littlefs tool for Arduino IDE 2 can be found [here](https://github.com/earlephilhower/arduino-littlefs-upload).
80+
10381
### Step 3. Installing the Shrike Library
10482

10583
The Arduino library developed by Vicharak takes care of configuring the FPGA for you. You can install it directly from the Arduino IDE’s Library Manager, just search for **“Shrike”** and install the **Shrike** library.
@@ -137,6 +115,11 @@ Congratulation you have you arduino IDE and shrike ready to programmed using the
137115

138116
>Credit and Gratitude to [earlephilhower](https://github.com/earlephilhower/) to creating the board support for RP2040/RP2350 in ArduinoIDE and the little FS tool.
139117
118+
:::
119+
120+
121+
:::{tab-item} Micro-Python
122+
140123
# Using it with Micro-python
141124

142125
We have created custom UF2 for shrike this contains a shrike.py library that has custom function to flash fpga and few others. You can use the normal rpi micro python uf2 as well however the step's would be different.
@@ -150,8 +133,11 @@ Now we will here safely assume that you will be using our uf2.
150133
3. Copy the downloaded uf2 in storage device you can simply drag and drop in mostly all the devices.
151134
4. After the successful copying the storage device should disappear.
152135

136+
Check the video tutorial on how to upload the uf2 Shrike dev board(its a generic board video and uf2 will differ in our case) [here](https://www.youtube.com/watch?v=os4mv_8jWfU).
137+
153138
Congratulations you have successfully uploaded the uf2.
154139

140+
155141
### 2. Shrike Mass Storage Device
156142

157143
Onces that you have copied the uf2 to the Shrike. The board will disconnect momentary and so up as both a mass storage device and tty/ACM device now the mass storage is the part where you would need to save you bitstream (read step 3).
@@ -208,4 +194,7 @@ in thonny open a new python file and write this python script
208194

209195
Save this file to your board (RP2040) and run it. (to run this file on board boot up just name it as main.py)
210196

197+
:::
198+
::::
199+
211200
If everything has been done correctly you should see led blinking on the board.

Docs/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ We at vicharak have kept in mind need of a learner, maker and a hobbyist while d
2525
:caption: Contents
2626
:titlesonly:
2727

28+
Introduction <introduction>
2829
Hardware Overview <hardware_overview>
2930
Getting Started <getting_started>
3031
Tools Setup <tools_setup_guide>

Docs/introduction.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
(introduction)=
2+
3+
# Introduction to Shrike Project
4+
5+
Hello! So you’ve got the **Shrike-lite FPGA** - nice!
6+
7+
Before we explain how programming works on Shrike-lite, it’s important to understand what Shrike-lite actually is and how it differs from all kind of other embedded development boards.
8+
9+
These points will give you the right foundation, especially if you are new to electronics or computing systems. If you already know the basics of microcontroller, FPGAs, and embedded systems, you can skip this introduction and jump directly into the programming section.
10+
11+
Shrike-lite is special because it combines two worlds on a single board:
12+
&emsp;**A Microcontroller (MCU)** — Raspberry Pi’s [RP2040](https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html) (Pico 1 Family)
13+
&emsp;**An FPGA (Field-Programmable Gate Array)**
14+
15+
You can write software for the micro-controller and create digital circuits on the FPGA, and then let them work together to build powerful and fun projects. If you’re curious to learn more about FPGAs, you can read about them here.
16+
17+
In Shrike-lite, the micro-controller (RP2040) is connected to the FPGA through an SPI bus. The SPI bus is used for two main purposes:
18+
19+
&emsp;1. **Configuring the FPGA** - loading the bitstream into the FPGA via the RP2040
20+
&emsp;2. **Communication** - between the microcontroller (RP2040) and the FPGA.
21+
22+
While your program is running on the micro-controller, you can configure the FPGA at any time to perform specific tasks. Not only that, once the FPGA is programmed, it can also communicate with the RP2040 back and forth.
23+
The beauty of this setup is that you can reprogram the FPGA an unlimited number of times, and that’s exactly where reconfigurable computing comes to life.
24+
25+
As discussed earlier, we’ll need to learn how compilation works for both systems: the FPGA and the micro-controller (RP2040).
26+
27+
The binary files that the FPGA understands are called **bitstreams**.
28+
Follow the guide here to learn how to generate a bitstream for the FPGA: [Generating Your First Bitstream](https://vicharak-in.github.io/shrike-lite/generating_your_first_bitstream.html)
29+
30+
Once you have the bitstream, you’re ready to load it into the FPGA through a microcontroller (RP2040) program.
31+
32+
We’ll start with a simple blink-LED example to say hello to the world of hardware.
33+
Along the way, we’ll also set up the required software and toolchain.

0 commit comments

Comments
 (0)