Skip to content

Commit c19c477

Browse files
committed
Add initialsupport to change baudrate
* inst/+arduinoio/+config/config_due.m, inst/+arduinoio/+config/config_esp32_dev.m, inst/+arduinoio/+config/config_leonardo.m, inst/+arduinoio/+config/config_lilypad.m, inst/+arduinoio/+config/config_mega2560.m, inst/+arduinoio/+config/config_micro.m, inst/+arduinoio/+config/config_mkr1000.m, inst/+arduinoio/+config/config_mkrzero.m, inst/+arduinoio/+config/config_nano.m, inst/+arduinoio/+config/config_nano_33_ble.m, inst/+arduinoio/+config/config_nano_esp32.m, inst/+arduinoio/+config/config_nano_every.m, inst/+arduinoio/+config/config_nano_rp2040_connect.m, inst/+arduinoio/+config/config_promicro.m, inst/+arduinoio/+config/config_promini.m, inst/+arduinoio/+config/config_raspi_pico.m, inst/+arduinoio/+config/config_sparkfunsamd21.m, inst/+arduinoio/+config/config_uno.m, inst/+arduinoio/+config/config_uno_minima_r4.m, inst/+arduinoio/+config/config_uno_wifi_r2.m, inst/+arduinoio/+config/config_uno_wifi_r4.m: add defauilt baudrate * inst/+arduinoio/lib/LibraryBase.cpp: add use of arduino baudrate if provided * inst/@arduino/arduino.m, inst/arduinosetup.m, inst/@arduino/__initArduino__.m: allow use of baudrate * test/make_conf.m: add default baudrate
1 parent b418878 commit c19c477

26 files changed

+59
-6
lines changed

inst/+arduinoio/+config/config_due.m

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
# default board info - must be provided
2626
# will be filled in on connection.
2727
retval.board = '';
28-
retval.board = '';
28+
retval.baudrate = 9600;
2929
retval.mcu = 'cortex-m3';
3030
retval.voltref = 3.3;
3131
retval.libs = {};

inst/+arduinoio/+config/config_esp32_dev.m

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
# default board info - must be provided
2727
# will be filled in on connection.
2828
retval.board = '';
29+
retval.baudrate = 9600;
2930
retval.mcu = 'eps32';
3031
retval.voltref = 0;
3132
retval.libs = {};

inst/+arduinoio/+config/config_leonardo.m

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
# default board info - must be provided
2626
# will be filled in on connection.
2727
retval.board = 'leonardo';
28+
retval.baudrate = 9600;
2829
retval.mcu = '';
2930
retval.voltref = 0;
3031
retval.libs = {};

inst/+arduinoio/+config/config_lilypad.m

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
# default board info - must be provided
66
# will be filled in on connection.
77
retval.board = '';
8+
retval.baudrate = 9600;
89
retval.mcu = '';
910
retval.voltref = 0;
1011
retval.libs = {};

inst/+arduinoio/+config/config_mega2560.m

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
# default board info - must be provided
2626
# will be filled in on connection.
2727
retval.board = '';
28+
retval.baudrate = 9600;
2829
retval.mcu = '';
2930
retval.voltref = 0;
3031
retval.libs = {};

inst/+arduinoio/+config/config_micro.m

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
# default board info - must be provided
2626
# will be filled in on connection.
2727
retval.board = 'micro';
28+
retval.baudrate = 9600;
2829
retval.mcu = '';
2930
retval.voltref = 0;
3031
retval.libs = {};

inst/+arduinoio/+config/config_mkr1000.m

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
# default board info - must be provided
66
# will be filled in on connection.
77
retval.board = '';
8+
retval.baudrate = 9600;
89
retval.mcu = 'cortex-m0plus';
910
retval.voltref = 3.3;
1011
retval.libs = {};

inst/+arduinoio/+config/config_mkrzero.m

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
# default board info - must be provided
2727
# will be filled in on connection.
2828
retval.board = '';
29+
retval.baudrate = 9600;
2930
retval.mcu = 'cortex-m0plus';
3031
retval.voltref = 3.3;
3132
retval.libs = {};

inst/+arduinoio/+config/config_nano.m

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
# default board info - must be provided
2626
# will be filled in on connection
2727
retval.board = "nano";
28+
retval.baudrate = 9600;
2829
retval.mcu = '';
2930
retval.voltref = 50;
3031
retval.libs = {};

inst/+arduinoio/+config/config_nano_33_ble.m

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
# default board info - must be provided
66
# will be filled in on connection.
77
retval.board = 'nano_33_ble';
8+
retval.baudrate = 9600;
89
retval.mcu = 'nRF52840';
910
retval.voltref = 0;
1011
retval.libs = {};

inst/+arduinoio/+config/config_nano_esp32.m

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
# default board info - must be provided
2525
# will be filled in on connection
2626
retval.board = "nano_esp32";
27+
retval.baudrate = 9600;
2728
retval.mcu = '';
2829
retval.voltref = 33;
2930
retval.libs = {};

inst/+arduinoio/+config/config_nano_every.m

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
# default board info - must be provided
2525
# will be filled in on connection
2626
retval.board = "nano_every";
27+
retval.baudrate = 9600;
2728
retval.mcu = '';
2829
retval.voltref = 50;
2930
retval.libs = {};

inst/+arduinoio/+config/config_nano_rp2040_connect.m

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
# default board info - must be provided
66
# will be filled in on connection.
77
retval.board = '';
8+
retval.baudrate = 9600;
89
retval.mcu = 'cortex-m0plus';
910
retval.voltref = 0;
1011
retval.libs = {};

inst/+arduinoio/+config/config_promicro.m

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
# default board info - must be provided
2626
# will be filled in on connection.
2727
retval.board = 'promicro';
28+
retval.baudrate = 9600;
2829
retval.mcu = '';
2930
retval.voltref = 0;
3031
retval.libs = {};

inst/+arduinoio/+config/config_promini.m

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
# default board info - must be provided
2525
# will be filled in on connection
2626
retval.board = "promini";
27+
retval.baudrate = 9600;
2728
retval.mcu = '';
2829
retval.voltref = 0;
2930
retval.libs = {};

inst/+arduinoio/+config/config_raspi_pico.m

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
# default board info - must be provided
77
# will be filled in on connection.
88
retval.board = '';
9+
retval.baudrate = 9600;
910
retval.mcu = 'cortex-m0plus';
1011
retval.voltref = 0;
1112
retval.libs = {};

inst/+arduinoio/+config/config_sparkfunsamd21.m

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
# default board info - must be provided
2626
# will be filled in on connection.
2727
retval.board = '';
28-
retval.board = '';
28+
retval.baudrate = 9600;
2929
retval.mcu = 'samd21';
3030
retval.voltref = 3.3;
3131
retval.libs = {};

inst/+arduinoio/+config/config_uno.m

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
# default board info - must be provided
2525
# will be filled in on connection
2626
retval.board = "uno";
27+
retval.baudrate = 9600;
2728
retval.mcu = '';
2829
retval.voltref = 0;
2930
retval.libs = {};

inst/+arduinoio/+config/config_uno_minima_r4.m

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
retval = {};
44

55
retval.board = 'uno_minima_r4';
6+
retval.baudrate = 9600;
67
retval.mcu = '';
78
retval.voltref = 0;
89
retval.libs = {};

inst/+arduinoio/+config/config_uno_wifi_r2.m

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
# default board info - must be provided
2525
# will be filled in on connection
2626
retval.board = "uno_wifi_r2";
27+
retval.baudrate = 9600;
2728
retval.mcu = '';
2829
retval.voltref = 0;
2930
retval.libs = {};

inst/+arduinoio/+config/config_uno_wifi_r4.m

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
retval.board = 'uno_wifi_r4';
2626
retval.mcu = 'Renesis RA4M1';
27+
retval.baudrate = 9600;
2728
retval.voltref = 0;
2829
retval.libs = {};
2930
retval.port = '';

inst/+arduinoio/lib/LibraryBase.cpp

+5-1
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@
4646
WiFiClient wifi_client;
4747
#endif
4848

49+
#ifndef ARDUINO_BAUDRATE
50+
# define ARDUINO_BAUDRATE 9600
51+
#endif
52+
4953
// some standard(ish) error messages used throughout the addons
5054
const char ERRORMSG_INVALID_NUMBER_OF_ARGS[] PROGMEM = "Invalid number of args";
5155
const char ERRORMSG_UNIMPLEMENTED[] PROGMEM = "Unimplemented feature";
@@ -281,7 +285,7 @@ static IPAddress make_gateway_address(const char *str)
281285
void
282286
OctaveArduinoClass::init ()
283287
{
284-
OCTAVE_COMMS_PORT.begin (9600);
288+
OCTAVE_COMMS_PORT.begin (ARDUINO_BAUDRATE);
285289
#if defined(OCTAVE_USE_WIFI_COMMS)
286290

287291
#ifdef ARDUINO_ARCH_ESP32

inst/@arduino/__initArduino__.m

+2-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
if !isempty(regexp(port, "^[0-9]+.[0-9]+.[0-9]+.[0-9]+$"))
3030
obj.connected = tcp (port, 9500, 10);
3131
else
32-
obj.connected = serial (port, 9600, 2);
32+
obj.connected = serial (port, obj.BaudRate, 2);
3333
endif
3434
# need wait for aduino to potentially startup
3535
pause(2);
@@ -91,6 +91,7 @@ case hex2dec("1E9651")
9191
obj.config = arduinoio.getBoardConfig(boardtype);
9292
# update values that could change
9393
obj.config.port = port;
94+
obj.config.baudrate = obj.BaudRate;
9495
obj.config.board = boardtype;
9596
obj.config.voltref = voltref;
9697
obj.config.flags = flags;

inst/@arduino/arduino.m

+19-1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@
5454
## reprogram the arduino
5555
## @item port (read only)
5656
## the communications port the board is connected to.
57+
## @item baudrate (read only)
58+
## the communications baudrate to the board.
5759
## @item board (read only)
5860
## The name of the board type that the arduino connected to
5961
## @item libraries (read only)
@@ -84,6 +86,7 @@
8486
AnalogReference = 5.0;
8587
Board = "";
8688
Port = "";
89+
BaudRate = 9600;
8790
endproperties
8891

8992
properties (SetAccess = private, Hidden = true)
@@ -101,6 +104,8 @@
101104
endif
102105

103106
this.name = "arduino";
107+
c = arduinoio.getBoardConfig(arduinos{1}.board);
108+
this.BaudRate = c.baudrate;
104109
this = __initArduino__ (this, arduinos{1}.port, arduinos{1}.board);
105110
elseif (nargin == 1)
106111
arg0 = varargin{1};
@@ -129,6 +134,8 @@
129134
endif
130135
port = arduinos{1}.port;
131136
board = arduinos{1}.board;
137+
c = arduinoio.getBoardConfig(arduinos{1}.board);
138+
this.BaudRate = c.baudrate;
132139
elseif !ischar (port)
133140
error ("arduino: port must be a string");
134141
endif
@@ -148,6 +155,7 @@
148155
requiredlibs = {};
149156
forcebuild = false;
150157
forcebuildon = false;
158+
151159
for i = 3:2:nargin
152160
propname = tolower (varargin{i});
153161
propvalue = varargin{i+1};
@@ -174,6 +182,16 @@
174182
error ("arduino: expect forcebuildon to be true or false");
175183
endif
176184
endif
185+
if strcmp (propname,"baudrate")
186+
if !isnumeric(propvalue)
187+
error ("arduino: expect baudrate to be numeric");
188+
else
189+
this.BaudRate = int32(propvalue);
190+
if this.BaudRate < 1200
191+
error ("arduino: Invalid baudrate");
192+
endif
193+
endif
194+
endif
177195
# older option that probally should remove
178196
if strcmp (propname,"forcebuild")
179197
if islogical (propvalue) || (isnumeric(propvalue) && (propvalue == 1 || propvalue == 0))
@@ -217,7 +235,7 @@
217235
# free arduino resources, reprom and then reinit
218236
this = __freeArduino__(this);
219237

220-
if !arduinosetup ('libraries', requiredlibs);
238+
if !arduinosetup ('libraries', requiredlibs, 'baudrate', this.BaudRate)
221239
error ("arduinosetup returned a failure, so did not reprogram")
222240
endif
223241

inst/arduinosetup.m

+11
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@
6060
libs = {};
6161
arduinobinary = {};
6262
debug = false;
63+
baudrate = [];
64+
def_baudrate = 9600;
6365
for i = 1:2:nargin
6466
propname = tolower (varargin{i});
6567
propvalue = varargin{i+1};
@@ -74,6 +76,8 @@
7476
endif
7577
elseif strcmp (propname, "arduinobinary")
7678
arduinobinary = propvalue;
79+
elseif strcmp (propname, "baudrate")
80+
baudrate = int32(propvalue);
7781
elseif strcmp (propname, "debug")
7882
debug = propvalue;
7983
elseif
@@ -152,6 +156,13 @@
152156
fprintf (fd, "\n");
153157
fprintf (fd, "// override target voltage (x10) by uncommenting and providing a value\n");
154158
fprintf (fd, "//#define BOARD_VOLTAGE 50\n");
159+
fprintf (fd, "\n");
160+
fprintf (fd, "// override baudrate by providing a value\n");
161+
if !isempty(baudrate)
162+
fprintf (fd, "#define ARDUINO_BAUDRATE %d\n", baudrate);
163+
else
164+
fprintf (fd, "//#define ARDUINO_BAUDRATE %d\n", def_baudrate);
165+
endif
155166

156167
fprintf (fd, "\n");
157168
fprintf (fd, "// builtin library support\n");

test/make_conf.m

+1-1
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@
178178
printf(" # default board info - must be provided\n");
179179
printf(" # will be filled in on connection.\n");
180180
printf(" retval.board = '';\n");
181-
printf(" retval.board = '';\n");
181+
printf(" retval.baudrate = 9600;\n");
182182
printf(" retval.mcu = '';\n");
183183
printf(" retval.voltref = 0;\n");
184184
printf(" retval.libs = {};\n");

0 commit comments

Comments
 (0)