MATLAB Answers

arduino engineering kit invalid i2c address formatt

11 views (last 30 days)
hello! i am trying to complete the arduino engineering kit using matlab 2019 and simulink
here is a link to where i currently am, down in the section of that page where you connect the arduino board to matlink to control that little geared motor.
"As you switched the MKR1000 board's power source from USB to LiPo battery, you must re-establish your MATLAB connection to Arduino. Run the following commands to do so:
>> clear a
>> a = arduino
Now let's create a second MATLAB object to provide access to the MKR Motor Carrier. Use the following command to create a Carrier object in the MATLAB Workspace that is associated with the Arduino object a :
>> carrier = addon(a, 'Arduino/MKRMotorCarrier')
Just as the MKR Motor Carrier provides a physical interface between the motor drive wiring and the MKR1000 board, the carrier object is an intermediary between the Arduino object and the DC and servo motors we may connect.
The Motor Carrier allows you to drive your motors with a relatively powerful battery. This can provide much larger currents than the Arduino board itself, which derives all its power from the USB connection to your computer. The USB port cannot provide enough current to drive motors at the necessary voltage, and it can be dangerous to attempt to do so.
Now let's create a third object to give you control of the motor connected to M3 in MATLAB. Use the following command to create a DC Motor object that is associated with the Carrier object, and examine the displayed object properties in theCommand Window :
>> dcm = dcmotor(carrier,3)
when i follow these directions exactly and even copy and paste the commands from the tutorial it gives me this error when trying to access the MKRMotorCarrier library.
>> clear a
>> a = arduino
a =
arduino with properties:
Port: 'COM8'
Board: 'MKR1000'
AvailablePins: {'D0-D14', 'A0-A6'}
AvailableDigitalPins: {'D0-D14', 'A0-A6'}
AvailablePWMPins: {'D0-D8', 'D10', 'A3-A4'}
AvailableAnalogPins: {'A0-A6'}
AvailableI2CBusIDs: [0]
Libraries: {'Arduino/MKRMotorCarrier', 'I2C', 'RotaryEncoder', 'SPI', 'Servo', 'Ultrasonic'}
>> carrier = addon(a, 'Arduino/MKRMotorCarrier')
Invalid I2C address format. The address must be a scalar integer (or hex character vector or string) between 0
and 127.
what am i doing wrong? or has something been updated to make this tutorial invalid?

Accepted Answer

Madhu Govindarajan
Madhu Govindarajan on 18 Apr 2019
Thanks for sending the output, the problem arises from the fact that you are using the old Arduino_Engineering_Kit_Hardware_Support instead of Arduino_Engineering_Kit_Hardware_Support_19a. To fix this I recommend the following:
1) Make a copy of any modifications you made inside this toolbox that are important to you (ideally you did not use this folder as most users don't, but just to be sure)
2) Uninstall Arduino_Engineering_Kit_Hardware_Support Add-on by going to Add-Ons > Manage Add-Ons and clicking on the vertical ellipsis right next to the file
3) Go to Add-Ons > Get Add-Ons. Search for Arduino_Engineering_Kit_Hardware_Support_19a and 'Add' this.
Then try arduinosetup and you should not receive any errors.

More Answers (4)

Madhu Govindarajan
Madhu Govindarajan on 16 Apr 2019
The tutorial is still valid as I am using it in R2019a, so let's try and see where the error is coming from.
Type the following in MATLAB and share the output:
tbx = matlab.addons.toolbox.installedToolboxes

Kevin Graebner
Kevin Graebner on 18 Apr 2019
thank you kind sir! i apprecaite your assistance very greatly.
ok. when i first try to do arduino setup. it gives me this error repeatedly.
"Warning: Class arduinoio.LibraryBase will be removed. Following Add-On classes need to be updated to work in future
release : Arduino/MKRMotorCarrier. Follow steps mentioned in this Arduino Add-On document to update. Click here to
turn off this warning.
Warning: Class arduinoio.AddonBase will be removed. Inherit class arduinoioaddons.arduino.MKRRotaryEncoder from
matlabshared.addon.LibraryBase instead. For more information, see Arduino Add-On document.Click here to turn off
this warning."
wen i go to the link they give and type the commands exactly, i get this
">> classdef MyAddon < matlabshared.addon.LibraryBase
classdef MyAddon < matlabshared.addon.LibraryBase
Error: Illegal use of reserved keyword "classdef"."
when i try to follow tutorial, and type in your commands i get this response.
>> matlabshared.supportpkg.getInstalled
Name Version Base Product
--------------------------------------------- ------- ------------
Simulink Support Package for Arduino Hardware 19.1.0 Simulink
MATLAB Support Package for Arduino Hardware 19.1.0 MATLAB
MATLAB Support Package for USB Webcams 19.1.0 MATLAB
MATLAB Support for MinGW-w64 C/C++ Compiler 19.1.0 MATLAB
>> tbx = matlab.addons.toolbox.installedToolboxes
tbx =
1×2 struct array with fields:
>> tbx.Name
ans =
ans =
>> tbx.Version
ans =
ans =
thank you again!

Kevin Graebner
Kevin Graebner on 18 Apr 2019
thank you very much my friend! it works perfectly now.
i apprecite you very much!
have a great and happy day!

Kevin Graebner
Kevin Graebner on 23 Apr 2019
i am having another issue if you are still available for assistance!
when i try to just put a few arduino digtal inputs in sumulink and hook it up to a scope to test if the buttons work it gives me this error.
i went to simulation, model configuration, hardware implimentation, have the correct board selected. even tried manually setting the COM port. re-installing the latest matlab and simulink support for arduino.
any thoughts or ideas you have would be most apprecaited!
3 1
07:18 AM Elapsed: 26 sec
### Starting build procedure for model: untitled
Code Generation
Elapsed: 22 sec
AVR Memory Usage ---------------- Device: atmega328p Program: 19560 bytes (59.7% Full) (.text + .data + .bootloader) Data: 864 bytes (42.2% Full) (.data + .bss + .noinit)
### Build procedure for model: 'untitled' aborted due to an error.
The following error occurred during deployment to your hardware board: Could not connect to specified Arduino board. Verify that the board is connected to your host, and that the host COM port number set in the model matches the COM port number in Windows. To change the host COM port number in the model, click 'Simulation ', click 'Model Configuration Parameters'... In the dialog that opens, select the 'Hardware Implementation' pane, click 'Target hardware resources > Host-board connection' and set the COM port number. To find out the COM port number in Windows, open Device Manager and open your board in the COM ports group.
  1 Comment
Madhu Govindarajan
Madhu Govindarajan on 23 Apr 2019
Have you tried putting the board in bootloader mode and making Simulink select the COM port Automatically. Here are the steps to try:
1) Double press the reset button on your Arduino board.
2) Open up Device Manager and check if the board is now detected in boot loader mode. If not repeat Step 1 till it changes to boot loader mode.
3) Go to Simulink model, Configuration Parameters > Hardware Implementation > Hardware board settings > Target hardware resources > Host-board connection > Set host COM port > Automatically and click OK.
4) Ensure the mdoel is in external mode and press play.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by