nanoFramework.Iot.Device.Ft6xx6x
1.2.666
Prefix Reserved
dotnet add package nanoFramework.Iot.Device.Ft6xx6x --version 1.2.666
NuGet\Install-Package nanoFramework.Iot.Device.Ft6xx6x -Version 1.2.666
<PackageReference Include="nanoFramework.Iot.Device.Ft6xx6x" Version="1.2.666" />
paket add nanoFramework.Iot.Device.Ft6xx6x --version 1.2.666
#r "nuget: nanoFramework.Iot.Device.Ft6xx6x, 1.2.666"
// Install nanoFramework.Iot.Device.Ft6xx6x as a Cake Addin #addin nuget:?package=nanoFramework.Iot.Device.Ft6xx6x&version=1.2.666 // Install nanoFramework.Iot.Device.Ft6xx6x as a Cake Tool #tool nuget:?package=nanoFramework.Iot.Device.Ft6xx6x&version=1.2.666
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.22)
- 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 | 282 | 10/16/2024 |
1.2.652 | 328 | 9/27/2024 |
1.2.615 | 573 | 8/10/2024 |
1.2.422 | 2,036 | 11/9/2023 |
1.2.420 | 126 | 11/9/2023 |
1.2.316 | 2,326 | 5/16/2023 |
1.2.278 | 860 | 3/29/2023 |
1.2.204 | 3,537 | 12/29/2022 |
1.2.141 | 2,434 | 10/25/2022 |
1.2.82 | 3,722 | 9/14/2022 |
1.1.113.2032 | 8,338 | 6/23/2022 |
1.1.28 | 7,188 | 4/26/2022 |
1.1.25 | 778 | 4/25/2022 |
1.1.24 | 782 | 4/24/2022 |
1.1.23 | 767 | 4/23/2022 |
1.1.22 | 1,090 | 4/22/2022 |
1.1.21 | 447 | 4/21/2022 |
1.1.18 | 1,072 | 4/21/2022 |
1.1.17 | 772 | 4/20/2022 |
1.1.11 | 446 | 4/19/2022 |
1.1.7 | 1,070 | 4/18/2022 |
1.1.6 | 787 | 4/17/2022 |
1.1.5 | 784 | 4/16/2022 |
1.1.4 | 795 | 4/15/2022 |
1.1.1 | 452 | 4/14/2022 |
1.0.300 | 2,047 | 3/31/2022 |
1.0.21-preview.116 | 142 | 3/25/2022 |
1.0.21-preview.38 | 327 | 1/31/2022 |
1.0.21-preview.35 | 182 | 1/30/2022 |
1.0.21-preview.34 | 148 | 1/29/2022 |
1.0.21-preview.33 | 145 | 1/28/2022 |
1.0.21-preview.29 | 144 | 1/28/2022 |
1.0.21-preview.28 | 161 | 1/28/2022 |
1.0.21-preview.26 | 152 | 1/27/2022 |
1.0.21-preview.24 | 138 | 1/27/2022 |
1.0.21-preview.23 | 144 | 1/27/2022 |
1.0.21-preview.22 | 142 | 1/27/2022 |
1.0.21-preview.20 | 146 | 1/27/2022 |
1.0.21-preview.17 | 135 | 1/26/2022 |
1.0.21-preview.16 | 152 | 1/25/2022 |
1.0.21-preview.7 | 134 | 1/22/2022 |
1.0.21-preview.5 | 138 | 1/21/2022 |
1.0.21-preview.3 | 140 | 1/21/2022 |
1.0.21-preview.2 | 140 | 1/21/2022 |
1.0.21-preview.1 | 136 | 1/21/2022 |
1.0.20 | 482 | 1/19/2022 |
1.0.15 | 451 | 1/15/2022 |
1.0.10 | 305 | 1/11/2022 |
1.0.1 | 496 | 12/28/2021 |