• Stars
    star
    138
  • Rank 264,508 (Top 6 %)
  • Language
    C#
  • Created about 6 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Unified driver and library framework for Meadow applications.

NuGet Badge Develop Branch

iot, dotnet, meadow, meadow-foundation

Meadow.Foundation

The Meadow.Foundation peripherals library is an open source repository of drivers and libraries that streamline and simplify adding hardware to your .NET Meadow IoT application.

Meadow.Foundation makes the task of building connected things easy with Meadow by providing a unified driver and library framework that includes drivers and abstractions for common peripherals such as: sensors, displays, motors, cameras and more. Additionally, it includes utility functions and helpers for common tasks when building connected things.

Contents

Repositories

Meadow.Foundation is currently split into multiple GitHub repos:

  1. Meadow.Foundation which contains the majority of the peripheral and library source code
  2. Meadow.Foundation.CompositeDevices contains drivers for devices that combine multiple peripherals or leverage additional onboard microcontrollers
  3. Meadow.Foundation.Featherwings contains drivers for hardware that conforms to the Adafruit Featherwing form factor
  4. Meadow.Foundation.Grove contains drivers for Seeed Studio Grove modular hardware peripherals
  5. Meadow.Foundation.MBus contains drivers for M-Bus peripherals
  6. Meadow.Foundation.MikroBus contains drivers for MikroElektronika mikroBUS Click Boards

Repository Branches

Today, Meadow.Foundation is represented within two branches: main and develop.

Main

The main branch represents the currently published code from the last official release. Meadow.Foundation projects that depend on other projects within Meadow.Foundation will have local project references. For example, display drivers will contain a project reference to MicroGraphics. Any references outside of Meadow.Foundation rely on the latest published nuget packages. Nuget references are typically only present in the Meadow.Foundation sample projects.

The main branch will compile without the need to clone additional projects. This branch is ideally used to review driver structure and run driver samples with the latest published and stable code.

Develop

The develop branch represents the current state of development for the next official release. Code in this branch should be tested and functional. However, changes in this branch may depend on changes in other Meadow projects, such as Meadow Core.

To compile the develop branch, you'll need to clone other dependency GitHub repositories at the same folder level as Meadow.Foundation. This includes but is not limited to: Meadow.Core, Meadow.Units, Meadow.Contracts, Meadow.Logging, and Meadow.Modbus. You can review the references in the _external solution folder within Meadow.Foundation for the complete list. Typically, all dependency projects should also be on the develop branch. This branch is ideal if you want to submit new drivers or propose substantial changes to existing code.

Branch history

All code changes are committed to the develop branch. At the time of release, the references within develop are updated for publishing and then merged to main. This ensures a consistent and accurate history across develop and main. This also allows pull requests targeted to main to be easily retargeted to develop.

Requesting New Drivers

If you have a need for a driver that we don't yet support, you have a couple options:

  • Use an existing, similar driver as a template for your new driver. We accept pull requests, but don't require them.
  • Open a new item on the Issues Tab and request the driver so we can prioritize it.

Documentation

You can read more Meadow.Foundation and how to get started in our developer site.

Using Meadow.Foundation

To use Meadow.Foundation, simply add a Nuget reference to the core library (for core helpers and drivers), or to the specific peripheral driver you'd like to use, and the core will come with it.

nuget install Meadow.Foundation

Contributing

Meadow.Foundation, is open source and community powered. We love pull requests, so if you've got a driver to add, send it on over! For each peripheral driver, please include:

  • Documentation - Including a Fritzing breadboard schematic on wiring it up, sourcing info, and API docs. Please see other drivers for examples. Documentation is hosted on the Wilderness Labs DocFx site.
  • Datasheet - For the peripheral, if applicable.
  • Sample - Application illustrating usage of the peripheral.

License

Copyright 2019-2024, Wilderness Labs Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Author Credits

Authors: Bryan Costanich, Mark Stevens, Adrian Stevens, Jorge Ramirez, Brian Kim, Frank Krueger, Craig Dunn

More Repositories

1

Documentation

Wilderness Labs Docs
HTML
63
star
2

Netduino.Foundation

Official Repository of Netduino Peripheral Drivers
C#
58
star
3

Netduino_SDK

C++
32
star
4

Meadow.Core

Meadow BCL
C#
30
star
5

Netduino_Hardware

A repository of Legacy Netduino Board designs and associated files. Includes Netduino 2 and 3.
25
star
6

Netduino_Samples

Samples for the Netduino family of boards
C#
23
star
7

Meadow.Project.Samples

.NET Projects for Meadow & Meadow.Foundation
C#
21
star
8

Meadow.CLI

Meadow Command-Line-Interface for interacting with Meadow and Meadow.Cloud via terminal. Also includes `Meadow.CLI.Core`, which can be used programmatically from an app as a library.
C#
21
star
9

Meadow.Core.Samples

Public samples for Meadow core functionality.
C#
20
star
10

Clima

Climate Station App
C#
17
star
11

Meadow.Linux

Meadow for Linux
C#
16
star
12

Meadow.ProjectLab.Samples

Samples for Wilderness Labs Project Lab
C#
16
star
13

Meadow_Issues

Public repo for bugs and issues with Meadow
15
star
14

Meadow.ProjectLab

Project Lab Board
C#
13
star
15

Chloroplast

Wilderness Labs docs engine that converts and hosts markdown and XML API docs into HTML.
C#
12
star
16

VSCode_Meadow_Extension

Meadow Extension for Visual Studio Code. Enables build and deploy.
C#
11
star
17

Meadow.Samples

Sample applications for Meadow platforms, libraries and peripherals
C#
10
star
18

Meadow.Desktop.Samples

Repository of Meadow.Desktop samples for Windows and Linux
C#
9
star
19

Maple.NetMF

Maple is an ultra-lightweight RESTful web server built specifically for network enabled Netduino devices. It's fully .NET MicroFramework 4.3 compatible and provides an easy to extend architecture.
C#
7
star
20

3D_Print_Designs

Repository of 3D printable designs such as baseboards, enclosures, etc., for Netduino.
6
star
21

DFU-Sharp

Dotnet library for uploading firmware to DFU devices
C#
5
star
22

Therm

Meadow-Powered, Open-Source Smart Thermostat
C#
5
star
23

Meadow.Sdk

Meadow .NET SDK files, including IDE project templates.
C#
5
star
24

VS_Mac_Meadow_Extension

Meadow Extension for Visual Studio for Mac. Enables in-IDE build and deploy.
C#
5
star
25

Netduino-Updater

A C# Port of the Netduino Firmware Updater
C#
4
star
26

Apiarium

Open source, open-hardware, modern beehive monitoring powered by Meadow.
C#
4
star
27

Netduino_Releases_Bucket

A repository of Netduino Firmware Releases.
3
star
28

TankLevelMonitor

C#
3
star
29

Meadow.Modbus

.NET Library for Modbus RTU and TCP
C#
3
star
30

GNSS_Sensor_Tracker

GNSS/GPS and Sensor Tracker IoT Accelerator
C#
3
star
31

VS_Win_Meadow_Extension

Meadow Extension for Visual Studio for Windows. Enables in-IDE build and deploy.
C#
3
star
32

Meadow_Performance_Benchmarks

Contains applications that measure the performance of Meadow, as well as the results of those tests.
C#
3
star
33

Maple

An ultra-lightweight .NET Web API Server
C#
3
star
34

Hardware_Addon_Modules

Core-Compute Hardware Addon Modules
3
star
35

Meadow_EDA_Parts

Contains the schematic symbols and PCB footprints for Meadow boards and modules for use in your designs.
3
star
36

Meadow.Simulation

A simulation Environment for Wilderness Labs' Meadow Platform
C#
3
star
37

Rider_Meadow_Plugin

Kotlin
3
star
38

Cultivar

Greenhouse Management Meadow Solution
C#
2
star
39

Juego

Meadow handheld gaming project
C#
2
star
40

Meadow.Units

C#
2
star
41

Meadow_Hardware_Designs

1
star
42

Netduino_IP_Stacks

Networking stacks for Netduino
C#
1
star
43

Meadow.Logging

A very simple, compact but extensible logging library
C#
1
star
44

Mirid

Internal Meadow.Foundation driver and documentation validator and reporting tool
C#
1
star
45

Circuit_Part_Libraries

Custom libraries for KiCad, Eagle, and other PCB design software that we use in our own designs.
1
star
46

Meadow.Workbench

A cross-platform management tool for Meadow devices
C#
1
star
47

OnAir_Sign

C#
1
star
48

Meadow.Hello

C#
1
star
49

Meadow.Foundation.mikroBUS

Wilderness Labs Meadow.Foundation drivers for MikroElektronika mikroBUS Click Boards
C#
1
star
50

Meadow.Cloud.Samples

Official repository with Meadow.Cloud samples
C#
1
star
51

Juego.Samples

Samples for the Wilderness Labs Juego IoT Accelerator
C#
1
star
52

Meadow.Foundation.Grove

Wilderness Labs Meadow.Foundation drivers for Seeed Studio Electronics Grove modules
C#
1
star
53

Meadow.Diagnostic.Applications

A collection of Meadow applications used for tests and diagnostics.
C#
1
star
54

Meadow.Foundation.FeatherWings

Wilderness Labs Meadow.Foundation drivers for FeatherWing modules
C#
1
star
55

Meadow.TestSuite

Meadow.TestSuite is intended to provide a remote-controllable test infrastructure for the Wilderness Labs Meadow. It provides a mechanism to push test assemblies to a device, enumerate assemblies and test methods, selectively run test methods, and retrieve test results.
C#
1
star