Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
| nanoFramework.M5StickCPlus (preview) | [![Build Status](https://dev.azure.com/nanoframework/nanoFramework.M5Stack/_apis/build/status/nanoFramework.M5Stack?repoName=nanoframework%2FnanoFramework.M5Stack&branchName=develop)](https://dev.azure.com/nanoframework/nanoFramework.M5Stack/_build/latest?definitionId=52&repoName=nanoframework%2FnanoFramework.M5Stack&branchName=develop) | [![NuGet](https://img.shields.io/nuget/vpre/nanoFramework.M5StickCPlus.svg?label=NuGet&style=flat&logo=nuget)](https://www.nuget.org/packages/nanoFramework.M5StickCPlus/) |
| nanoFramework.M5Core2 | [![Build Status](https://dev.azure.com/nanoframework/nanoFramework.M5Stack/_apis/build/status/nanoFramework.M5Stack?repoName=nanoframework%2FnanoFramework.M5Stack&branchName=main)](https://dev.azure.com/nanoframework/nanoFramework.M5Stack/_build/latest?definitionId=52&repoName=nanoframework%2FnanoFramework.M5Stack&branchName=main) | [![NuGet](https://img.shields.io/nuget/v/nanoFramework.M5Core2.svg?label=NuGet&style=flat&logo=nuget)](https://www.nuget.org/packages/nanoFramework.M5Core2/) |
| nanoFramework.M5Core2 (preview) | [![Build Status](https://dev.azure.com/nanoframework/nanoFramework.M5Stack/_apis/build/status/nanoFramework.M5Stack?repoName=nanoframework%2FnanoFramework.M5Stack&branchName=develop)](https://dev.azure.com/nanoframework/nanoFramework.M5Stack/_build/latest?definitionId=52&repoName=nanoframework%2FnanoFramework.M5Stack&branchName=develop) | [![NuGet](https://img.shields.io/nuget/vpre/nanoFramework.M5Core2.svg?label=NuGet&style=flat&logo=nuget)](https://www.nuget.org/packages/nanoFramework.M5Core2/) |
| nanoFramework.AtomLite | [![Build Status](https://dev.azure.com/nanoframework/nanoFramework.M5Stack/_apis/build/status/nanoFramework.M5Stack?repoName=nanoframework%2FnanoFramework.M5Stack&branchName=main)](https://dev.azure.com/nanoframework/nanoFramework.M5Stack/_build/latest?definitionId=52&repoName=nanoframework%2FnanoFramework.M5Stack&branchName=main) | [![NuGet](https://img.shields.io/nuget/v/nanoFramework.AtomLite.svg?label=NuGet&style=flat&logo=nuget)](https://www.nuget.org/packages/nanoFramework.AtomLite/) |
| nanoFramework.AtomLite (preview) | [![Build Status](https://dev.azure.com/nanoframework/nanoFramework.M5Stack/_apis/build/status/nanoFramework.M5Stack?repoName=nanoframework%2FnanoFramework.M5Stack&branchName=develop)](https://dev.azure.com/nanoframework/nanoFramework.M5Stack/_build/latest?definitionId=52&repoName=nanoframework%2FnanoFramework.M5Stack&branchName=develop) | [![NuGet](https://img.shields.io/nuget/vpre/nanoFramework.AtomLite.svg?label=NuGet&style=flat&logo=nuget)](https://www.nuget.org/packages/nanoFramework.AtomLite/) |

## Usage

Expand Down Expand Up @@ -59,7 +61,7 @@ For the M5Core2:
nanoff --target M5Core2 --update --preview --serialport COM3
```

For the M5AtomLite:
For the Atom Lite:

```shell
nanoff --target ESP32_PICO --update --preview --serialport COM3
Expand Down Expand Up @@ -168,20 +170,20 @@ M5StickC.M5Button.Holding += (sender, e) =>
On the Atom Lite it's called `Button`. You can get access to the status of the button, the events and everything you need. For example:

```csharp
M5AtomLite.Button.Press +=> (sender, e)
AtomLite.Button.Press +=> (sender, e)
{
var color = M5AtomLite.NeoPixel.GetColor();
var color = AtomLite.NeoPixel.GetColor();
if(color.R > 0)
{
M5AtomLite.NeoPixel.SetColor(Color.FromArgb(255, 0, 255, 0));
AtomLite.NeoPixel.SetColor(Color.FromArgb(255, 0, 255, 0));
}
else if (color.G > 0)
{
M5AtomLite.NeoPixel.SetColor(Color.FromArgb(255, 0, 0, 255));
AtomLite.NeoPixel.SetColor(Color.FromArgb(255, 0, 0, 255));
}
else
{
M5AtomLite.NeoPixel.SetColor(Color.FromArgb(255, 255, 0, 0));
AtomLite.NeoPixel.SetColor(Color.FromArgb(255, 255, 0, 0));
}
};
```
Expand Down Expand Up @@ -370,15 +372,15 @@ M5StickC.Led.Toggle();

### Infrared Led

The M5StickC/CPlus and M5AtomLite exposes an infrared led. You can access it thru the `InfraredLed` property. This will give you a `TransmitterChannel`. Check out the [sample pack](https://github.com/nanoframework/Samples/tree/main/samples/Hardware.Esp32.Rmt) to understand how to use it.
The M5StickC/CPlus and Atom Lite exposes an infrared led. You can access it thru the `InfraredLed` property. This will give you a `TransmitterChannel`. Check out the [sample pack](https://github.com/nanoframework/Samples/tree/main/samples/Hardware.Esp32.Rmt) to understand how to use it.

### NeoPixel

The M5AtomLite exposes a rgb led. You can access it thru the `NeoPixel` property:
The Atom Lite exposes a rgb led. You can access it thru the `NeoPixel` property:

```csharp
// This will set NeoPixel to green:
M5AtomLite.NeoPixel.SetColor(Color.Green);
AtomLite.NeoPixel.SetColor(Color.Green);
```

## Feedback and documentation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,15 @@
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<FileAlignment>512</FileAlignment>
<RootNamespace>M5AtomLiteTestApp</RootNamespace>
<AssemblyName>M5AtomLiteTestApp</AssemblyName>
<RootNamespace>AtomLiteTestApp</RootNamespace>
<AssemblyName>AtomLiteTestApp</AssemblyName>
<TargetFrameworkVersion>v1.0</TargetFrameworkVersion>
</PropertyGroup>
<Import Project="$(NanoFrameworkProjectSystemPath)NFProjectSystem.props" Condition="Exists('$(NanoFrameworkProjectSystemPath)NFProjectSystem.props')" />
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\nanoFramework.M5AtomLite\nanoFramework.M5AtomLite.nfproj" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
Expand Down Expand Up @@ -52,6 +49,9 @@
<HintPath>..\..\packages\nanoFramework.System.Drawing.1.0.288-preview.20\lib\System.Drawing.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\nanoFramework.AtomLite\nanoFramework.AtomLite.nfproj" />
</ItemGroup>
<Import Project="$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets" Condition="Exists('$(NanoFrameworkProjectSystemPath)NFProjectSystem.CSharp.targets')" />
<ProjectExtensions>
<ProjectCapabilities>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using nanoFramework.AtomLite;
using System;
using System.Diagnostics;
using System.Drawing;
using System.Threading;
using nanoFramework.M5AtomLite;

namespace M5AtomLiteTestApp
namespace AtomLiteTestApp
{
public class Program
{
public static void Main()
{
var button = M5AtomLite.Button;
var rgb = M5AtomLite.NeoPixel;
var button = AtomLite.Button;
var rgb = AtomLite.NeoPixel;
rgb.SetColor(Color.FromArgb(255, 255, 0, 0));

button.Press += Button_Press;
Expand All @@ -26,18 +26,18 @@ public static void Main()

private static void Button_Press(object sender, EventArgs e)
{
var color = M5AtomLite.NeoPixel.GetColor();
var color = AtomLite.NeoPixel.GetColor();
if(color.R > 0)
{
M5AtomLite.NeoPixel.SetColor(Color.FromArgb(255, 0, 255, 0));
AtomLite.NeoPixel.SetColor(Color.FromArgb(255, 0, 255, 0));
}
else if (color.G > 0)
{
M5AtomLite.NeoPixel.SetColor(Color.FromArgb(255, 0, 0, 255));
AtomLite.NeoPixel.SetColor(Color.FromArgb(255, 0, 0, 255));
}
else
{
M5AtomLite.NeoPixel.SetColor(Color.FromArgb(255, 255, 0, 0));
AtomLite.NeoPixel.SetColor(Color.FromArgb(255, 255, 0, 0));
}
}
}
Expand Down
4 changes: 4 additions & 0 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@ steps:
parameters:
nugetPackageName: 'nanoFramework.M5Core2'

- template: azure-pipelines-templates/class-lib-package.yml@templates
parameters:
nugetPackageName: 'nanoFramework.AtomLite'

- template: azure-pipelines-templates/class-lib-publish.yml@templates

# create or update GitHub release
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>nanoFramework.M5AtomLite</id>
<id>nanoFramework.AtomLite</id>
<version>$version$</version>
<title>nanoFramework.M5AtomLite</title>
<title>nanoFramework.AtomLite</title>
<authors>nanoFramework project contributors</authors>
<owners>nanoFramework,dotnetfoundation</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
Expand All @@ -16,8 +16,8 @@
<icon>images\nf-logo.png</icon>
<repository type="git" url="https://github.com/nanoframework/nanoFramework.M5Stack" commit="$commit$" />
<copyright>Copyright (c) .NET Foundation and Contributors</copyright>
<description>This package includes the nanoFramework.M5AtomLite assembly for .NET nanoFramework C# projects.</description>
<tags>nanoFramework C# csharp netmf netnf nanoFramework.M5AtomLite</tags>
<description>This package includes the nanoFramework.AtomLite assembly for .NET nanoFramework C# projects.</description>
<tags>nanoFramework C# csharp netmf netnf nanoFramework.AtomLite</tags>
<dependencies>
<dependency id="nanoFramework.CoreLibrary" version="1.12.0-preview.5" />
<dependency id="nanoFramework.Hardware.Esp32" version="1.3.5-preview.6" />
Expand All @@ -33,11 +33,11 @@
</dependencies>
</metadata>
<files>
<file src="nanoFramework.M5AtomLite\bin\Release\nanoFramework.M5AtomLite.dll" target="lib\nanoFramework.M5AtomLite.dll" />
<file src="nanoFramework.M5AtomLite\bin\Release\nanoFramework.M5AtomLite.pdb" target="lib\nanoFramework.M5AtomLite.pdb" />
<file src="nanoFramework.M5AtomLite\bin\Release\nanoFramework.M5AtomLite.pdbx" target="lib\nanoFramework.M5AtomLite.pdbx" />
<file src="nanoFramework.M5AtomLite\bin\Release\nanoFramework.M5AtomLite.pe" target="lib\nanoFramework.M5AtomLite.pe" />
<file src="nanoFramework.M5AtomLite\bin\Release\nanoFramework.M5AtomLite.xml" target="lib\nanoFramework.M5AtomLite.xml" />
<file src="nanoFramework.AtomLite\bin\Release\nanoFramework.AtomLite.dll" target="lib\nanoFramework.AtomLite.dll" />
<file src="nanoFramework.AtomLite\bin\Release\nanoFramework.AtomLite.pdb" target="lib\nanoFramework.AtomLite.pdb" />
<file src="nanoFramework.AtomLite\bin\Release\nanoFramework.AtomLite.pdbx" target="lib\nanoFramework.AtomLite.pdbx" />
<file src="nanoFramework.AtomLite\bin\Release\nanoFramework.AtomLite.pe" target="lib\nanoFramework.AtomLite.pe" />
<file src="nanoFramework.AtomLite\bin\Release\nanoFramework.AtomLite.xml" target="lib\nanoFramework.AtomLite.xml" />
<file src="assets\readme.txt" target="" />
<file src="README.md" target="docs\" />
<file src="assets\nf-logo.png" target="images\" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,21 @@
// The .NET Foundation licenses this file to you under the MIT license.

using Iot.Device.Button;
using nanoFramework.Hardware.Esp32;
using nanoFramework.Hardware.Esp32.Rmt;
using System;
using System.Device.Gpio;
using System.Device.Dac;
using System.Device.Adc;
using nanoFramework.Hardware.Esp32.Rmt;
using System.Device.Dac;
using System.Device.Gpio;
using System.Device.I2c;
using nanoFramework.Hardware.Esp32;
using System.Device.Spi;

namespace nanoFramework.M5AtomLite
namespace nanoFramework.AtomLite
{
/// <summary>
/// The M5AtomLite B=board
/// The AtomLite Board.
/// </summary>
public static class M5AtomLite
public static class AtomLite
{
private static GpioButton _button;
private static RgbLed _rgbLed;
Expand All @@ -43,7 +43,7 @@ public static GpioButton Button
}

/// <summary>
/// RGB NeoPixel led
/// RGB NeoPixel led.
/// </summary>
public static RgbLed NeoPixel
{
Expand All @@ -60,12 +60,12 @@ public static RgbLed NeoPixel
}

/// <summary>
/// Gets the main GPIO Controller.
/// Gets the main <see cref="GpioController"/>.
/// </summary>
public static GpioController GpioController => _gpio;

/// <summary>
/// Gets DAC1 which is GPIO 25.
/// Gets <see cref="DacChannel"/> connected to GPIO 25.
/// </summary>
public static DacChannel Dac1
{
Expand All @@ -82,7 +82,7 @@ public static DacChannel Dac1
}

/// <summary>
/// Gets DAC1 which is GPIO 26.
/// Gets <see cref="DacChannel"/> connected to GPIO 26.
/// </summary>
public static DacChannel Dac2
{
Expand All @@ -100,16 +100,16 @@ public static DacChannel Dac2
}

/// <summary>
/// Gets an I2C device.
/// Gets an <see cref="I2cDevice"/>.
/// </summary>
/// <param name="i2cDeviceAddress">The I2C device address on the bus.</param>
/// <param name="i2cDeviceAddress">The address of the <see cref="I2cDevice"/> on the bus.</param>
/// <returns>The I2cDevice.</returns>
public static I2cDevice GetI2cDevice(int i2cDeviceAddress) => new(new I2cConnectionSettings(1, i2cDeviceAddress));

/// <summary>
/// Gets an I2C device.
/// Gets an <see cref="I2cDevice"/>.
/// </summary>
/// <param name="i2cDeviceAddress">The I2C device address on the bus.</param>
/// <param name="i2cDeviceAddress">The address of the <see cref="I2cDevice"/> on the bus.</param>
/// <returns>The I2cDevice.</returns>
public static I2cDevice GetGrove(int i2cDeviceAddress) => new(new I2cConnectionSettings(1, i2cDeviceAddress));

Expand All @@ -130,16 +130,16 @@ public static TransmitterChannel InfraredLed
}

/// <summary>
/// Gets an SPI Device.
/// Gets an <see cref="SpiDevice"/>.
/// </summary>
/// <param name="chipSelect">The chip select of the device, needs to be any valid GPIO.</param>
/// <returns>An SpiDevice.</returns>
public static SpiDevice GetSpiDevice(int chipSelect) => new(new SpiConnectionSettings(1, chipSelect));

/// <summary>
/// Gets an ADC channel
/// Gets an <see cref="AdcChannel"/>
/// </summary>
/// <param name="gpioNumber">The GPIO pin number</param>
/// <param name="gpioNumber">The GPIO pin number where the <see cref="AdcChannel"/> is connected to.</param>
/// <returns>An AdcChannel</returns>
public static AdcChannel GetAdcGpio(int gpioNumber)
{
Expand All @@ -161,7 +161,7 @@ public static AdcChannel GetAdcGpio(int gpioNumber)
}
}

static M5AtomLite()
static AtomLite()
{
// Setup first the I2C bus
Configuration.SetPinFunction(32, DeviceFunction.I2C1_CLOCK);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
using nanoFramework.Hardware.Esp32.Rmt;
using System.Drawing;

namespace nanoFramework.M5AtomLite
namespace nanoFramework.AtomLite
{
/// <summary>
/// The RGB Led controller for M5Stack Atom Lite.
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<FileAlignment>512</FileAlignment>
<RootNamespace>nanoFramework.M5AtomLite</RootNamespace>
<AssemblyName>nanoFramework.M5AtomLite</AssemblyName>
<RootNamespace>nanoFramework.AtomLite</RootNamespace>
<AssemblyName>nanoFramework.AtomLite</AssemblyName>
<TargetFrameworkVersion>v1.0</TargetFrameworkVersion>
<DocumentationFile>bin\$(Configuration)\nanoFramework.M5AtomLite.xml</DocumentationFile>
<DocumentationFile>bin\$(Configuration)\nanoFramework.AtomLite.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup>
<SignAssembly>true</SignAssembly>
Expand All @@ -28,7 +28,7 @@
</PropertyGroup>
<Import Project="$(NanoFrameworkProjectSystemPath)NFProjectSystem.props" Condition="Exists('$(NanoFrameworkProjectSystemPath)NFProjectSystem.props')" />
<ItemGroup>
<Compile Include="M5AtomLite.cs" />
<Compile Include="AtomLite.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="RgbLed.cs" />
</ItemGroup>
Expand Down
4 changes: 4 additions & 0 deletions nanoFramework.AtomLite/nanoFramework.M5AtomLite.nfproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>
6 changes: 3 additions & 3 deletions nanoFramework.M5Stack.sln
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.M5Core", "nan
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{0A689EB3-86E0-448E-99F4-3D644EC3D8C5}"
ProjectSection(SolutionItems) = preProject
nanoFramework.M5AtomLite.nuspec = nanoFramework.M5AtomLite.nuspec
nanoFramework.AtomLite.nuspec = nanoFramework.AtomLite.nuspec
nanoFramework.M5Core.nuspec = nanoFramework.M5Core.nuspec
nanoFramework.M5Core2.nuspec = nanoFramework.M5Core2.nuspec
nanoFramework.M5StickC.nuspec = nanoFramework.M5StickC.nuspec
Expand Down Expand Up @@ -37,9 +37,9 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "nanoFramework.M5StackCore",
EndProject
Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "M5Core2TestApp", "Tests\M5Core2TestApp\M5Core2TestApp.nfproj", "{20266750-53F3-46D5-8626-1438AC985033}"
EndProject
Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.M5AtomLite", "nanoFramework.M5AtomLite\nanoFramework.M5AtomLite.nfproj", "{C20734A9-C944-4B2A-9CEA-A9B3F855B132}"
Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "nanoFramework.AtomLite", "nanoFramework.AtomLite\nanoFramework.AtomLite.nfproj", "{C20734A9-C944-4B2A-9CEA-A9B3F855B132}"
EndProject
Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "M5AtomLiteTestApp", "Tests\M5AtomLiteTestApp\M5AtomLiteTestApp.nfproj", "{7533C164-9D3E-461B-BEED-888C91AC640B}"
Project("{11A8DD76-328B-46DF-9F39-F559912D0360}") = "AtomLiteTestApp", "Tests\AtomLiteTestApp\AtomLiteTestApp.nfproj", "{7533C164-9D3E-461B-BEED-888C91AC640B}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
Expand Down