If I could go back I would start by reading Josh Starmer's Statquest Guide to Machine Learning, and then his guide to AI/Nueral Networks[0]. Starmer does the best job at explaining advanced ML topics in a very beginner friendly way, the books are literally written in the format of a children's book.
Then just start tinkering. I got interested in ML because of sport's analytics and betting markets so I read a lot of papers on that topic and books similar to Bayesian Sports Models in R by Andrew Mack[1].Also, Jake VanderPlas's Python Data Science Handbook is good[2].
Ideally, find a vertical you're interested in where experts have applied ML and read their papers/books and work backwards from there.
Not sure why this is downvoted but the sleep and dormant pico examples have quite some issues, they are still in "extras" and not in "core", so while documentation of features is my personal favorite aspect of the pico, there is room for improvement here still.
It is downvoted because it is a low effort sarcastic comment which provides no real contribution to the discussion. Your comment actually provides real feedback as to where there are currently issues.
Even if it does I'm suspicious. The open source RISC-V verification systems are not very good at the moment:
* riscv-arch-tests: ok, but a very low bar. They don't even test combinations of instructions so no hazards etc.
* riscv-test: decent but they're hand-written directed tests so they aren't going to get great coverage
* TestRig: this is better - random instructions directly compared against the Sail model, but it's still fairly basic - the instructions are completely random so you're unlikely to cover lots of things. Also it requires some setup so they may not have ran it.
The commercial options are much better but I doubt they paid for them.
Be careful with assumptions though. Being 5V tolerant doesn't mean that your 3V output can sufficiently drive an input that expects 0-5V levels correctly.
I ran into this problem using an ESP32 to drive a Broadcom 5V LED dot-matrix display. On paper everything looked fine; in reality it was unreliable until I inserted an LS245 between the ESP and the display.
> Being 5V tolerant doesn't mean that your 3V output can sufficiently drive an input that expects 0-5V levels correctly.
It's fine for TTL (like your 74LS245 is), which registers voltages as low as 2V as a logical 1. Being able to directly interface with TTL eases up so many retrocomputing applications.
A better question might be why anyone is using a MAX7219 on a new design in 2024. There are so many other choices for displays than a 20 year-old IC from a company that's gone through two changes of ownership since.
Anyway, a 74LS245 isn't a level shifter, it's an octal buffer. It just happened to be the right choice for my needs. In your application, I'd suggest an actual level shifter. You can find level shift breakout boards at Sparkfun and Adafruit.
I'm having trouble seeing where the datasheet actually says the GPIO pins are 5V tolerant.
EDIT: okay, section 14.8.2.1 mentions two types of digital pins: "Standard Digital" and "Fault Tolerant Digital", and the FT Digital pins might be 5V tolerant, it looks like.
Yep, I edited a few minutes ago to mention a reference I found in the datasheet. It's cool, but the reality seems a little more nuanced than that quote would indicate, since that only appears to work for GPIO-only pins, not just pins being used as GPIO. (So, if a pin supports analog input, for example, it will not be 5V tolerant.)
You're right, after re-reading the Power section on the datasheet it seems connecting 5V to the VREG_VIN should suffice to power the digital domains, but if you want to use the ADC, you still need a external 3.3V source.
The chip needs a) 1.1V to power the cores, b) 1.8V-3.3V to power IO, and c) 3.3V to properly operate USB and ADC.
The chip has one onboard voltage regulator, which can operate from 2.7V-5.5V. Usually it'll be used to output 1.1V for the cores, but it can be used to output anything from 0.55V to 3.3V. The regulator requires a 3.3V reference input to operate properly.
So yeah, you could feed the regulator with 4-5V, but you're still going to need an external 5V->3.3V converter to make the chip actually operate...
I'd rather have it run on the lower voltage - generally easier to step down than buck up. Either way, the modules are pretty cheap, small, and easy to find.
The regulator can take that, but as far as I can see it's only for DVDD, the core voltage of 1.1 V. You also need at least IOVDD, which should be between 1.8 V and 3.3 V. So you'll need to supply some lower voltage externally anyway.
I suppose the main draw of the regulator is that the DVDD rail will consume the most power. 1.1 V is also much more exotic than 3.3 V.
Depending upon where you grew up, eye drops (both medicated and non) are supplied in single use droppers that have twist off tops that look exactly the same.
Personal experience and knowledge does not map perfectly to others experiences.
Just went through this process myself with a similar rag-tag collection of snippets. I used the zettlekasten process and a plug-in for visual studio code to help with the organization of said information.
There is a wasteland of blogspam around the topic of getting started with ML and it’s hard to know what is useful at the beginning.