Using golang to program arduino uni board
1- Code
2- Compile using tinygo docker image
3- Upload by avrdude in command line
1- Code
package main
import (
"machine"
"time"
// "fmt"
)
const led = machine.LED
func main() {
// fmt.Println("Test")
println("Hello, TinyGo")
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
for {
led.Low()
time.Sleep(time.Second)
led.High()
time.Sleep(time.Second)
}
}
* fmt is not supported, cannot be used.2- Compile using tinygo docker image
docker run --rm -v $(pwd):/src tinygo/tinygo:0.9.0 tinygo build -o /src/test1.hex -size=short -target=arduino /src/tinygo/tinygo1.go* The source is in $(pwd)/tinygo/tinygo1.go
3- Upload by avrdude in command line
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -carduino -P/dev/cu.usbserial-1440 -b115200 -D -Uflash:w:$(pwd)/tinygo/test1.hex:i* I got command from Arduino IDE, by enabling verbose mode for upload and run a sample upload
