i mean, i know i've said this a few times already, but you should really look at the code you're using when it doesn't behave how you expect. if you had, you might have seen this: ```rust /// Pull data from RX FIFO. pub fn pull(&mut self) -> u32 { PIO::PIO.rxf(SM).read() } /// Attempt pulling data from RX FIFO. pub fn try_pull(&mut self) -> Option { if self.empty() { return None; } Some(self.pull()) } ``` which would have revealed that it just directly calls the pac