Skip to main content

Add Shield

Shield typically rely on using an existing board definition and with extra configuration using configureHardware and the logic to start drivers.

  • create a class Shield (rename to your shield name) and add the @devsPart, @devsWhenUsed attribute in the jsdoc.
* A shield driver
* @devsPart My Shield name
* @devsWhenUsed
export class Shield {}
  • call configureHardware in the constructor to setup additional hardware configuration like I2C.
export class Shield {
constructor() {
  • add instance methods to start each driver
export class Shield {
startButton() {
return startButton({
pin: pins.GP10,
activeHigh: true,

Add to this repository

  • fork the microsoft/devicescript repository
  • add driver in packages/drivers (see others), export from packages/drivers/index.ts
  • add documentation page under website/docs/devices/shields, see others
  • add entry in website/docs/devices/index.tsx

How-to publish on npm

  • start a new DeviceScript project

  • run the DeviceScript: add npm... command to prepare it for publishing

  • add the board package for your target device

  • update the README with examples and documentation

  • publish a release of your package

  • send us a pull request so we list your shield package!