RP2: ADC pins does not work properly in XIAO RP2350
Port, board and/or hardware
XIAO RP2350
MicroPython version
MicroPython v1.26.1 on 2025-09-11; Seeed XIAO RP2350 with RP2350
Reproduction
- Use the firmware in this interface XIAO_RP2350
- Use the following test code
import machine
machine.ADC(29).read_u16()
Expected behaviour
Using my own compiled firmware
MicroPython v1.27.0-preview.135.gd28844d11b.dirty on 2025-09-15; Seeed XIAO RP2350 with RP2350
Type "help()" for more information.
>>> import machine
>>> machine.ADC(4).read_u16()
13955
Observed behaviour
MicroPython v1.26.1 on 2025-09-11; Seeed XIAO RP2350 with RP2350
Type "help()" for more information.
>>> import machine
>>> machine.ADC(29).read_u16()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: Pin doesn't have ADC capabilities
>>>
Additional Information
The reason is that pico-sdk is not the latest.
The ADC function modified the judgment logic after this submission, and changed the range of the ADC pin to be specified by macro(ADC_BASE_PIN and NUM_ADC_CHANNELS).
See: https://github.com/micropython/micropython/commit/34e463d861c5ebb33ec317749a008d461616cfbc
These two macros were not used in pico-sdk until after this commit.
See: https://github.com/raspberrypi/pico-sdk/commit/c88bd53a68fe2199fa4a5e6473ba88278f339a2b
The following file is the xiao rp2350 header file in the pico-sdk used by the current version of micropython. This file does not include the changes submitted above.
See: https://github.com/raspberrypi/pico-sdk/blob/9a4113fbbae65ee82d8cd6537963bc3d3b14bcca/src/boards/include/boards/seeed_xiao_rp2350.h
Please update pico-sdk and release a new firmware version as soon as possible.
Code of Conduct
Yes, I agree
PICO2 internal temperature sensor not accessible at ADC(4)
Port, board and/or hardware
PICO2
MicroPython version
RPI_PICO2-20240809-v1.24.0-preview.201.g269a0e0e1
Reproduction
from machine import ADC
temp_sensor = ADC(4)
Expected behaviour
able to read ADC
Observed behaviour
ValueError: Pin doesn't have ADC capabilities
Additional Information
adc channel defined at https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.pdf section 12.4.6.
tried both 4 and 8 no luck
Code of Conduct
Yes, I agree