$1 Microcontrollers (2017)
jaycarlson.net
jaycarlson.net
There are stupendously powerful $1 microcontrollers now, including the RP2040 (dual core cortex m0+ with 264KB ram on the chip), ESP32-S2 (Espressif core with 400k of ram and wifi), and ESP32-C3 with wifi and RISC-V core and again something like 400k of ram.
Jay Carlson also has a series about microcontrollers as cheap as THREE CENTS, i.e. the famous Padauk 3 cent MCU:
https://jaycarlson.net/2019/09/06/whats-up-with-these-3-cent...
There's no publication date -nor anything marking it as updated at any time afterwards- on the article itself, but first comments are from November 2017 and passing references in the article point to "end of 2017" too.
<script type='application/ld+json' class='yoast-schema-graph
...
"datePublished":"2017-07-17T01:31:05-05:00",
"dateModified":"2017-11-18T18:07:56-06:00"}]}Wow, that's an incredibly capable chip for the price!
NXP has rt1020 (Cortex-M7, no flash), or rt1024, which is same but 4 MB flash in the package- it's connected to the SPI-flash controller of the rt1020 core, so I think it's a multi-die package.
These chips are ideal for DSP, phased arrays and beam forming. Most of their devkits are centered around voice applications.
https://www.xmos.ai/documentation/XM-014363-PC-5/html/arch-h...
https://www.xmos.ai/download/xCORE-Array-Microphone-Product-...
I don't want to read datasheets again whenever I need 100MHz more clock speed, or 1mW less power consumption. Because reading datasheets, at some point, feels like filling out tax forms.
(BTW, when I see "mhz" I assume this means "milli-Hertz". Similar when people say they have a 42b structure -- I see this as a 42-bit structure. If I wanted to communicate "42 byte structure" I'd abbreviate as "42B structure". Capitals used judiciously transmit meaning compactly.)
As for millihertz: sure it could make sense, if the design were fully static and one was watching (with eyeballs) some LEDs on control and address and status lines -- in fact, in many 'homebrew' computers, having a setting to allow seeing the sequencing of instruction execution is often a built-in feature.
MHz. B for Bytes. $B for Billions of Dollars (not "$BN") etc. Rules like this reduce our overall cognitive burden, when followed by all. That, in turn, makes us more efficient.
You literally started with
"BTW, when I see "mhz" I assume this means "milli-Hertz"."
> As for millihertz: sure it could make sense, if the design were fully static and one was watching (with eyeballs) some LEDs on control and address and status lines -- in fact, in many 'homebrew' computers, having a setting to allow seeing the sequencing of instruction execution is often a built-in feature.
I didn't say the the frequency didn't make sense, only that it doesn't make sense as an ARM, as that niche ends up having ISA considerations where something like ARM doesn't make practical sense . Particularly given that I said "up to 480mhz".
When I say "MHz" I 'assume' it is an abbreviation. Because, it does not parse as a 'word'. Therefore, the next question is: WHICH abbreviation is it? Does it have a Capital M at the beginning? If it does, then that usually means "Mega" in Scientific/Engineering circles. Does it have an 'm' in the beginning, such as ml? then 'm' means 'milli-' like it usually does with Scientific/Engineering units. When I see 'mhz' --- well, first little 'm' means milli, h -- oh, I see, it's Hz but not properly capitalized, ok, so it's milli-hertz. oh, what, no, I have to know that ARM (supposedly) cannot operate at the milli-hertz range, so now -- with all that context --- I can now make an educated guess what 'mhz' means.
Really?
Are you suggesting I should not ever assume an abbreviation means what it usually means? And I must adopt your way, which is fully context-dependent (and not even accurate in that case)?
I do feel as if you may be a 'word lawyer' and so, I will stop trying to communicate, since this is going to be painful for me. Good day.
BTW the license is mostly BSD not MIT with some additional libraries more restrictive.
Whether it's a hobby project or a high volume production project, you don't want hundreds of hours of your time spent developing for it to go down the drain. In case of a hobby project, it probably means the one or two units you made are all that you're ever going to make. In case of a product you built in high volumes, it means a large gap in sales and lost revenue while you re-do the firmware for a new chip.
The ESP's have low power modes as well, and can run off a tiny battery, which was the primary strength of MSP.
Any thoughts? I like the MSP ecosystem and docs, but ESP also shines there.
Of course the MSP430 doesn't have a WiFi modem or a giant hobbyist community like the ESP, so I'm really not trying to make an argument for which is "better" just trying to add some contrast to the low power features you asked about.
MSP's are aging a bit though. At least the ones in my drawer. Is the hw platform being actively developed or has it plateau'd?
https://github.com/raspberrypi/pico-examples/tree/master/pio
In fact, the rp2040 examples and SDK docs are very, very good compared to most traditional manufacturer's documentation and by itself makes it a very good value proposition for hobbyists.
Very cool when it does work, tho. I'd prefer to pay a little more for parts and get some English-based support.
I'll work through the Code Disposer Studio issues...again...
I take back all the mud about CCS; except of course now it wants to put a new bootloader on one of the boards, but seems unable to do that. Good thing the other board is fine.
Ha, ha, ha. We have all been there.
Have you tried the Energia IDE? - https://energia.nu/
However, I happen to learn about new solutions (new sensors, actors, boards, ICs) more randomly than systematically. I tried to google for databases, blogs or news outlets, but couldn’t find anything suited for my consumerish needs. Going through hundreds of pages for similar products on online shops also didn’t yield any good output. Do you guys know any such source? How do you keep yourself updated on interesting new products on the market?
Perhaps sign up for a SparkFun account? I get a lot of OSHW and new module information from them.
In centuries from now, our time will be studied as a remarkably revolutionary one.
Cheapest micros hovered around 10 cents mark before the semiconductor crisis.
Some Padauk micros go for single cents.
In a worst case scenario, the resources for this $1 microcontroller were mined by an african child, barely earning anything. These resources are then shipped to China(probably), where people along the way don't earn much either. Except the white collar workers managing it all, of course.
These controllers are then built in a factory, either by robots, or low-earning workers. Then shipped to a warehouse.
For me, the fact that such things can be bought so cheaply is not really an achievement if we look at how broken the supply chains are if we consider the humans who are affected by them. And also the environment which gets destroyed quite a bit.
I am of course talking from a moralist and empathical perspective. What I am trying to say is, that this is only an achievement because we accept or ignore the drastic consequences.
Speaking from a business and engineering perspective, I'd be surprised if (even in an ideal world with no environmental externalities or exploited third-world labourers) the cost of the raw resources, shipping and e-waste processing were a significant part of that $1.
We're literally talking about something 1/16 the size of a postage stamp that gets stamped into a similarly tiny plastic shell.
From my admittedly "peak mount stupid"[1] position as an engineer that uses these things, I'd suspect that the biggest contributors to that $1 figure come from the expert labour required to both R&D the chips as well as run the machines that manufacture them.
[1] http://theengineeringmanager.com/wp-content/uploads/2017/12/...
Anyway, we could solve these problems if we doubled the price. And then it would still be an amazing achievement.
Of course...everything we do today is based on exploitation: 1000s of years of exploitation of humans, frequently the worker and poorer classes' labor, 100s of years, and billions dead in war...all our achievements today literally stand atop this ginormous pile of blood and death...but, that ever-present historical reality aside...I think a large proportion of the skyrocketing perf and ocean-depth-plumbing prices of components is due to the compounding and intersecting effects of all our technological efficiencies.
You get what you pay for I guess :)
PSOC always seems to be what I need. I've used it to read CCDs (timing is very strict, and works much better on the SOC than in software). I've made capacitive soil moisture sensors using the capsense. The psoc5 has good options for USB devices.
But I don't make things to mass produce, so $1 has no appeal to me. $10 dev board is fine for me, if it does what I need it to do. There's a lot to love about the PSOC, but if you ignore all of the things they do that these other microcontrollers don't do, it might not look great by comparison. Also they have a development environment that is free and easy enough to learn that it doesn't require living in datasheets.
There is some fuzzy area between MMU-less, small processors, and processors with no MMU but large enough to run Linux in a MMU-less way.
Cheapest depends. There are Allwinner parts that are $2? But with the move to RISC-V, we will see costs decrease further, probably so that a Linux-capable part is just as expensive or cheaper than an MCU.
Whenever possible I reach for a part that can run Linux, because most of any embedded task nowadays is connectivity. A lot of parts include a microcontroller on the same die for realtime tasks.
* They are actually CPUs, but with very weak feature sets related to desktop & scientific computing
* They may or may not have hardware to do any kind of advanced computation, starting with plain old multiplication and division of integers (addition and subtraction of integers is enough for what they do). Yes you read this correctly. The vast majority of 8-bit microcontrollers cannot even do division or even multiplication in hardware.
* They run with clocks from kilohertz to low megahertz
* They might be 8-bit, 16-bit or 32-bit, with rarity going up as the bitness goes up. There's a ton of 8-bit microntrollers, and 32-bit are much rarer. 64-bit ones are very very rare, since if you need that processing width, you might as well go for a single-board-computer like a Raspberry Pi.
* They are used to DIRECTLY drive other hardware, not in an abstract way. They literally regulate voltages on their pins to make stuff happen with connected hardware.
* They might have RAM space ranging from a couple of BYTES (yes, BYTES, see e.g. this one having 32 bytes of RAM: https://www.microchip.com/en-us/product/ATTINY9#) to a couple of hundreds of kilobytes. It's very rare to have a microcontroller with a megabyte or more of RAM, because, as before, in that case you might as well just use a full-featured desktop-ish CPU.
* They are usually lacking a special bit of hardware called a MMU (Memory Management Unit) which is used by "real" operating systems like Linux and Windows to manage process isolation and many other useful things related to memory. If you need a MMU, again, just use a SBC.
So where do we use microcontrollers? Well, what do you think happens in your garage or car keyfob when you click on the buttons? What tells your microwave when to finish and with which power level to nuke your food? What drives your electric toothbrush? Your car's gas valves? Microcontrollers, that's what.
They are currently (or have been a few years ago) so cheap we can readily add a microcontroller to every toilet paper leaf, and it would only bring the price of a roll up by a dollar or so. What's stopping us to do just that is the sorry state of current batteries and energy harvesting in general - those technologies simply are not as developed (yet).
So, no, you wouldn't describe a chip which can run Windows 98 as a "microcontroller".
I no longer work on “hobby” projects; such things become an albatross around my neck. If you deploy a hobby project in your life, you must maintain it. Forever. For that time cost, I want to work on a product that could go into production and pay for its own maintenance.
Unfortunately, I cannot stand being around people anymore. I had my entire life savings stolen by an ex, with the government’s help. When I tried to open back up and make new friends after that shit show was over, I was drugged and raped by the first guy that I invited into my house in over two years; he was never even arrested for what he did. And after over 25 years, I stopped playing music, because those “friends” all actively abandoned me when I decided to start carrying a sidearm daily. Collectively, these events destroyed my belief in the just rule of law and the goodness of humanity.
Overall, the above factors make me read articles like this with a mixture of excitement and possibility combined with depression and hopelessness. I do not have the resources for a side project, financially or emotionally. I cannot design and launch a side project, even though I am fully capable and that is what I most want to do.
Perhaps your definition of hobby is different to mine, but hobby projects are exactly the kind you can abandon in a heartbeat. No long term customers, no guarantees, no obligations. In fact, we hear about countless HW and SW projects being abandoned left and right, right here on HN on regular basis.
> For that time cost, I want to work on a product that could go into production and pay for its own maintenance.
Hobby and high volume production aren't necessarily mutually exclusive.
I wanted to build a custom board to use USB-C power in my projects. Except the cost of a dozen boards assembled was quite high. So I made a thousand or so to subsidize the cost of development and production for myself. The chip I used went out stock (global chip shortage related) but until it did, my "hobby" project paid for itself and actually made me a small profit as well.
I hope you find peace and healing. People often suck, but they can also be beautiful if given the chance. And you deserve that chance.
Alternatively: If you do something yourself, you get the option to be able to maintain it forever. If you buy something, the vendor will probably stop caring the moment the sale completes; any maintenance you want to do yourself becomes a reverse engineering effort as your work into a system that you didn't design.
44kHz ADC > FFT > some light computation (e.g. 1000 multiplications) > IFFT > DAC
Qty 1, including your time, a raspberry pi zero.
Qty 1000, not including your time, an FPGA with embedded multipliers.
I think the ecosystem is really quite impressive with a really low entry hurdle from a teaching perspective. It was possible to get the power consumption of the atmega328p low enough for battery operation even with just Arduino, giving an easy introduction into prescalers and flags. From there you can step deeper into the functionality of avrdude (shoutout to USBASP) and standard AVR makefile projects with for example the micronucleus bootloader.
For a better price point check silicon labs 8 bit variant, otherwise you need to give more data about your scenario
edit: That is chip cost. I dont know about devboards