Get Started in Minutes!
Select your desired language and plug in your device to blink its STAT LED!
- Python
- JavaScript
- .NET
- Arduino
- MicroPython
- Script
- MicroBlocks
Connect to a PC (click for image)

from DUELink.DUELinkController import DUELinkController
availablePort = DUELinkController.GetConnectionPort()
duelink = DUELinkController(availablePort)
# Blink the STAT LED (on for 200ms, off for 800ms, 20 times)
duelink.System.StatLed(200,800,20)
You need pip install DUELink. Full details are on the Python page.
Connect to a PC (click for image)

import pkg_serialusb from 'dlserialusb';
const {SerialUSB} = pkg_serialusb
import pkg_duelink from 'duelink';
const {DUELinkController} = pkg_duelink
let duelink = new DUELinkController(new SerialUSB());
await duelink.Connect();
async function Blinky() {
// Blink the STAT LED (on for 200ms, off for 800ms, 20 times)
await duelink.System.StatLed(200, 800, 20);
}
Blinky();
You need npm install duelink and npm install dlserialusb. Full details are on the JavaScript page.
Connect to Arduino UNO R4 (click for image)

#include <DUELink.h>
TwoWireTransport transport(Wire1);
DUELink duelink(transport);
void setup() {
duelink.Connect();
// Blink the STAT LED (on for 200ms, off for 800ms, 20 times)
duelink.System.StatLed(200, 200, 10);
}
void loop(){
}
You need DUELink and STM32 MCU based boards packages. Full details are on the Arduino page.
Connect to a PC (click for image)

using GHIElectronics.DUELink;
Console.WriteLine("Hello DUELink!");
var availablePort = DUELinkController.GetConnectionPort();
var duelink = new DUELinkController(availablePort);
// Blink the STAT LED (on for 200ms, off for 800ms, 20 times)
duelink.System.Statled(200, 800, 20);
Console.WriteLine("Bye DUELink!");
You need GHIElectronics.DUELink library from nuget.org. Full details are on the .NET page.
DUELink modules have a built in scripting engine, allowing them to run standalone. You can load and modify scripts using console.duelink.com.
# Blink the STAT LED (on for 200ms, off for 800ms, 20 times)
Statled(200, 800, 20)
# Blink the STAT LED, but on a tethered module this time
Cmd("Statled(200, 800, 20)")
Learn about the scripting language and the console.
Connect to any RPI RP2350 or RP2040 board (click for image)

import time
import machine
import duelink
from duelink import transport
from machine import Pin, Timer
sclPIN = machine.Pin(23)
sdaPIN = machine.Pin(22)
i2c = transport.I2CTransportController(sda=sdaPIN, scl=sclPIN)
due = duelink.DUELinkController(i2c)
# Blink the STAT LED (on for 200ms, off for 800ms, 20 times)
due.System.StatLed(200, 800, 20)
You need to install duelink-stdlib-mp. Full details are on the MicroPython page.
This is an excellent block-coding option. It can be loaded on modules directly, or used to control tethered modules.
Never used MicroBlocks? Click for a quick start!
Got to microblocks.fun/run/microblocks.html.

Click Connect on the top right, then select connect (USB). You now should have a pop-up window with DUELink MicroBlocks option. If you do not see that option then you may need to load the MicroBlocks firmware.
MicroBlocks has "live updates". Click on set user LED and the STAT LED on your board will come on.

Full details are on the MicroBlocks page.
MicroBlocks maps its blocks to work with DUELink. For example, set user LED is mapped to STAT LED found on all modules. Put that in a loop with some delays and we have a blinking STAT LED. This program gets stored on the device and the loop will execute automatically when the system starts, "when started".

These blocks run on the module itself. You can also use MicroBlocks to control other tethered modules. See MicroBlocks page for more details.
How it works:
- Plug in your device.
- Create a Project.
- Add DUELink library.
- Paste the above code.
- Run the project and watch the STAT LED💡blink.

Problems? You may need to install the latest firmware.
Choose your Tutorial:
We have hand selected a few easy-start options, but other modules work similarly.
Try something else:
Modules Discovery
loader.duelink.com/discover queries connected modules. Start by USB-connecting your module(s) to a PC. If your board does not have a USB connector then use an adapter, like USB Hook.

Click the Discover button to start discovering modules! Here is an example showing a connected Ghizzy.

If the "discover" feature failed complaining about a MicroBlocks firmware, then you need to load the DUELink Official firmware.
Click View Product Details on the discovered item to visit the product's page.
Community Forum
The examples above show different ways to start with DUELink. Join us at the DUELink Forum to discuss other options and share what you are working on.




