.NET Gadgeteer Modules
This page lists all .NET Gadgeteer modules. All sources are found on the NETMF and Gadgeteer repo
Accel G248
The Accel G248 measures acceleration though I2C bus.
Barometer
Measures pressure.
Bluetooth
Breadboard X1
An easy breadboard option. Simply access the socket directly to wire whatever your heart desires!
Breakout
Simply a breakout of all signals.
Breakout TB10
Simply a breakout of all signals, on a terminal block.
Button
The Button module is very simple, with a button connected to pin 3 and an LED connected to pin4.
Button S7
7 buttons on a single module, with LEDs that light up with button presses!
Use the same code example provided for the Button Module.
Buttons map:
Left: Pin
Right: Pin 8
Up: Pin 6
Down: Pin 7
Enter: Pin 3
Back: Pin 4
Forward: Pin 9
CAN DW
Camera
Cellular Radio
Character Display
This is a standard and very common HD44780 display.
ColorSense
A color sensor that uses software I2C, not yet supported in TinyCLR OS.
Compass
Current ACS712
This is a current sensor that uses ACS712, which simply outputs an analog voltage.
Display CP7
The configurations for the display:
// these are the wrong values!
Width = 800,
Height = 480,
PixelClockRate = 24 * 1000 * 1000,
PixelPolarity = false,
OutputEnablePolarity = true,
OutputEnableIsFixed = true,
HorizontalFrontPorch = 16,
HorizontalBackPorch = 46,
HorizontalSyncPulseWidth = 1,
HorizontalSyncPolarity = true,
VerticalFrontPorch = 7,
VerticalBackPorch = 23,
VerticalSyncPulseWidth = 1,
VerticalSyncPolarity = true,
Display N18
This is an SPI display that can work on any system with SPI bus, even small ones without TFT display support.
Display N7
The configurations for the display:
Width = 800,
Height = 480,
PixelClockRate = 24 * 1000 * 1000,
PixelPolarity = false,
OutputEnablePolarity = true,
OutputEnableIsFixed = true,
HorizontalFrontPorch = 16,
HorizontalBackPorch = 46,
HorizontalSyncPulseWidth = 1,
HorizontalSyncPolarity = true,
VerticalFrontPorch = 7,
VerticalBackPorch = 23,
VerticalSyncPulseWidth = 1,
VerticalSyncPolarity = true,
Display NHVN
This allows the use of several displays offered by http://newhavendisplay.com/
Supported displays:
- NHD-4.3-480272EF-ATXL#
- NHD-4.3-480272EF-ATXL#-CTP
- NHD-4.3-480272EF-ATXL#-T
- NHD-7.0-800480EF-ATXL#
- NHD-7.0-800480EF-ATXL#-CTP
- NHD-7.0-800480EF-ATXV#
- NHD-7.0-800480EF-ATXV#-CTP
The configurations for all 4.3" display:
Width = 480,
Height = 272,
PixelClockRate = 20 * 1000 * 1000,
PixelPolarity = false,
OutputEnablePolarity = true,
OutputEnableIsFixed = false,
HorizontalFrontPorch = 2,
HorizontalBackPorch = 2,
HorizontalSyncPulseWidth = 41,
HorizontalSyncPolarity = false,
VerticalFrontPorch = 2,
VerticalBackPorch = 2,
VerticalSyncPulseWidth = 10,
VerticalSyncPolarity = false,
The configurations for all 7" display:
Width = 800,
Height = 480,
PixelClockRate = 20 * 1000 * 1000,
PixelPolarity = false,
OutputEnablePolarity = true,
OutputEnableIsFixed = false,
HorizontalFrontPorch = 88,
HorizontalBackPorch = 40,
HorizontalSyncPulseWidth = 48,
HorizontalSyncPolarity = false,
VerticalFrontPorch = 13,
VerticalBackPorch = 32,
VerticalSyncPulseWidth = 3,
VerticalSyncPolarity = false,
As for the capacitive touch controller, use this old NETMF driver code as a reference:
public class FT5306Controller {
private InterruptPort touchInterrupt;
private I2CDevice i2cBus;
private I2CDevice.I2CTransaction[] transactions;
private byte[] addressBuffer;
private byte[] touchDataBuffer;
private byte[] touchCountBuffer;
public delegate void TouchEventHandler(FT5306Controller sender, TouchEventArgs e);
public event TouchEventHandler TouchDown;
public event TouchEventHandler TouchUp;
public event TouchEventHandler TouchMove;
public FT5306Controller(Cpu.Pin interruptPin) {
this.transactions = new I2CDevice.I2CTransaction[2];
this.addressBuffer = new byte[1];
this.touchDataBuffer = new byte[4];
this.touchCountBuffer = new byte[1];
this.i2cBus = new I2CDevice(new I2CDevice.Configuration(0x38, 400));
this.touchInterrupt = new InterruptPort(interruptPin, false, Port.ResistorMode.Disabled, Port.InterruptMode.InterruptEdgeBoth);
this.touchInterrupt.OnInterrupt += (a, b, c) => this.OnTouchEvent();
}
private void OnTouchEvent() {
var points = this.ReadData(2, this.touchCountBuffer)[0];
for (var i = 0; i < points; i++) {
var data = this.ReadData(i * 6 + 3, this.touchDataBuffer);
var flag = (data[0] & 0xC0) >> 6;
var x = ((data[0] & 0x0F) << 8) | data[1];
var y = ((data[2] & 0x0F) << 8) | data[3];
var handler = flag == 0 ? this.TouchDown : flag == 1 ? this.TouchUp : flag == 2 ? this.TouchMove : null;
if (handler != null)
handler(this, new TouchEventArgs { X = x, Y = y });
}
}
private byte[] ReadData(int address, byte[] resultBuffer) {
this.addressBuffer[0] = (byte)address;
this.transactions[0] = I2CDevice.CreateWriteTransaction(this.addressBuffer);
this.transactions[1] = I2CDevice.CreateReadTransaction(resultBuffer);
this.i2cBus.Execute(this.transactions, 500);
return resultBuffer;
}
public class TouchEventArgs : EventArgs {
public int X { get; internal set; }
public int Y { get; internal set; }
}
}
Display T35
The configurations for the display:
Width = 320,
Height = 240,
PixelClockRate = 15 * 1000 * 1000,
PixelPolarity = false,
OutputEnablePolarity = true,
OutputEnableIsFixed = true,
HorizontalFrontPorch = 51,
HorizontalBackPorch = 27,
HorizontalSyncPulseWidth = 41,
HorizontalSyncPolarity = false,
VerticalFrontPorch = 16,
VerticalBackPorch = 8,
VerticalSyncPulseWidth = 10,
VerticalSyncPolarity = false,
Display T43
The configurations for the display:
Width = 480,
Height = 272,
PixelClockRate = 20 * 1000 * 1000,
PixelPolarity = false,
OutputEnablePolarity = true,
OutputEnableIsFixed = false,
HorizontalFrontPorch = 2,
HorizontalBackPorch = 2,
HorizontalSyncPulseWidth = 41,
HorizontalSyncPolarity = false,
VerticalFrontPorch = 2,
VerticalBackPorch = 2,
VerticalSyncPulseWidth = 10,
VerticalSyncPolarity = false,
Display TE35
The configurations for the display:
Width = 320,
Height = 240,
PixelClockRate = 15 * 1000 * 1000,
PixelPolarity = false,
OutputEnablePolarity = true,
OutputEnableIsFixed = true,
HorizontalFrontPorch = 51,
HorizontalBackPorch = 29,
HorizontalSyncPulseWidth = 41,
HorizontalSyncPolarity = false,
VerticalFrontPorch = 16,
VerticalBackPorch = 3,
VerticalSyncPulseWidth = 10,
VerticalSyncPolarity = false,
Distance US3
A very common ultrasonic sensor that works by sending a pulse on the trig Pin4 and measuring the response time on echo Pin3.
Ethernet ENC28
Ethernet J11D
Extender
FEZtive
Flash
GPS
GasSense
This module can host several different air sensors, like Alcohol and CO2.
The sensor has an internal heater on pin 4 that needs to be enabled and then it is a simple analog read on pin 3.
Gyro
HD44780
See the Character Display Module
HubAP5
No hub support is currently planned.
IO60P16
IR Receiver
Joystick
The Joystick module has two analog inputs for X (pin 4) and Y (pin 5) position. Pressing the knob also works like a button (pin 3).
Keypad KP16
LED 7C
An LED that can be set to one of 7 colors, 8 if you count off!
LED 7R
This is a ring of 6 LEDs and a 7th center LED. Reference the LED 7C module for using pins.
Center LED: pin 9 LEDs going clockwise starting from LEDs D1 to D6 on the board D1, D2, D3, D4, D5, D6 are pins 3 to 8 respectively.
LED Strip
A strip of 7 LEDs, connected to pins 3 through 9. Reference the LED 7C module for using pins.
Light Sense
Simply using analog on pin 3. Use the same code as the potentiometer.
Load
Each one of the 7 GPIO pins are connected to a transistor to handle a load, like a motor.
MaxO
Shift registers used to take serial SPI data and put on parallel pins, perfect for driving tons of LEDs!
MicroSD Card
Moisture
This is a simple analog input measuring the direct resistance (moisture) on pin 3. An enable pin needs to be activated on pin 6.
Motor Driver
The Motor Driver Module uses L298 H-bridge that can drive two motors up to 4A.
Pin 6: Motor A Direction (GPIO)
Pin 7: Motor A Speed (PWM)
Pin 8: Motor B Direction (GPIO)
Pin 9: Motor B Speed (PWM)
Multicolor LED
Music
The Music Module uses the popular VS1053 decoder chip that decodes MP3, WMA, OGG, MIDI and WAV files.
Null Modem
No driver is needed.
OBD II
OneWire X1
A breakout with a terminal block for easily connecting OneWire devices, specifically the common temperature probes.
PIR
Motion detection. Simply pin 3 changes its state when it detects motion.
Parallel CNC
Potentiometer
The Potentiometer module is simply a variable resistor connected to pin3. Rotating its knob will result in an analog value changing from min to max.
Pulse Count
Pulse InOut
Pulse Oximeter
RFID Reader
RS232
Simply a serial port.
RS485
Simply a serial port.
Radio FM1
Reflector R3
Relay ISOx16
An array of 16 relays. Operate similar to the MaxO module.
Relay X1
Simply set pin 3 high to activate the relay.
Rotary H1
SD Card
S-Plus
Serial Camera
Stepper L6470
TempHumidity
Thermocouple
Touch C8
Touch L12
Tunes
The Tunes Module is a tiny speaker that is connected to pin 9. Use PWM to generate sounds
UC Battery 4xAA
No driver is needed.
USB Client DP
No driver is needed.
USB Client SP
No driver is needed.
USB Host
USB Serial
Simply, a serial port.
USB Serial SP
Simply, a serial port.
VideoOut
WiFi RN171
WiFi RS21
XBee Adapter
Simply, a serial port. From there a driver like https://xbee.codeplex.com/ will help.