Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork436
Description
Describe the problem
When trying to change the baudrate, I get this error:
{"error":"command 'configure' failed: invalid argument"}This happens when I pick the 750 baudrate after starting the monitor with 74880.
To reproduce
plotter/plotter.ino:
voidsetup() { Serial.begin(74880);// Set baudrate to 74880 to get the error when setting to 750}voidloop() { Serial.println("hello");delay(1000);}
My scripts to compile, upload, and optionally monitor.
compile.sh:
./arduino-cli \ compile \ --fqbn esp32:esp32:esp32da \ plotter \ --verbose
upload.sh:
./arduino-cli \ upload \ --fqbn esp32:esp32:esp32da \ --port /dev/cu.usbserial-0001 \ plotter \ --verbose
monitor.sh (optional):
./arduino-cli \ monitor \ --fqbn esp32:esp32:esp32da \ --port /dev/cu.usbserial-0001 \ --config baudrate=74880
ⓘIt is important to begin the serial communication with a 74880 baudrate. Selecting 9600, for example, will not cause the error.
Start the Arduino CLI in daemon mode:
./arduino-cli versionarduino-cli Version: git-snapshot Commit: d5ef61d6 Date: 2025-09-20T13:04:53Z./arduino-cli daemonDaemon is now listening on 127.0.0.1:50051{"IP":"127.0.0.1","Port":"50051"}Open a new shell inside thearduino-cli repo and run the following:
Generate the .proto files:
buf export . -o ./tmp/outCreate:
grpcurl \ -plaintext \ -import-path ./tmp/out \ -proto cc/arduino/cli/commands/v1/commands.proto \ 127.0.0.1:50051 \ cc.arduino.cli.commands.v1.ArduinoCoreService.Create{"instance": {"id":1 }}Init:
grpcurl \ -plaintext \ -import-path ./tmp/out \ -proto cc/arduino/cli/commands/v1/commands.proto \ -d '{"instance": {"id": 1}}' \ 127.0.0.1:50051 \ cc.arduino.cli.commands.v1.ArduinoCoreService.InitEnumerate monitor port settings (FQBN is optional):
grpcurl -plaintext \ -import-path ./tmp/out \ -proto cc/arduino/cli/commands/v1/commands.proto \ -d '{"instance":{"id":1}, "port_protocol":"serial", "fqbn":"esp32:esp32:esp32da"}' \ localhost:50051 \ cc.arduino.cli.commands.v1.ArduinoCoreService/EnumerateMonitorPortSettings{"settings": [ {"settingId":"stop_bits","label":"Stop bits","type":"enum","enumValues": ["1","1.5","2" ],"value":"1" }, {"settingId":"baudrate","label":"Baudrate","type":"enum","enumValues": ["300","600","750","1200","2400","4800","9600","19200","31250","38400","57600","74880","115200","230400","250000","460800","500000","921600","1000000","2000000" ],"value":"9600" }, {"settingId":"bits","label":"Data bits","type":"enum","enumValues": ["5","6","7","8","9" ],"value":"8" }, {"settingId":"dtr","label":"DTR","type":"enum","enumValues": ["on","off" ],"value":"off" }, {"settingId":"parity","label":"Parity","type":"enum","enumValues": ["none","even","odd","mark","space" ],"value":"none" }, {"settingId":"rts","label":"RTS","type":"enum","enumValues": ["on","off" ],"value":"off" } ]}This lists the supported settings, including baudrates like 750.
Create the monitor duplex:
grpcurl \ -plaintext \ -import-path ./tmp/out \ -proto cc/arduino/cli/commands/v1/commands.proto \ -d @ \ 127.0.0.1:50051 \ cc.arduino.cli.commands.v1.ArduinoCoreService.MonitorOpen the monitor:
{"openRequest": {"instance": {"id":1 },"fqbn":"esp32:esp32:esp32da","port": {"address":"/dev/cu.usbserial-0001","protocol":"serial" },"portConfiguration": {"settings": [ {"settingId":"baudrate","value":"74880" } ] } }}ⓘ Note that the monitor stream is opened with 74880 baudrate.
This works and data comes in from the board.
{"success":true}{"rxData":"KqtQqlRVC1WlC6XVVbVVolRFsBHPIse4gR7DYSADIzAB/g=="}{"rxData":"MA=="}{"rxData":"LjAyMDAJMA=="}// ...But if I try to change the baudrate to 750 (which was listed as valid):
{"updatedConfiguration": {"settings": [ {"settingId":"baudrate","value":"750" } ] }}ⓘ I could not cause the error with other baudrates than 750, but I have not tried all.
I get this error:
{"error":"command 'configure' failed: invalid argument"}Expected behavior
- If a baudrate is not actually supported, it should not appear in the list.
- Or, if it cannot be detected reliably, the error should be more specific so clients can handle it.
Arduino CLI version
Operating system
macOS
Operating system version
15.6.1
Additional context
- Start the monitor connection with a 74880 baudrate.
- Select the 750 baudrate to cause the error.
Issue checklist
- I searched for previous reports inthe issue tracker
- I verified the problem still occurs when using thenightly build
- My report contains all necessary details