[HN Gopher] The RP2040 Stamp ___________________________________________________________________ The RP2040 Stamp Author : _Microft Score : 48 points Date : 2022-03-24 11:34 UTC (2 days ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | vbezhenar wrote: | I'm very newbie to microcontrollers and I bought 10 pico boards, | 5 with pins, 5 bare. What I've found not very nice is that | there's no official programmer for RP2040. I can use one board, | upload firmware and connect it to the other board with wires, | actually that's what I'm doing right now with breadboard, but | that's not very nice to use, I have lots of wires laying around. | | I'm thinking about creating a programmer with 3D printer and some | spring contacts, but I really would love some tiny device with | RP2040 inside where I can put another RP2040 and have all pins | available for further connecting if necessary. Right now it's a | mess of wires. | | Another RP2040 aspect which I didn't like is a complexity of boot | process. Now I have no idea whether it's common to | microprocessors or not. What I wanted to do is to write my | software with pure assembly without any SDKs. So far my research | is as follows: | | RP2040 contains unmodifiable boot1 code. You can't modify it at | all. It contains some preliminary initialization code and some | procedures like float point operations, etc. That looks very | weird to me: why put that code in unmodifiable ROM. There're few | revisions of this ROM with different procedures (I guess they | optimize them in later revisions). | | Boot1 connects to flash and loads 256 bytes of boot2 loader which | contains 252 bytes of code and CRC32. | | Boot2 is compiled from SDK. It configures flash for some kind of | faster access mode and calls sdk initializtion procedures. I | didn't investigate further yet. | | I managed to learn ARM Cortex M0 assembly, at least most of it, | and it's interesting to try to program with it. But now I'm stuck | with reading about flash, those QSPI protocols and their commands | to make sense of their boot2 bootloader (I could just re-use one | from SDK but I don't like this way). And then I still need to | understand how to configure the whole stack to run code from | flash. | | Basically to re-implement writing hello world to UART, I have to | learn a lot of things. Which is fine, I guess, but I didn't | imagine this being that hard. I thought that I would need to | learn about UART hardware and how to interact with it and that's | about it. | | And I really don't like their SDK. I managed to get it up and | running, but they're using cmake which is cryptic for me, it | takes seconds to compile my software, I have enough of that in my | Java work. I guess that's fine for professionals who need to get | things done. | | That's not to say that I don't like this project, I still think | that's the most friendly ARM, at least when I tried to use STM32 | it was much worse. RP2040 datasheets are very readable for | beginner. I just wish their setup was not so convoluted. | | At this stage I'm considering to drop flash usage at all. I have | 256 KB of RAM anyway, ought to be enough for anybody, right? Just | copy my program from flash to RAM and run it from RAM. On the | plus side is predictable performance. I still don't understand | how can one write timing-sensitive code with flash where jump to | non-cached address could stall CPU for some unspecified number of | tacts. | a9h74j wrote: | I like the principle of doing all of the highest-density routing | on the smallest possible board, with minimum peripherals. | tapland wrote: | Oh! Solderparty is based in Malmo, Sweden. | | The southern region seems to have so much exciting tech going on, | it really feels like it's starting to do laps around the | Stockholm region. | | The city embraced digital culture decades ago with a crazy amount | of game dev jobs per capita and even a brief precense in Second | Life. Now it seems full of startups and it's nice to see smaller | projects pop up as well! | dijit wrote: | Wait what? I live here and it seems pretty dead | technologically, aside from the small number of game studios. | noipv4 wrote: | Am a noob wrt RP2040. I use rPI model B boards to run piHole, | media server, apc daemon etc. What can I use this RP2040 stamp | for? Which OS runs on it? Is stamp a standard form factor? | varajelle wrote: | The RP2040 is a CortexM0 microcontroller. This is a completely | different segment than the previous mini-computers from | raspberry pi. | | It just has a few hundreds KB of Ram. | | It usually runs bare metal or some RT OS. | RicoElectrico wrote: | RP2040 is pretty underwhelming as a microcontroller. Its sleep | mode draws 0.8 mA. And the ADC has DNL issues [1] Capabilities- | wise it feels like "NIH syndrome" ESP32-alike with USB in lieu of | wireless. | | At least it's much cheaper than Arduino (like 2-3x compared to | Uno). The price of Arduino Uno is not justified by anything when | its NRE cost must have been recouped long ago. | | [1] https://pico-adc.markomo.me/ | Zenst wrote: | Yes, having played with the pico, ESP32 and predessor I kinda | agree, thouogh ADC's in microcontrollers are limited depending | upon what you want to do and will often lean towards an | external. | | The ESP also has hardware floating point, which if you need to | use that sure does blast past the pico's core's. | | What the pico does shine well at is the PIO controllers and a | good documentation user base. The fact that within a year it | had early on full support in the ecosystem of microcontrollers | is pretty darn amazing, more so given Espressif not exactly | known for their doumentation and the whole intergration with | IDE's like the ardiuno was dedicated users off their own steam | driving it. | | Another plus for the PICO is that you can get for a dollar the | chip itself and with the advent and ease of doing your own | circuits, afforded the ability to roll your own controller | board how you want them. Sure can do that with the ESP's but | not sure so easily accesable price wise as the PICO chip is and | not as cheap. | | Yes the whole lack of wifi and BT upon the PICO in todays times | with IOT this and other projects, does leave shortfalls, though | there are boards that do that, sadly many get WIFI by adding | something like an ESP01 chip and the whole ironic aspect of a | microcontroller needing another microcontroller for it's wifi | when maybe what you wanted to do could be done upon the ESP01 | alone, well. Bit of a chuckle. | | So for me, were the PICO stands out is the PIO controllers and | how they with the USB host option allow many device avenues. | Want your own joystick - doable, want to emulate some odd | protocol - may well find the PIO can take a lot of strain from | that. | a9h74j wrote: | > the whole ironic aspect of a microcontroller needing | another microcontroller | | But it is a _microservices_ architecture! | jonp888 wrote: | As I understand it the chip was partly intended as a starter | project for RPi's newly founded in House silicon design team, | so not using an existing design could be partly deliberate. | | However the PIO state machines set it apart. | [deleted] | mikewarot wrote: | The onboard RAM is a bit light, I agree. But the chip is quite | powerful, they can usually be overclocked to about 250 Mhz, and | have dual cores. The real star of the show is the PIO system. | | You've got 2 sets of 4 state machines, that can do a whole lot | of stuff at really impressive I/O rates. People have used them | to generate VGA or DVI (HDMI) with just some resistors and | connectors. | | It's almost as good as having an FPGA. I suspect people will be | wringing more and more performance out of this chip over the | next year or two. | gchadwick wrote: | > Its sleep mode draws 0.8 mA. | | What's your source for this? The RP2040 datasheet claims 0.18 | mA for Dormant state and 0.39 mA for Sleep. As you've got | detailed control over what gets clock gated in sleep state | suspect you can bring that 0.39 mA down if you've only got one | or two wake events to care about. | grinchygrinch wrote: | Given that RP2040 needs external flash, I'm quite worried about | the performance when pulling uncached code from it (on top of | using M0 core - I'm used to M4 by now). I know the MCU has 16kB | of cache, but my firmware for which I'm still deciding on | whether to port it to RP2040 or not is about 80k. Does anyone | here has some real-life data on this? | PragmaticPulp wrote: | The Raspberry Pi foundation focuses on accessibility and | education. In that regard, the RP2040 excels. The price is | especially advantageous and the beginner-focused documentation | are great for introducing people to microcontrollers. | | But I do agree that this feels like the Arduino situation all | over again, where many people mistake the sudden popularity and | influx of Tweets, YouTube videos, and headlines as an indicator | that it's the premier microcontroller on the market or the only | logical choice for new projects. | | It has a few unique and cool features, but we should | periodically remind everyone that every microcontroller is a | set of tradeoffs and compromises that the user should evaluate. | | On the other hand, if you're going for maximum clicks or views, | putting "Raspberry Pi" in your headlines is a guaranteed way to | bring in more eyeballs. It's constantly a hot topic. | auxym wrote: | You've raised real downsides (for some applications), but the | rp2040 also many features that are unheard of at its price | point (1$): dual core, PIO, lots of ram. In fact the RAM + dual | core means you're almost getting _two_ Cortex-M0+ MCUs for the | price of one (with shared peripherals). | | For comparison, Microchip (formerly atmel) SAMD21 (also | Cortex-M0+, of Arduino Zero fame) is about 3-4 $, single core, | less RAM. | liamwestray wrote: | I've seen "claims" the ESP32 can do 0.1 mA in sleep, but | haven't seen anyone actually implement that in a functional | application. | | My use case is different though, I will be adding an NRF9160 | for connectivity so ESP32-based stuff just didn't make sense. | It's also for academic customers who want to be able to work | using MicroPython should I get hit by a bus. | puzzlingcaptcha wrote: | It looks very neat, too bad it costs three times as much as a | regular Pico. I'm not sure it was essential to include the | NeoPixel and LiPo charging. | kube-system wrote: | It's priced about the same as the other tiny rp2040 boards. I | wish this would have existed around the time I was building my | last project, because I wanted something without a usb | connector. | throwaway81523 wrote: | This is 2x the size of a xiao/qtpy, has less stuff(?), and is | more expensive. What are the advantages? | | https://www.seeedstudio.com/XIAO-RP2040-v1-0-p-5026.html | | https://www.adafruit.com/product/4900 | codebje wrote: | Exposed pins, for one. There's 30 GPIOs on an RP2040, only | having 12 or so of them available is a weakness of rhe tiny | boards. | colejohnson66 wrote: | That's like asking why someone would choose a bigger FPGA when | a smaller one does the same thing for less cost. The answer is: | the bigger one has a different feature set. In this case, it's | access to all 30 of the GPIO. | throwaway81523 wrote: | Ah I see. I hadn't thought about using all the pins. This | brings out 23 of them and is about the same size as the | stamp: https://www.adafruit.com/product/4888 | | This brings out 20 and has castellated pads: | https://www.adafruit.com/product/5302 | | This is bigger but fancier, has a lipo charger and other | stuff. I think it brings out all available pins, though the # | mentioned is 21. More of an SBC than a solder-down, I guess. | I have one (old version) but am trying to figure out where I | left it: https://www.adafruit.com/product/5302 ___________________________________________________________________ (page generated 2022-03-26 23:00 UTC)