I2c bus 6 baud rate

I have an issue with the /boot/config.txt file.
I made a change to the config file:
Original value:
dtoverlay=i2c6,pins_22_23,baudrate=400000

I changed it to :
dtoverlay=i2c6,pins_22_23,baudrate=100000

After rebooting the RPi, I found that the subject line was changed back to 400000.

My line was removed and a new 400000 line was added.
What performed this modification.
And, can it be turned off?

My peripheral cannot support the higher baud rate.

Thanks again for all help with this issue.

Mark K.

Hi Mark -
Our software team relates that this file is the one that is changing your modified value back to 400000. We will consider adding an easy way for users to override the settings used here, but in the meantime you may have luck modifying this file on your installation, after taking the red-pill. Good luck!

Hi Mark -
You can indeed tell BlueOS to ignore your modification! Thanks to this custom keyword after your parameter, the setting won’t be adjusted. This would look something like:

dtoverlay=i2c6,pins_22_23,baudrate=100000 # custom: peripheral X doesn't support the default baud rate (400000).

I hope that solves your problem!

It seems that this has indeed ensured that the speed is set to my parameters.
But it’s interesting in that, after a reboot, the /boo/config.txt ‘pi4’ section now has two i2c6 entries.
The first is the BlueOS value of 400000.
Then a little later in the section is my line of 100000.
The system is running at 100000.

Thanks for your help. This fixes my peripheral issue.

Mark K

2 Likes

The script (BlueOS/core/start-blueos-core at f60f4c745d800763c70e31bccad3dca6b0a8731a · bluerobotics/BlueOS · GitHub ) that handles all this has a disablement flag that seems to be an environment variable ( BLUEOS_DISABLE_STARTUP_UPDATE ) . However, it seems it is not available from outside the docker container. How can I set this value (to true) ?

Hi Mike,

It would be possible to overwrite the overlays and avoid BlueOS to configure/change it by using “BLUEOS_DISABLE_STARTUP_UPDATE” environment variable.
Right now BlueOS/Bootstrap does not support for custom environment variables (we use for development and with docker run). I’m adding at the moment and should be available in the new BlueOS 1.4.0-beta.2

When I checked a couple weeks ago, I did not see any mention of this needed feature in the commit comments.
In my case, I need to enable i2c3, but blue forces the overlay back to using serial.
When will I be allowed to change the overlay config file?

I dont entirely understand the recent change at bluoes_startup_update: add fine-grained patch suppression by Williangalvani · Pull Request #3049 · bluerobotics/BlueOS · GitHub I guess it suppresses the entire overlay checking process, and not just for i2c4 like in the example (I need i2c3)?

Designation: Non Export-Controlled Information

Mike,

I was able to work around the i2c issues I had with help from Elliot.

Refer to this conversation:

I2c Clock Speed Change for Navigator - Blue Robotics Software - Blue Robotics Community Forums

Mark

EXPORT CONTROL DETERMINATION: This document does not contain information defined as either technical data under the U.S. International Traffic in Arms Regulations (ITAR), 22 CFR 120-130, or information defined as technology under the U.S. Export Administration Regulations (EAR), 15 CFR 730-774.

glad it worked for you. We are going down this road as well.
Unfortunately, it means we are basically forking the blue software, which is not ideal as a paying customer.

Hi @MikeFair -
Sorry for the struggle! As Blue Robotics software is provided for free, and is open source, I’m not sure how you’re paying for it! :stuck_out_tongue_winking_eye: