Hacker News new | ask | show | jobs
by makerdiety 873 days ago
> I have noted this article for my talk about how CPUs are free.

If teeny computers are free, and if I want to re-program them for my own use cases and personal applications, then why do I have to still spend nearly a thousand dollars or two on embedded systems development equipment like microcontroller development boards, JTAGs, ICEs, ROM flashers, UART-based bootloading solutions, and other delicate programming interfaces for small microchips, microcontrollers, and tiny computers? And don't forget microscopes to do power analysis for reverse engineering some old toy that was made to emulate or fake a real life candle's intractable flame properties.[1]

If you can't write code, then what's the point? How would no code be an agent of freedom and expression?

Reprogramming a microcontroller unit with a USB cable connected between it and a laptop computer is convenient. But too bad that's not really the standard for old technology and resources laying around the planet, isn't it? You have to basically be uncanny like MacGyver or inhumanly intelligent like Tony Stark to reprogram the apparently free teeny computers laying around the world.

[1]: https://cpldcpu.wordpress.com/2024/01/14/revisiting-candle-f...

5 comments

Perhaps this helps, perhaps not, but the Cortex-M architecture from ARM defines, as required, a build in debug unit. I can build a standalone JTAG/Development tool for it[1] on a $3 breakout board, and program/debug it for free using GCC.

It has been a pleasant side effect of competition in the embedded space that proprietary (and expensive) tooling has become a problem for getting a chip adopted and so there is more pressure to support open source solutions.

[1] Blackmagic Probe -- https://black-magic.org/

First: don't conflate NRE and tooling with the cost of something. Plastic spoons are close to free, but making a plastic spoon factory would be expensive.

Second: you don't need most of that stuff. Dev boards that are a few bucks and debug probes for under $20 are credible and usable; fairly good compilers are free.

> But too bad that's not really the standard for old technology and resources laying around the planet, isn't it? You have to basically be uncanny like MacGyver or inhumanly intelligent like Tony Stark to reprogram the apparently free teeny computers laying around the world.

USB DFU is pretty dang common. It's not the absolutely lowest end stuff, but still pretty dang close to free.

Compare to doing all of this ages ago, where you'd have an 8051 with an expensive, crummy compiler and need a lot more tooling to do anything.

> Compare to doing all of this ages ago, where you'd have an 8051 with an expensive, crummy compiler and need a lot more tooling to do anything.

That depends... back in the day, I could buy an (UV) EPROM programmer for several hundred $$. Or I could study the datasheets, build my own EPROM programmer for a fraction of that, and write some software. Guess which route I took.

With uC's it wasn't much different, and still is. Vendor supplied programmers / debug probes etc, are just a quick & easy way to get started.

What is different these days, is that a lot of those 'vendor' tools are (more or less) generic tools, applicable to a whole class of devices (eg. JTAG), often come as cheap 3rd party clones, and with free software to use them.

So personally I don't understand parent's "1000s of dollars" complaint. That only applies when using niche products, outfitting a pro-level electronics lab, or plain doing it wrong / uninformed of the wealth of stuff out there.

> back in the day, I could buy an (UV) EPROM programmer for several hundred $$. Or I could study the datasheets, build my own EPROM programmer for a fraction of that, and write some software. Guess which route I took.

Even in 80's dollars, that's a big opportunity cost as a grownup. Now you can buy a $3 STLink and call it good. It's changed.

He said nearly a thousand dollars, which isn't that hard to get to-- but it means that you're doing a pretty wide variety of stuff.

Yeah. There's a small set of prepackaged micro- or teeny- computer programming interfaces. Or the plug-and-play if you will. In fact, that small set of convenience products only serves a market of kids that want to play with toys. They're literally toys. Ten or fifty dollar ARM microprocessors or microcontrollers coming in a box with integrated debugging features and integrated WiFi modules. And their complementary three dollar programming link handhelds. All from off the digital Amazon.com or AliExpress shelf. The "in-band" programming interface at accessible prices and stores.

And that's fine.

It's just that for me, on the other end of the spectrum, I prefer a little bit more adventure. Some less constraints. So, I need an "out-of-band" microchip programming solution for my aims.

Outside the kid world, you're required to be more knowledgeable about the way the world really works. You learn a whole lot more with out-of-band computer modifications than if you were to just plug and play some prepackaged handheld programming device into a little chip. You get more intimate with the microchip and its internals. You get concerned about its voltages and current needs, in order to achieve a proper relationship between your curiosity and the microchip's capabilities.

I want to dig into the raw power contained and hidden in unimposing millimeter (or centimeter) wide circuits. The re-programmability of microcontrollers or teeny-tiny computers, specifically.

There is no current documented solution for that. Beyond going your own way in a very long study and practice of electronics engineering and salvaging.

I'm going to translate your comment in how it sounds to me:

"I've spent a lot on embedded development. In large part, I've done this because I've sought to make things unnecessarily complicated and because I like playing with this stuff. I will deride the typical tools used today by most embedded developers as toys. I will use these views to try and support an assertion that computing isn't effectively 'free' in a monetary sense"

It's not like any of this is that complicated. I've spent plenty of time building my own programmers for things; I've bitbanged SWDIO, programmed EPROMs and micros with a parallel port and shift register or GPIOs on other micros; made pogo pin things, etc. If I were looking to get things done, odds are I can spend a few tens of dollars and just get going, and design in a part that costs a few tens of cents for a whole lot of computing in historical terms.

> I want to dig into the raw power contained and hidden in unimposing millimeter (or centimeter) wide circuits. The re-programmability of microcontrollers or teeny-tiny computers, specifically.

Very little of this is arcane on modern devices. Even a couple of decades ago the "hardest" thing in common use was the need for higher voltages for EEPROM erasure. IMO, where things get interesting is where you abuse peripherals to do things they weren't intended to do, but even that isn't usually equipment intensive-- a 4 channel oscilloscope and a debug probe will get you a long ways.

Yeah, you're right. Someone can spend at most five hundred or seven hundred dollars on a complete embedded systems development combination-set which maybe consists of something like one or five or twenty ARM microcontrollers and the convenient hardware application programming interfaces that are compatible with them, the small computers. Micro computers?

Anything else, anything outside this standard specification you've shared with me, is where some hardcore hacking goes on, in my opinion.

So many products would be better if they just used a Wemos S2 mini or similar $5 microcontroller board.

I understand why everything uses custom designed stuff for cost, but I don't get why people think it's somehow the better or more "professional" approach to do everything yourself.

Modular stuff with common high level modules is just so much easier to repair, modify, and recycle.

We need an ISO standard for these little modules so we can get back to vacuum tube era level of repairability.

Nearly all modern gadgets(General purpose computers and phones aside) could be made from a common set of 30 or so modules plus minimal custom stuff.

> I have to still spend nearly a thousand dollars or two on embedded systems development equipment

wat

> JTAGs, ICEs, ROM flashers, UART-based bootloading solutions

Dude, all the popular chips these days are ARM MCUs with SWD. They can be programmed with a $3 ST-Link V2. The most you'd spend on the stuff you listed is $75 for a Black Magic Probe, but of course you can build your own for 1/10th the price.

$0.03 MCUs are the exception to the rule since they use proprietary protocols and OTP memory, but their programmers are still in the $100 range

The future of everything is basically "the upfront and ongoing costs of the tooling are infinite, while the physical deployment is free".