4 ms·
It's amazing how quickly you can make something that works with the EPS32 and Arduino, but for me, since this is for learning I feel I'm not really learning too
by SPascareli13 4y ago
It's amazing how quickly you can make something that works with the EPS32 and Arduino, but for me, since this is for learning I feel I'm not really learning too much since so much is abstracted from you. As far as I know you just can't reasonably do bare metal programming on the EPS32.
So for the simple project I am doing right now I'm using a 8051 microcontroller (AT89S51), mostly because it is super cheap to buy locally but also I am forced to deal more with the details of how embedded applications run. But it does feel like learning 8051 is not too relevant today.
- regularfry 4y agoGive the RP2040 a look, assuming "locally" is somewhere with access to them. You can start off micropython-level and then go lower as you want.
- SPascareli13 4y agoGreat! I took a quick look and saw there it seems to be available locally, and pretty cheaply even. A few questions, I saw that the chip itself is surface mount, would I need to make my own PCBs to be able to make more "permanent" projects with it? Also, what kinds of external things I would need to get started, like specific programmer hardware, etc.
- an-unknown 4y ago> I saw that the chip itself is surface mount, would I need to make my own PCBs to be able to make more "permanent" projects with it? If you want to directly use an RP2040 chip: yes, but you can do that for a few $ at e.g. jlcpcb where they can directly assemble the SMD components on the board for you. If you build your own "more permanent" project, you most likely want to build a PCB anyway, to integrate all the peripherals and connectors you need. Otherwise there is the RPi Pico board which is a small PCB with the RP2040 on it. It's the standard "small PCB where you can install a pin header" type of development / eval board. > Also, what kinds of external things I would need to get started, like specific programmer hardware, etc. I helped someone else with an RP2040 project recently and apparently all you need is some crystal for the clock, some flash chip for the program code, potentially a voltage regulator, and either a USB connector or an SWD connector (or ideally both). If you have SWD, you can program and debug the RP2040 from another RP2040 based module (there is "SWD programmer" firmware available, there is also the "Raspi Debug Probe" available now), and if you have USB and add some form of boot switch, you can directly program it via USB.
- regularfry 4y agoIn addition to the pin header holes, the Pi Pico's edge connectors are designed to be soldered onto things too, if the RP2040 itself is too fiddly.
- regularfry 4y agoIf you're using the Pi Pico as a starting point, you can get going with just a USB cable. At least as far as micropython is concerned. You can use a second Pico as a programmer board if you're going much further than that.
- kobalsky 4y agowhat do you mean by bare metal in this scenario?
- SPascareli13 4y agoI think of it more like "direct" control over the hardware, like no RTOS and no framework, just your binary code running directly by the processor, and accessing the hardware features via registers. With the ESP32 it seems that this is not something reasonable to do, as most things require extensive setup that is implemented in the framework.
- pjmlp 4y agoLike we used to code in the 8 and 16 bit days of home computers. The language runtime is the "OS", and you talk directly to io ports and memory addresses.