Pinscope beyond the ESP32: Zephyr, Raspberry Pi Pico, Linux and ESP8266

Pinscope started on the ESP32 because that is where we needed it. The device side was written in portable C from the start, and today the same remote access, logs, metrics, crash reports and firmware updates run on Zephyr, the Raspberry Pi Pico 2 W, Linux and the ESP8266.

What is the same everywhere

One outbound connection from the device to Pinscope, over the Noise protocol instead of TLS, so nothing is opened on the router and no VPN is needed. Over it:

The dashboard, the alerts, the share links and the API are the ones you know from the ESP32. A project can hold devices of every kind.

Each platform, the way it is used there

Adding itUpdatesRAM
ZephyrA west module and two lines in prj.conf; no codeMCUboot, zephyr.signed.binabout 8.6 KB with a 4 KB thread stack
Raspberry Pi Pico 2 WOne CMake include and one callUF2 into the other A/B partition, with try-before-you-buyabout 9 KB
LinuxOne command installs the agent as a serviceYour file, handed to your install commanda small process
ESP8266An SDK component, the key in menuconfig, one callThe SDK's two OTA slotsabout 7 KB
ESP32One line, on ESP-IDF, Arduino or PlatformIOTwo slots with rollback9.4 KB

Zephyr

Pinscope is a Zephyr module. Add it to west.yml, then:

CONFIG_PINSCOPE=y
CONFIG_PINSCOPE_PROJECT_KEY="psk_..."

That is the whole integration. The module turns on what it needs (sockets, DNS, DHCP, settings storage) as defaults your configuration can still override, starts at boot, and stops the build with the fix in the message when something is missing, such as a storage partition or a random number source. LOG_* and printk output is sent to the dashboard. A fatal error is kept across the reboot; with the ELF uploaded, the dashboard shows the function and line. With MCUboot, updates work from the dashboard. It runs on WiFi, Ethernet and anything else Zephyr gives sockets on. The Zephyr guide.

Raspberry Pi Pico 2 W

One include in CMakeLists.txt and pinscope_start() once WiFi is up. Everything printed with printf becomes the log. Updates use the RP2350's A/B partitions: the new image boots on trial and is kept only when it reaches Pinscope; otherwise the bootrom goes back. The Pico guide.

Linux

A small agent, installed as a service with one command, puts a Raspberry Pi or a gateway in the same dashboard as its microcontrollers: its web interface from anywhere, its journal, memory, load, temperature and disk. An update is a file you upload and a command you choose, so it can be a .deb, a container image or a script. Reaching a Raspberry Pi behind NAT.

ESP8266

For the ESP8266 boards still in the field: the same component as on the ESP32, in the ESP8266 RTOS SDK, in about 7 KB of RAM, where a TLS session would take a large share of the free heap.

New free tools

Like the ESP32 tools, they run in the browser and send nothing anywhere:

Beta

The ESP32 component is the one most devices run today; the other platforms are new. They are in beta while we test them on more boards. If yours is not covered, or something does not work, write to hello@pinscope.dev: we answer, and we fix it.

Try it

Three devices are free, and no card is needed. Create an account, or read the guide for your platform: ESP32, Zephyr, Raspberry Pi Pico, Linux, ESP8266.

More