Skip to content

Commit 39da656

Browse files
deadprogramconejoninja
authored andcommitted
microcontrollers: start adding new boards arduino zero, esp32, esp8266, itsybitsy-nrf52840, and feather-stm32f405
Signed-off-by: deadprogram <ron@hybridgroup.com>
1 parent d7c8463 commit 39da656

File tree

9 files changed

+342
-6
lines changed

9 files changed

+342
-6
lines changed

content/microcontrollers/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ weight: 3
88

99
TinyGo lets you run Go directly on microcontrollers.
1010

11-
TinyGo has support for 39 different boards and devices such as the Arduino Nano33 IoT, Adafruit Circuit Playground Express, BBC micro:bit and more. Click on a board name found in the left menu to see the what features are supported for the given hardware.
11+
TinyGo has support for 44 different boards and devices such as the Arduino Nano33 IoT, Adafruit Circuit Playground Express, BBC micro:bit and more. Click on a board name found in the left menu to see the what features are supported for the given hardware.
1212

1313
We also give you the ability to add new boards. If your target isn't listed here, please raise an issue in the [issue tracker](https://github.com/tinygo-org/tinygo/issues).
1414

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
---
2+
title: "Arduino Zero"
3+
weight: 3
4+
---
5+
6+
The [Arduino Zero](https://store.arduino.cc/arduino-zero) is a very small ARM development board based on the Atmel [SAMD21](https://www.microchip.com/wwwproducts/en/ATSAMD21G18) family of processors.
7+
8+
## Interfaces
9+
10+
| Interface | Hardware Supported | TinyGo Support |
11+
| --------- | ------------- | ----- |
12+
| GPIO | YES | YES |
13+
| UART | YES | YES |
14+
| SPI | YES | YES |
15+
| I2C | YES | YES |
16+
| ADC | YES | YES |
17+
| PWM | YES | YES |
18+
19+
## Machine Package Docs
20+
21+
[Documentation for the machine package for the Arduino Zero](../machine/arduino-zero)
22+
23+
## Installing BOSSA
24+
25+
In order to flash your TinyGo programs onto the Arduino Zero board, you will need to install the "bossac" command line utility which is part of the [BOSSA command line utilities](https://github.com/shumatech/BOSSA).
26+
27+
### macOS
28+
29+
You can use Homebrew to install the BOSSA command line interface by using the following command:
30+
31+
```shell
32+
brew cask install bossa
33+
```
34+
35+
Or if you prefer, you can also download the installer from https://github.com/shumatech/BOSSA/releases/download/1.9.1/bossa-1.9.1.dmg
36+
37+
Once you have downloaded it, double click on the .dmg file to perform the installation.
38+
39+
### Linux
40+
41+
On Linux, install from source:
42+
43+
```shell
44+
sudo apt install libreadline-dev libwxgtk3.0-*
45+
git clone https://github.com/shumatech/BOSSA.git
46+
cd BOSSA
47+
make
48+
sudo cp bin/bossac /usr/local/bin
49+
```
50+
51+
### Windows
52+
53+
You can download BOSSA from https://github.com/shumatech/BOSSA/releases/download/1.9.1/bossa-x64-1.9.1.msi
54+
55+
*VERY IMPORTANT*: During the installation, you much choose to install into `c:\Program Files`. The installer might have the wrong path, so edit it to match `c:\Program Files`.
56+
57+
After the installation, you must add BOSSA to your PATH:
58+
59+
```shell
60+
set PATH=%PATH%;"c:\Program Files\BOSSA";
61+
```
62+
63+
Test that you have installed "BOSSA" correctly by running this command:
64+
65+
```shell
66+
bossac --help
67+
```
68+
69+
## Flashing
70+
71+
Once you have installed the needed BOSSA command line utility, as in the previous section, you are ready to build and flash code to your Arduino Zero board.
72+
73+
### CLI Flashing on Linux
74+
75+
- Plug your Arduino Zero board into your computer's USB port.
76+
- Build and flash your TinyGo code using the `tinygo flash` command. This command flashes the Arduino Zero with the blinky1 example:
77+
78+
```
79+
tinygo flash -target=arduino-zero examples/blinky1
80+
```
81+
82+
- The Arduino Zero board should restart and then begin running your program.
83+
84+
### CLI Flashing on macOS
85+
86+
- Plug your Arduino Zero board into your computer's USB port.
87+
- Build and flash your TinyGo code using the `tinygo flash` command. This command flashes the Arduino Zero with the blinky1 example:
88+
89+
```
90+
tinygo flash -target=arduino-zero examples/blinky1
91+
```
92+
93+
- The Arduino Zero board should restart and then begin running your program.
94+
95+
### CLI Flashing on Windows
96+
97+
- Plug your Arduino Zero board into your computer's USB port.
98+
- Build and flash your TinyGo code using the `tinygo flash` command. This command flashes the Arduino Zero with the blinky1 example:
99+
100+
```
101+
tinygo flash -target=arduino-zero examples/blinky1
102+
```
103+
104+
- The Arduino Zero board should restart and then begin running your program.
105+
106+
### Troubleshooting
107+
108+
If you have troubles getting your Arduino Zero board to receive code, try this:
109+
110+
- Press the "RESET" button on the board two times to get the Arduino Zero board ready to receive code.
111+
- Now try running the `tinygo flash` command as above:
112+
113+
```shell
114+
tinygo flash -target=arduino-zero [PATH TO YOUR PROGRAM]
115+
```
116+
117+
Once you have updated your Arduino Zero board the first time, after that you should be able to flash it entirely from the command line.
118+
119+
## Notes
120+
121+
You can use the USB port to the Arduino Zero as a serial port. `UART0` refers to this connection.

content/microcontrollers/circuit-playground-bluefruit.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: "Adafruit Circuit Playground Bluefruit"
33
weight: 3
44
---
55

6-
The [Adafruit Circuit Playground Bluefruit](https://www.adafruit.com/product/4333) is small ARM development board based on the Nordic Semiconductor [nrf52840](https://www.nordicsemi.com/eng/Products/nRF52840) processor. It has several built-in devices such as WS2812 "NeoPixel" LEDs, buttons, an accelerometer, and some other sensors.
6+
The [Adafruit Circuit Playground Bluefruit](https://www.adafruit.com/product/4333) is small ARM development board based on the Nordic Semiconductor [nrf52840](https://www.nordicsemi.com/eng/Products/nRF52840) processor. It has several built-in devices such as WS2812 "NeoPixel" LEDs, buttons, an accelerometer, and some other sensors.
77

88
## Interfaces
99

@@ -15,6 +15,7 @@ The [Adafruit Circuit Playground Bluefruit](https://www.adafruit.com/product/433
1515
| I2C | YES | YES |
1616
| ADC | YES | YES |
1717
| PWM | YES | YES |
18+
| Bluetooth | YES | YES |
1819

1920
## Machine Package Docs
2021

@@ -79,4 +80,5 @@ You can use the USB port to the Circuit Playground Bluefruit as a serial port. `
7980

8081
For an example that uses the built-in Neopixel LEDs, take a look at the TinyGo drivers repository located at [https://github.com/tinygo-org/drivers/tree/release/examples](https://github.com/tinygo-org/drivers)
8182

82-
Bluetooth support is also in development but not yet completed.
83+
Bluetooth support is now available for the Circuit Playground Bluefruit board. See https://github.com/tinygo-org/bluetooth for more information.
84+

content/microcontrollers/esp32.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
title: "ESP32"
3+
weight: 3
4+
---
5+
6+
The [Espressif ESP32]() is a tiny development board based on the Xtensa [ESP32]() family of SoC.
7+
8+
## Interfaces
9+
10+
| Interface | Hardware Supported | TinyGo Support |
11+
| --------- | ------------- | ----- |
12+
| GPIO | YES | YES |
13+
| UART | YES | YES |
14+
| SPI | YES | YES |
15+
| I2C | YES | Not Yet |
16+
| ADC | YES | Not Yet |
17+
| PWM | YES | Not Yet |
18+
19+
## Machine Package Docs
20+
21+
[Documentation for the machine package for the ESP32](../machine/esp32)
22+
23+
## Flashing
24+
25+
### CLI Flashing on Linux
26+
27+
Goes here
28+
29+
### CLI Flashing on macOS
30+
31+
Goes here
32+
33+
### CLI Flashing on Windows
34+
35+
Goes here
36+
37+
### Troubleshooting
38+
39+
Goes here
40+
41+
## Notes
42+
43+
Goes here
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
title: "ESP8266"
3+
weight: 3
4+
---
5+
6+
The [Espressif ESP8266]() is a tiny development board based on the Xtensa [ESP8266]() family of SoC.
7+
8+
## Interfaces
9+
10+
| Interface | Hardware Supported | TinyGo Support |
11+
| --------- | ------------- | ----- |
12+
| GPIO | YES | YES |
13+
| UART | YES | YES |
14+
| SPI | YES | Not Yet |
15+
| I2C | YES | Not Yet |
16+
| ADC | YES | Not Yet |
17+
| PWM | YES | Not Yet |
18+
19+
## Machine Package Docs
20+
21+
[Documentation for the machine package for the ESP8266](../machine/esp8266)
22+
23+
## Flashing
24+
25+
### CLI Flashing on Linux
26+
27+
Goes here
28+
29+
### CLI Flashing on macOS
30+
31+
Goes here
32+
33+
### CLI Flashing on Windows
34+
35+
Goes here
36+
37+
### Troubleshooting
38+
39+
Goes here
40+
41+
## Notes
42+
43+
Goes here

content/microcontrollers/feather-nrf52840.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: "Adafruit Feather nRF52840"
33
weight: 3
44
---
55

6-
The [Adafruit Feather nRF52840](https://www.adafruit.com/product/4500) is small ARM development board based on the Nordic Semiconductor [nrf52840](https://www.nordicsemi.com/eng/Products/nRF52840) processor.
6+
The [Adafruit Feather nRF52840](https://www.adafruit.com/product/4500) is a small ARM development board based on the Nordic Semiconductor [nrf52840](https://www.nordicsemi.com/eng/Products/nRF52840) processor.
77

88
## Interfaces
99

@@ -15,6 +15,7 @@ The [Adafruit Feather nRF52840](https://www.adafruit.com/product/4500) is small
1515
| I2C | YES | YES |
1616
| ADC | YES | YES |
1717
| PWM | YES | YES |
18+
| Bluetooth | YES | YES |
1819

1920
## Machine Package Docs
2021

@@ -77,4 +78,4 @@ Once you have updated your Adafruit Feather nRF52840 board the first time, after
7778

7879
You can use the USB port to the Adafruit Feather nRF52840 as a serial port. `UART0` refers to this connection.
7980

80-
Bluetooth support is in development but not yet completed.
81+
Bluetooth support is now available for the Adafruit Feather nRF52840 board. See https://github.com/tinygo-org/bluetooth for more information.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
title: "Adafruit Feather STM32F405"
3+
weight: 3
4+
---
5+
6+
The [Adafruit Feather STM32F405](https://www.adafruit.com/product/4382) is a tiny ARM development board based on the ST Micro [STM32F405](https://www.st.com/resource/en/datasheet/dm00037051.pdf) family of microcontrollers.
7+
8+
## Interfaces
9+
10+
| Interface | Hardware Supported | TinyGo Support |
11+
| --------- | ------------- | ----- |
12+
| GPIO | YES | YES |
13+
| UART | YES | YES |
14+
| SPI | YES | YES |
15+
| I2C | YES | YES |
16+
| ADC | YES | Not yet |
17+
| PWM | YES | Not yet |
18+
19+
## Machine Package Docs
20+
21+
[Documentation for the machine package for the Adafruit Feather STM32F405](../machine/feather-stm32f405)
22+
23+
## Flashing
24+
25+
### CLI Flashing on Linux
26+
27+
Goes here
28+
29+
### CLI Flashing on macOS
30+
31+
Goes here
32+
33+
### CLI Flashing on Windows
34+
35+
Goes here
36+
37+
### Troubleshooting
38+
39+
Goes here
40+
41+
## Notes
42+
43+
Goes here
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
title: "Adafruit ItsyBitsy-nRF52840"
3+
weight: 3
4+
---
5+
6+
The [Adafruit ItsyBitsy-nRF52840](https://www.adafruit.com/product/4333) is a small ARM development board based on the Nordic Semiconductor [nrf52840](https://www.nordicsemi.com/eng/Products/nRF52840) processor.
7+
8+
## Interfaces
9+
10+
| Interface | Hardware Supported | TinyGo Support |
11+
| --------- | ------------- | ----- |
12+
| GPIO | YES | YES |
13+
| UART | YES | YES |
14+
| SPI | YES | YES |
15+
| I2C | YES | YES |
16+
| ADC | YES | YES |
17+
| PWM | YES | YES |
18+
| Bluetooth | YES | YES |
19+
20+
## Machine Package Docs
21+
22+
[Documentation for the machine package for the ItsyBitsy-nRF52840](../machine/itsybitsy-nrf52840)
23+
24+
## Flashing
25+
26+
### UF2
27+
28+
The ItsyBitsy-nRF52840 comes with the [UF2 bootloader](https://github.com/Microsoft/uf2) already installed.
29+
30+
### CLI Flashing on Linux
31+
32+
- Plug your ItsyBitsy-nRF52840 into your computer's USB port.
33+
- Flash your TinyGo program to the board using this command:
34+
35+
```shell
36+
tinygo flash -target=itsybitsy-nrf52840 [PATH TO YOUR PROGRAM]
37+
```
38+
39+
- The ItsyBitsy-nRF52840 board should restart and then begin running your program.
40+
41+
### CLI Flashing on macOS
42+
43+
- Plug your ItsyBitsy-nRF52840 into your computer's USB port.
44+
- Flash your TinyGo program to the board using this command:
45+
46+
```shell
47+
tinygo flash -target=itsybitsy-nrf52840 [PATH TO YOUR PROGRAM]
48+
```
49+
50+
- The ItsyBitsy-nRF52840 board should restart and then begin running your program.
51+
52+
### CLI Flashing on Windows
53+
54+
- Plug your ItsyBitsy-nRF52840 into your computer's USB port.
55+
- Flash your TinyGo program to the board using this command:
56+
57+
```shell
58+
tinygo flash -target=itsybitsy-nrf52840 [PATH TO YOUR PROGRAM]
59+
```
60+
61+
- The ItsyBitsy-nRF52840 board should restart and then begin running your program.
62+
63+
### Troubleshooting
64+
65+
If you have troubles getting your ItsyBitsy-nRF52840 board to receive code, try this:
66+
67+
- Press the "RESET" button on the board two times to get the ItsyBitsy-nRF52840 board ready to receive code.
68+
- The ItsyBitsy-nRF52840 board will appear to your computer like a USB drive.
69+
- Now try running the command:
70+
71+
```shell
72+
tinygo flash -target=itsybitsy-nrf52840 [PATH TO YOUR PROGRAM]
73+
```
74+
75+
Once you have updated your ItsyBitsy-nRF52840 board the first time, after that you should be able to flash it entirely from the command line.
76+
77+
## Notes
78+
79+
You can use the USB port to the ItsyBitsy-nRF52840 as a serial port. `UART0` refers to this connection.
80+
81+
For an example that uses the built-in Neopixel LEDs, take a look at the TinyGo drivers repository located at [https://github.com/tinygo-org/drivers/tree/release/examples](https://github.com/tinygo-org/drivers)
82+
83+
Bluetooth support is now available for the ItsyBitsy-nRF52840 board. See https://github.com/tinygo-org/bluetooth for more information.

0 commit comments

Comments
 (0)