The ADC of the SAMD21 microcontroller on the Nano 33 IoT has a differential input. Theoretically you should be able to measure your signal against the boards voltage and therefore remove the ripple.
I did a few experiments and even though I managed to get some differential readings there is still a lot of noise in the result. The ADC has a lot of settings and features I did not try and I do not feel like spending a lot of time on that issue.If you like to try. You will need to have a look into the following fileC:\Users\UserName\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.4\cores\arduino\wiring_analog.cI created a copy of the analogRead function and modified that.There are some disadvantages in using the differential input. One is that the voltage range is smaller. So there is some additional complications for something that should be a lot simpler.
I posted in Nov 19 some trouble with extrem noisy 3.3 - onboard voltage - until today an open issue ...The onboard voltage is horrible noisy, because the pcb design rules of the MPM3610 are ignored :-((
Which mistakes? You can desolder the R9 resistor but other than that, the rest seems ok. :?
Have a look at the MPM3610 datasheet. There are PCB Layout Guidelines (page 19), that the PCB does not seem to follow.
I'm not sure I have the skill to replace R9 if I had to put it back so, instead of desoldering it, I manually shorted it to ground with a breadboard jumper wire. There was no subjectively discernable difference in noise. Here is an image of where I think R9 is, in case anyone wants to correct me:
R9 resistor connect AMM pin (18), of the mpm3610, to ground. That AMM pin has to be high or floating to force the mpm3610 to work in CCM mode. Conecting that pin to ground force the oposite! Always high noise.
I've tried taking it high now and sadly, I can't see any difference: