4 Comments

As a hobbyist who's more comfortable with programming than with designing circuit boards, I've only used USB-programmable single-board devices. My current favorite is a Raspberry Pi Pico, or a Pico-W for WiFi. So, what the chip can do is less directly relevant to me than what the board can do.

These 32-bit chips are pretty complicated, but it seems like that doesn't mean the board or programming environment have to be? And since they have through-hole pins, I can solder socket headers onto them, or maybe something else if I could decide on a better connector. (There are too many to choose from; after reading about many of them, I gave up.)

But sometimes I've wondered about a no-soldering solution: suppose there were a board with *two* USB ports on opposite ends, basically to act as a programmable dongle. It could plug it into the laptop with a USB-C connector and use the USB-A on the opposite end for whatever peripheral I wanted to plug into it. It could run without the laptop if plugged it into a USB battery or wall adapter, which means that I don't need to think about power supply issues either.

I guess this would seem pretty over-built to someone who works at a lower level, but the nice thing is that USB ports are designed to be hot-pluggable and people know what to do with them.

Expand full comment
author
Jun 13·edited Jun 13Author

I think that makes sense; just keep in mind that especially on the 8-bit side, these "prototyping" boards can give the wrong impression - that you need a bunch of external components to use the MCU. In reality, you just buy a through-hole chip, hook up anywhere between 1.8 and 5.5 V to two pins, and... that's it. For AVR Dx, you'd then hook up a cheap and reusable USB dongle programmer to a third pin and send code. That standalone programmer is an up-front expense of $25 or something like that, but it saves you money in the long haul - $1-$2 per chip, versus perhaps $5-25 per board. The added perk is that these programmers support remote on-chip debugging, so you can single-step through your code, inspect registers and variables, etc.

For 32-bit MCUs, it varies. Some are similarly plug-and-play, although you typically have less leeway with supply voltage. But some, like RP2040 (the basis of Raspberry Pi Pico), actually require external memory, so a board is pretty much a must. Plus, it does save you SMD soldering, because through-hole 32-bit MCUs are pretty much non-existent.

Anyway, I don't think you're doing anything wrong, it's just that weaning off these boards is often easier than one suspects. Again, not for RP2040, but if you want to stick to Cortex-M, Microchip's SAM series or ST Microelectronics' STM32 series chips are pretty much plug-and-play.

Regarding the no-soldering solution... I don't recall seeing anything with USB "output" (well, except for SBCs like the "big" Raspberry Pi). I'm sure you know there's plenty of boards with a PCB header for GPIO, so you can use breadboard jumper wires or make your own connectors with ease...

Expand full comment

For me, there's an overriding reason to use an 8-bit MCU: through-the-hole packaging. I don't think I could handle anything like LQFP. Perhaps even more than that, though, it just feels _wasteful_ to use a full ARM core for something that can be easily handled by a PIC.

Expand full comment
author

It certainly helps for quick prototyping!

FWIW, if this is the only thing holding you back from trying out an interesting chip, consider cheap SMD-to-THT breakout boards - stuff like this: https://www.amazon.com/Stargazer-Breakout-SOIC-16-TSSOP-16-MSOP-16/dp/B07YRC1GHQ/. While 0.5mm xQFP is pretty demanding, packages like like SOIC-28 don't require a whole lot of effort to handle.

Expand full comment