RP2040 series products

RP2040

The new, cost-effective and versatile microcontrollers built with RP2040 that supports MicroPython and C/C++.

XIAO RP2040

XIAO RP2040 is like Seeeduino XIAO, it is a compact board with a wide range of interfaces. The XIAO RP2040 is equipped with the Raspberry RP2040 chip (Dual-core ARM® Cortex® M0+ @133MHz). Powerful performance and low power, ideal for various wearable and small projects.

● Powerful MCU: Dual-core ARM Cortex M0+ processor, flexible clock running up to 133 MHz
● Rich on-chip resources: 264KB of SRAM, and 2MB of onboard Flash memory
● Flexible compatibility: Support Micropython/Arduino/CircuitPython
● Easy project operation: Breadboard-friendly & SMD design, no components on the back
● Small size: As small as a thumb(20x17.5mm) for wearable devices and small projects
● Multiple interfaces: 11 digital pins, 4 analog pins, 11 PWM Pins,1 I2C interface, 1 UART interface, 1 SPI interface, 1 SWD Bonding pad interface
● Broad compatibility: Pins compatible with Seeeduino XIAO and supports Seeeduino XIAO’s Expansion board
image

Wio RP2040 Module

Wio RP2040 module is a wireless MicroPython module independently developed by Seeed using RP2040 + WiFi chip. RP2040 chip (cortex M0 +) with dual core up to 133MHz. The module is a low-power microcontroller with wireless function. It has powerful performance and small design size, which is very suitable for various IoT projects, and the module can be easily welded on various PCB backboards.

● Dual-core ARM Cortex M0+ processor, flexible clock running up to 133 MHz
● 264KB of SRAM, and 2MB of on-board flash memory
● Using powerful WiFi chip, supporting 2.4~2.4835 GHz frequency and AP&Station mode
● Comprehensive C/C++/MicroPython SDK, software examples, and documentation
● Extremely compact size: 18.0x 28.2x 1.0mm 32 pins SMT
image

Wio RP2040 Module

Wio RP2040 Mini dev board is a development board with wireless function and supporting MicroPython Programming based on Wio RP2040 module. It is a low-power microcontroller with wireless function. With powerful performance and small design size, it is very suitable for various IoT projects.

● Dual-core ARM Cortex M0+ processor, flexible clock running up to 133 MHz
● 264KB of SRAM, and 2MB of on-board flash memory
● Using powerful WiFi chip, supporting 2.4~2.4835 GHz frequency and AP&Station mode
● Comprehensive C/C++/MicroPython SDK, software examples, and documentation
● Breadboard friendly
image

I am trying to get the Expansion board (with OLED) to work with XIAO RP2040. It appears that they both require a different CircuitPython Library? How does that work?
I Used the library for PICO which the documentation says is equivalent to the XIAO RP2040\ . But trying to access the XPANSION board with the RP2040 plugged in is not working.
One example is accessing the micro SD Card on the Expansion give the following error:
main.py output:
Traceback (most recent call last):
File “main.py”, line 5, in
File “sd.py”, line 10, in
AttributeError: ‘module’ object has no attribute ‘SCK’
main.py ==
“”“Example for Pico. Blinks the built-in LED.”""
import time
import board
import digitalio
import sd

led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT

f = open("/sd/hello.txt", “r”) ## read the file from SD card
print(f.read())

while True:
led.value = True
time.sleep(0.5)
led.value = False
time.sleep(0.5)

sd.py ==
import os
import adafruit_sdcard
import board
import busio
import digitalio
import storage
import sys

Connect to the card and mount the filesystem for Seeeduino XIAO.

spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
cs = digitalio.DigitalInOut(board.D2)
sdcard = adafruit_sdcard.SDCard(spi, cs)
vfs = storage.VfsFat(sdcard)
storage.mount(vfs, “/sd”)
sys.path.append("/sd")
sys.path.append("/sd/lib") ## switch to the path to SD card

I cannot find any setup and code examples using the XIAO RP2040 (PICO) and the XIAO Expansion with OLDED. That would really help.
I thought that QT Py was almost the same as XIAO RP2040 but the Circuit Python UF2 file did not appear to work when I copied it to the RP1-RP2 Boot.
Desperate for any help or references that work. Is anyone else using the XIAO RP2040 and XIAO Expansion with OLED?

Tried Running a NEOPIXEL simpletest using PIN D2 and PIN gnd
received the following:
Traceback (most recent call last):
File “main.py”, line 18, in
AttributeError: ‘module’ object has no attribute ‘NEOPIXEL’

I just discovered another dilema> The SEEED WIKI for XIAO RP2040 says to use PICO CircuitPython Bundle. Nothing works, for me. I then came across the CircuitPython essentials and typed the commands: import board AND dir(board). There is no correspondence between the pins ! That would explain the attribute errors that show up for each try. Now what? Why does the WIKI have wrong information?

I found a partial map of pins that equate to PICO using the dir(board). I replaced D2 with GP2. No error was produced but nothing happened to the NEOPIXEL string.
A little Tech Support would come in handy. Or if someone could point to working examples for XIAO RP2040. I cannot find any references.

I was told to use DISCORD.
However, I wanted to close this question with “SOLVED” for anyone else having issue with CircuitPython on XIAO RP2040 and XIAO expansion board. There is a new firmware which fixed my problems.
The link for the firmware is:
GitHub - djairjr/CircuitPython_Seeduino_XIAO_RP2040
NOTE: When using MU editor I used the RP2040 not CircuitPython to compile and run.

This link also has some examples that actually work!
Here is one I am working on - irRemote

Write your code here :slight_smile:

Tested the code below, 010422 and results were provided.

SPDX-FileCopyrightText: 2018 Mikey Sklar for Adafruit Industries

SPDX-License-Identifier: MIT

import time
import adafruit_irremote
import board
import pulseio

IR_PIN = board.D0 # Pin connected to IR receiver.

print(‘IR listener’)
print()

Create pulse input and IR decoder.

pulses = pulseio.PulseIn(IR_PIN, maxlen=200, idle_state=True)
decoder = adafruit_irremote.GenericDecode()

Loop waiting to receive pulses.

while True:
# make sure pulses is empty
# small delay for cleaner results
pulses.clear()
pulses.resume()
time.sleep(.1)

# Wait for a pulse to be detected.
detected = decoder.read_pulses(pulses)

# print the number of pulses detected
# note: pulse count is an excellent indicator as to the quality of IR code
# received.
#
# If you are expecting 67 each time (Adafruit Mini Remote Control #389)
# and only receive 57 this will result in a incomplete listener

print("pulse count: ", len(detected))

# print in list form of the pulse duration in microseconds
# typically starts with ~9,000 microseconds followed by a ~4,000
# microseconds which is standard IR preamble

print(detected)
print()
1 Like

Any luck in connecting it with the Arduino IDE on a Mac?

The serial connection freezes and the volume doesn’t mount unless you connect it in boot mode (i.e. with the B switch pressed)

No. I do not own a MAC. Sorry.

About WIO RP2040 only:
It seems that the chip responsible for the Wifi is not the ESP 8266 but the ESP 8285. I gathered some of what I discovered in this post here:

Support takes a long time to respond to our requests…
If there was a complete schematic, with the connections between the RP2040 and the ESP8285, it would be excellent. But notice that, even in the product description, we don’t even have the chip responsible for the Wifi interface.

In the other thread you can see what is all broken with Wio RP2040. Today I created 4 issues in github repo believed to be the base for Seeed provided MicroPython firmware:

I got a proof from Seeed MicroPython itself that the Wifi chip is an ESP8285, one of the issues is that communication between RP2040 and Wifi chip is not stable:

>>> import forum 
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
  File "forum.py", line 7, in <module> 
OSError: couldn't init nic esp8285 ,try again please 
 
>>>
1 Like