-
Notifications
You must be signed in to change notification settings - Fork 774
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RP235x support #3241
Comments
Initial support is coming in #3243, though much work remains. |
I've preordered the Raspberry Pi Pico 2 and would be willing to test it on actual hardware and write/verify some examples. |
I've got a couple of Tiny2350 from pimoroni, got blinky to work without much trouble except that elf2uf2 would work because of hard float in the executable.
Worked around that by using picotool uf2 convert -t elf $1 out.uf2
picotool load out.uf2
picotool reboot in This is a quick workaround until we get support in elf2uf2 for |
JP has a pull request for elf2uf2-rs to allow use with the rp2350. JoNil/elf2uf2-rs#33 |
However, I recommend switching to |
I'm running into a bit of issue, I'm getting different behavior after This is more or less the current setup, it's reproducible if I remove the USB part and just leave the blinky loop #[embassy_executor::main]
async fn main(spawner: Spawner) {
let peripherals = embassy_rp::init(Default::default());
let other_side_channel = OTHER_SIDE_CHANNEL.init(Channel::new());
UsbHandler::new(peripherals.USB, other_side_channel, spawner, true);
let delay = 100;
let mut counter = 0;
#[cfg(feature = "tiny2350")]
{
let mut red_led = Output::new(peripherals.PIN_18, Level::Low);
let mut green_led = Output::new(peripherals.PIN_19, Level::Low);
let mut blue_led = Output::new(peripherals.PIN_20, Level::Low);
green_led.set_high();
blue_led.set_high();
red_led.set_high();
loop {
log::info!("Tick {}", counter);
counter += 1;
red_led.set_low();
Timer::after_millis(delay).await;
red_led.set_high();
Timer::after_millis(delay).await;
green_led.set_low();
Timer::after_millis(delay).await;
green_led.set_high();
Timer::after_millis(delay).await;
blue_led.set_low();
Timer::after_millis(delay).await;
blue_led.set_high();
Timer::after_millis(delay).await;
}
}
#[cfg(feature = "pico2")]
{
let mut led = Output::new(peripherals.PIN_25, Level::Low);
led.set_low();
loop {
log::info!("Tick {}", counter);
counter += 1;
led.set_high();
Timer::after_millis(delay).await;
led.set_low();
Timer::after_millis(delay).await;
}
}
} On Any clues on why this is happening? I'm planning to solder the headers tomorrow so I can try to set up UART and see if I get more info that way. |
I don't think this is correct: embassy/embassy-rp/src/clocks.rs Line 515 in 423e5d7
I suspect
First part is I'll try to submit a pull request for this today if I'm right and setting ticks up fixes it. |
Nice catch. When doing the initial support I loaded all my firmware using the uf2 method, and so the usb bootloader must've set up timer0 for me. Since the bootrom source is available it'd probably be a good idea to take a look through for anything else it was doing for me. |
just calling this out for anybody in case they weren’t aware https://hackaday.com/2024/09/04/the-worsening-raspberry-pi-rp2350-e9-erratum-situation/ |
I'm working on adding TRNG support, hopefully I'll have a draft this weekend. |
It otc 14. Is any progress for the RP2350 Pico2... |
Embassy doesn't have board specific code, but embassy does support the rp2350, yes. Check out the examples here: https://github.com/embassy-rs/embassy/tree/main/examples/rp23 |
i known it support, but not publish it to crates.io yet. embassy-rp = "0.2.0" features not support `rp235xa' |
For now you'll have to use a git dependency. See here: https://embassy.dev/book/index.html#_how_do_i_switch_to_the_main_branch |
thanks bro, i have do it now. |
@ionspin You can install the new version with |
Do we know enough yet what we need to do to be able to support RP2350 instead of just RP2040?
The text was updated successfully, but these errors were encountered: