nanoFramework.Graphics
1.0.1-preview.20
Prefix Reserved
See the version list below for details.
dotnet add package nanoFramework.Graphics --version 1.0.1-preview.20
NuGet\Install-Package nanoFramework.Graphics -Version 1.0.1-preview.20
<PackageReference Include="nanoFramework.Graphics" Version="1.0.1-preview.20" />
paket add nanoFramework.Graphics --version 1.0.1-preview.20
#r "nuget: nanoFramework.Graphics, 1.0.1-preview.20"
// Install nanoFramework.Graphics as a Cake Addin #addin nuget:?package=nanoFramework.Graphics&version=1.0.1-preview.20&prerelease // Install nanoFramework.Graphics as a Cake Tool #tool nuget:?package=nanoFramework.Graphics&version=1.0.1-preview.20&prerelease
Welcome to the .NET nanoFramework Graphics repository
Build status
Component | Build Status | NuGet Package |
---|---|---|
nanoFramework.Graphics | ||
nanoFramework.Graphics (preview) |
Usage
Important:
- This library is still work in progress. There may be breaking changes happening while work on this library progresses.
- So far only SPI interface has been implemented.
Check the samples for more detailed usage.
Initializing the screen
It is important to understand that the driver will be loaded when the screen routing will be initialized from the managed code. Also keep in mind that most screens are actually smaller than the size the driver is capable of handling, also that the real screen can start at a position that is not the typical origin (0,0).
You must initialize the screen before being able to create a bitmap or display anything.
This code snippet works with the ESP32 WROVER KIT pinout, in this case, the screen size matches the driver size:
const int backLightPin = 5;
const int chipSelect = 22;
const int dataCommand = 21;
const int reset = 18;
const int screenWidth = 320;
const int screenHeight = 240;
DisplayControl.Initialize(new SpiConfiguration(1, chipSelect, dataCommand, reset, backLightPin), new ScreenConfiguration(0, 0, screenWidth, screenHeight), screenBufferSize);
This code snippet is for a M5 Stick where the screen size is smaller than the driver size and starts an offset position of X=26 and Y=1 coordinate:
int backLightPin = -1; // Not managed thru ESP32 but thru AXP192
int chipSelect = 5;
int dataCommand = 23;
int reset = 18;
Configuration.SetPinFunction(4, DeviceFunction.SPI1_MISO); // 4 is unused but necessary
Configuration.SetPinFunction(15, DeviceFunction.SPI1_MOSI);
Configuration.SetPinFunction(13, DeviceFunction.SPI1_CLOCK);
DisplayControl.Initialize(new SpiConfiguration(1, chipSelect, dataCommand, reset, backLightPin), new ScreenConfiguration(26, 1, 80, 160), 10 * 1024);
Note that depending on your target, especially for ESP32, you may have to setup the pins. Even if physically not used, the MISO pin must be setup to a valid pin.
As you can see it is possible as well not to define the backlight pin. It is the same for the rest pins. Both can be set to -1. Note that in most of the cases, both are connected and needed. In the case of the M5 Stick, the backlight pin is managed thru an AXP192. If you don't switch on the backlight pin, your screen will always be black. It is important to check how this pin can be switched on.
Feedback and documentation
For documentation, providing feedback, issues and finding out how to contribute please refer to the Home repo.
Join our Discord community here.
Credits
The list of contributors to this project can be found at CONTRIBUTORS.
License
The nanoFramework Class Libraries are licensed under the MIT license.
Code of Conduct
This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behaviour in our community. For more information see the .NET Foundation Code of Conduct.
.NET Foundation
This project is supported by the .NET Foundation.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET Framework | net is compatible. |
-
- nanoFramework.CoreLibrary (>= 1.11.7)
- nanoFramework.ResourceManager (>= 1.1.3-preview.8)
- nanoFramework.Runtime.Events (>= 1.9.2)
- nanoFramework.Runtime.Native (>= 1.5.2-preview.8)
- nanoFramework.System.Collections (>= 1.3.0)
NuGet packages (8)
Showing the top 5 NuGet packages that depend on nanoFramework.Graphics:
Package | Downloads |
---|---|
nanoFramework.M5Core2
This package includes the nanoFramework.M5Core2 assembly for .NET nanoFramework C# projects. |
|
nanoFramework.M5StickC
This package includes the nanoFramework.M5StickC assembly for .NET nanoFramework C# projects. |
|
nanoFramework.M5Core
This package includes the nanoFramework.M5Core assembly for .NET nanoFramework C# projects. |
|
nanoFramework.M5StickCPlus
This package includes the nanoFramework.M5StickCPlus assembly for .NET nanoFramework C# projects. |
|
nanoFramework.Fire
This package includes the nanoFramework.Fire assembly for .NET nanoFramework C# projects. |
GitHub repositories (2)
Showing the top 2 popular GitHub repositories that depend on nanoFramework.Graphics:
Repository | Stars |
---|---|
nanoframework/Samples
🍬 Code samples from the nanoFramework team used in testing, proof of concepts and other explorational endeavours
|
|
nanoframework/nanoFramework.IoT.Device
📦 This repo includes .NET nanoFramework implementations for various sensors, chips, displays, hats and drivers
|
Version | Downloads | Last updated |
---|---|---|
1.2.22 | 966 | 10/14/2024 |
1.2.21 | 1,122 | 9/26/2024 |
1.2.15 | 2,538 | 6/26/2024 |
1.2.10 | 1,102 | 5/13/2024 |
1.2.4 | 5,076 | 11/9/2023 |
1.2.2 | 180 | 11/9/2023 |
1.1.37 | 5,972 | 5/10/2023 |
1.1.34 | 283 | 5/5/2023 |
1.1.32 | 198 | 5/5/2023 |
1.1.30 | 191 | 5/5/2023 |
1.1.28 | 666 | 5/4/2023 |
1.1.25 | 347 | 4/18/2023 |
1.1.23 | 3,444 | 3/15/2023 |
1.1.21 | 969 | 3/10/2023 |
1.1.17 | 11,187 | 12/22/2022 |
1.1.13 | 14,319 | 10/11/2022 |
1.1.10 | 423 | 10/11/2022 |
1.1.8 | 2,073 | 10/7/2022 |
1.1.5 | 2,039 | 10/6/2022 |
1.0.3.6 | 28,485 | 7/29/2022 |
1.0.3.4 | 12,345 | 7/6/2022 |
1.0.3.2 | 25,793 | 6/2/2022 |
1.0.2 | 49,350 | 3/28/2022 |
1.0.2-preview.20 | 141 | 3/28/2022 |
1.0.2-preview.18 | 184 | 3/18/2022 |
1.0.2-preview.16 | 182 | 3/14/2022 |
1.0.2-preview.15 | 179 | 3/8/2022 |
1.0.2-preview.12 | 303 | 2/17/2022 |
1.0.2-preview.11 | 202 | 2/4/2022 |
1.0.2-preview.10 | 252 | 1/28/2022 |
1.0.2-preview.8 | 159 | 1/28/2022 |
1.0.2-preview.7 | 211 | 1/25/2022 |
1.0.2-preview.6 | 173 | 1/21/2022 |
1.0.2-preview.5 | 144 | 1/20/2022 |
1.0.2-preview.3 | 286 | 12/28/2021 |
1.0.1 | 1,227 | 12/4/2021 |
1.0.1-preview.24 | 157 | 12/4/2021 |
1.0.1-preview.22 | 158 | 12/3/2021 |
1.0.1-preview.20 | 152 | 12/3/2021 |
1.0.1-preview.18 | 155 | 12/2/2021 |
1.0.1-preview.16 | 162 | 12/2/2021 |
1.0.1-preview.14 | 158 | 12/2/2021 |
1.0.1-preview.12 | 159 | 12/1/2021 |
1.0.1-preview.11 | 163 | 12/1/2021 |
1.0.1-preview.8 | 501 | 10/22/2021 |
1.0.1-preview.7 | 227 | 10/19/2021 |
1.0.1-preview.5 | 196 | 10/17/2021 |
1.0.0 | 721 | 7/16/2021 |
1.0.0-preview.71 | 167 | 7/16/2021 |
1.0.0-preview.70 | 180 | 7/15/2021 |
1.0.0-preview.69 | 186 | 7/14/2021 |
1.0.0-preview.68 | 283 | 6/19/2021 |
1.0.0-preview.67 | 175 | 6/7/2021 |
1.0.0-preview.66 | 196 | 6/7/2021 |
1.0.0-preview.65 | 218 | 6/6/2021 |
1.0.0-preview.64 | 203 | 5/31/2021 |
1.0.0-preview.63 | 203 | 5/31/2021 |
1.0.0-preview.62 | 195 | 5/30/2021 |
1.0.0-preview.61 | 175 | 5/26/2021 |
1.0.0-preview.60 | 229 | 5/21/2021 |
1.0.0-preview.59 | 156 | 5/19/2021 |
1.0.0-preview.58 | 192 | 5/19/2021 |
1.0.0-preview.57 | 163 | 5/15/2021 |
1.0.0-preview.56 | 182 | 5/13/2021 |
1.0.0-preview.55 | 190 | 5/11/2021 |
1.0.0-preview.54 | 233 | 5/6/2021 |
1.0.0-preview.53 | 153 | 5/5/2021 |
1.0.0-preview.52 | 151 | 5/5/2021 |
1.0.0-preview.47 | 202 | 4/10/2021 |
1.0.0-preview.43 | 273 | 3/21/2021 |
1.0.0-preview.41 | 320 | 3/2/2021 |
1.0.0-preview.38 | 294 | 1/6/2021 |
1.0.0-preview.36 | 775 | 12/29/2020 |
1.0.0-preview.34 | 182 | 12/28/2020 |
1.0.0-preview.32 | 271 | 12/22/2020 |
1.0.0-preview.27 | 254 | 12/11/2020 |
1.0.0-preview.25 | 269 | 10/21/2020 |
1.0.0-preview.23 | 263 | 10/21/2020 |
1.0.0-preview.21 | 242 | 10/20/2020 |
1.0.0-preview.19 | 314 | 10/1/2020 |
1.0.0-preview.17 | 294 | 7/2/2020 |
1.0.0-preview.15 | 261 | 7/1/2020 |
1.0.0-preview.13 | 298 | 6/30/2020 |
1.0.0-preview.11 | 268 | 6/16/2020 |
1.0.0-preview.7 | 274 | 6/12/2020 |
1.0.0-preview.6 | 246 | 9/19/2020 |
1.0.0-preview.5 | 281 | 6/12/2020 |
1.0.0-preview.4 | 249 | 9/19/2020 |
1.0.0-preview.2 | 263 | 9/19/2020 |
1.0.0-preview.1 | 290 | 5/23/2020 |