-
Notifications
You must be signed in to change notification settings - Fork 996
Closed
Labels
Description
Hey, I recently got into Go and loved the idea of using it for microcontrollers in a new project.
I have a bunch of ESP32-C3 superminis but I can't get tinygo to build for them.
I'm on a MacBook Pro M3 Pro on Sonoma with Tinygo and Esptool installed via Homebrew.
I've tried following the blinking LED example adjusted to work with the esp32c3
main.go
package main
import (
"machine"
"time"
)
func main() {
led := machine.GPIO8
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
for {
led.Low()
time.Sleep(time.Millisecond * 500)
led.High()
time.Sleep(time.Millisecond * 500)
}
}But building fails with the following output:
❯ tinygo build -target=esp32c3
# machine
/opt/homebrew/Cellar/tinygo/0.31.2/src/machine/machine_esp32c3_i2c.go:38:16: undefined: SCL_PIN
/opt/homebrew/Cellar/tinygo/0.31.2/src/machine/machine_esp32c3_i2c.go:41:16: undefined: SDA_PIN
I guess it's something with the i2c implementation, but I'm not familiar enough with Go or this project to pinpoint the exact issue yet.
Since building with -target=esp32 works fine, I've tried flashing with that but it won't work either.
❯ tinygo flash -target=esp32
esptool.py v4.7.0
Serial port /dev/cu.usbmodem1101
Connecting...
A fatal error occurred: This chip is ESP32-C3 not ESP32. Wrong --chip argument?
error: failed to flash /var/folders/93/m682qq_n5klc2btq3q_cb_0c0000gq/T/tinygo1642084370/main.bin: exit status 2
Thanks a lot for making all this in the first place, I can't wait to use Go for microcontrollers!
vanvanni