Skip to content

Allow customization of transmit and receive buffer sizes for I2C 'Wire' and 'Wire1' objects.#149

Open
dac1e wants to merge 3 commits intoarduino:masterfrom
dac1e:dac1e-devel2
Open

Allow customization of transmit and receive buffer sizes for I2C 'Wire' and 'Wire1' objects.#149
dac1e wants to merge 3 commits intoarduino:masterfrom
dac1e:dac1e-devel2

Conversation

@dac1e
Copy link
Copy Markdown

@dac1e dac1e commented Jan 3, 2025

This pull request for the SAM architecture corresponds to pull request #589 for the AVR architecture.

When I had the need for a bigger Wire buffer, I came up with this implementation.

  • Existing sketches work like before, but just with one additional macro in the sketch, Wire will get smaller or larger buffers and will omit unnecessary buffers when possible. E.g. the receive buffer will be omitted when no receive is required. There are six example sketches available, that demonstrate how the macro works and give evidence about the customization of the buffer sizes.
    Wire buffers are still allocated at compile time.

  • Both TwoWire objects Wire and Wire1 are supported.

  • There is also some refactoring done in regard to using C++ casts instead of C casts, making some functions inline for speed and code size.

dac1e added 3 commits January 3, 2025 18:34
Wire and Wire1 use WireBuffer.
Use size_t in for loop instead of uin8_t.
Added override specifier where applicable.
Changed const to constexpr where possible.
Added const qualifiers where possible.
@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@arduino arduino deleted a comment from CLAassistant Mar 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants