Raspberry Pi RP2040

From Wildsong
Revision as of 05:31, 26 September 2022 by Brian Wilson (talk | contribs) (→‎Python)
Jump to navigationJump to search

I have a couple plain Pico boards, an Adafruit Feather Pico, and I have a Wiznet EVB (a hat for a Pico) and a WS5100S which is the Pico and ethernet on one board.


One intended project is as a power management controller in a ham radio repeater site.

I tried micropython but integration with VSCode is pretty poor. Now I am trying circuitpython.

Power management

I want to define an API and talk to it exclusively via MQTT pub/sub messages.

  • Track the Ubiquiti link, and reset the link if the remote sites go offline. Can the UBNT do that on its own?
  • Bring up power to the other components and shut down when not needed to save power.
  • Real time clock calibrated via SNTP
  • Use hardware WDT to reset the Pico if it gets stuck.
  • Monitor a UPS over the USB port.
  • Monitor and reset the onboard ethernet hardware if it gets stuck.
  • Configure IP settings in flash. Initial address is 192.168.100.1.
  • OTA flash updates

The "other components" under control include a FlexRadio and a Windows computer. Incidentally -- both the full Raspberry Pi and the Intel NUC have built in hardware WDT.

Power - Need a regulated clean supply to feed it 3v3 from 12v power.

Resources

Pico

Python

CircuitPython -- make sure you download the Feather version, the Rpi Pico version does not work on the Feather. Adafruit recommends you use the latest image, not the stable one.


General notes on VSCode. I gave up on Micropython because there was no working extension that I could find. In retrospect maybe I can get Pymakr going now that I have figured out CircuitPython.

When you fire up a CP board (any, regardless of who made it, if it runs CP), it will mount a drive and set up a serial port. If you edit files it will automatically restart.

(On my ElementaryOS-based Mac), files are mounted at /media/bwilson/CircuitPy. Serial port is /dev/ttyACM0

  1. Install CircuitPython on the board.
  2. Plug in the board. (Powercycle it in other words.)
  3. Start VisualCode.
  4. Select the board. There should be a way to do that from the bottom bar.
  5. Open a serial console, also in the bottom bar. You should see it's CircuitPython in the window.
  6. Open the folder /media/bwilson/CircuitPy.
  7. Edit the file code.py and save it. Saving will force reload the script and that should be visible in the console.

Wiznet

https://www.hackster.io/news/wiznet-s-w5100s-evb-pico-clones-the-raspberry-pi-pico-but-adds-a-handy-ethernet-port-too-11125e568928

Wiznet did a WiFi + Pico EVB, too, but I can't find it for sale anywhere. https://github.com/Wiznet/WizFi360-EVB-Pico-C/blob/main/getting_started.md

The CircuitPython page for the Wiznet Pico is here https://circuitpython.org/board/wiznet_w5100s_evb_pico/