nanoFramework.Iot.Device.At24cxx
1.0.641
Prefix Reserved
dotnet add package nanoFramework.Iot.Device.At24cxx --version 1.0.641
NuGet\Install-Package nanoFramework.Iot.Device.At24cxx -Version 1.0.641
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="nanoFramework.Iot.Device.At24cxx" Version="1.0.641" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="nanoFramework.Iot.Device.At24cxx" Version="1.0.641" />
<PackageReference Include="nanoFramework.Iot.Device.At24cxx" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add nanoFramework.Iot.Device.At24cxx --version 1.0.641
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: nanoFramework.Iot.Device.At24cxx, 1.0.641"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package nanoFramework.Iot.Device.At24cxx@1.0.641
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=nanoFramework.Iot.Device.At24cxx&version=1.0.641
#tool nuget:?package=nanoFramework.Iot.Device.At24cxx&version=1.0.641
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
AT24C32/AT24C64/AT24C128/AT24C256 family of I2C EEPROM
The At24cxx is a family of Serial EEPROM utilizing an I2C (2-wire) serial interface.
Documentation
This implementation supports the following devices:
Usage
Important: I2C pins for the ESP32 must be properly setup the before creating the I2cDevice
. For this, make sure you install the nanoFramework.Hardware.Esp32
NuGet and use the Configuration
class to configure the pins:
// When connecting with an ESP32 device you will need to configure the I2C GPIOs used for the bus.
Configuration.SetPinFunction(Gpio.IO21, DeviceFunction.I2C1_DATA);
Configuration.SetPinFunction(Gpio.IO22, DeviceFunction.I2C1_CLOCK);
For other devices like STM32, please make sure you're using the preset pins for the I2C bus you want to use.
using Iot.Device.At24cxx;
using nanoFramework.Hardware.Esp32;
using System.Device.I2c;
using System.Diagnostics;
using System.Text;
using System.Threading;
// Setup ESP32 I2C port.
Configuration.SetPinFunction(Gpio.IO21, DeviceFunction.I2C1_DATA);
Configuration.SetPinFunction(Gpio.IO22, DeviceFunction.I2C1_CLOCK);
// Setup At24c32c device.
I2cConnectionSettings settings = new I2cConnectionSettings(1, At24c32.DefaultI2cAddress);
I2cDevice i2cDevice = new I2cDevice(settings);
At24c32 eeprom = new At24c32(i2cDevice);
// Write string to device.
string message = "Hello from nanoFramework!";
byte[] encodedMessage = Encoding.UTF8.GetBytes(message);
int messageAddress = 0x0;
uint writeResult = eeprom.Write(messageAddress, encodedMessage);
Debug.WriteLine($"\"{message}\" written to EEPROM at 0x{messageAddress:X} ({writeResult} bytes)");
Thread.Sleep(100);
// Read back message from device.
byte[] receivedData = eeprom.Read(messageAddress, message.Length);
string decodedMessage = Encoding.UTF8.GetString(receivedData, 0, receivedData.Length);
Debug.WriteLine($"\"{decodedMessage}\" read from EEPROM at 0x{messageAddress:X}");
Thread.Sleep(100);
// Write byte to end of available device memory.
byte value = 0xA9;
int byteAddress = eeprom.Size - 1;
uint writeByteResult = eeprom.WriteByte(byteAddress, value);
Debug.WriteLine($"0x{value:X} written to EEPROM at 0x{byteAddress:X} ({writeByteResult} byte)");
Thread.Sleep(100);
// Read back byte from end of available device memory.
byte receivedByte = eeprom.ReadByte(byteAddress);
Debug.WriteLine($"0x{receivedByte:X} read from EEPROM at 0x{byteAddress:X}");
Thread.Sleep(100);
// Sequentially read back message from device byte-by-byte using the devices internal address counter.
// Since our last read from the device was at its last available byte, the internal address counter has now rolled over to point at the first byte.
byte[] receivedCharacter = new byte[1];
for (int i = 0; i < message.Length; i++)
{
receivedCharacter[0] = eeprom.ReadByte();
char[] character = Encoding.UTF8.GetChars(receivedCharacter, 0, 1);
Debug.WriteLine($"'{character[0]}' read from EEPROM");
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET Framework | net is compatible. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
- nanoFramework.CoreLibrary (>= 1.17.11)
- nanoFramework.System.Device.I2c (>= 1.1.29)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.641 | 199 | 4/2/2025 |
1.0.629 | 202 | 3/11/2025 |
1.0.599 | 132 | 2/26/2025 |
1.0.552 | 142 | 2/4/2025 |
1.0.549 | 134 | 2/4/2025 |
1.0.532 | 142 | 1/31/2025 |
1.0.514 | 119 | 1/13/2025 |
1.0.495 | 126 | 12/30/2024 |
1.0.473 | 139 | 12/16/2024 |
1.0.462 | 142 | 12/4/2024 |
1.0.450 | 151 | 10/23/2024 |
1.0.408 | 139 | 8/28/2024 |
1.0.372 | 139 | 7/24/2024 |
1.0.347 | 159 | 6/14/2024 |
1.0.337 | 159 | 5/29/2024 |
1.0.329 | 158 | 5/17/2024 |
1.0.325 | 140 | 5/15/2024 |
1.0.313 | 159 | 4/15/2024 |
1.0.291 | 166 | 3/22/2024 |
1.0.213 | 244 | 11/10/2023 |
1.0.161 | 190 | 9/6/2023 |
1.0.106 | 197 | 5/26/2023 |
1.0.93 | 188 | 5/16/2023 |
1.0.90 | 187 | 5/12/2023 |
1.0.85 | 199 | 5/11/2023 |
1.0.79 | 197 | 5/10/2023 |
1.0.74 | 210 | 5/3/2023 |
1.0.50 | 272 | 3/17/2023 |
1.0.30 | 303 | 2/22/2023 |
1.0.1 | 321 | 1/13/2023 |