From 92d18ed0bb15d8ce3ae7bf4b70192d690ed6149b Mon Sep 17 00:00:00 2001 From: matpala Date: Fri, 9 Oct 2026 16:58:42 -0300 Subject: [PATCH 1/3] atmega: fix the Pro Mini uart_echo examples --- examples/microchip/atmega/build.zig | 3 ++- examples/microchip/atmega/src/uart_echo.zig | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/examples/microchip/atmega/build.zig b/examples/microchip/atmega/build.zig index 9cfe71355..e471cad3f 100644 --- a/examples/microchip/atmega/build.zig +++ b/examples/microchip/atmega/build.zig @@ -21,7 +21,8 @@ pub fn build(b: *std.Build) void { .{ .target = mb.ports.atmega.boards.arduino.pro_mini_3v3, .name = "arduino-pro_mini_3v3_spi_flash", .file = "src/spi_flash_w25q.zig" }, .{ .target = mb.ports.atmega.boards.arduino.pro_mini_5v, .name = "arduino-pro_mini_5v_spi_flash", .file = "src/spi_flash_w25q.zig" }, .{ .target = mb.ports.atmega.boards.arduino.nano, .name = "arduino-nano_uart_echo", .file = "src/uart_echo.zig" }, - .{ .target = mb.ports.atmega.boards.arduino.nano, .name = "arduino-pro_mini_5v_uart_echo", .file = "src/uart_echo.zig" }, + .{ .target = mb.ports.atmega.boards.arduino.pro_mini_3v3, .name = "arduino-pro_mini_3v3_uart_echo", .file = "src/uart_echo.zig" }, + .{ .target = mb.ports.atmega.boards.arduino.pro_mini_5v, .name = "arduino-pro_mini_5v_uart_echo", .file = "src/uart_echo.zig" }, .{ .target = mb.ports.atmega.boards.arduino.uno_rev3, .name = "arduino-uno_uart_echo", .file = "src/uart_echo.zig" }, .{ .target = mb.ports.atmega.boards.emakefun.rf_nano_v3, .name = "rf-nano-v3_uart_echo", .file = "src/uart_echo.zig" }, .{ .target = mb.ports.atmega.boards.emakefun.rf_nano_v3, .name = "rf-nano-v3_spi_nrf24", .file = "src/spi_nrf24.zig" }, diff --git a/examples/microchip/atmega/src/uart_echo.zig b/examples/microchip/atmega/src/uart_echo.zig index 9d99cf964..b7b849549 100644 --- a/examples/microchip/atmega/src/uart_echo.zig +++ b/examples/microchip/atmega/src/uart_echo.zig @@ -1,5 +1,6 @@ -//! Prints a greeting over USART0 (115200 8N1) and echoes back every byte it -//! receives. On Nano-style boards it shows up on the USB serial port, e.g.: +//! Prints a greeting over USART0 (8N1) and echoes back every byte it receives. +//! It runs at 115200 baud, or 57600 on 8 MHz boards, where 115200 is out of +//! reach. On Nano-style boards it shows up on the USB serial port, e.g.: //! picocom -b 115200 /dev/ttyUSB0 const microzig = @import("microzig"); @@ -14,7 +15,8 @@ comptime { } pub fn main() void { - microzig.board.uart_setup.apply(.{ .baud_rate = 115_200 }); + const baud_rate = if (microzig.board.clock_frequencies.cpu < 16_000_000) 57_600 else 115_200; + microzig.board.uart_setup.apply(.{ .baud_rate = baud_rate }); uart.write_blocking("Hello from MicroZig! Type something:\r\n"); From 8c01fed6382ab338443493990d96fa249dfc1d1c Mon Sep 17 00:00:00 2001 From: matpala Date: Fri, 9 Oct 2026 23:40:35 -0300 Subject: [PATCH 2/3] atmega: explain the lower baud rate in uart_echo --- examples/microchip/atmega/src/uart_echo.zig | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/microchip/atmega/src/uart_echo.zig b/examples/microchip/atmega/src/uart_echo.zig index b7b849549..c323e7cd0 100644 --- a/examples/microchip/atmega/src/uart_echo.zig +++ b/examples/microchip/atmega/src/uart_echo.zig @@ -15,6 +15,7 @@ comptime { } pub fn main() void { + // At 8 MHz, 115200 exceeds the HAL's 2.5% baud error limit; 57600 fits. const baud_rate = if (microzig.board.clock_frequencies.cpu < 16_000_000) 57_600 else 115_200; microzig.board.uart_setup.apply(.{ .baud_rate = baud_rate }); From 51d51339ce926a51eff8046d101e8e3193a8c9b2 Mon Sep 17 00:00:00 2001 From: matpala Date: Sat, 10 Oct 2026 23:17:24 -0300 Subject: [PATCH 3/3] atmega: use 57600 baud in uart_echo for every board --- examples/microchip/atmega/src/uart_echo.zig | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/examples/microchip/atmega/src/uart_echo.zig b/examples/microchip/atmega/src/uart_echo.zig index c323e7cd0..5db1e7669 100644 --- a/examples/microchip/atmega/src/uart_echo.zig +++ b/examples/microchip/atmega/src/uart_echo.zig @@ -1,7 +1,6 @@ -//! Prints a greeting over USART0 (8N1) and echoes back every byte it receives. -//! It runs at 115200 baud, or 57600 on 8 MHz boards, where 115200 is out of -//! reach. On Nano-style boards it shows up on the USB serial port, e.g.: -//! picocom -b 115200 /dev/ttyUSB0 +//! Prints a greeting over USART0 (57600 8N1) and echoes back every byte it +//! receives. On Nano-style boards it shows up on the USB serial port, e.g.: +//! picocom -b 57600 /dev/ttyUSB0 const microzig = @import("microzig"); const uart = microzig.hal.uart; @@ -15,9 +14,7 @@ comptime { } pub fn main() void { - // At 8 MHz, 115200 exceeds the HAL's 2.5% baud error limit; 57600 fits. - const baud_rate = if (microzig.board.clock_frequencies.cpu < 16_000_000) 57_600 else 115_200; - microzig.board.uart_setup.apply(.{ .baud_rate = baud_rate }); + microzig.board.uart_setup.apply(.{ .baud_rate = 57_600 }); uart.write_blocking("Hello from MicroZig! Type something:\r\n");