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
22 changes: 11 additions & 11 deletions Source/Meadow.ProjectLab/ProjectLab.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,11 @@ public IProjectLabHardware Create(IMeadowDevice device)
logger?.Info("creating Mcp_1 at 0x20");
mcp = new Mcp23008(i2cBus, address: 0x20, mcpInterrupt, mcpReset);

logger?.Trace("Mcp_1 up");
logger?.Trace("Mcp_1 up", Constants.LogGroup);
}
catch
{
logger?.Debug("Failed to create MCP1: could be a v1 board");
logger?.Debug("Failed to create MCP1: could be a v1 board", Constants.LogGroup);
mcpInterrupt?.Dispose();
mcpReset?.Dispose();
}
Expand All @@ -99,12 +99,12 @@ public IProjectLabHardware Create(IMeadowDevice device)
try
{
var reset = GetMcpResetPin1(c);
Resolver.Log.Info($"Using MCP reset pin {reset.Name}");
Resolver.Log.Info($"Using MCP reset pin {reset.Name}", Constants.LogGroup);
mcpReset = device.CreateDigitalOutputPort(reset);

mcp = new Mcp23008(i2cBus, address: 0x27, resetPort: mcpReset);

logger?.Trace("Mcp_version up");
logger?.Trace("Mcp_version up", Constants.LogGroup);
version = mcp.ReadFromPorts();
}
catch
Expand All @@ -115,12 +115,12 @@ public IProjectLabHardware Create(IMeadowDevice device)
try
{
var reset = GetMcpResetPin2(c);
Resolver.Log.Info($"Using MCP reset pin {reset.Name}");
Resolver.Log.Info($"Using MCP reset pin {reset.Name}", Constants.LogGroup);
mcpReset = device.CreateDigitalOutputPort(reset);

mcp = new Mcp23008(i2cBus, address: 0x27, resetPort: mcpReset);

logger?.Trace("Mcp_version up");
logger?.Trace("Mcp_version up", Constants.LogGroup);
version = mcp.ReadFromPorts();
}
catch
Expand All @@ -138,23 +138,23 @@ public IProjectLabHardware Create(IMeadowDevice device)
switch (device)
{
case IF7FeatherMeadowDevice feather when mcp is null:
logger?.Info("Instantiating Project Lab v1 hardware");
logger?.Info("Instantiating Project Lab v1 hardware", Constants.LogGroup);
hardware = new ProjectLabHardwareV1(feather, i2cBus);
break;
case IF7FeatherMeadowDevice feather:
logger?.Info("Instantiating Project Lab v2 hardware");
logger?.Info("Instantiating Project Lab v2 hardware", Constants.LogGroup);
hardware = new ProjectLabHardwareV2(feather, i2cBus, mcp);
break;
case IF7CoreComputeMeadowDevice ccm when version < 17:
logger?.Info($"Instantiating Project Lab v3 hardware");
logger?.Info($"Instantiating Project Lab v3 hardware", Constants.LogGroup);
hardware = new ProjectLabHardwareV3(ccm, i2cBus);
break;
case IF7CoreComputeMeadowDevice ccm when version < 18:
logger?.Info($"Instantiating Project Lab v4 hardware");
logger?.Info($"Instantiating Project Lab v4 hardware", Constants.LogGroup);
hardware = new ProjectLabHardwareV4(ccm, i2cBus);
break;
case IF7CoreComputeMeadowDevice ccm:
logger?.Info($"Instantiating Project Lab v5 hardware");
logger?.Info($"Instantiating Project Lab v5 hardware", Constants.LogGroup);
hardware = new ProjectLabHardwareV5(ccm, i2cBus);
break;
default:
Expand Down
8 changes: 4 additions & 4 deletions Source/Meadow.ProjectLab/ProjectLabHardwareV4.cs
Original file line number Diff line number Diff line change
Expand Up @@ -94,11 +94,11 @@ internal ProjectLabHardwareV4(IF7CoreComputeMeadowDevice device, II2cBus i2cBus)

Mcp_1 = new Mcp23008(i2cBus, address: 0x20, mcp1Interrupt, mcp1Reset);

Logger?.Trace("Mcp_1 up");
Logger?.Trace("Mcp_1 up", Constants.LogGroup);
}
catch (Exception e)
{
Logger?.Trace($"Failed to create MCP1: {e.Message}");
Logger?.Info($"Failed to create MCP1: {e.Message}", Constants.LogGroup);
mcp1Interrupt?.Dispose();
}

Expand All @@ -110,11 +110,11 @@ internal ProjectLabHardwareV4(IF7CoreComputeMeadowDevice device, II2cBus i2cBus)

Mcp_2 = new Mcp23008(i2cBus, address: 0x21, mcp2Interrupt);

Logger?.Trace("Mcp_2 up");
Logger?.Trace("Mcp_2 up", Constants.LogGroup);
}
catch (Exception e)
{
Logger?.Trace($"Failed to create MCP2: {e.Message}");
Logger?.Info($"Failed to create MCP2: {e.Message}", Constants.LogGroup);
mcp2Interrupt?.Dispose();
}

Expand Down
31 changes: 17 additions & 14 deletions Source/Meadow.ProjectLab/ProjectLabHardwareV5.cs
Original file line number Diff line number Diff line change
Expand Up @@ -89,55 +89,54 @@ internal ProjectLabHardwareV5(IF7CoreComputeMeadowDevice device, II2cBus i2cBus)

_pwmExpander = new Pca9685(i2cBus, address: 0x70);

Logger?.Trace("PWM expander up");
Logger?.Trace("PWM expander up", Constants.LogGroup);
_uartExpander_1 = new Sc16is752(i2cBus, new Frequency(1.8432, Frequency.UnitType.Megahertz), Sc16is7x2.Addresses.Address_0x4D);
Logger?.Trace("UART1 expander up");
Logger?.Trace("UART1 expander up", Constants.LogGroup);
_uartExpander_2 = new Sc16is752(i2cBus, new Frequency(1.8432, Frequency.UnitType.Megahertz), Sc16is7x2.Addresses.Address_0x4C);
Logger?.Trace("UART2 expander up");
Logger?.Trace("UART2 expander up", Constants.LogGroup);

try
{
mcp1Interrupt = device.CreateDigitalInterruptPort(device.Pins.PC0, InterruptMode.EdgeRising);

mcp1Interrupt = device.Pins.PC0.CreateDigitalInterruptPort(InterruptMode.EdgeRising);
mcp1Reset = device.CreateDigitalOutputPort(GetVersionResetPin(device));

Mcp_1 = new Mcp23008(i2cBus, address: 0x20, mcp1Interrupt, mcp1Reset);

Logger?.Trace("Mcp_1 up");
Logger?.Trace("Mcp_1 up", Constants.LogGroup);
}
catch (Exception e)
{
Logger?.Trace($"Failed to create MCP1: {e.Message}");
Logger?.Info($"Failed to create MCP1: {e.Message}", Constants.LogGroup);
mcp1Interrupt?.Dispose();
}

IDigitalInterruptPort? mcp2Interrupt = null;

try
{
mcp2Interrupt = device.CreateDigitalInterruptPort(device.Pins.PC8, InterruptMode.EdgeRising);
mcp2Interrupt = device.Pins.PC8.CreateDigitalInterruptPort(InterruptMode.EdgeRising);

Mcp_2 = new Mcp23008(i2cBus, address: 0x21, mcp2Interrupt);

Logger?.Trace("Mcp_2 up");
Logger?.Trace("Mcp_2 up", Constants.LogGroup);
}
catch (Exception e)
{
Logger?.Trace($"Failed to create MCP2: {e.Message}");
Logger?.Info($"Failed to create MCP2: {e.Message}", Constants.LogGroup);
mcp2Interrupt?.Dispose();
}

try
{
Mcp_Version = new Mcp23008(i2cBus, address: 0x27);
Logger?.Trace("Mcp_Version up");
Logger?.Trace("Mcp_Version up", Constants.LogGroup);
}
catch (Exception e)
{
Logger?.Trace($"ERR creating the MCP that has version information: {e.Message}");
Logger?.Info($"ERR creating the MCP that has version information: {e.Message}", Constants.LogGroup);
}

Logger?.Trace("Instantiating buttons");
Logger?.Trace("Instantiating buttons", Constants.LogGroup);
var leftPort = Mcp_1?.CreateDigitalInterruptPort(Mcp_1.Pins.GP2, InterruptMode.EdgeBoth, ResistorMode.InternalPullUp);
if (leftPort != null) LeftButton = new PushButton(leftPort);
var rightPort = Mcp_1?.CreateDigitalInterruptPort(Mcp_1.Pins.GP1, InterruptMode.EdgeBoth, ResistorMode.InternalPullUp);
Expand All @@ -146,7 +145,7 @@ internal ProjectLabHardwareV5(IF7CoreComputeMeadowDevice device, II2cBus i2cBus)
if (upPort != null) UpButton = new PushButton(upPort);
var downPort = Mcp_1?.CreateDigitalInterruptPort(Mcp_1.Pins.GP3, InterruptMode.EdgeBoth, ResistorMode.InternalPullUp);
if (downPort != null) DownButton = new PushButton(downPort);
Logger?.Trace("Buttons up");
Logger?.Trace("Buttons up", Constants.LogGroup);
}

internal virtual IPin GetVersionResetPin(IF7CoreComputeMeadowDevice device)
Expand Down Expand Up @@ -258,6 +257,10 @@ private void InitializeAht10()
greenPwmPin: _pwmExpander.Pins.LED1,
bluePwmPin: _pwmExpander.Pins.LED0,
CommonType.CommonAnode);

// initialize off
_rgbled.IsOn = true;

Logger?.Trace("RGB LED up");
}
catch (Exception ex)
Expand Down
Loading