Hackster is hosting Hackster Holidays, Ep. 4: Livestream & Giveaway Drawing. Watch previous episodes or stream live on Wednesday!Stream Hackster Holidays, Ep. 4 on Wednesday!
arduinocc
Published © GPL3+

Raspberry Pi Pico W Setup & Debugging

Gain the power of the RP2040 Processor with in-built WiFi for a very reasonable price, along with Hardware Debugging capabilities!

IntermediateFull instructions provided10,041
Raspberry Pi Pico W Setup & Debugging

Things used in this project

Hardware components

Raspberry Pi Pico
Raspberry Pi Pico
For Creation of the PicoProbe Debug Probe
×1
Raspberry Pi Pico W
×1
Female/Female Jumper Wires
Female/Female Jumper Wires
×6
USB-A to Micro-USB Cable
USB-A to Micro-USB Cable
×1

Software apps and online services

Visual Studio 2017
Microsoft Visual Studio 2017
Or VS2019 or VS2022
Arduino IDE
Arduino IDE
Desktop version only (NOT the AppStore version)
Visual Micro

Story

Read more

Schematics

Raspberry Pi Pico W to Pico Probe Wiring Diagram

Shows how to connect the Pico Probe to the Raspberry Pi Pico or Pico-W board for debugging and serial throughput.

Code

Raspberry Pi Pico W - WifiScan Example

Arduino
Simple Sketch to scan WiFi networks on the Raspberry Pi Pico-W, using the Serial1 interface which runs through the PicoProbe.
// Simple WiFi network scanner application
// Released to the public domain in 2022 by Earle F. Philhower, III
#include <WiFi.h>

void setup() {
    Serial1.begin(115200);
}

const char* macToString(uint8_t mac[6]) {
    static char s[20];
    sprintf(s, "%02X:%02X:%02X:%02X:%02X:%02X", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
    return s;
}
 
const char* encToString(uint8_t enc) {
    switch (enc) {
    case ENC_TYPE_NONE: return "NONE";
    case ENC_TYPE_TKIP: return "WPA";
    case ENC_TYPE_CCMP: return "WPA2";
    case ENC_TYPE_AUTO: return "AUTO";
    }
    return "UNKN";
} 

void loop() {
    delay(5000);
    Serial1.printf("Beginning scan at %d\n", millis());
    auto cnt = WiFi.scanNetworks();
    if (!cnt) {
        Serial1.printf("No networks found\n");
    }
    else {
        Serial1.printf("Found %d networks\n\n", cnt);
        Serial1.printf("%32s %5s %17s %2s %4s\n", "SSID", "ENC", "BSSID        ", "CH", "RSSI");
        for (auto i = 0; i < cnt; i++) {
            uint8_t bssid[6];
            WiFi.BSSID(i, bssid);
            Serial1.printf("%32s %5s %17s %2d %4d\n", WiFi.SSID(i), encToString(WiFi.encryptionType(i)), macToString(bssid), WiFi.channel(i), WiFi.RSSI(i));
        }
    }
    Serial1.printf("\n--- Sleeping ---\n\n\n");
    delay(5000);
}

Credits

arduinocc

arduinocc

2 projects • 13 followers

Comments