---
title: "rp2040_ndsp"
url: "https://maker.wiznet.io/irina/projects/rp2040-ndsp/"
markdown_url: "https://maker.wiznet.io/irina/projects/rp2040-ndsp/md"
type: "UCC: User Created Content"
author: "ichuang"
author_url: "https://github.com/ichuang/rp2040_ndsp"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "ichuang"
original_url: "https://github.com/ichuang/rp2040_ndsp"
published: "2023-06-02"
language: "en"
likes: 0
views: 171
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# rp2040_ndsp

> rp2040_ndsp.py is a stripped-down, simple NDSP server which runs on an RP2040 embedded processor

Original author: ichuang (source: https://github.com/ichuang/rp2040_ndsp)

## Article

The RP2040 is like a miniature Raspberry PI, and it is used to run [Adafruit's CircuitPython](https://learn.adafruit.com/welcome-to-circuitpython/what-is-circuitpython), with the [Wiznet5k Ethernet library](https://learn.adafruit.com/ethernet-for-circuitpython). This setup offers 29 multifunction GPIO pins (including four ADC channels) for control by an NDSP:

[![](https://github.com/ichuang/rp2040_ndsp/raw/main/images/RP2040-Zero-details-7.jpg)](https://github.com/ichuang/rp2040_ndsp/blob/main/images/RP2040-Zero-details-7.jpg)

This NDSP server can be called from ARTIQ; see [`rp2040_experiment.py`](https://github.com/ichuang/rp2040_ndsp/blob/main/rp2040_experiment.py) for example. A convenient way to test this is using the [dartiq](https://github.com/Technosystem-Labs/dartiq) dockerized ARTIQ package. Install that package, enter this into `device_db.py`:

```plaintext
device_db = {
    # rp2040 nano NDSP
    "rp2040": {
	"type": "controller",
        "host": "192.168.1.221",
        "port": 3476,
    },
}
```

then run:

```plaintext
    dartiq run "artiq_run ./rp2040_experiment.py"
```

and you should see:

```plaintext
ping =  Example NDSP is alive!
add result =  18
```

---

Source: https://maker.wiznet.io/irina/projects/rp2040-ndsp/
