Repository navigation
Conversation
Signed-off-by: deadprogram <ron@hybridgroup.com>
Signed-off-by: deadprogram <ron@hybridgroup.com>
Signed-off-by: deadprogram <ron@hybridgroup.com>
Based on parent branch's existing skeleton, rebased on top of branch dev; includes board definition for the WiFi variant.
|
@ardnew I have an R4 whenever this is ready for test... |
|
I also have an R4 available for testing packages. |
|
The remaining pieces have been added. Please let me know how testing goes on your boards. One issue I'm having with the WiFi board is that the flash sequencing doesn't seem to work end-to-end: I have to manually put the board into bootloader mode by double-clicking the reset button, then flash and reset. The target JSON includes |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Clock initialization and timer reads have confirmed faults that prevent reliable operation.
Review effort: Balanced
Findings: 3
Open (4)
What changed in this PR
Adds initial TinyGo support for the RA4M1-based Arduino Uno R4 Minima and WiFi boards.
Changes:
- Adds target definitions, memory layout, and flashing settings.
- Implements clock setup, SysTick timing, GPIO, and separate board pin maps.
- Updates SVD generation for reserved fields and register arrays.
| File | Description |
|---|---|
| tools/gen-device-svd/gen-device-svd.go | Adjusts reserved-field and register-array handling. |
| targets/ra4m1.ld | Defines memory layout and reserves bootloader space. |
| targets/ra4m1.json | Defines the shared RA4M1 target. |
| targets/arduino-uno-r4.json | Defines the shared Uno R4 target. |
| targets/arduino-uno-r4-wifi.json | Adds WiFi flashing and debug settings. |
| targets/arduino-uno-r4-minima.json | Adds Minima flashing settings. |
| src/runtime/runtime_ra4m1.go | Adds clock setup and SysTick timing. |
| src/machine/machine_ra4m1.go | Implements RA4M1 GPIO support. |
| src/machine/board_arduino_uno_r4_wifi.go | Defines WiFi board pins. |
| src/machine/board_arduino_uno_r4_minima.go | Defines Minima board pins. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
UNO R4 WIFI: I tested blinky and a very much vibecoded LED matrix test and both works perfectly fine, did not have to manually enter bootloader or anything, it just worked. EDIT: Also tested reading temp and humidity from a dht11, also works fine. Well done! |
|
Thanks for picking this back up @ardnew. I tested it on an Arduino Uno R4 Minima and took a good look. The following is edited from an automated review:
What do you think of these? Due to the PR coming from your fork, I cannot just add commits myself. It would be great to get this into the imminent release. |
|
Thanks for the updates @ardnew. I tested the latest commit on my Uno R4 Minima and all four earlier points look addressed. The clock registers now read back as expected after
Sounds OK? |
|
@deadprogram Yep, will do. That was my editor with the opinionated YAML formatting. I have far fewer opinions on the matter |


Rebased the existing PR #4265, added SysTick and basic GPIO support along with a handful of target definitions:
I've left this a draft because it is incomplete and needs a few changes. Specifically, there should be 2 separate boards corresponding to the 2 leaf targets above.
machine/board_arduino_uno_r4_minima.gomachine/board-arduino-uno-r4-wifi.gomachine/board-arduino-uno-r4.goand needs to be renamedThe provided
runtimeimplementation and othermachinedetails should be compatible with both boards.The target JSON for both boards was derived directly from ArduinoCore-renesas; I do not own a Minima board to test.