nanoFramework.Iot.Device.Ft6xx6x
1.2.652
Prefix Reserved
See the version list below for details.
dotnet add package nanoFramework.Iot.Device.Ft6xx6x --version 1.2.652
NuGet\Install-Package nanoFramework.Iot.Device.Ft6xx6x -Version 1.2.652
<PackageReference Include="nanoFramework.Iot.Device.Ft6xx6x" Version="1.2.652" />
paket add nanoFramework.Iot.Device.Ft6xx6x --version 1.2.652
#r "nuget: nanoFramework.Iot.Device.Ft6xx6x, 1.2.652"
// Install nanoFramework.Iot.Device.Ft6xx6x as a Cake Addin #addin nuget:?package=nanoFramework.Iot.Device.Ft6xx6x&version=1.2.652 // Install nanoFramework.Iot.Device.Ft6xx6x as a Cake Tool #tool nuget:?package=nanoFramework.Iot.Device.Ft6xx6x&version=1.2.652
Ft6xx6x/Ft6336GU - Touch screen controller
The FT6xx6x are touch screens controllers. M5Core2 has a FT6336U. This driver supports the variants FT6236G, FT6336G , FT6336U and FT6426. The sample has been built and tested with a M5Core2.
Documentation
- You can find the registers here.
- More information on the touch controller, events, gesture.
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 M5Core2. If you want to use another device, just remove all the related nugets.
M5Core2.InitializeScreen();
I2cConnectionSettings settings = new(1, Ft6xx6x.DefaultI2cAddress);
using I2cDevice device = I2cDevice.Create(settings);
using GpioController gpio = new();
using Ft6xx6x sensor = new(device);
var ver = sensor.GetVersion();
Debug.WriteLine($"version: {ver}");
sensor.SetInterruptMode(false);
Debug.WriteLine($"Period active: {sensor.PeriodActive}");
Debug.WriteLine($"Period active in monitor mode: {sensor.MonitorModePeriodActive}");
Debug.WriteLine($"Time to enter monitor: {sensor.MonitorModeDelaySeconds} seconds");
Debug.WriteLine($"Monitor mode: {sensor.MonitorModeEnabled}");
Debug.WriteLine($"Proximity sensing: {sensor.ProximitySensingEnabled}");
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.15.5)
- nanoFramework.Graphics.Core (>= 1.2.21)
- nanoFramework.System.Device.I2c (>= 1.1.16)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on nanoFramework.Iot.Device.Ft6xx6x:
Package | Downloads |
---|---|
nanoFramework.M5Core2
This package includes the nanoFramework.M5Core2 assembly for .NET nanoFramework C# projects. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on nanoFramework.Iot.Device.Ft6xx6x:
Repository | Stars |
---|---|
nanoframework/nanoFramework.IoT.Device
📦 This repo includes .NET nanoFramework implementations for various sensors, chips, displays, hats and drivers
|
Version | Downloads | Last updated |
---|---|---|
1.2.666 | 51 | 10/16/2024 |
1.2.652 | 289 | 9/27/2024 |
1.2.615 | 560 | 8/10/2024 |
1.2.422 | 2,023 | 11/9/2023 |
1.2.420 | 125 | 11/9/2023 |
1.2.316 | 2,293 | 5/16/2023 |
1.2.278 | 858 | 3/29/2023 |
1.2.204 | 3,506 | 12/29/2022 |
1.2.141 | 2,433 | 10/25/2022 |
1.2.82 | 3,719 | 9/14/2022 |
1.1.113.2032 | 8,337 | 6/23/2022 |
1.1.28 | 7,187 | 4/26/2022 |
1.1.25 | 777 | 4/25/2022 |
1.1.24 | 781 | 4/24/2022 |
1.1.23 | 764 | 4/23/2022 |
1.1.22 | 1,087 | 4/22/2022 |
1.1.21 | 446 | 4/21/2022 |
1.1.18 | 1,071 | 4/21/2022 |
1.1.17 | 771 | 4/20/2022 |
1.1.11 | 443 | 4/19/2022 |
1.1.7 | 1,069 | 4/18/2022 |
1.1.6 | 786 | 4/17/2022 |
1.1.5 | 783 | 4/16/2022 |
1.1.4 | 794 | 4/15/2022 |
1.1.1 | 451 | 4/14/2022 |
1.0.300 | 2,046 | 3/31/2022 |
1.0.21-preview.116 | 141 | 3/25/2022 |
1.0.21-preview.38 | 326 | 1/31/2022 |
1.0.21-preview.35 | 181 | 1/30/2022 |
1.0.21-preview.34 | 147 | 1/29/2022 |
1.0.21-preview.33 | 144 | 1/28/2022 |
1.0.21-preview.29 | 143 | 1/28/2022 |
1.0.21-preview.28 | 158 | 1/28/2022 |
1.0.21-preview.26 | 149 | 1/27/2022 |
1.0.21-preview.24 | 137 | 1/27/2022 |
1.0.21-preview.23 | 143 | 1/27/2022 |
1.0.21-preview.22 | 141 | 1/27/2022 |
1.0.21-preview.20 | 145 | 1/27/2022 |
1.0.21-preview.17 | 134 | 1/26/2022 |
1.0.21-preview.16 | 149 | 1/25/2022 |
1.0.21-preview.7 | 133 | 1/22/2022 |
1.0.21-preview.5 | 137 | 1/21/2022 |
1.0.21-preview.3 | 139 | 1/21/2022 |
1.0.21-preview.2 | 139 | 1/21/2022 |
1.0.21-preview.1 | 135 | 1/21/2022 |
1.0.20 | 481 | 1/19/2022 |
1.0.15 | 448 | 1/15/2022 |
1.0.10 | 304 | 1/11/2022 |
1.0.1 | 495 | 12/28/2021 |