nanoFramework.Iot.Device.Chsc6540
1.1.907
Prefix Reserved
dotnet add package nanoFramework.Iot.Device.Chsc6540 --version 1.1.907
NuGet\Install-Package nanoFramework.Iot.Device.Chsc6540 -Version 1.1.907
<PackageReference Include="nanoFramework.Iot.Device.Chsc6540" Version="1.1.907" />
<PackageVersion Include="nanoFramework.Iot.Device.Chsc6540" Version="1.1.907" />
<PackageReference Include="nanoFramework.Iot.Device.Chsc6540" />
paket add nanoFramework.Iot.Device.Chsc6540 --version 1.1.907
#r "nuget: nanoFramework.Iot.Device.Chsc6540, 1.1.907"
#:package nanoFramework.Iot.Device.Chsc6540@1.1.907
#addin nuget:?package=nanoFramework.Iot.Device.Chsc6540&version=1.1.907
#tool nuget:?package=nanoFramework.Iot.Device.Chsc6540&version=1.1.907
CHSC6540 - Touch screen controller
The CHSC6540 is the touch screen controllers of the M5Stack Tough.
Documentation
- More information on the touch controller, unfortunately, the datasheet isn't available from the manufacturer. Only an incomplete shadow copy from a content provider here.
Usage
Important: make sure you properly setup the I2C pins especially for ESP32 before creating the I2cDevice, make sure you install the nanoFramework.Hardware.ESP32 nuget:
//////////////////////////////////////////////////////////////////////
// when connecting to an ESP32 device, need to configure the I2C GPIOs
// used for the bus
Configuration.SetPinFunction(21, DeviceFunction.I2C1_DATA);
Configuration.SetPinFunction(22, 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.
Note: this sample requires a M5Stack Tough. If you want to use another device, just remove all the related NuGet packages.
using System.Device.Gpio;
using System.Device.I2c;
using System.Diagnostics;
using System.Threading;
using Iot.Device.Chsc6540;
using nanoFramework.Hardware.Esp32;
//////////////////////////////////////////////////////////////////////
// when connecting to an ESP32 device, need to configure the I2C GPIOs
// used for the bus
Configuration.SetPinFunction(21, DeviceFunction.I2C1_DATA);
Configuration.SetPinFunction(22, DeviceFunction.I2C1_CLOCK);
I2cConnectionSettings settings = new(1, Chsc6540.DefaultI2cAddress);
using I2cDevice device = I2cDevice.Create(settings);
using GpioController gpio = new();
using Chsc6540 sensor = new(device);
sensor.SetInterruptMode(true);
gpio.OpenPin(39, PinMode.Input);
// This will enable an event on GPIO39 on falling edge when the screen if touched
gpio.RegisterCallbackForPinValueChangedEvent(39, PinEventTypes.Falling, TouchInterrupCallback);
while (true)
{
Thread.Sleep(20);
}
void TouchInterrupCallback(object sender, PinValueChangedEventArgs pinValueChangedEventArgs)
{
Debug.WriteLine("Touch interrupt");
var points = sensor.GetNumberPoints();
if (points == 1)
{
var point = sensor.GetPoint(true);
// Some controllers supports as well events, you can get access to them as well thru point.Event
Debug.WriteLine($"ID: {point.TouchId}, X: {point.X}, Y: {point.Y}, Weight: {point.Weigth}, Misc: {point.Miscelaneous}");
}
else if (points == 2)
{
var dp = sensor.GetDoublePoints();
Debug.WriteLine($"ID: {dp.Point1.TouchId}, X: {dp.Point1.X}, Y: {dp.Point1.Y}, Weight: {dp.Point1.Weigth}, Misc: {dp.Point1.Miscelaneous}");
Debug.WriteLine($"ID: {dp.Point2.TouchId}, X: {dp.Point2.X}, Y: {dp.Point2.Y}, Weight: {dp.Point2.Weigth}, Misc: {dp.Point2.Miscelaneous}");
}
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET Framework | net is compatible. |
-
- nanoFramework.CoreLibrary (>= 1.17.11)
- nanoFramework.Graphics.Core (>= 1.2.45)
- nanoFramework.System.Device.I2c (>= 1.1.29)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on nanoFramework.Iot.Device.Chsc6540:
| Package | Downloads |
|---|---|
|
nanoFramework.Tough
This package includes the nanoFramework.Tough assembly for .NET nanoFramework C# projects. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on nanoFramework.Iot.Device.Chsc6540:
| Repository | Stars |
|---|---|
|
nanoframework/nanoFramework.M5Stack
:package: Board support package for M5Stack, M5StickC and M5StickCPlus for .NET nanoFramework
|
| Version | Downloads | Last Updated |
|---|---|---|
| 1.1.907 | 220 | 10/2/2025 |
| 1.1.864 | 386 | 4/2/2025 |
| 1.1.852 | 327 | 3/11/2025 |
| 1.1.822 | 487 | 2/26/2025 |
| 1.1.785 | 443 | 2/4/2025 |
| 1.1.775 | 290 | 2/4/2025 |
| 1.1.772 | 192 | 2/4/2025 |
| 1.1.755 | 311 | 1/31/2025 |
| 1.1.737 | 226 | 1/13/2025 |
| 1.1.696 | 302 | 12/16/2024 |
| 1.1.673 | 376 | 10/23/2024 |
| 1.1.665 | 228 | 10/16/2024 |
| 1.1.651 | 406 | 9/27/2024 |
| 1.1.631 | 376 | 8/28/2024 |
| 1.1.580 | 556 | 6/28/2024 |
| 1.1.570 | 242 | 6/14/2024 |
| 1.1.548 | 317 | 5/15/2024 |
| 1.1.436 | 893 | 11/10/2023 |
| 1.1.329 | 959 | 5/26/2023 |
| 1.1.313 | 381 | 5/12/2023 |
| 1.1.308 | 359 | 5/11/2023 |
| 1.1.304 | 329 | 5/10/2023 |
| 1.1.297 | 378 | 5/3/2023 |
| 1.1.203 | 2,545 | 12/28/2022 |
| 1.1.141 | 2,195 | 10/25/2022 |
| 1.1.82 | 3,171 | 9/14/2022 |
| 1.0.1.61117 | 9,332 | 6/3/2022 |