summaryrefslogtreecommitdiff
path: root/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO
diff options
context:
space:
mode:
authorkrolyxon <me@krolyxon.com>2026-06-08 23:12:15 +0530
committerkrolyxon <me@krolyxon.com>2026-06-08 23:12:15 +0530
commit8a4d103196312b8a18afc0a2ba0fc13ff1a0b180 (patch)
treea92424ac65fbdb93702ea8c44a5c52c9fd66e28c /.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO
parent1d557527be495c59bbc07f194d903b1cec1780d3 (diff)
remove .pio
Diffstat (limited to '.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO')
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.clang-format243
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.github/ISSUE_TEMPLATE.md46
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.github/PULL_REQUEST_TEMPLATE.md26
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.github/workflows/githubci.yml33
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.piopm1
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_BusIO_Register.cpp384
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_BusIO_Register.h117
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_GenericDevice.cpp90
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_GenericDevice.h56
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_I2CDevice.cpp320
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_I2CDevice.h36
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_I2CRegister.h10
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_SPIDevice.cpp512
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_SPIDevice.h149
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/CMakeLists.txt11
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/LICENSE21
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/README.md8
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/component.mk1
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/genericdevice_uartregtest/.uno.test.skip0
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/genericdevice_uartregtest/genericdevice_uartregtest.ino219
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/genericdevice_uarttest/.uno.test.skip0
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/genericdevice_uarttest/genericdevice_uarttest.ino98
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/i2c_address_detect/i2c_address_detect.ino22
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/i2c_readwrite/i2c_readwrite.ino45
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/i2c_registers/i2c_registers.ino43
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/i2corspi_register/i2corspi_register.ino40
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/spi_modetest/spi_modetest.ino35
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/spi_readwrite/spi_readwrite.ino43
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/spi_register_bits/spi_register_bits.ino268
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/spi_registers/spi_registers.ino40
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/library.properties9
31 files changed, 0 insertions, 2926 deletions
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.clang-format b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.clang-format
deleted file mode 100644
index c6cdd16..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.clang-format
+++ /dev/null
@@ -1,243 +0,0 @@
-Language: Cpp
-# BasedOnStyle: LLVM
-AccessModifierOffset: -2
-AlignAfterOpenBracket: Align
-AlignArrayOfStructures: None
-AlignConsecutiveAssignments:
- Enabled: false
- AcrossEmptyLines: false
- AcrossComments: false
- AlignCompound: false
- AlignFunctionPointers: false
- PadOperators: true
-AlignConsecutiveBitFields:
- Enabled: false
- AcrossEmptyLines: false
- AcrossComments: false
- AlignCompound: false
- AlignFunctionPointers: false
- PadOperators: false
-AlignConsecutiveDeclarations:
- Enabled: false
- AcrossEmptyLines: false
- AcrossComments: false
- AlignCompound: false
- AlignFunctionPointers: false
- PadOperators: false
-AlignConsecutiveMacros:
- Enabled: false
- AcrossEmptyLines: false
- AcrossComments: false
- AlignCompound: false
- AlignFunctionPointers: false
- PadOperators: false
-AlignConsecutiveShortCaseStatements:
- Enabled: false
- AcrossEmptyLines: false
- AcrossComments: false
- AlignCaseColons: false
-AlignEscapedNewlines: Right
-AlignOperands: Align
-AlignTrailingComments:
- Kind: Always
- OverEmptyLines: 0
-AllowAllArgumentsOnNextLine: true
-AllowAllParametersOfDeclarationOnNextLine: true
-AllowBreakBeforeNoexceptSpecifier: Never
-AllowShortBlocksOnASingleLine: Never
-AllowShortCaseLabelsOnASingleLine: false
-AllowShortCompoundRequirementOnASingleLine: true
-AllowShortEnumsOnASingleLine: true
-AllowShortFunctionsOnASingleLine: All
-AllowShortIfStatementsOnASingleLine: Never
-AllowShortLambdasOnASingleLine: All
-AllowShortLoopsOnASingleLine: false
-AlwaysBreakAfterDefinitionReturnType: None
-AlwaysBreakAfterReturnType: None
-AlwaysBreakBeforeMultilineStrings: false
-AlwaysBreakTemplateDeclarations: MultiLine
-AttributeMacros:
- - __capability
-BinPackArguments: true
-BinPackParameters: true
-BitFieldColonSpacing: Both
-BraceWrapping:
- AfterCaseLabel: false
- AfterClass: false
- AfterControlStatement: Never
- AfterEnum: false
- AfterExternBlock: false
- AfterFunction: false
- AfterNamespace: false
- AfterObjCDeclaration: false
- AfterStruct: false
- AfterUnion: false
- BeforeCatch: false
- BeforeElse: false
- BeforeLambdaBody: false
- BeforeWhile: false
- IndentBraces: false
- SplitEmptyFunction: true
- SplitEmptyRecord: true
- SplitEmptyNamespace: true
-BreakAdjacentStringLiterals: true
-BreakAfterAttributes: Leave
-BreakAfterJavaFieldAnnotations: false
-BreakArrays: true
-BreakBeforeBinaryOperators: None
-BreakBeforeConceptDeclarations: Always
-BreakBeforeBraces: Attach
-BreakBeforeInlineASMColon: OnlyMultiline
-BreakBeforeTernaryOperators: true
-BreakConstructorInitializers: BeforeColon
-BreakInheritanceList: BeforeColon
-BreakStringLiterals: true
-ColumnLimit: 80
-CommentPragmas: '^ IWYU pragma:'
-CompactNamespaces: false
-ConstructorInitializerIndentWidth: 4
-ContinuationIndentWidth: 4
-Cpp11BracedListStyle: true
-DerivePointerAlignment: false
-DisableFormat: false
-EmptyLineAfterAccessModifier: Never
-EmptyLineBeforeAccessModifier: LogicalBlock
-ExperimentalAutoDetectBinPacking: false
-FixNamespaceComments: true
-ForEachMacros:
- - foreach
- - Q_FOREACH
- - BOOST_FOREACH
-IfMacros:
- - KJ_IF_MAYBE
-IncludeBlocks: Preserve
-IncludeCategories:
- - Regex: '^"(llvm|llvm-c|clang|clang-c)/'
- Priority: 2
- SortPriority: 0
- CaseSensitive: false
- - Regex: '^(<|"(gtest|gmock|isl|json)/)'
- Priority: 3
- SortPriority: 0
- CaseSensitive: false
- - Regex: '.*'
- Priority: 1
- SortPriority: 0
- CaseSensitive: false
-IncludeIsMainRegex: '(Test)?$'
-IncludeIsMainSourceRegex: ''
-IndentAccessModifiers: false
-IndentCaseBlocks: false
-IndentCaseLabels: false
-IndentExternBlock: AfterExternBlock
-IndentGotoLabels: true
-IndentPPDirectives: None
-IndentRequiresClause: true
-IndentWidth: 2
-IndentWrappedFunctionNames: false
-InsertBraces: false
-InsertNewlineAtEOF: false
-InsertTrailingCommas: None
-IntegerLiteralSeparator:
- Binary: 0
- BinaryMinDigits: 0
- Decimal: 0
- DecimalMinDigits: 0
- Hex: 0
- HexMinDigits: 0
-JavaScriptQuotes: Leave
-JavaScriptWrapImports: true
-KeepEmptyLinesAtTheStartOfBlocks: true
-KeepEmptyLinesAtEOF: false
-LambdaBodyIndentation: Signature
-LineEnding: DeriveLF
-MacroBlockBegin: ''
-MacroBlockEnd: ''
-MaxEmptyLinesToKeep: 1
-NamespaceIndentation: None
-ObjCBinPackProtocolList: Auto
-ObjCBlockIndentWidth: 2
-ObjCBreakBeforeNestedBlockParam: true
-ObjCSpaceAfterProperty: false
-ObjCSpaceBeforeProtocolList: true
-PackConstructorInitializers: BinPack
-PenaltyBreakAssignment: 2
-PenaltyBreakBeforeFirstCallParameter: 19
-PenaltyBreakComment: 300
-PenaltyBreakFirstLessLess: 120
-PenaltyBreakOpenParenthesis: 0
-PenaltyBreakScopeResolution: 500
-PenaltyBreakString: 1000
-PenaltyBreakTemplateDeclaration: 10
-PenaltyExcessCharacter: 1000000
-PenaltyIndentedWhitespace: 0
-PenaltyReturnTypeOnItsOwnLine: 60
-PointerAlignment: Right
-PPIndentWidth: -1
-QualifierAlignment: Leave
-ReferenceAlignment: Pointer
-ReflowComments: true
-RemoveBracesLLVM: false
-RemoveParentheses: Leave
-RemoveSemicolon: false
-RequiresClausePosition: OwnLine
-RequiresExpressionIndentation: OuterScope
-SeparateDefinitionBlocks: Leave
-ShortNamespaceLines: 1
-SkipMacroDefinitionBody: false
-SortIncludes: CaseSensitive
-SortJavaStaticImport: Before
-SortUsingDeclarations: LexicographicNumeric
-SpaceAfterCStyleCast: false
-SpaceAfterLogicalNot: false
-SpaceAfterTemplateKeyword: true
-SpaceAroundPointerQualifiers: Default
-SpaceBeforeAssignmentOperators: true
-SpaceBeforeCaseColon: false
-SpaceBeforeCpp11BracedList: false
-SpaceBeforeCtorInitializerColon: true
-SpaceBeforeInheritanceColon: true
-SpaceBeforeJsonColon: false
-SpaceBeforeParens: ControlStatements
-SpaceBeforeParensOptions:
- AfterControlStatements: true
- AfterForeachMacros: true
- AfterFunctionDefinitionName: false
- AfterFunctionDeclarationName: false
- AfterIfMacros: true
- AfterOverloadedOperator: false
- AfterPlacementOperator: true
- AfterRequiresInClause: false
- AfterRequiresInExpression: false
- BeforeNonEmptyParentheses: false
-SpaceBeforeRangeBasedForLoopColon: true
-SpaceBeforeSquareBrackets: false
-SpaceInEmptyBlock: false
-SpacesBeforeTrailingComments: 1
-SpacesInAngles: Never
-SpacesInContainerLiterals: true
-SpacesInLineCommentPrefix:
- Minimum: 1
- Maximum: -1
-SpacesInParens: Never
-SpacesInParensOptions:
- InCStyleCasts: false
- InConditionalStatements: false
- InEmptyParentheses: false
- Other: false
-SpacesInSquareBrackets: false
-Standard: Latest
-StatementAttributeLikeMacros:
- - Q_EMIT
-StatementMacros:
- - Q_UNUSED
- - QT_REQUIRE_VERSION
-TabWidth: 8
-UseTab: Never
-VerilogBreakBetweenInstancePorts: true
-WhitespaceSensitiveMacros:
- - BOOST_PP_STRINGIZE
- - CF_SWIFT_NAME
- - NS_SWIFT_NAME
- - PP_STRINGIZE
- - STRINGIZE \ No newline at end of file
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.github/ISSUE_TEMPLATE.md b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.github/ISSUE_TEMPLATE.md
deleted file mode 100644
index f0e2614..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.github/ISSUE_TEMPLATE.md
+++ /dev/null
@@ -1,46 +0,0 @@
-Thank you for opening an issue on an Adafruit Arduino library repository. To
-improve the speed of resolution please review the following guidelines and
-common troubleshooting steps below before creating the issue:
-
-- **Do not use GitHub issues for troubleshooting projects and issues.** Instead use
- the forums at http://forums.adafruit.com to ask questions and troubleshoot why
- something isn't working as expected. In many cases the problem is a common issue
- that you will more quickly receive help from the forum community. GitHub issues
- are meant for known defects in the code. If you don't know if there is a defect
- in the code then start with troubleshooting on the forum first.
-
-- **If following a tutorial or guide be sure you didn't miss a step.** Carefully
- check all of the steps and commands to run have been followed. Consult the
- forum if you're unsure or have questions about steps in a guide/tutorial.
-
-- **For Arduino projects check these very common issues to ensure they don't apply**:
-
- - For uploading sketches or communicating with the board make sure you're using
- a **USB data cable** and **not** a **USB charge-only cable**. It is sometimes
- very hard to tell the difference between a data and charge cable! Try using the
- cable with other devices or swapping to another cable to confirm it is not
- the problem.
-
- - **Be sure you are supplying adequate power to the board.** Check the specs of
- your board and plug in an external power supply. In many cases just
- plugging a board into your computer is not enough to power it and other
- peripherals.
-
- - **Double check all soldering joints and connections.** Flakey connections
- cause many mysterious problems. See the [guide to excellent soldering](https://learn.adafruit.com/adafruit-guide-excellent-soldering/tools) for examples of good solder joints.
-
- - **Ensure you are using an official Arduino or Adafruit board.** We can't
- guarantee a clone board will have the same functionality and work as expected
- with this code and don't support them.
-
-If you're sure this issue is a defect in the code and checked the steps above
-please fill in the following fields to provide enough troubleshooting information.
-You may delete the guideline and text above to just leave the following details:
-
-- Arduino board: **INSERT ARDUINO BOARD NAME/TYPE HERE**
-
-- Arduino IDE version (found in Arduino -> About Arduino menu): **INSERT ARDUINO
- VERSION HERE**
-
-- List the steps to reproduce the problem below (if possible attach a sketch or
- copy the sketch code in too): **LIST REPRO STEPS BELOW**
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.github/PULL_REQUEST_TEMPLATE.md b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.github/PULL_REQUEST_TEMPLATE.md
deleted file mode 100644
index 7b641eb..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.github/PULL_REQUEST_TEMPLATE.md
+++ /dev/null
@@ -1,26 +0,0 @@
-Thank you for creating a pull request to contribute to Adafruit's GitHub code!
-Before you open the request please review the following guidelines and tips to
-help it be more easily integrated:
-
-- **Describe the scope of your change--i.e. what the change does and what parts
- of the code were modified.** This will help us understand any risks of integrating
- the code.
-
-- **Describe any known limitations with your change.** For example if the change
- doesn't apply to a supported platform of the library please mention it.
-
-- **Please run any tests or examples that can exercise your modified code.** We
- strive to not break users of the code and running tests/examples helps with this
- process.
-
-Thank you again for contributing! We will try to test and integrate the change
-as soon as we can, but be aware we have many GitHub repositories to manage and
-can't immediately respond to every request. There is no need to bump or check in
-on a pull request (it will clutter the discussion of the request).
-
-Also don't be worried if the request is closed or not integrated--sometimes the
-priorities of Adafruit's GitHub code (education, ease of use) might not match the
-priorities of the pull request. Don't fret, the open source community thrives on
-forks and GitHub makes it easy to keep your changes in a forked repo.
-
-After reviewing the guidelines above you can delete this text from the pull request.
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.github/workflows/githubci.yml b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.github/workflows/githubci.yml
deleted file mode 100644
index 8a57d75..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.github/workflows/githubci.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-name: Arduino Library CI
-
-on: [pull_request, push, repository_dispatch]
-
-jobs:
- build:
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/setup-python@v4
- with:
- python-version: '3.x'
- - uses: actions/checkout@v3
- - uses: actions/checkout@v3
- with:
- repository: adafruit/ci-arduino
- path: ci
-
- - name: Install the prerequisites
- run: bash ci/actions_install.sh
-
- - name: Check for correct code formatting with clang-format
- run: python3 ci/run-clang-format.py -e "ci/*" -e "bin/*" -r .
-
- - name: Check for correct documentation with doxygen
- env:
- GH_REPO_TOKEN: ${{ secrets.GH_REPO_TOKEN }}
- PRETTYNAME : "Adafruit Bus IO Library"
- run: bash ci/doxy_gen_and_deploy.sh
-
- - name: Test the code on supported platforms
- run: python3 ci/build_platform.py main_platforms zero feather32u4
-
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.piopm b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.piopm
deleted file mode 100644
index 6bd37c1..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/.piopm
+++ /dev/null
@@ -1 +0,0 @@
-{"type": "library", "name": "Adafruit BusIO", "version": "1.17.4", "spec": {"owner": "adafruit", "id": 6214, "name": "Adafruit BusIO", "requirements": null, "uri": null}} \ No newline at end of file
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_BusIO_Register.cpp b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_BusIO_Register.cpp
deleted file mode 100644
index f3e8187..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_BusIO_Register.cpp
+++ /dev/null
@@ -1,384 +0,0 @@
-#include <Adafruit_BusIO_Register.h>
-
-#if !defined(SPI_INTERFACES_COUNT) || \
- (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0))
-
-/*!
- * @brief Create a register we access over an I2C Device (which defines the
- * bus and address)
- * @param i2cdevice The I2CDevice to use for underlying I2C access
- * @param reg_addr The address pointer value for the I2C/SMBus register, can
- * be 8 or 16 bits
- * @param width The width of the register data itself, defaults to 1 byte
- * @param byteorder The byte order of the register (used when width is > 1),
- * defaults to LSBFIRST
- * @param address_width The width of the register address itself, defaults
- * to 1 byte
- */
-Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice *i2cdevice,
- uint16_t reg_addr,
- uint8_t width,
- uint8_t byteorder,
- uint8_t address_width) {
- _i2cdevice = i2cdevice;
- _spidevice = nullptr;
- _addrwidth = address_width;
- _address = reg_addr;
- _byteorder = byteorder;
- _width = width;
-}
-
-/*!
- * @brief Create a register we access over an SPI Device (which defines the
- * bus and CS pin)
- * @param spidevice The SPIDevice to use for underlying SPI access
- * @param reg_addr The address pointer value for the SPI register, can
- * be 8 or 16 bits
- * @param type The method we use to read/write data to SPI (which is not
- * as well defined as I2C)
- * @param width The width of the register data itself, defaults to 1 byte
- * @param byteorder The byte order of the register (used when width is > 1),
- * defaults to LSBFIRST
- * @param address_width The width of the register address itself, defaults
- * to 1 byte
- */
-Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_SPIDevice *spidevice,
- uint16_t reg_addr,
- Adafruit_BusIO_SPIRegType type,
- uint8_t width,
- uint8_t byteorder,
- uint8_t address_width) {
- _spidevice = spidevice;
- _spiregtype = type;
- _i2cdevice = nullptr;
- _addrwidth = address_width;
- _address = reg_addr;
- _byteorder = byteorder;
- _width = width;
-}
-
-/*!
- * @brief Create a register we access over an I2C or SPI Device. This is a
- * handy function because we can pass in nullptr for the unused interface,
- * allowing libraries to mass-define all the registers
- * @param i2cdevice The I2CDevice to use for underlying I2C access, if
- * nullptr we use SPI
- * @param spidevice The SPIDevice to use for underlying SPI access, if
- * nullptr we use I2C
- * @param reg_addr The address pointer value for the I2C/SMBus/SPI register,
- * can be 8 or 16 bits
- * @param type The method we use to read/write data to SPI (which is not
- * as well defined as I2C)
- * @param width The width of the register data itself, defaults to 1 byte
- * @param byteorder The byte order of the register (used when width is > 1),
- * defaults to LSBFIRST
- * @param address_width The width of the register address itself, defaults
- * to 1 byte
- */
-Adafruit_BusIO_Register::Adafruit_BusIO_Register(
- Adafruit_I2CDevice *i2cdevice, Adafruit_SPIDevice *spidevice,
- Adafruit_BusIO_SPIRegType type, uint16_t reg_addr, uint8_t width,
- uint8_t byteorder, uint8_t address_width) {
- _spidevice = spidevice;
- _i2cdevice = i2cdevice;
- _spiregtype = type;
- _addrwidth = address_width;
- _address = reg_addr;
- _byteorder = byteorder;
- _width = width;
-}
-
-/*!
- * @brief Create a register we access over a GenericDevice
- * @param genericdevice Generic device to use
- * @param reg_addr Register address we will read/write
- * @param width Width of the register in bytes (1-4)
- * @param byteorder Byte order of register data (LSBFIRST or MSBFIRST)
- * @param address_width Width of the register address in bytes (1 or 2)
- */
-Adafruit_BusIO_Register::Adafruit_BusIO_Register(
- Adafruit_GenericDevice *genericdevice, uint16_t reg_addr, uint8_t width,
- uint8_t byteorder, uint8_t address_width) {
- _i2cdevice = nullptr;
- _spidevice = nullptr;
- _genericdevice = genericdevice;
- _addrwidth = address_width;
- _address = reg_addr;
- _byteorder = byteorder;
- _width = width;
-}
-
-/*!
- * @brief Write a buffer of data to the register location
- * @param buffer Pointer to data to write
- * @param len Number of bytes to write
- * @return True on successful write (only really useful for I2C as SPI is
- * uncheckable)
- */
-bool Adafruit_BusIO_Register::write(uint8_t *buffer, uint8_t len) {
- uint8_t addrbuffer[2] = {(uint8_t)(_address & 0xFF),
- (uint8_t)(_address >> 8)};
- if (_i2cdevice) {
- return _i2cdevice->write(buffer, len, true, addrbuffer, _addrwidth);
- }
- if (_spidevice) {
- if (_spiregtype == ADDRESSED_OPCODE_BIT0_LOW_TO_WRITE) {
- // very special case!
- // pass the special opcode address which we set as the high byte of the
- // regaddr
- addrbuffer[0] =
- (uint8_t)(_address >> 8) & ~0x01; // set bottom bit low to write
- // the 'actual' reg addr is the second byte then
- addrbuffer[1] = (uint8_t)(_address & 0xFF);
- // the address appears to be a byte longer
- return _spidevice->write(buffer, len, addrbuffer, _addrwidth + 1);
- }
- if (_spiregtype == ADDRBIT8_HIGH_TOREAD) {
- addrbuffer[0] &= ~0x80;
- }
- if (_spiregtype == ADDRBIT8_HIGH_TOWRITE) {
- addrbuffer[0] |= 0x80;
- }
- if (_spiregtype == AD8_HIGH_TOREAD_AD7_HIGH_TOINC) {
- addrbuffer[0] &= ~0x80;
- addrbuffer[0] |= 0x40;
- }
- return _spidevice->write(buffer, len, addrbuffer, _addrwidth);
- }
- if (_genericdevice) {
- return _genericdevice->writeRegister(addrbuffer, _addrwidth, buffer, len);
- }
- return false;
-}
-
-/*!
- * @brief Write up to 4 bytes of data to the register location
- * @param value Data to write
- * @param numbytes How many bytes from 'value' to write
- * @return True on successful write (only really useful for I2C as SPI is
- * uncheckable)
- */
-bool Adafruit_BusIO_Register::write(uint32_t value, uint8_t numbytes) {
- if (numbytes == 0) {
- numbytes = _width;
- }
- if (numbytes > 4) {
- return false;
- }
-
- // store a copy
- _cached = value;
-
- for (int i = 0; i < numbytes; i++) {
- if (_byteorder == LSBFIRST) {
- _buffer[i] = value & 0xFF;
- } else {
- _buffer[numbytes - i - 1] = value & 0xFF;
- }
- value >>= 8;
- }
- return write(_buffer, numbytes);
-}
-
-/*!
- * @brief Read data from the register location. This does not do any error
- * checking!
- * @return Returns 0xFFFFFFFF on failure, value otherwise
- */
-uint32_t Adafruit_BusIO_Register::read(void) {
- if (!read(_buffer, _width)) {
- return -1;
- }
-
- uint32_t value = 0;
-
- for (int i = 0; i < _width; i++) {
- value <<= 8;
- if (_byteorder == LSBFIRST) {
- value |= _buffer[_width - i - 1];
- } else {
- value |= _buffer[i];
- }
- }
-
- return value;
-}
-
-/*!
- * @brief Read cached data from last time we wrote to this register
- * @return Returns 0xFFFFFFFF on failure, value otherwise
- */
-uint32_t Adafruit_BusIO_Register::readCached(void) { return _cached; }
-
-/*!
- @brief Read a number of bytes from a register into a buffer
- @param buffer Buffer to read data into
- @param len Number of bytes to read into the buffer
- @return true on successful read, otherwise false
-*/
-bool Adafruit_BusIO_Register::read(uint8_t *buffer, uint8_t len) {
- uint8_t addrbuffer[2] = {(uint8_t)(_address & 0xFF),
- (uint8_t)(_address >> 8)};
- if (_i2cdevice) {
- return _i2cdevice->write_then_read(addrbuffer, _addrwidth, buffer, len);
- }
- if (_spidevice) {
- if (_spiregtype == ADDRESSED_OPCODE_BIT0_LOW_TO_WRITE) {
- // very special case!
- // pass the special opcode address which we set as the high byte of the
- // regaddr
- addrbuffer[0] =
- (uint8_t)(_address >> 8) | 0x01; // set bottom bit high to read
- // the 'actual' reg addr is the second byte then
- addrbuffer[1] = (uint8_t)(_address & 0xFF);
- // the address appears to be a byte longer
- return _spidevice->write_then_read(addrbuffer, _addrwidth + 1, buffer,
- len);
- }
- if (_spiregtype == ADDRBIT8_HIGH_TOREAD) {
- addrbuffer[0] |= 0x80;
- }
- if (_spiregtype == ADDRBIT8_HIGH_TOWRITE) {
- addrbuffer[0] &= ~0x80;
- }
- if (_spiregtype == AD8_HIGH_TOREAD_AD7_HIGH_TOINC) {
- addrbuffer[0] |= 0x80 | 0x40;
- }
- return _spidevice->write_then_read(addrbuffer, _addrwidth, buffer, len);
- }
- if (_genericdevice) {
- return _genericdevice->readRegister(addrbuffer, _addrwidth, buffer, len);
- }
- return false;
-}
-
-/*!
- * @brief Read 2 bytes of data from the register location
- * @param value Pointer to uint16_t variable to read into
- * @return True on successful write (only really useful for I2C as SPI is
- * uncheckable)
- */
-bool Adafruit_BusIO_Register::read(uint16_t *value) {
- if (!read(_buffer, 2)) {
- return false;
- }
-
- if (_byteorder == LSBFIRST) {
- *value = _buffer[1];
- *value <<= 8;
- *value |= _buffer[0];
- } else {
- *value = _buffer[0];
- *value <<= 8;
- *value |= _buffer[1];
- }
- return true;
-}
-
-/*!
- * @brief Read 1 byte of data from the register location
- * @param value Pointer to uint8_t variable to read into
- * @return True on successful write (only really useful for I2C as SPI is
- * uncheckable)
- */
-bool Adafruit_BusIO_Register::read(uint8_t *value) {
- if (!read(_buffer, 1)) {
- return false;
- }
-
- *value = _buffer[0];
- return true;
-}
-
-/*!
- * @brief Pretty printer for this register
- * @param s The Stream to print to, defaults to &Serial
- */
-void Adafruit_BusIO_Register::print(Stream *s) {
- uint32_t val = read();
- s->print("0x");
- s->print(val, HEX);
-}
-
-/*!
- * @brief Pretty printer for this register
- * @param s The Stream to print to, defaults to &Serial
- */
-void Adafruit_BusIO_Register::println(Stream *s) {
- print(s);
- s->println();
-}
-
-/*!
- * @brief Create a slice of the register that we can address without
- * touching other bits
- * @param reg The Adafruit_BusIO_Register which defines the bus/register
- * @param bits The number of bits wide we are slicing
- * @param shift The number of bits that our bit-slice is shifted from LSB
- */
-Adafruit_BusIO_RegisterBits::Adafruit_BusIO_RegisterBits(
- Adafruit_BusIO_Register *reg, uint8_t bits, uint8_t shift) {
- _register = reg;
- _bits = bits;
- _shift = shift;
-}
-
-/*!
- * @brief Read 4 bytes of data from the register
- * @return data The 4 bytes to read
- */
-uint32_t Adafruit_BusIO_RegisterBits::read(void) {
- uint32_t val = _register->read();
- val >>= _shift;
- return val & ((1 << (_bits)) - 1);
-}
-
-/*!
- * @brief Write 4 bytes of data to the register
- * @param data The 4 bytes to write
- * @return True on successful write (only really useful for I2C as SPI is
- * uncheckable)
- */
-bool Adafruit_BusIO_RegisterBits::write(uint32_t data) {
- uint32_t val = _register->read();
-
- // mask off the data before writing
- uint32_t mask = (1 << (_bits)) - 1;
- data &= mask;
-
- mask <<= _shift;
- val &= ~mask; // remove the current data at that spot
- val |= data << _shift; // and add in the new data
-
- return _register->write(val, _register->width());
-}
-
-/*!
- * @brief The width of the register data, helpful for doing calculations
- * @returns The data width used when initializing the register
- */
-uint8_t Adafruit_BusIO_Register::width(void) { return _width; }
-
-/*!
- * @brief Set the default width of data
- * @param width the default width of data read from register
- */
-void Adafruit_BusIO_Register::setWidth(uint8_t width) { _width = width; }
-
-/*!
- * @brief Set register address
- * @param address the address from register
- */
-void Adafruit_BusIO_Register::setAddress(uint16_t address) {
- _address = address;
-}
-
-/*!
- * @brief Set the width of register address
- * @param address_width the width for register address
- */
-void Adafruit_BusIO_Register::setAddressWidth(uint16_t address_width) {
- _addrwidth = address_width;
-}
-
-#endif // SPI exists
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_BusIO_Register.h b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_BusIO_Register.h
deleted file mode 100644
index 046e04c..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_BusIO_Register.h
+++ /dev/null
@@ -1,117 +0,0 @@
-#ifndef Adafruit_BusIO_Register_h
-#define Adafruit_BusIO_Register_h
-
-#include <Arduino.h>
-
-#if !defined(SPI_INTERFACES_COUNT) || \
- (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0))
-
-#include <Adafruit_GenericDevice.h>
-#include <Adafruit_I2CDevice.h>
-#include <Adafruit_SPIDevice.h>
-
-typedef enum _Adafruit_BusIO_SPIRegType {
- ADDRBIT8_HIGH_TOREAD = 0,
- /*!<
- * ADDRBIT8_HIGH_TOREAD
- * When reading a register you must actually send the value 0x80 + register
- * address to the device. e.g. To read the register 0x0B the register value
- * 0x8B is sent and to write 0x0B is sent.
- */
- AD8_HIGH_TOREAD_AD7_HIGH_TOINC = 1,
-
- /*!<
- * ADDRBIT8_HIGH_TOWRITE
- * When writing to a register you must actually send the value 0x80 +
- * the register address to the device. e.g. To write to the register 0x19 the
- * register value 0x99 is sent and to read 0x19 is sent.
- */
- ADDRBIT8_HIGH_TOWRITE = 2,
-
- /*!<
- * ADDRESSED_OPCODE_LOWBIT_TO_WRITE
- * Used by the MCP23S series, we send 0x40 |'rd with the opcode
- * Then set the lowest bit to write
- */
- ADDRESSED_OPCODE_BIT0_LOW_TO_WRITE = 3,
-
-} Adafruit_BusIO_SPIRegType;
-
-/*!
- * @brief The class which defines a device register (a location to read/write
- * data from)
- */
-class Adafruit_BusIO_Register {
-public:
- Adafruit_BusIO_Register(Adafruit_I2CDevice *i2cdevice, uint16_t reg_addr,
- uint8_t width = 1, uint8_t byteorder = LSBFIRST,
- uint8_t address_width = 1);
-
- Adafruit_BusIO_Register(Adafruit_SPIDevice *spidevice, uint16_t reg_addr,
- Adafruit_BusIO_SPIRegType type, uint8_t width = 1,
- uint8_t byteorder = LSBFIRST,
- uint8_t address_width = 1);
-
- Adafruit_BusIO_Register(Adafruit_I2CDevice *i2cdevice,
- Adafruit_SPIDevice *spidevice,
- Adafruit_BusIO_SPIRegType type, uint16_t reg_addr,
- uint8_t width = 1, uint8_t byteorder = LSBFIRST,
- uint8_t address_width = 1);
-
- Adafruit_BusIO_Register(Adafruit_GenericDevice *genericdevice,
- uint16_t reg_addr, uint8_t width = 1,
- uint8_t byteorder = LSBFIRST,
- uint8_t address_width = 1);
-
- bool read(uint8_t *buffer, uint8_t len);
- bool read(uint8_t *value);
- bool read(uint16_t *value);
- uint32_t read(void);
- uint32_t readCached(void);
- bool write(uint8_t *buffer, uint8_t len);
- bool write(uint32_t value, uint8_t numbytes = 0);
-
- uint8_t width(void);
-
- void setWidth(uint8_t width);
- void setAddress(uint16_t address);
- void setAddressWidth(uint16_t address_width);
-
-#if !defined(NO_GLOBAL_INSTANCES) && !defined(NO_GLOBAL_SERIAL)
- void print(Stream *s = &Serial);
- void println(Stream *s = &Serial);
-#else
- void print(Stream *s);
- void println(Stream *s);
-#endif
-
-private:
- Adafruit_I2CDevice *_i2cdevice;
- Adafruit_SPIDevice *_spidevice;
- Adafruit_GenericDevice *_genericdevice;
- Adafruit_BusIO_SPIRegType _spiregtype;
- uint16_t _address;
- uint8_t _width, _addrwidth, _byteorder;
- uint8_t _buffer[4]; // we won't support anything larger than uint32 for
- // non-buffered read
- uint32_t _cached = 0;
-};
-
-/*!
- * @brief The class which defines a slice of bits from within a device register
- * (a location to read/write data from)
- */
-class Adafruit_BusIO_RegisterBits {
-public:
- Adafruit_BusIO_RegisterBits(Adafruit_BusIO_Register *reg, uint8_t bits,
- uint8_t shift);
- bool write(uint32_t value);
- uint32_t read(void);
-
-private:
- Adafruit_BusIO_Register *_register;
- uint8_t _bits, _shift;
-};
-
-#endif // SPI exists
-#endif // BusIO_Register_h
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_GenericDevice.cpp b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_GenericDevice.cpp
deleted file mode 100644
index 37f9cfd..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_GenericDevice.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- Written with help by Claude!
- https://claude.ai/chat/335f50b1-3dd8-435e-9139-57ec7ca26a3c (at this time
- chats are not shareable :(
-*/
-
-#include "Adafruit_GenericDevice.h"
-
-/*!
- * @brief Create a Generic device with the provided read/write functions
- * @param obj Pointer to object instance
- * @param read_func Function pointer for reading raw data
- * @param write_func Function pointer for writing raw data
- * @param readreg_func Function pointer for reading registers (optional)
- * @param writereg_func Function pointer for writing registers (optional) */
-Adafruit_GenericDevice::Adafruit_GenericDevice(
- void *obj, busio_genericdevice_read_t read_func,
- busio_genericdevice_write_t write_func,
- busio_genericdevice_readreg_t readreg_func,
- busio_genericdevice_writereg_t writereg_func) {
- _obj = obj;
- _read_func = read_func;
- _write_func = write_func;
- _readreg_func = readreg_func;
- _writereg_func = writereg_func;
- _begun = false;
-}
-
-/*! @brief Simple begin function (doesn't do much at this time)
- @return true always
-*/
-bool Adafruit_GenericDevice::begin(void) {
- _begun = true;
- return true;
-}
-
-/*!
-@brief Marks the GenericDevice as no longer in use.
-@note: Since this is a GenericDevice, if you are using this with a Serial
-object, this does NOT disable serial communication or release the RX/TX pins.
-That must be done manually by calling Serial.end().
-*/
-void Adafruit_GenericDevice::end(void) { _begun = false; }
-
-/*! @brief Write a buffer of data
- @param buffer Pointer to buffer of data to write
- @param len Number of bytes to write
- @return true if write was successful, otherwise false */
-bool Adafruit_GenericDevice::write(const uint8_t *buffer, size_t len) {
- if (!_begun)
- return false;
- return _write_func(_obj, buffer, len);
-}
-
-/*! @brief Read data into a buffer
- @param buffer Pointer to buffer to read data into
- @param len Number of bytes to read
- @return true if read was successful, otherwise false */
-bool Adafruit_GenericDevice::read(uint8_t *buffer, size_t len) {
- if (!_begun)
- return false;
- return _read_func(_obj, buffer, len);
-}
-
-/*! @brief Read from a register location
- @param addr_buf Buffer containing register address
- @param addrsiz Size of register address in bytes
- @param buf Buffer to store read data
- @param bufsiz Size of data to read in bytes
- @return true if read was successful, otherwise false */
-bool Adafruit_GenericDevice::readRegister(uint8_t *addr_buf, uint8_t addrsiz,
- uint8_t *buf, uint16_t bufsiz) {
- if (!_begun || !_readreg_func)
- return false;
- return _readreg_func(_obj, addr_buf, addrsiz, buf, bufsiz);
-}
-
-/*! @brief Write to a register location
- @param addr_buf Buffer containing register address
- @param addrsiz Size of register address in bytes
- @param buf Buffer containing data to write
- @param bufsiz Size of data to write in bytes
- @return true if write was successful, otherwise false */
-bool Adafruit_GenericDevice::writeRegister(uint8_t *addr_buf, uint8_t addrsiz,
- const uint8_t *buf,
- uint16_t bufsiz) {
- if (!_begun || !_writereg_func)
- return false;
- return _writereg_func(_obj, addr_buf, addrsiz, buf, bufsiz);
-}
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_GenericDevice.h b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_GenericDevice.h
deleted file mode 100644
index d5cb326..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_GenericDevice.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef ADAFRUIT_GENERICDEVICE_H
-#define ADAFRUIT_GENERICDEVICE_H
-
-#include <Arduino.h>
-
-typedef bool (*busio_genericdevice_read_t)(void *obj, uint8_t *buffer,
- size_t len);
-typedef bool (*busio_genericdevice_write_t)(void *obj, const uint8_t *buffer,
- size_t len);
-typedef bool (*busio_genericdevice_readreg_t)(void *obj, uint8_t *addr_buf,
- uint8_t addrsiz, uint8_t *data,
- uint16_t datalen);
-typedef bool (*busio_genericdevice_writereg_t)(void *obj, uint8_t *addr_buf,
- uint8_t addrsiz,
- const uint8_t *data,
- uint16_t datalen);
-
-/*!
- * @brief Class for communicating with a device via generic read/write functions
- */
-class Adafruit_GenericDevice {
-public:
- Adafruit_GenericDevice(
- void *obj, busio_genericdevice_read_t read_func,
- busio_genericdevice_write_t write_func,
- busio_genericdevice_readreg_t readreg_func = nullptr,
- busio_genericdevice_writereg_t writereg_func = nullptr);
-
- bool begin(void);
- void end(void);
-
- bool read(uint8_t *buffer, size_t len);
- bool write(const uint8_t *buffer, size_t len);
- bool readRegister(uint8_t *addr_buf, uint8_t addrsiz, uint8_t *buf,
- uint16_t bufsiz);
- bool writeRegister(uint8_t *addr_buf, uint8_t addrsiz, const uint8_t *buf,
- uint16_t bufsiz);
-
-protected:
- /*! @brief Function pointer for reading raw data from the device */
- busio_genericdevice_read_t _read_func;
- /*! @brief Function pointer for writing raw data to the device */
- busio_genericdevice_write_t _write_func;
- /*! @brief Function pointer for reading a 'register' from the device */
- busio_genericdevice_readreg_t _readreg_func;
- /*! @brief Function pointer for writing a 'register' to the device */
- busio_genericdevice_writereg_t _writereg_func;
-
- bool _begun; ///< whether we have initialized yet (in case the function needs
- ///< to do something)
-
-private:
- void *_obj; ///< Pointer to object instance
-};
-
-#endif // ADAFRUIT_GENERICDEVICE_H
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_I2CDevice.cpp b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_I2CDevice.cpp
deleted file mode 100644
index 2633cf1..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_I2CDevice.cpp
+++ /dev/null
@@ -1,320 +0,0 @@
-#include "Adafruit_I2CDevice.h"
-
-// #define DEBUG_SERIAL Serial
-
-/*!
- * @brief Create an I2C device at a given address
- * @param addr The 7-bit I2C address for the device
- * @param theWire The I2C bus to use, defaults to &Wire
- */
-Adafruit_I2CDevice::Adafruit_I2CDevice(uint8_t addr, TwoWire *theWire) {
- _addr = addr;
- _wire = theWire;
- _begun = false;
-#ifdef ARDUINO_ARCH_SAMD
- _maxBufferSize = 250; // as defined in Wire.h's RingBuffer
-#elif defined(ESP32)
- _maxBufferSize = I2C_BUFFER_LENGTH;
-#else
- _maxBufferSize = 32;
-#endif
-}
-
-/*!
- * @brief Initializes and does basic address detection
- * @param addr_detect Whether we should attempt to detect the I2C address
- * with a scan. 99% of sensors/devices don't mind, but once in a while they
- * don't respond well to a scan!
- * @return True if I2C initialized and a device with the addr found
- */
-bool Adafruit_I2CDevice::begin(bool addr_detect) {
- _wire->begin();
- _begun = true;
-
- if (addr_detect) {
- return detected();
- }
- return true;
-}
-
-/*!
- * @brief De-initialize device, turn off the Wire interface
- */
-void Adafruit_I2CDevice::end(void) {
- // Not all port implement Wire::end(), such as
- // - ESP8266
- // - AVR core without WIRE_HAS_END
- // - ESP32: end() is implemented since 2.0.1 which is latest at the moment.
- // Temporarily disable for now to give time for user to update.
-#if !(defined(ESP8266) || \
- (defined(ARDUINO_ARCH_AVR) && !defined(WIRE_HAS_END)) || \
- defined(ARDUINO_ARCH_ESP32))
- _wire->end();
- _begun = false;
-#endif
-}
-
-/*!
- * @brief Scans I2C for the address - note will give a false-positive
- * if there's no pullups on I2C
- * @return True if I2C initialized and a device with the addr found
- */
-bool Adafruit_I2CDevice::detected(void) {
- // Init I2C if not done yet
- if (!_begun && !begin()) {
- return false;
- }
-
- // A basic scanner, see if it ACK's
- _wire->beginTransmission(_addr);
-#ifdef DEBUG_SERIAL
- DEBUG_SERIAL.print(F("Address 0x"));
- DEBUG_SERIAL.print(_addr, HEX);
-#endif
-#ifdef ARDUINO_ARCH_MBED
- _wire->write(0); // forces a write request instead of a read
-#endif
- if (_wire->endTransmission() == 0) {
-#ifdef DEBUG_SERIAL
- DEBUG_SERIAL.println(F(" Detected"));
-#endif
- return true;
- }
-#ifdef DEBUG_SERIAL
- DEBUG_SERIAL.println(F(" Not detected"));
-#endif
- return false;
-}
-
-/*!
- * @brief Write a buffer or two to the I2C device. Cannot be more than
- * maxBufferSize() bytes.
- * @param buffer Pointer to buffer of data to write. This is const to
- * ensure the content of this buffer doesn't change.
- * @param len Number of bytes from buffer to write
- * @param prefix_buffer Pointer to optional array of data to write before
- * buffer. Cannot be more than maxBufferSize() bytes. This is const to
- * ensure the content of this buffer doesn't change.
- * @param prefix_len Number of bytes from prefix buffer to write
- * @param stop Whether to send an I2C STOP signal on write
- * @return True if write was successful, otherwise false.
- */
-bool Adafruit_I2CDevice::write(const uint8_t *buffer, size_t len, bool stop,
- const uint8_t *prefix_buffer,
- size_t prefix_len) {
- if ((len + prefix_len) > maxBufferSize()) {
- // currently not guaranteed to work if more than 32 bytes!
- // we will need to find out if some platforms have larger
- // I2C buffer sizes :/
-#ifdef DEBUG_SERIAL
- DEBUG_SERIAL.println(F("\tI2CDevice could not write such a large buffer"));
-#endif
- return false;
- }
-
- _wire->beginTransmission(_addr);
-
- // Write the prefix data (usually an address)
- if ((prefix_len != 0) && (prefix_buffer != nullptr)) {
- if (_wire->write(prefix_buffer, prefix_len) != prefix_len) {
-#ifdef DEBUG_SERIAL
- DEBUG_SERIAL.println(F("\tI2CDevice failed to write"));
-#endif
- return false;
- }
- }
-
- // Write the data itself
- if (_wire->write(buffer, len) != len) {
-#ifdef DEBUG_SERIAL
- DEBUG_SERIAL.println(F("\tI2CDevice failed to write"));
-#endif
- return false;
- }
-
-#ifdef DEBUG_SERIAL
-
- DEBUG_SERIAL.print(F("\tI2CWRITE @ 0x"));
- DEBUG_SERIAL.print(_addr, HEX);
- DEBUG_SERIAL.print(F(" :: "));
- if ((prefix_len != 0) && (prefix_buffer != nullptr)) {
- for (uint16_t i = 0; i < prefix_len; i++) {
- DEBUG_SERIAL.print(F("0x"));
- DEBUG_SERIAL.print(prefix_buffer[i], HEX);
- DEBUG_SERIAL.print(F(", "));
- }
- }
- for (uint16_t i = 0; i < len; i++) {
- DEBUG_SERIAL.print(F("0x"));
- DEBUG_SERIAL.print(buffer[i], HEX);
- DEBUG_SERIAL.print(F(", "));
- if (i % 32 == 31) {
- DEBUG_SERIAL.println();
- }
- }
-
- if (stop) {
- DEBUG_SERIAL.print("\tSTOP");
- }
-#endif
-
- if (_wire->endTransmission(stop) == 0) {
-#ifdef DEBUG_SERIAL
- DEBUG_SERIAL.println();
- // DEBUG_SERIAL.println("Sent!");
-#endif
- return true;
- } else {
-#ifdef DEBUG_SERIAL
- DEBUG_SERIAL.println("\tFailed to send!");
-#endif
- return false;
- }
-}
-
-/*!
- * @brief Read from I2C into a buffer from the I2C device.
- * Cannot be more than maxBufferSize() bytes.
- * @param buffer Pointer to buffer of data to read into
- * @param len Number of bytes from buffer to read.
- * @param stop Whether to send an I2C STOP signal on read
- * @return True if read was successful, otherwise false.
- */
-bool Adafruit_I2CDevice::read(uint8_t *buffer, size_t len, bool stop) {
- size_t pos = 0;
- while (pos < len) {
- size_t read_len =
- ((len - pos) > maxBufferSize()) ? maxBufferSize() : (len - pos);
- bool read_stop = (pos < (len - read_len)) ? false : stop;
- if (!_read(buffer + pos, read_len, read_stop))
- return false;
- pos += read_len;
- }
- return true;
-}
-
-bool Adafruit_I2CDevice::_read(uint8_t *buffer, size_t len, bool stop) {
-#if defined(TinyWireM_h)
- size_t recv = _wire->requestFrom((uint8_t)_addr, (uint8_t)len);
-#elif defined(ARDUINO_ARCH_MEGAAVR)
- size_t recv = _wire->requestFrom(_addr, len, stop);
-#else
- size_t recv = _wire->requestFrom((uint8_t)_addr, (uint8_t)len, (uint8_t)stop);
-#endif
-
- if (recv != len) {
- // Not enough data available to fulfill our obligation!
-#ifdef DEBUG_SERIAL
- DEBUG_SERIAL.print(F("\tI2CDevice did not receive enough data: "));
- DEBUG_SERIAL.println(recv);
-#endif
- return false;
- }
-
- for (uint16_t i = 0; i < len; i++) {
- buffer[i] = _wire->read();
- }
-
-#ifdef DEBUG_SERIAL
- DEBUG_SERIAL.print(F("\tI2CREAD @ 0x"));
- DEBUG_SERIAL.print(_addr, HEX);
- DEBUG_SERIAL.print(F(" :: "));
- for (uint16_t i = 0; i < len; i++) {
- DEBUG_SERIAL.print(F("0x"));
- DEBUG_SERIAL.print(buffer[i], HEX);
- DEBUG_SERIAL.print(F(", "));
- if (len % 32 == 31) {
- DEBUG_SERIAL.println();
- }
- }
- DEBUG_SERIAL.println();
-#endif
-
- return true;
-}
-
-/*!
- * @brief Write some data, then read some data from I2C into another buffer.
- * Cannot be more than maxBufferSize() bytes. The buffers can point to
- * same/overlapping locations.
- * @param write_buffer Pointer to buffer of data to write from
- * @param write_len Number of bytes from buffer to write.
- * @param read_buffer Pointer to buffer of data to read into.
- * @param read_len Number of bytes from buffer to read.
- * @param stop Whether to send an I2C STOP signal between the write and read
- * @return True if write & read was successful, otherwise false.
- */
-bool Adafruit_I2CDevice::write_then_read(const uint8_t *write_buffer,
- size_t write_len, uint8_t *read_buffer,
- size_t read_len, bool stop) {
- if (!write(write_buffer, write_len, stop)) {
- return false;
- }
-
- return read(read_buffer, read_len);
-}
-
-/*!
- * @brief Returns the 7-bit address of this device
- * @return The 7-bit address of this device
- */
-uint8_t Adafruit_I2CDevice::address(void) { return _addr; }
-
-/*!
- * @brief Change the I2C clock speed to desired (relies on
- * underlying Wire support!
- * @param desiredclk The desired I2C SCL frequency
- * @return True if this platform supports changing I2C speed.
- * Not necessarily that the speed was achieved!
- */
-bool Adafruit_I2CDevice::setSpeed(uint32_t desiredclk) {
-#if defined(__AVR_ATmega328__) || \
- defined(__AVR_ATmega328P__) // fix arduino core set clock
- // calculate TWBR correctly
-
- if ((F_CPU / 18) < desiredclk) {
-#ifdef DEBUG_SERIAL
- Serial.println(F("I2C.setSpeed too high."));
-#endif
- return false;
- }
- uint32_t atwbr = ((F_CPU / desiredclk) - 16) / 2;
- if (atwbr > 16320) {
-#ifdef DEBUG_SERIAL
- Serial.println(F("I2C.setSpeed too low."));
-#endif
- return false;
- }
-
- if (atwbr <= 255) {
- atwbr /= 1;
- TWSR = 0x0;
- } else if (atwbr <= 1020) {
- atwbr /= 4;
- TWSR = 0x1;
- } else if (atwbr <= 4080) {
- atwbr /= 16;
- TWSR = 0x2;
- } else { // if (atwbr <= 16320)
- atwbr /= 64;
- TWSR = 0x3;
- }
- TWBR = atwbr;
-
-#ifdef DEBUG_SERIAL
- Serial.print(F("TWSR prescaler = "));
- Serial.println(pow(4, TWSR));
- Serial.print(F("TWBR = "));
- Serial.println(atwbr);
-#endif
- return true;
-#elif (ARDUINO >= 157) && !defined(ARDUINO_STM32_FEATHER) && \
- !defined(TinyWireM_h)
- _wire->setClock(desiredclk);
- return true;
-
-#else
- (void)desiredclk;
- return false;
-#endif
-}
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_I2CDevice.h b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_I2CDevice.h
deleted file mode 100644
index 6bda7ba..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_I2CDevice.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef Adafruit_I2CDevice_h
-#define Adafruit_I2CDevice_h
-
-#include <Arduino.h>
-#include <Wire.h>
-
-///< The class which defines how we will talk to this device over I2C
-class Adafruit_I2CDevice {
-public:
- Adafruit_I2CDevice(uint8_t addr, TwoWire *theWire = &Wire);
- uint8_t address(void);
- bool begin(bool addr_detect = true);
- void end(void);
- bool detected(void);
-
- bool read(uint8_t *buffer, size_t len, bool stop = true);
- bool write(const uint8_t *buffer, size_t len, bool stop = true,
- const uint8_t *prefix_buffer = nullptr, size_t prefix_len = 0);
- bool write_then_read(const uint8_t *write_buffer, size_t write_len,
- uint8_t *read_buffer, size_t read_len,
- bool stop = false);
- bool setSpeed(uint32_t desiredclk);
-
- /*! @brief How many bytes we can read in a transaction
- * @return The size of the Wire receive/transmit buffer */
- size_t maxBufferSize() { return _maxBufferSize; }
-
-private:
- uint8_t _addr;
- TwoWire *_wire;
- bool _begun;
- size_t _maxBufferSize;
- bool _read(uint8_t *buffer, size_t len, bool stop);
-};
-
-#endif // Adafruit_I2CDevice_h
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_I2CRegister.h b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_I2CRegister.h
deleted file mode 100644
index 186850f..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_I2CRegister.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _ADAFRUIT_I2C_REGISTER_H_
-#define _ADAFRUIT_I2C_REGISTER_H_
-
-#include <Adafruit_BusIO_Register.h>
-#include <Arduino.h>
-
-typedef Adafruit_BusIO_Register Adafruit_I2CRegister;
-typedef Adafruit_BusIO_RegisterBits Adafruit_I2CRegisterBits;
-
-#endif
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_SPIDevice.cpp b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_SPIDevice.cpp
deleted file mode 100644
index 3283de6..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_SPIDevice.cpp
+++ /dev/null
@@ -1,512 +0,0 @@
-#include "Adafruit_SPIDevice.h"
-
-// #define DEBUG_SERIAL Serial
-
-#ifdef BUSIO_USE_FAST_PINIO
-#define BUSIO_SET_CLOCK_LOW() (*clkPort = *clkPort & ~clkPinMask)
-#define BUSIO_SET_CLOCK_HIGH() (*clkPort = *clkPort | clkPinMask)
-#define BUSIO_READ_MISO() (*misoPort & misoPinMask)
-#define BUSIO_WRITE_MOSI(value) \
- do { \
- if (value) \
- *mosiPort = *mosiPort | mosiPinMask; \
- else \
- *mosiPort = *mosiPort & ~mosiPinMask; \
- } while (0)
-#else
-#define BUSIO_SET_CLOCK_LOW() digitalWrite(_sck, LOW)
-#define BUSIO_SET_CLOCK_HIGH() digitalWrite(_sck, HIGH)
-#define BUSIO_READ_MISO() digitalRead(_miso)
-#define BUSIO_WRITE_MOSI(value) digitalWrite(_mosi, value)
-#endif
-
-/*!
- * @brief Create an SPI device with the given CS pin and settings
- * @param cspin The arduino pin number to use for chip select
- * @param freq The SPI clock frequency to use, defaults to 1MHz
- * @param dataOrder The SPI data order to use for bits within each byte,
- * defaults to SPI_BITORDER_MSBFIRST
- * @param dataMode The SPI mode to use, defaults to SPI_MODE0
- * @param theSPI The SPI bus to use, defaults to &theSPI
- */
-Adafruit_SPIDevice::Adafruit_SPIDevice(int8_t cspin, uint32_t freq,
- BusIOBitOrder dataOrder,
- uint8_t dataMode, SPIClass *theSPI) {
-#ifdef BUSIO_HAS_HW_SPI
- _cs = cspin;
- _sck = _mosi = _miso = -1;
- _spi = theSPI;
- _begun = false;
- _spiSetting = new SPISettings(freq, dataOrder, dataMode);
- _freq = freq;
- _dataOrder = dataOrder;
- _dataMode = dataMode;
-#else
- // unused, but needed to suppress compiler warns
- (void)cspin;
- (void)freq;
- (void)dataOrder;
- (void)dataMode;
- (void)theSPI;
-#endif
-}
-
-/*!
- * @brief Create an SPI device with the given CS pin and settings
- * @param cspin The arduino pin number to use for chip select
- * @param sckpin The arduino pin number to use for SCK
- * @param misopin The arduino pin number to use for MISO, set to -1 if not
- * used
- * @param mosipin The arduino pin number to use for MOSI, set to -1 if not
- * used
- * @param freq The SPI clock frequency to use, defaults to 1MHz
- * @param dataOrder The SPI data order to use for bits within each byte,
- * defaults to SPI_BITORDER_MSBFIRST
- * @param dataMode The SPI mode to use, defaults to SPI_MODE0
- */
-Adafruit_SPIDevice::Adafruit_SPIDevice(int8_t cspin, int8_t sckpin,
- int8_t misopin, int8_t mosipin,
- uint32_t freq, BusIOBitOrder dataOrder,
- uint8_t dataMode) {
- _cs = cspin;
- _sck = sckpin;
- _miso = misopin;
- _mosi = mosipin;
-
-#ifdef BUSIO_USE_FAST_PINIO
- csPort = (BusIO_PortReg *)portOutputRegister(digitalPinToPort(cspin));
- csPinMask = digitalPinToBitMask(cspin);
- if (mosipin != -1) {
- mosiPort = (BusIO_PortReg *)portOutputRegister(digitalPinToPort(mosipin));
- mosiPinMask = digitalPinToBitMask(mosipin);
- }
- if (misopin != -1) {
- misoPort = (BusIO_PortReg *)portInputRegister(digitalPinToPort(misopin));
- misoPinMask = digitalPinToBitMask(misopin);
- }
- clkPort = (BusIO_PortReg *)portOutputRegister(digitalPinToPort(sckpin));
- clkPinMask = digitalPinToBitMask(sckpin);
-#endif
-
- _freq = freq;
- _dataOrder = dataOrder;
- _dataMode = dataMode;
- _begun = false;
-}
-
-/*!
- * @brief Release memory allocated in constructors
- */
-Adafruit_SPIDevice::~Adafruit_SPIDevice() {
- if (_spiSetting)
- delete _spiSetting;
-}
-
-/*!
- * @brief Initializes SPI bus and sets CS pin high
- * @return Always returns true because there's no way to test success of SPI
- * init
- */
-bool Adafruit_SPIDevice::begin(void) {
- if (_cs != -1) {
- pinMode(_cs, OUTPUT);
- digitalWrite(_cs, HIGH);
- }
-
- if (_spi) { // hardware SPI
-#ifdef BUSIO_HAS_HW_SPI
- _spi->begin();
-#endif
- } else {
- pinMode(_sck, OUTPUT);
-
- if ((_dataMode == SPI_MODE0) || (_dataMode == SPI_MODE1)) {
- // idle low on mode 0 and 1
- digitalWrite(_sck, LOW);
- } else {
- // idle high on mode 2 or 3
- digitalWrite(_sck, HIGH);
- }
- if (_mosi != -1) {
- pinMode(_mosi, OUTPUT);
- digitalWrite(_mosi, HIGH);
- }
- if (_miso != -1) {
- pinMode(_miso, INPUT);
- }
- }
-
- _begun = true;
- return true;
-}
-
-/*!
- * @brief Transfer (send/receive) a buffer over hard/soft SPI, without
- * transaction management
- * @param buffer The buffer to send and receive at the same time
- * @param len The number of bytes to transfer
- */
-void Adafruit_SPIDevice::transfer(uint8_t *buffer, size_t len) {
- //
- // HARDWARE SPI
- //
- if (_spi) {
-#ifdef BUSIO_HAS_HW_SPI
-#if defined(SPARK)
- _spi->transfer(buffer, buffer, len, nullptr);
-#elif defined(STM32)
- for (size_t i = 0; i < len; i++) {
- _spi->transfer(buffer[i]);
- }
-#else
- _spi->transfer(buffer, len);
-#endif
- return;
-#endif
- }
-
- //
- // SOFTWARE SPI
- //
- uint8_t startbit;
- if (_dataOrder == SPI_BITORDER_LSBFIRST) {
- startbit = 0x1;
- } else {
- startbit = 0x80;
- }
-
- bool towrite, lastmosi = !(buffer[0] & startbit);
- uint8_t bitdelay_us = (1000000 / _freq) / 2;
-
- for (size_t i = 0; i < len; i++) {
- uint8_t reply = 0;
- uint8_t send = buffer[i];
-
- /*
- Serial.print("\tSending software SPI byte 0x");
- Serial.print(send, HEX);
- Serial.print(" -> 0x");
- */
-
- // Serial.print(send, HEX);
- for (uint8_t b = startbit; b != 0;
- b = (_dataOrder == SPI_BITORDER_LSBFIRST) ? b << 1 : b >> 1) {
-
- if (bitdelay_us) {
- delayMicroseconds(bitdelay_us);
- }
-
- if (_dataMode == SPI_MODE0 || _dataMode == SPI_MODE2) {
- towrite = send & b;
- if ((_mosi != -1) && (lastmosi != towrite)) {
- BUSIO_WRITE_MOSI(towrite);
- lastmosi = towrite;
- }
-
- BUSIO_SET_CLOCK_HIGH();
-
- if (bitdelay_us) {
- delayMicroseconds(bitdelay_us);
- }
-
- if (_miso != -1) {
- if (BUSIO_READ_MISO())
- reply |= b;
- }
-
- BUSIO_SET_CLOCK_LOW();
-
- } else if (_dataMode == SPI_MODE3) {
-
- if (_mosi != -1) { // transmit on falling edge
- BUSIO_WRITE_MOSI(send & b);
- }
-
- BUSIO_SET_CLOCK_LOW();
-
- if (bitdelay_us) {
- delayMicroseconds(bitdelay_us);
- }
-
- BUSIO_SET_CLOCK_HIGH();
-
- if (bitdelay_us) {
- delayMicroseconds(bitdelay_us);
- }
-
- if (_miso != -1) { // read on rising edge
- if (BUSIO_READ_MISO()) {
- reply |= b;
- }
- }
-
- } else { // || _dataMode == SPI_MODE1)
-
- BUSIO_SET_CLOCK_HIGH();
-
- if (bitdelay_us) {
- delayMicroseconds(bitdelay_us);
- }
-
- if (_mosi != -1) {
- BUSIO_WRITE_MOSI(send & b);
- }
-
- BUSIO_SET_CLOCK_LOW();
-
- if (_miso != -1) {
- if (BUSIO_READ_MISO()) {
- reply |= b;
- }
- }
- }
- }
- if (_miso != -1) {
- buffer[i] = reply;
- }
- }
- return;
-}
-
-/*!
- * @brief Transfer (send/receive) one byte over hard/soft SPI, without
- * transaction management
- * @param send The byte to send
- * @return The byte received while transmitting
- */
-uint8_t Adafruit_SPIDevice::transfer(uint8_t send) {
- uint8_t data = send;
- transfer(&data, 1);
- return data;
-}
-
-/*!
- * @brief Manually begin a transaction (calls beginTransaction if hardware
- * SPI)
- */
-void Adafruit_SPIDevice::beginTransaction(void) {
- if (_spi) {
-#ifdef BUSIO_HAS_HW_SPI
- _spi->beginTransaction(*_spiSetting);
-#endif
- }
-}
-
-/*!
- * @brief Manually end a transaction (calls endTransaction if hardware SPI)
- */
-void Adafruit_SPIDevice::endTransaction(void) {
- if (_spi) {
-#ifdef BUSIO_HAS_HW_SPI
- _spi->endTransaction();
-#endif
- }
-}
-
-/*!
- * @brief Assert/Deassert the CS pin if it is defined
- * @param value The state the CS is set to
- */
-void Adafruit_SPIDevice::setChipSelect(int value) {
- if (_cs != -1) {
- digitalWrite(_cs, value);
- }
-}
-
-/*!
- * @brief Write a buffer or two to the SPI device, with transaction
- * management.
- * @brief Manually begin a transaction (calls beginTransaction if hardware
- * SPI) with asserting the CS pin
- */
-void Adafruit_SPIDevice::beginTransactionWithAssertingCS() {
- beginTransaction();
- setChipSelect(LOW);
-}
-
-/*!
- * @brief Manually end a transaction (calls endTransaction if hardware SPI)
- * with deasserting the CS pin
- */
-void Adafruit_SPIDevice::endTransactionWithDeassertingCS() {
- setChipSelect(HIGH);
- endTransaction();
-}
-
-/*!
- * @brief Write a buffer or two to the SPI device, with transaction
- * management.
- * @param buffer Pointer to buffer of data to write
- * @param len Number of bytes from buffer to write
- * @param prefix_buffer Pointer to optional array of data to write before
- * buffer.
- * @param prefix_len Number of bytes from prefix buffer to write
- * @return Always returns true because there's no way to test success of SPI
- * writes
- */
-bool Adafruit_SPIDevice::write(const uint8_t *buffer, size_t len,
- const uint8_t *prefix_buffer,
- size_t prefix_len) {
- beginTransactionWithAssertingCS();
-
- // do the writing
-#if defined(ARDUINO_ARCH_ESP32)
- if (_spi) {
- if (prefix_len > 0) {
- _spi->transferBytes((uint8_t *)prefix_buffer, nullptr, prefix_len);
- }
- if (len > 0) {
- _spi->transferBytes((uint8_t *)buffer, nullptr, len);
- }
- } else
-#endif
- {
- for (size_t i = 0; i < prefix_len; i++) {
- transfer(prefix_buffer[i]);
- }
- for (size_t i = 0; i < len; i++) {
- transfer(buffer[i]);
- }
- }
- endTransactionWithDeassertingCS();
-
-#ifdef DEBUG_SERIAL
- DEBUG_SERIAL.print(F("\tSPIDevice Wrote: "));
- if ((prefix_len != 0) && (prefix_buffer != nullptr)) {
- for (uint16_t i = 0; i < prefix_len; i++) {
- DEBUG_SERIAL.print(F("0x"));
- DEBUG_SERIAL.print(prefix_buffer[i], HEX);
- DEBUG_SERIAL.print(F(", "));
- }
- }
- for (uint16_t i = 0; i < len; i++) {
- DEBUG_SERIAL.print(F("0x"));
- DEBUG_SERIAL.print(buffer[i], HEX);
- DEBUG_SERIAL.print(F(", "));
- if (i % 32 == 31) {
- DEBUG_SERIAL.println();
- }
- }
- DEBUG_SERIAL.println();
-#endif
-
- return true;
-}
-
-/*!
- * @brief Read from SPI into a buffer from the SPI device, with transaction
- * management.
- * @param buffer Pointer to buffer of data to read into
- * @param len Number of bytes from buffer to read.
- * @param sendvalue The 8-bits of data to write when doing the data read,
- * defaults to 0xFF
- * @return Always returns true because there's no way to test success of SPI
- * writes
- */
-bool Adafruit_SPIDevice::read(uint8_t *buffer, size_t len, uint8_t sendvalue) {
- memset(buffer, sendvalue, len); // clear out existing buffer
-
- beginTransactionWithAssertingCS();
- transfer(buffer, len);
- endTransactionWithDeassertingCS();
-
-#ifdef DEBUG_SERIAL
- DEBUG_SERIAL.print(F("\tSPIDevice Read: "));
- for (uint16_t i = 0; i < len; i++) {
- DEBUG_SERIAL.print(F("0x"));
- DEBUG_SERIAL.print(buffer[i], HEX);
- DEBUG_SERIAL.print(F(", "));
- if (len % 32 == 31) {
- DEBUG_SERIAL.println();
- }
- }
- DEBUG_SERIAL.println();
-#endif
-
- return true;
-}
-
-/*!
- * @brief Write some data, then read some data from SPI into another buffer,
- * with transaction management. The buffers can point to same/overlapping
- * locations. This does not transmit-receive at the same time!
- * @param write_buffer Pointer to buffer of data to write from
- * @param write_len Number of bytes from buffer to write.
- * @param read_buffer Pointer to buffer of data to read into.
- * @param read_len Number of bytes from buffer to read.
- * @param sendvalue The 8-bits of data to write when doing the data read,
- * defaults to 0xFF
- * @return Always returns true because there's no way to test success of SPI
- * writes
- */
-bool Adafruit_SPIDevice::write_then_read(const uint8_t *write_buffer,
- size_t write_len, uint8_t *read_buffer,
- size_t read_len, uint8_t sendvalue) {
- beginTransactionWithAssertingCS();
- // do the writing
-#if defined(ARDUINO_ARCH_ESP32)
- if (_spi) {
- if (write_len > 0) {
- _spi->transferBytes((uint8_t *)write_buffer, nullptr, write_len);
- }
- } else
-#endif
- {
- for (size_t i = 0; i < write_len; i++) {
- transfer(write_buffer[i]);
- }
- }
-
-#ifdef DEBUG_SERIAL
- DEBUG_SERIAL.print(F("\tSPIDevice Wrote: "));
- for (uint16_t i = 0; i < write_len; i++) {
- DEBUG_SERIAL.print(F("0x"));
- DEBUG_SERIAL.print(write_buffer[i], HEX);
- DEBUG_SERIAL.print(F(", "));
- if (write_len % 32 == 31) {
- DEBUG_SERIAL.println();
- }
- }
- DEBUG_SERIAL.println();
-#endif
-
- // do the reading
- for (size_t i = 0; i < read_len; i++) {
- read_buffer[i] = transfer(sendvalue);
- }
-
-#ifdef DEBUG_SERIAL
- DEBUG_SERIAL.print(F("\tSPIDevice Read: "));
- for (uint16_t i = 0; i < read_len; i++) {
- DEBUG_SERIAL.print(F("0x"));
- DEBUG_SERIAL.print(read_buffer[i], HEX);
- DEBUG_SERIAL.print(F(", "));
- if (read_len % 32 == 31) {
- DEBUG_SERIAL.println();
- }
- }
- DEBUG_SERIAL.println();
-#endif
-
- endTransactionWithDeassertingCS();
-
- return true;
-}
-
-/*!
- * @brief Write some data and read some data at the same time from SPI
- * into the same buffer, with transaction management. This is basicaly a wrapper
- * for transfer() with CS-pin and transaction management. This /does/
- * transmit-receive at the same time!
- * @param buffer Pointer to buffer of data to write/read to/from
- * @param len Number of bytes from buffer to write/read.
- * @return Always returns true because there's no way to test success of SPI
- * writes
- */
-bool Adafruit_SPIDevice::write_and_read(uint8_t *buffer, size_t len) {
- beginTransactionWithAssertingCS();
- transfer(buffer, len);
- endTransactionWithDeassertingCS();
-
- return true;
-}
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_SPIDevice.h b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_SPIDevice.h
deleted file mode 100644
index 82a0281..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/Adafruit_SPIDevice.h
+++ /dev/null
@@ -1,149 +0,0 @@
-#ifndef Adafruit_SPIDevice_h
-#define Adafruit_SPIDevice_h
-
-#include <Arduino.h>
-
-#if !defined(SPI_INTERFACES_COUNT) || \
- (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0))
-// HW SPI available
-#include <SPI.h>
-#define BUSIO_HAS_HW_SPI
-#else
-// SW SPI ONLY
-enum { SPI_MODE0, SPI_MODE1, SPI_MODE2, SPI_MODE3 };
-typedef uint8_t SPIClass;
-#endif
-
-// some modern SPI definitions don't have BitOrder enum
-#if (defined(__AVR__) && !defined(ARDUINO_ARCH_MEGAAVR)) || \
- defined(ESP8266) || defined(TEENSYDUINO) || defined(SPARK) || \
- defined(ARDUINO_ARCH_SPRESENSE) || defined(MEGATINYCORE) || \
- defined(DXCORE) || defined(ARDUINO_AVR_ATmega4809) || \
- defined(ARDUINO_AVR_ATmega4808) || defined(ARDUINO_AVR_ATmega3209) || \
- defined(ARDUINO_AVR_ATmega3208) || defined(ARDUINO_AVR_ATmega1609) || \
- defined(ARDUINO_AVR_ATmega1608) || defined(ARDUINO_AVR_ATmega809) || \
- defined(ARDUINO_AVR_ATmega808) || defined(ARDUINO_ARCH_ARC32) || \
- defined(ARDUINO_ARCH_XMC)
-
-typedef enum _BitOrder {
- SPI_BITORDER_MSBFIRST = MSBFIRST,
- SPI_BITORDER_LSBFIRST = LSBFIRST,
-} BusIOBitOrder;
-
-#elif defined(ESP32) || defined(__ASR6501__) || defined(__ASR6502__)
-
-// some modern SPI definitions don't have BitOrder enum and have different SPI
-// mode defines
-typedef enum _BitOrder {
- SPI_BITORDER_MSBFIRST = SPI_MSBFIRST,
- SPI_BITORDER_LSBFIRST = SPI_LSBFIRST,
-} BusIOBitOrder;
-
-#else
-// Some platforms have a BitOrder enum but its named MSBFIRST/LSBFIRST
-#define SPI_BITORDER_MSBFIRST MSBFIRST
-#define SPI_BITORDER_LSBFIRST LSBFIRST
-typedef BitOrder BusIOBitOrder;
-#endif
-
-#if defined(__IMXRT1062__) // Teensy 4.x
-// *Warning* I disabled the usage of FAST_PINIO as the set/clear operations
-// used in the cpp file are not atomic and can effect multiple IO pins
-// and if an interrupt happens in between the time the code reads the register
-// and writes out the updated value, that changes one or more other IO pins
-// on that same IO port, those change will be clobbered when the updated
-// values are written back. A fast version can be implemented that uses the
-// ports set and clear registers which are atomic.
-// typedef volatile uint32_t BusIO_PortReg;
-// typedef uint32_t BusIO_PortMask;
-// #define BUSIO_USE_FAST_PINIO
-
-#elif defined(__MBED__) || defined(__ZEPHYR__)
-// Boards based on RTOS cores like mbed or Zephyr are not going to expose the
-// low level registers needed for fast pin manipulation
-#undef BUSIO_USE_FAST_PINIO
-
-#elif defined(ARDUINO_ARCH_XMC)
-#undef BUSIO_USE_FAST_PINIO
-
-#elif defined(__AVR__) || defined(TEENSYDUINO)
-typedef volatile uint8_t BusIO_PortReg;
-typedef uint8_t BusIO_PortMask;
-#define BUSIO_USE_FAST_PINIO
-
-#elif defined(ESP8266) || defined(ESP32) || defined(__SAM3X8E__) || \
- defined(ARDUINO_ARCH_SAMD)
-typedef volatile uint32_t BusIO_PortReg;
-typedef uint32_t BusIO_PortMask;
-#define BUSIO_USE_FAST_PINIO
-
-#elif (defined(__arm__) || defined(ARDUINO_FEATHER52)) && \
- !defined(ARDUINO_ARCH_RP2040) && !defined(ARDUINO_SILABS) && \
- !defined(ARDUINO_UNOR4_MINIMA) && !defined(ARDUINO_UNOR4_WIFI) && \
- !defined(PORTDUINO)
-typedef volatile uint32_t BusIO_PortReg;
-typedef uint32_t BusIO_PortMask;
-#if !defined(__ASR6501__) && !defined(__ASR6502__)
-#define BUSIO_USE_FAST_PINIO
-#endif
-
-#else
-#undef BUSIO_USE_FAST_PINIO
-#endif
-
-/**! The class which defines how we will talk to this device over SPI **/
-class Adafruit_SPIDevice {
-public:
-#ifdef BUSIO_HAS_HW_SPI
- Adafruit_SPIDevice(int8_t cspin, uint32_t freq = 1000000,
- BusIOBitOrder dataOrder = SPI_BITORDER_MSBFIRST,
- uint8_t dataMode = SPI_MODE0, SPIClass *theSPI = &SPI);
-#else
- Adafruit_SPIDevice(int8_t cspin, uint32_t freq = 1000000,
- BusIOBitOrder dataOrder = SPI_BITORDER_MSBFIRST,
- uint8_t dataMode = SPI_MODE0, SPIClass *theSPI = nullptr);
-#endif
- Adafruit_SPIDevice(int8_t cspin, int8_t sck, int8_t miso, int8_t mosi,
- uint32_t freq = 1000000,
- BusIOBitOrder dataOrder = SPI_BITORDER_MSBFIRST,
- uint8_t dataMode = SPI_MODE0);
- ~Adafruit_SPIDevice();
-
- bool begin(void);
- bool read(uint8_t *buffer, size_t len, uint8_t sendvalue = 0xFF);
- bool write(const uint8_t *buffer, size_t len,
- const uint8_t *prefix_buffer = nullptr, size_t prefix_len = 0);
- bool write_then_read(const uint8_t *write_buffer, size_t write_len,
- uint8_t *read_buffer, size_t read_len,
- uint8_t sendvalue = 0xFF);
- bool write_and_read(uint8_t *buffer, size_t len);
-
- uint8_t transfer(uint8_t send);
- void transfer(uint8_t *buffer, size_t len);
- void beginTransaction(void);
- void endTransaction(void);
- void beginTransactionWithAssertingCS();
- void endTransactionWithDeassertingCS();
-
-private:
-#ifdef BUSIO_HAS_HW_SPI
- SPIClass *_spi = nullptr;
- SPISettings *_spiSetting = nullptr;
-#else
- uint8_t *_spi = nullptr;
- uint8_t *_spiSetting = nullptr;
-#endif
- uint32_t _freq;
- BusIOBitOrder _dataOrder;
- uint8_t _dataMode;
- void setChipSelect(int value);
-
- int8_t _cs, _sck, _mosi, _miso;
-#ifdef BUSIO_USE_FAST_PINIO
- BusIO_PortReg *mosiPort, *clkPort, *misoPort, *csPort;
- BusIO_PortMask mosiPinMask, misoPinMask, clkPinMask, csPinMask;
-#endif
- bool _begun;
-};
-
-#endif // Adafruit_SPIDevice_h
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/CMakeLists.txt b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/CMakeLists.txt
deleted file mode 100644
index 3fcb0b8..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/CMakeLists.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-# Adafruit Bus IO Library
-# https://github.com/adafruit/Adafruit_BusIO
-# MIT License
-
-cmake_minimum_required(VERSION 3.5)
-
-idf_component_register(SRCS "Adafruit_I2CDevice.cpp" "Adafruit_BusIO_Register.cpp" "Adafruit_SPIDevice.cpp" "Adafruit_GenericDevice.cpp"
- INCLUDE_DIRS "."
- REQUIRES arduino-esp32)
-
-project(Adafruit_BusIO)
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/LICENSE b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/LICENSE
deleted file mode 100644
index 860e3e2..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2017 Adafruit Industries
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE. \ No newline at end of file
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/README.md b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/README.md
deleted file mode 100644
index 59712ff..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Adafruit Bus IO Library [![Build Status](https://github.com/adafruit/Adafruit_BusIO/workflows/Arduino%20Library%20CI/badge.svg)](https://github.com/adafruit/Adafruit_BusIO/actions)
-
-
-This is a helper library to abstract away I2C, SPI, and 'generic transport' (e.g. UART) transactions and registers
-
-Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit!
-
-MIT license, all text above must be included in any redistribution
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/component.mk b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/component.mk
deleted file mode 100644
index 049f190..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/component.mk
+++ /dev/null
@@ -1 +0,0 @@
-COMPONENT_ADD_INCLUDEDIRS = .
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/genericdevice_uartregtest/.uno.test.skip b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/genericdevice_uartregtest/.uno.test.skip
deleted file mode 100644
index e69de29..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/genericdevice_uartregtest/.uno.test.skip
+++ /dev/null
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/genericdevice_uartregtest/genericdevice_uartregtest.ino b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/genericdevice_uartregtest/genericdevice_uartregtest.ino
deleted file mode 100644
index 59af308..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/genericdevice_uartregtest/genericdevice_uartregtest.ino
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- Advanced example of using bstracted transport for reading and writing
- register data from a UART-based device such as a TMC2209
-
- Written with help by Claude!
- https://claude.ai/chat/335f50b1-3dd8-435e-9139-57ec7ca26a3c (at this time
- chats are not shareable :(
-*/
-
-#include "Adafruit_BusIO_Register.h"
-#include "Adafruit_GenericDevice.h"
-
-// Debugging macros
-#define DEBUG_SERIAL Serial
-
-#ifdef DEBUG_SERIAL
-#define DEBUG_PRINT(x) DEBUG_SERIAL.print(x)
-#define DEBUG_PRINTLN(x) DEBUG_SERIAL.println(x)
-#define DEBUG_PRINT_HEX(x) \
- do { \
- if (x < 0x10) \
- DEBUG_SERIAL.print('0'); \
- DEBUG_SERIAL.print(x, HEX); \
- DEBUG_SERIAL.print(' '); \
- } while (0)
-#else
-#define DEBUG_PRINT(x)
-#define DEBUG_PRINTLN(x)
-#define DEBUG_PRINT_HEX(x)
-#endif
-
-#define TMC2209_IOIN 0x06
-
-class TMC2209_UART {
-private:
- Stream *_uart_stream;
- uint8_t _addr;
-
- static bool uart_read(void *thiz, uint8_t *buffer, size_t len) {
- TMC2209_UART *dev = (TMC2209_UART *)thiz;
- uint16_t timeout = 100;
- while (dev->_uart_stream->available() < len && timeout--) {
- delay(1);
- }
- if (timeout == 0) {
- DEBUG_PRINTLN("Read timeout!");
- return false;
- }
-
- DEBUG_PRINT("Reading: ");
- for (size_t i = 0; i < len; i++) {
- buffer[i] = dev->_uart_stream->read();
- DEBUG_PRINT_HEX(buffer[i]);
- }
- DEBUG_PRINTLN("");
-
- return true;
- }
-
- static bool uart_write(void *thiz, const uint8_t *buffer, size_t len) {
- TMC2209_UART *dev = (TMC2209_UART *)thiz;
- DEBUG_PRINT("Writing: ");
- for (size_t i = 0; i < len; i++) {
- DEBUG_PRINT_HEX(buffer[i]);
- }
- DEBUG_PRINTLN("");
-
- dev->_uart_stream->write(buffer, len);
- return true;
- }
-
- static bool uart_readreg(void *thiz, uint8_t *addr_buf, uint8_t addrsiz,
- uint8_t *data, uint16_t datalen) {
- TMC2209_UART *dev = (TMC2209_UART *)thiz;
- while (dev->_uart_stream->available())
- dev->_uart_stream->read();
-
- uint8_t packet[4] = {0x05, uint8_t(dev->_addr << 1), addr_buf[0], 0x00};
-
- packet[3] = calcCRC(packet, 3);
- if (!uart_write(thiz, packet, 4))
- return false;
-
- // Read back echo
- uint8_t echo[4];
- if (!uart_read(thiz, echo, 4))
- return false;
-
- // Verify echo
- for (uint8_t i = 0; i < 4; i++) {
- if (echo[i] != packet[i]) {
- DEBUG_PRINTLN("Echo mismatch");
- return false;
- }
- }
-
- uint8_t response[8]; // sync + 0xFF + reg + 4 data bytes + CRC
- if (!uart_read(thiz, response, 8))
- return false;
-
- // Verify response
- if (response[0] != 0x05) {
- DEBUG_PRINTLN("Invalid sync byte");
- return false;
- }
-
- if (response[1] != 0xFF) {
- DEBUG_PRINTLN("Invalid reply address");
- return false;
- }
-
- if (response[2] != addr_buf[0]) {
- DEBUG_PRINTLN("Register mismatch");
- return false;
- }
-
- uint8_t crc = calcCRC(response, 7);
- if (crc != response[7]) {
- DEBUG_PRINTLN("CRC mismatch");
- return false;
- }
-
- memcpy(data, &response[3], 4);
- return true;
- }
-
- static bool uart_writereg(void *thiz, uint8_t *addr_buf, uint8_t addrsiz,
- const uint8_t *data, uint16_t datalen) {
- TMC2209_UART *dev = (TMC2209_UART *)thiz;
- while (dev->_uart_stream->available())
- dev->_uart_stream->read();
-
- uint8_t packet[8] = {0x05,
- uint8_t(dev->_addr << 1),
- uint8_t(addr_buf[0] | 0x80),
- data[0],
- data[1],
- data[2],
- data[3],
- 0x00};
-
- packet[7] = calcCRC(packet, 7);
- if (!uart_write(thiz, packet, 8))
- return false;
-
- uint8_t echo[8];
- if (!uart_read(thiz, echo, 8))
- return false;
-
- for (uint8_t i = 0; i < 8; i++) {
- if (echo[i] != packet[i]) {
- DEBUG_PRINTLN("Write echo mismatch");
- return false;
- }
- }
-
- return true;
- }
-
- static uint8_t calcCRC(uint8_t *data, uint8_t length) {
- uint8_t crc = 0;
- for (uint8_t i = 0; i < length; i++) {
- uint8_t currentByte = data[i];
- for (uint8_t j = 0; j < 8; j++) {
- if ((crc >> 7) ^ (currentByte & 0x01)) {
- crc = (crc << 1) ^ 0x07;
- } else {
- crc = crc << 1;
- }
- currentByte = currentByte >> 1;
- }
- }
- return crc;
- }
-
-public:
- TMC2209_UART(Stream *serial, uint8_t addr)
- : _uart_stream(serial), _addr(addr) {}
-
- Adafruit_GenericDevice *createDevice() {
- return new Adafruit_GenericDevice(this, uart_read, uart_write, uart_readreg,
- uart_writereg);
- }
-};
-
-void setup() {
- Serial.begin(115200);
- while (!Serial)
- ;
- delay(100);
- Serial.println("TMC2209 Generic Device register read/write test!");
-
- Serial1.begin(115200);
-
- TMC2209_UART uart(&Serial1, 0);
- Adafruit_GenericDevice *device = uart.createDevice();
- device->begin();
-
- // Create register object for IOIN
- Adafruit_BusIO_Register ioin_reg(device,
- TMC2209_IOIN, // device and register address
- 4, // width = 4 bytes
- MSBFIRST, // byte order
- 1); // address width = 1 byte
- Serial.print("IOIN = 0x");
- Serial.println(ioin_reg.read(), HEX);
-
- // Create RegisterBits for VERSION field (bits 31:24)
- Adafruit_BusIO_RegisterBits version_bits(
- &ioin_reg, 8, 24); // 8 bits wide, starting at bit 24
-
- Serial.println("Reading VERSION...");
- uint8_t version = version_bits.read();
-
- Serial.print("VERSION = 0x");
- Serial.println(version, HEX);
-}
-
-void loop() { delay(1000); } \ No newline at end of file
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/genericdevice_uarttest/.uno.test.skip b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/genericdevice_uarttest/.uno.test.skip
deleted file mode 100644
index e69de29..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/genericdevice_uarttest/.uno.test.skip
+++ /dev/null
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/genericdevice_uarttest/genericdevice_uarttest.ino b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/genericdevice_uarttest/genericdevice_uarttest.ino
deleted file mode 100644
index 6a11dbf..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/genericdevice_uarttest/genericdevice_uarttest.ino
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- Abstracted transport for reading and writing data from a UART-based
- device such as a TMC2209
-
- Written with help by Claude!
- https://claude.ai/chat/335f50b1-3dd8-435e-9139-57ec7ca26a3c (at this time
- chats are not shareable :(
-*/
-
-#include "Adafruit_GenericDevice.h"
-
-/**
- * Basic UART device class that demonstrates using GenericDevice with a Stream
- * interface. This example shows how to wrap a Stream (like HardwareSerial or
- * SoftwareSerial) with read/write callbacks that can be used by BusIO's
- * register functions.
- */
-class UARTDevice {
-public:
- UARTDevice(Stream *serial) : _serial(serial) {}
-
- // Static callback for writing data to UART
- // Called by GenericDevice when data needs to be sent
- static bool uart_write(void *thiz, const uint8_t *buffer, size_t len) {
- UARTDevice *dev = (UARTDevice *)thiz;
- dev->_serial->write(buffer, len);
- return true;
- }
-
- // Static callback for reading data from UART
- // Includes timeout and will return false if not enough data available
- static bool uart_read(void *thiz, uint8_t *buffer, size_t len) {
- UARTDevice *dev = (UARTDevice *)thiz;
- uint16_t timeout = 100;
- while (dev->_serial->available() < len && timeout--) {
- delay(1);
- }
- if (timeout == 0) {
- return false;
- }
- for (size_t i = 0; i < len; i++) {
- buffer[i] = dev->_serial->read();
- }
- return true;
- }
-
- // Create a GenericDevice instance using our callbacks
- Adafruit_GenericDevice *createDevice() {
- return new Adafruit_GenericDevice(this, uart_read, uart_write);
- }
-
-private:
- Stream *_serial; // Underlying Stream instance (HardwareSerial, etc)
-};
-
-void setup() {
- Serial.begin(115200);
- while (!Serial)
- ;
- delay(100);
-
- Serial.println("Generic Device test!");
-
- // Initialize UART for device communication
- Serial1.begin(115200);
-
- // Create UART wrapper and BusIO device
- UARTDevice uart(&Serial1);
- Adafruit_GenericDevice *device = uart.createDevice();
- device->begin();
-
- // Test write/read cycle
- uint8_t write_buf[4] = {0x5, 0x0, 0x0, 0x48};
- uint8_t read_buf[8];
-
- Serial.println("Writing data...");
- if (!device->write(write_buf, 4)) {
- Serial.println("Write failed!");
- return;
- }
-
- Serial.println("Reading response...");
- if (!device->read(read_buf, 8)) {
- Serial.println("Read failed!");
- return;
- }
-
- // Print response bytes
- Serial.print("Got response: ");
- for (int i = 0; i < 8; i++) {
- Serial.print("0x");
- Serial.print(read_buf[i], HEX);
- Serial.print(" ");
- }
- Serial.println();
-}
-
-void loop() { delay(1000); } \ No newline at end of file
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/i2c_address_detect/i2c_address_detect.ino b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/i2c_address_detect/i2c_address_detect.ino
deleted file mode 100644
index f2e6ba7..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/i2c_address_detect/i2c_address_detect.ino
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <Adafruit_I2CDevice.h>
-
-Adafruit_I2CDevice i2c_dev = Adafruit_I2CDevice(0x10);
-
-void setup() {
- while (!Serial) {
- delay(10);
- }
- Serial.begin(115200);
- Serial.println("I2C address detection test");
-
- if (!i2c_dev.begin()) {
- Serial.print("Did not find device at 0x");
- Serial.println(i2c_dev.address(), HEX);
- while (1)
- ;
- }
- Serial.print("Device found on address 0x");
- Serial.println(i2c_dev.address(), HEX);
-}
-
-void loop() {}
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/i2c_readwrite/i2c_readwrite.ino b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/i2c_readwrite/i2c_readwrite.ino
deleted file mode 100644
index 4ac2626..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/i2c_readwrite/i2c_readwrite.ino
+++ /dev/null
@@ -1,45 +0,0 @@
-#include <Adafruit_I2CDevice.h>
-
-#define I2C_ADDRESS 0x60
-Adafruit_I2CDevice i2c_dev = Adafruit_I2CDevice(I2C_ADDRESS);
-
-void setup() {
- while (!Serial) {
- delay(10);
- }
- Serial.begin(115200);
- Serial.println("I2C device read and write test");
-
- if (!i2c_dev.begin()) {
- Serial.print("Did not find device at 0x");
- Serial.println(i2c_dev.address(), HEX);
- while (1)
- ;
- }
- Serial.print("Device found on address 0x");
- Serial.println(i2c_dev.address(), HEX);
-
- uint8_t buffer[32];
- // Try to read 32 bytes
- i2c_dev.read(buffer, 32);
- Serial.print("Read: ");
- for (uint8_t i = 0; i < 32; i++) {
- Serial.print("0x");
- Serial.print(buffer[i], HEX);
- Serial.print(", ");
- }
- Serial.println();
-
- // read a register by writing first, then reading
- buffer[0] = 0x0C; // we'll reuse the same buffer
- i2c_dev.write_then_read(buffer, 1, buffer, 2, false);
- Serial.print("Write then Read: ");
- for (uint8_t i = 0; i < 2; i++) {
- Serial.print("0x");
- Serial.print(buffer[i], HEX);
- Serial.print(", ");
- }
- Serial.println();
-}
-
-void loop() {}
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/i2c_registers/i2c_registers.ino b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/i2c_registers/i2c_registers.ino
deleted file mode 100644
index 2d44c83..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/i2c_registers/i2c_registers.ino
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <Adafruit_BusIO_Register.h>
-#include <Adafruit_I2CDevice.h>
-
-#define I2C_ADDRESS 0x60
-Adafruit_I2CDevice i2c_dev = Adafruit_I2CDevice(I2C_ADDRESS);
-
-void setup() {
- while (!Serial) {
- delay(10);
- }
- Serial.begin(115200);
- Serial.println("I2C device register test");
-
- if (!i2c_dev.begin()) {
- Serial.print("Did not find device at 0x");
- Serial.println(i2c_dev.address(), HEX);
- while (1)
- ;
- }
- Serial.print("Device found on address 0x");
- Serial.println(i2c_dev.address(), HEX);
-
- Adafruit_BusIO_Register id_reg =
- Adafruit_BusIO_Register(&i2c_dev, 0x0C, 2, LSBFIRST);
- uint16_t id;
- id_reg.read(&id);
- Serial.print("ID register = 0x");
- Serial.println(id, HEX);
-
- Adafruit_BusIO_Register thresh_reg =
- Adafruit_BusIO_Register(&i2c_dev, 0x01, 2, LSBFIRST);
- uint16_t thresh;
- thresh_reg.read(&thresh);
- Serial.print("Initial threshold register = 0x");
- Serial.println(thresh, HEX);
-
- thresh_reg.write(~thresh);
-
- Serial.print("Post threshold register = 0x");
- Serial.println(thresh_reg.read(), HEX);
-}
-
-void loop() {} \ No newline at end of file
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/i2corspi_register/i2corspi_register.ino b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/i2corspi_register/i2corspi_register.ino
deleted file mode 100644
index be04606..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/i2corspi_register/i2corspi_register.ino
+++ /dev/null
@@ -1,40 +0,0 @@
-#include <Adafruit_BusIO_Register.h>
-
-// Define which interface to use by setting the unused interface to NULL!
-
-#define SPIDEVICE_CS 10
-Adafruit_SPIDevice *spi_dev = NULL; // new Adafruit_SPIDevice(SPIDEVICE_CS);
-
-#define I2C_ADDRESS 0x5D
-Adafruit_I2CDevice *i2c_dev = new Adafruit_I2CDevice(I2C_ADDRESS);
-
-void setup() {
- while (!Serial) {
- delay(10);
- }
- Serial.begin(115200);
- Serial.println("I2C or SPI device register test");
-
- if (spi_dev && !spi_dev->begin()) {
- Serial.println("Could not initialize SPI device");
- }
-
- if (i2c_dev) {
- if (i2c_dev->begin()) {
- Serial.print("Device found on I2C address 0x");
- Serial.println(i2c_dev->address(), HEX);
- } else {
- Serial.print("Did not find I2C device at 0x");
- Serial.println(i2c_dev->address(), HEX);
- }
- }
-
- Adafruit_BusIO_Register id_reg =
- Adafruit_BusIO_Register(i2c_dev, spi_dev, ADDRBIT8_HIGH_TOREAD, 0x0F);
- uint8_t id = 0;
- id_reg.read(&id);
- Serial.print("ID register = 0x");
- Serial.println(id, HEX);
-}
-
-void loop() {}
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/spi_modetest/spi_modetest.ino b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/spi_modetest/spi_modetest.ino
deleted file mode 100644
index ebf14f9..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/spi_modetest/spi_modetest.ino
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <Adafruit_SPIDevice.h>
-
-#define SPIDEVICE_CS 10
-Adafruit_SPIDevice spi_dev =
- Adafruit_SPIDevice(SPIDEVICE_CS, 100000, SPI_BITORDER_MSBFIRST, SPI_MODE1);
-// Adafruit_SPIDevice spi_dev = Adafruit_SPIDevice(SPIDEVICE_CS, 13, 12, 11,
-// 100000, SPI_BITORDER_MSBFIRST, SPI_MODE1);
-
-void setup() {
- while (!Serial) {
- delay(10);
- }
- Serial.begin(115200);
- Serial.println("SPI device mode test");
-
- if (!spi_dev.begin()) {
- Serial.println("Could not initialize SPI device");
- while (1)
- ;
- }
-}
-
-void loop() {
- Serial.println("\n\nTransfer test");
- for (uint16_t x = 0; x <= 0xFF; x++) {
- uint8_t i = x;
- Serial.print("0x");
- Serial.print(i, HEX);
- spi_dev.read(&i, 1, i);
- Serial.print("/");
- Serial.print(i, HEX);
- Serial.print(", ");
- delay(25);
- }
-} \ No newline at end of file
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/spi_readwrite/spi_readwrite.ino b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/spi_readwrite/spi_readwrite.ino
deleted file mode 100644
index 4b9ecf1..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/spi_readwrite/spi_readwrite.ino
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <Adafruit_SPIDevice.h>
-
-#define SPIDEVICE_CS 10
-Adafruit_SPIDevice spi_dev = Adafruit_SPIDevice(SPIDEVICE_CS);
-
-void setup() {
- while (!Serial) {
- delay(10);
- }
- Serial.begin(115200);
- Serial.println("SPI device read and write test");
-
- if (!spi_dev.begin()) {
- Serial.println("Could not initialize SPI device");
- while (1)
- ;
- }
-
- uint8_t buffer[32];
-
- // Try to read 32 bytes
- spi_dev.read(buffer, 32);
- Serial.print("Read: ");
- for (uint8_t i = 0; i < 32; i++) {
- Serial.print("0x");
- Serial.print(buffer[i], HEX);
- Serial.print(", ");
- }
- Serial.println();
-
- // read a register by writing first, then reading
- buffer[0] = 0x8F; // we'll reuse the same buffer
- spi_dev.write_then_read(buffer, 1, buffer, 2, false);
- Serial.print("Write then Read: ");
- for (uint8_t i = 0; i < 2; i++) {
- Serial.print("0x");
- Serial.print(buffer[i], HEX);
- Serial.print(", ");
- }
- Serial.println();
-}
-
-void loop() {}
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/spi_register_bits/spi_register_bits.ino b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/spi_register_bits/spi_register_bits.ino
deleted file mode 100644
index d11b440..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/spi_register_bits/spi_register_bits.ino
+++ /dev/null
@@ -1,268 +0,0 @@
-/***************************************************
-
- This is an example for how to use Adafruit_BusIO_RegisterBits from
- Adafruit_BusIO library.
-
- Designed specifically to work with the Adafruit RTD Sensor
- ----> https://www.adafruit.com/products/3328
- uisng a MAX31865 RTD-to-Digital Converter
- ----> https://datasheets.maximintegrated.com/en/ds/MAX31865.pdf
-
- This sensor uses SPI to communicate, 4 pins are required to
- interface.
- A fifth pin helps to detect when a new conversion is ready.
-
- Adafruit invests time and resources providing this open source code,
- please support Adafruit and open-source hardware by purchasing
- products from Adafruit!
-
- Example written (2020/3) by Andreas Hardtung/AnHard.
- BSD license, all text above must be included in any redistribution
- ****************************************************/
-
-#include <Adafruit_BusIO_Register.h>
-#include <Adafruit_SPIDevice.h>
-
-#define MAX31865_SPI_SPEED (5000000)
-#define MAX31865_SPI_BITORDER (SPI_BITORDER_MSBFIRST)
-#define MAX31865_SPI_MODE (SPI_MODE1)
-
-#define MAX31865_SPI_CS (10)
-#define MAX31865_READY_PIN (2)
-
-Adafruit_SPIDevice spi_dev = Adafruit_SPIDevice(
- MAX31865_SPI_CS, MAX31865_SPI_SPEED, MAX31865_SPI_BITORDER,
- MAX31865_SPI_MODE, &SPI); // Hardware SPI
-// Adafruit_SPIDevice spi_dev = Adafruit_SPIDevice( MAX31865_SPI_CS, 13, 12, 11,
-// MAX31865_SPI_SPEED, MAX31865_SPI_BITORDER, MAX31865_SPI_MODE); // Software
-// SPI
-
-// MAX31865 chip related
-// *********************************************************************************************
-Adafruit_BusIO_Register config_reg =
- Adafruit_BusIO_Register(&spi_dev, 0x00, ADDRBIT8_HIGH_TOWRITE, 1, MSBFIRST);
-Adafruit_BusIO_RegisterBits bias_bit =
- Adafruit_BusIO_RegisterBits(&config_reg, 1, 7);
-Adafruit_BusIO_RegisterBits auto_bit =
- Adafruit_BusIO_RegisterBits(&config_reg, 1, 6);
-Adafruit_BusIO_RegisterBits oneS_bit =
- Adafruit_BusIO_RegisterBits(&config_reg, 1, 5);
-Adafruit_BusIO_RegisterBits wire_bit =
- Adafruit_BusIO_RegisterBits(&config_reg, 1, 4);
-Adafruit_BusIO_RegisterBits faultT_bits =
- Adafruit_BusIO_RegisterBits(&config_reg, 2, 2);
-Adafruit_BusIO_RegisterBits faultR_bit =
- Adafruit_BusIO_RegisterBits(&config_reg, 1, 1);
-Adafruit_BusIO_RegisterBits fi50hz_bit =
- Adafruit_BusIO_RegisterBits(&config_reg, 1, 0);
-
-Adafruit_BusIO_Register rRatio_reg =
- Adafruit_BusIO_Register(&spi_dev, 0x01, ADDRBIT8_HIGH_TOWRITE, 2, MSBFIRST);
-Adafruit_BusIO_RegisterBits rRatio_bits =
- Adafruit_BusIO_RegisterBits(&rRatio_reg, 15, 1);
-Adafruit_BusIO_RegisterBits fault_bit =
- Adafruit_BusIO_RegisterBits(&rRatio_reg, 1, 0);
-
-Adafruit_BusIO_Register maxRratio_reg =
- Adafruit_BusIO_Register(&spi_dev, 0x03, ADDRBIT8_HIGH_TOWRITE, 2, MSBFIRST);
-Adafruit_BusIO_RegisterBits maxRratio_bits =
- Adafruit_BusIO_RegisterBits(&maxRratio_reg, 15, 1);
-
-Adafruit_BusIO_Register minRratio_reg =
- Adafruit_BusIO_Register(&spi_dev, 0x05, ADDRBIT8_HIGH_TOWRITE, 2, MSBFIRST);
-Adafruit_BusIO_RegisterBits minRratio_bits =
- Adafruit_BusIO_RegisterBits(&minRratio_reg, 15, 1);
-
-Adafruit_BusIO_Register fault_reg =
- Adafruit_BusIO_Register(&spi_dev, 0x07, ADDRBIT8_HIGH_TOWRITE, 1, MSBFIRST);
-Adafruit_BusIO_RegisterBits range_high_fault_bit =
- Adafruit_BusIO_RegisterBits(&fault_reg, 1, 7);
-Adafruit_BusIO_RegisterBits range_low_fault_bit =
- Adafruit_BusIO_RegisterBits(&fault_reg, 1, 6);
-Adafruit_BusIO_RegisterBits refin_high_fault_bit =
- Adafruit_BusIO_RegisterBits(&fault_reg, 1, 5);
-Adafruit_BusIO_RegisterBits refin_low_fault_bit =
- Adafruit_BusIO_RegisterBits(&fault_reg, 1, 4);
-Adafruit_BusIO_RegisterBits rtdin_low_fault_bit =
- Adafruit_BusIO_RegisterBits(&fault_reg, 1, 3);
-Adafruit_BusIO_RegisterBits voltage_fault_bit =
- Adafruit_BusIO_RegisterBits(&fault_reg, 1, 2);
-
-// Print the details of the configuration register.
-void printConfig(void) {
- Serial.print("BIAS: ");
- if (bias_bit.read())
- Serial.print("ON");
- else
- Serial.print("OFF");
- Serial.print(", AUTO: ");
- if (auto_bit.read())
- Serial.print("ON");
- else
- Serial.print("OFF");
- Serial.print(", ONES: ");
- if (oneS_bit.read())
- Serial.print("ON");
- else
- Serial.print("OFF");
- Serial.print(", WIRE: ");
- if (wire_bit.read())
- Serial.print("3");
- else
- Serial.print("2/4");
- Serial.print(", FAULTCLEAR: ");
- if (faultR_bit.read())
- Serial.print("ON");
- else
- Serial.print("OFF");
- Serial.print(", ");
- if (fi50hz_bit.read())
- Serial.print("50HZ");
- else
- Serial.print("60HZ");
- Serial.println();
-}
-
-// Check and print faults. Then clear them.
-void checkFaults(void) {
- if (fault_bit.read()) {
- Serial.print("MAX: ");
- Serial.println(maxRratio_bits.read());
- Serial.print("VAL: ");
- Serial.println(rRatio_bits.read());
- Serial.print("MIN: ");
- Serial.println(minRratio_bits.read());
-
- if (range_high_fault_bit.read())
- Serial.println("Range high fault");
- if (range_low_fault_bit.read())
- Serial.println("Range low fault");
- if (refin_high_fault_bit.read())
- Serial.println("REFIN high fault");
- if (refin_low_fault_bit.read())
- Serial.println("REFIN low fault");
- if (rtdin_low_fault_bit.read())
- Serial.println("RTDIN low fault");
- if (voltage_fault_bit.read())
- Serial.println("Voltage fault");
-
- faultR_bit.write(1); // clear fault
- }
-}
-
-void setup() {
-#if (MAX31865_1_READY_PIN != -1)
- pinMode(MAX31865_READY_PIN, INPUT_PULLUP);
-#endif
-
- while (!Serial) {
- delay(10);
- }
- Serial.begin(115200);
- Serial.println("SPI Adafruit_BusIO_RegisterBits test on MAX31865");
-
- if (!spi_dev.begin()) {
- Serial.println("Could not initialize SPI device");
- while (1)
- ;
- }
-
- // Set up for automode 50Hz. We don't care about selfheating. We want the
- // highest possible sampling rate.
- auto_bit.write(0); // Don't switch filtermode while auto_mode is on.
- fi50hz_bit.write(1); // Set filter to 50Hz mode.
- faultR_bit.write(1); // Clear faults.
- bias_bit.write(1); // In automode we want to have the bias current always on.
- delay(5); // Wait until bias current settles down.
- // 10.5 time constants of the input RC network is required.
- // 10ms worst case for 10kω reference resistor and a 0.1µF capacitor
- // across the RTD inputs. Adafruit Module has 0.1µF and only
- // 430/4300ω So here 0.43/4.3ms
- auto_bit.write(
- 1); // Now we can set automode. Automatically starting first conversion.
-
-// Test the READY_PIN
-#if (defined(MAX31865_READY_PIN) && (MAX31865_READY_PIN != -1))
- int i = 0;
- while (digitalRead(MAX31865_READY_PIN) && i++ <= 100) {
- delay(1);
- }
- if (i >= 100) {
- Serial.print("ERROR: Max31865 Pin detection does not work. PIN:");
- Serial.println(MAX31865_READY_PIN);
- }
-#else
- delay(100);
-#endif
-
- // Set ratio range.
- // Setting the temperatures would need some more calculation - not related to
- // Adafruit_BusIO_RegisterBits.
- uint16_t ratio = rRatio_bits.read();
- maxRratio_bits.write((ratio < 0x8fffu - 1000u) ? ratio + 1000u : 0x8fffu);
- minRratio_bits.write((ratio > 1000u) ? ratio - 1000u : 0u);
-
- printConfig();
- checkFaults();
-}
-
-void loop() {
-#if (defined(MAX31865_READY_PIN) && (MAX31865_1_READY_PIN != -1))
- // Is conversion ready?
- if (!digitalRead(MAX31865_READY_PIN))
-#else
- // Warant conversion is ready.
- delay(21); // 21ms for 50Hz-mode. 19ms in 60Hz-mode.
-#endif
- {
- // Read ratio, calculate temperature, scale, filter and print.
- Serial.println(rRatio2C(rRatio_bits.read()) * 100.0f,
- 0); // Temperature scaled by 100
- // Check, print, clear faults.
- checkFaults();
- }
-
- // Do something else.
- // delay(15000);
-}
-
-// Module/Sensor related. Here Adafruit PT100 module with a 2_Wire PT100 Class C
-// *****************************
-float rRatio2C(uint16_t ratio) {
- // A simple linear conversion.
- const float R0 = 100.0f;
- const float Rref = 430.0f;
- const float alphaPT = 0.003850f;
- const float ADCmax = (1u << 15) - 1.0f;
- const float rscale = Rref / ADCmax;
- // Measured temperature in boiling water 101.08°C with factor a = 1 and b = 0.
- // Rref and MAX at about 22±2°C. Measured temperature in ice/water bath 0.76°C
- // with factor a = 1 and b = 0. Rref and MAX at about 22±2°C.
- // const float a = 1.0f / (alphaPT * R0);
- const float a = (100.0f / 101.08f) / (alphaPT * R0);
- // const float b = 0.0f; // 101.08
- const float b = -0.76f; // 100.32 > 101.08
-
- return filterRing(((ratio * rscale) - R0) * a + b);
-}
-
-// General purpose
-// *********************************************************************************************
-#define RINGLENGTH 250
-float filterRing(float newVal) {
- static float ring[RINGLENGTH] = {0.0};
- static uint8_t ringIndex = 0;
- static bool ringFull = false;
-
- if (ringIndex == RINGLENGTH) {
- ringFull = true;
- ringIndex = 0;
- }
- ring[ringIndex] = newVal;
- uint8_t loopEnd = (ringFull) ? RINGLENGTH : ringIndex + 1;
- float ringSum = 0.0f;
- for (uint8_t i = 0; i < loopEnd; i++)
- ringSum += ring[i];
- ringIndex++;
- return ringSum / loopEnd;
-}
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/spi_registers/spi_registers.ino b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/spi_registers/spi_registers.ino
deleted file mode 100644
index af6069b..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/examples/spi_registers/spi_registers.ino
+++ /dev/null
@@ -1,40 +0,0 @@
-#include <Adafruit_BusIO_Register.h>
-#include <Adafruit_SPIDevice.h>
-
-#define SPIDEVICE_CS 10
-Adafruit_SPIDevice spi_dev = Adafruit_SPIDevice(SPIDEVICE_CS);
-
-void setup() {
- while (!Serial) {
- delay(10);
- }
- Serial.begin(115200);
- Serial.println("SPI device register test");
-
- if (!spi_dev.begin()) {
- Serial.println("Could not initialize SPI device");
- while (1)
- ;
- }
-
- Adafruit_BusIO_Register id_reg =
- Adafruit_BusIO_Register(&spi_dev, 0x0F, ADDRBIT8_HIGH_TOREAD);
- uint8_t id = 0;
- id_reg.read(&id);
- Serial.print("ID register = 0x");
- Serial.println(id, HEX);
-
- Adafruit_BusIO_Register thresh_reg = Adafruit_BusIO_Register(
- &spi_dev, 0x0C, ADDRBIT8_HIGH_TOREAD, 2, LSBFIRST);
- uint16_t thresh = 0;
- thresh_reg.read(&thresh);
- Serial.print("Initial threshold register = 0x");
- Serial.println(thresh, HEX);
-
- thresh_reg.write(~thresh);
-
- Serial.print("Post threshold register = 0x");
- Serial.println(thresh_reg.read(), HEX);
-}
-
-void loop() {}
diff --git a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/library.properties b/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/library.properties
deleted file mode 100644
index 1615468..0000000
--- a/.pio/libdeps/esp32-s3-n16r8/Adafruit BusIO/library.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-name=Adafruit BusIO
-version=1.17.4
-author=Adafruit
-maintainer=Adafruit <info@adafruit.com>
-sentence=This is a library for abstracting away UART, I2C and SPI interfacing
-paragraph=This is a library for abstracting away UART, I2C and SPI interfacing
-category=Signal Input/Output
-url=https://github.com/adafruit/Adafruit_BusIO
-architectures=*