At $0.20 in 1k quantities, this is TI's answer to the CH32V003, Puya PY32, and the STM32C0 series. It's great to see tier-1 silicon vendors participating in the race to the bottom for jellybean microcontrollers.
The 1KB of SRAM is admittedly very tight (even WCH's 10-cent RISC-V parts usually give you 2KB), so you are strictly in bare-metal, carefully-managing-your-stack territory.
This line of micros has been out for almost 2 years now but they only just took the 1.38mm^2 package out of pre-production.
I started a design last year of a tiny earring with ~102 addressable LEDs on it, a microphone, a bunch of supporting circuitry and this micro.
https://i.ibb.co/JWh57LLw/IMG-20260408-183807502-HDR.jpg
Unfortunately by the time I was ready to order the boards I found the tiny package was unobtanium and had to resort to the second smallest package which isn't very small. Frustration!
And for people saying it is low on RAM and flash, you need to understand this is a low cost micro.
You can also do a lot of work with a small amount of RAM by managing your memory manually. Through the use of C unions I have about 3kB worth of variables that get switched in and out depending on the mode we are in.
I have enough space to record analog audio samples and perform a fourier transform over the samples and use the generated to data to drive algorithmically generated animations on the LED array.
A silly question (from a non-HW guy). Why are digital bathroom scales so coarse? Some have a weight resolution of +/- 500 grams. Would a better microcontroller make a weight faster or more presise? I guess this TI micro controller is overkill for a bathroom scale.
Computing power is crazy cheap and does not help. The perceived slowness is because the taken measurements are averaged over second or so. When you step on the scale your weight shifts around and that affects the measurement by far more than half a kg. Averaging gives you better accuracy and more confidence in the result but it doesn't improve the measurement precision.
The scale precision comes from calibration of the measuring mechanism done on factory line at certain weights. If your specific body weight is far from the weights used in calibration, or too much time passed, then the calibration doesn't help much.
A better microcontroller doesn't help at all. Even a cheapest uC from decades ago is good enough. Better ADC and gauge sensor would help, but even more important is good analog engineering to produce self-correcting circuits with decent noise rejection.
In general this category of products is more for tracking changes in your body weight than getting the precise absolute value. And the body weight changes a lot just from hydration level, so the ±.5kg tolerance is considered good enough.
As others have said, the crap resolution is to mask the crap repeatability.
Better processing can help, but good enough processing fits in the cheapest of microcontrollers.
ADC quality is more important, signal conditioning and sensor quality more important still.
The biggest factor for accuracy is likely calibration though.
A sensor that's 2% accurate with a 2 point calibration can easily become a 0.25% sensor with a 5 point, 3 temperature calibration.
But that all takes time, and unless you're running huge batches it adds too much to the bottom line of a low cost product.
Source: Designed strain gauge sensors and manufacturing processes for a living
I remember that a friend told that the Nintendo Wii Balance board gave her the weight on gram resolution. Which is 10-100x better than most commercial bathroom scales. But keep in mind that precision is not the same as accuracy.
Mostly quality of the sensor, processing power is not a constraint. Also bear in mind that high range and high accuracy generally aren't very compatible, so to measure 100kg at a 1% accuracy is accuracy to the kg. to get +/-100g accuracy you need a +/-0.1% accuracy.
This is why highly accurate scales usually have very low max weights.
Digital scales generally work by warping metal pieces and forcing a flex film resistor glued on the piece to be stretched along, causing its resistance to change, thereby breaking the balance of a Wheatstone bridge, creating force-proportional current to occur, which is finally read out with an ADC.
I guess the overall finickiness of that can't be instantly improved by a better microcontroller alone? They drift and have linearlity issues and show temperature dependancy and all that.
Precise body weight measurement at bathrooms is also probably not that important, 500 grams is one full bottle of soda/water; body weights can easily change that much within a single day.
I would suspect that the "real" reason is combination of both. 100-500g can be a "good" compromise for cheap bathroom scales.
Higher resolution would let the user see that your scale is zeroed badly, that repeatability sucks and that the measured weight is not even constant under a constant load.
It's down to the quality of the sensor, the quality of the ADC translating the signals from the sensor, and the implementation of the software that deals with the ADC translation.
The prices are right there if you click "ordering & quality". $0.19-0.23 depending on exact variant at quantities of 1000 and up. $0.6 for 1-99 although that will likely vary a lot if you are buying through a distributor instead of directly.
Anything where a reasonable person would say "this doesn't even need a microcontroller, just do it analog".
In terms of projects that I would be inclined to try that are uniquely enabled by this, my mind goes towards wearables. It's small enough to be hidden in seams of fabric. If you wanted to have a bunch of temperature sensors all over your body, or have a complex arrangement of dimmable LEDs woven into clothing, each string going to its own controller hidden close by and communicating with a central controller, or maybe measure your skin conductivity all over your body or something, this is a great piece of tech to do that with style. You still need to run power and data wires everywhere (no RF on this chip), but flexible wires are a very solvable problem.
I have used a microcontroller from ST, very similar in size and also with a Cortex-M0+ core.
The applications required only I2C to communicate with a bunch of other integrated circuits and a few general-purpose pins.
An example of an application was a kind of hardware video converter, which received video input from a camera and then sent it wirelessly or on cables, where the MCU configured and reconfigured everything on the board, after reset or when certain buttons were pressed, and the configuration for some things, like a HDMI transmitter, was complicated, requiring the reading and the writing of many internal registers via I2C, so a MCU was really needed.
There are many types of complex integrated circuits that need to be configured with values written in internal registers to be usable, so, even if just for the initial configuration after reset, you need some small MCU that can write the registers via I2C or SPI. For this, the smaller the MCU is, so it will not take space on the PCB just for booting the other ICs, the better.
I made something to ping an AWS service to tell me the uptime of my internet connection. The idea was to sprinkle them around our area, connected to various home WiFi’s, and get a better triangulation of outages. Eg is whole pipe out, just one ISP etc.
I made and tested it but didn’t care enough to continue.
I have action camera with retarded user interface. To turn it on I have to: press main button for at least 0.3s but no longer than 2s, then I have to wait until it beeps, then I have to wait for 3s, then I have to press second button for at least 0.3s but no longer than 1s. Then I observe main led, if it blinks the camera is recording, if not I need to press second button again.
With tiny mcu like this one, I think it would be possible to add a bodge inside that would turn on recording automatically after single press of button. The MCU needs to be really tiny to fit inside camera.
It's got a UART, it's got a PWM, it's really fast, and it's got masses of memory. I'd build a really tiny synthesizer, port my Juno 106 plugin's voice engine to it.
Nintendo releasing a new GB would be wild and awesome. Unfortunately it'd likely be overpowered and emulate games they downloaded off ROM sites themselves.
They'd be done already if they bought up or licensed Analogue though.
Yes, if you want all the drawbacks of distributed computing with none of the advantages: You'd probably be stuck with something UART based as interconnect, Every core is gonna have way too little RAM to do anything useful, you are missing like half the instruction set (floating point operations in software), and power draw at 4mW minimum per core adds up quickly to something that an efficient laptop-CPU would use.
On top of all this, latency for anything is gonna be abysmal because the cores are so slow...
I honestly don't see an application where this is even close to desirable.
Would be fun, tough, to have a 10-stack of PCBs with 10 by 10 CPUs each for a thousand cores (=> ~4W power @1.8V).
Using it as a cluster is probably a bad idea, but you could probably build a 2d sensor grid using these. The 8 pin restriction is extremely limiting though. If you have an FSR matrix, you could connect a 2x2 grid to each MCU and then connect each row in a daisy chain configuration.
Maybe not practical as a cluster configuration, but it could certainly be used as a voice-generating device for a synthesizer, or as a controlling device for MIDI I/O, or .. both even of course, configurable according to the users needs/patch idea.
Yeah, but even for those applications you suffer from limited RAM a lot; with 16bit samples at 48kHz the thing has 10ms of audio buffer (stereo: 5ms) if you don't need RAM for anything else :S
The ADC is really nice though, 1.5 MSPS is really good for such a small/low powered thing (fills the whole RAM in under half a millisecond).
I have a fourier transform loop running on this micro which takes 64 samples and outputs 32 frequency bins.
It works perfectly for generating inputs to algorithmically driven animations including a visual audio spectrum frequency analyser.
Yes, but also why would you? at 24MHz, you would be better off paying 100x the price ($25) for a 2.4GHz chip (easily doable). Something like a Raspbery Pi Zero 2 W already comes pretty close to that and without the penalty of memory communication/bandwidth.
I'm reminded of TIS-100, a game where you program a cluster of tiny, parallel CPUs using a custom assembly language. It's painful to get basic stuff done, but you can do some amazing things with some effort.
The 1KB of SRAM is admittedly very tight (even WCH's 10-cent RISC-V parts usually give you 2KB), so you are strictly in bare-metal, carefully-managing-your-stack territory.
Not worth changing the design now...
The scale precision comes from calibration of the measuring mechanism done on factory line at certain weights. If your specific body weight is far from the weights used in calibration, or too much time passed, then the calibration doesn't help much.
A better microcontroller doesn't help at all. Even a cheapest uC from decades ago is good enough. Better ADC and gauge sensor would help, but even more important is good analog engineering to produce self-correcting circuits with decent noise rejection.
In general this category of products is more for tracking changes in your body weight than getting the precise absolute value. And the body weight changes a lot just from hydration level, so the ±.5kg tolerance is considered good enough.
This is why highly accurate scales usually have very low max weights.
I guess the overall finickiness of that can't be instantly improved by a better microcontroller alone? They drift and have linearlity issues and show temperature dependancy and all that.
Precise body weight measurement at bathrooms is also probably not that important, 500 grams is one full bottle of soda/water; body weights can easily change that much within a single day.
I would suspect that the "real" reason is combination of both. 100-500g can be a "good" compromise for cheap bathroom scales.
Decreasing resolution hides all of those.
For majority of use cases nowadays it's much easier to use a programmable chip than invent a complex device using discrete analog electronic parts.
I have no grasp of even the magnitude of the price for something like this.
Can get under 10 cents each for cheap minimalistic CPUs in high numbers.
1-99 $0.720
100-249 $0.48925
0-999 $0.378
1,000+ $0.251
In terms of projects that I would be inclined to try that are uniquely enabled by this, my mind goes towards wearables. It's small enough to be hidden in seams of fabric. If you wanted to have a bunch of temperature sensors all over your body, or have a complex arrangement of dimmable LEDs woven into clothing, each string going to its own controller hidden close by and communicating with a central controller, or maybe measure your skin conductivity all over your body or something, this is a great piece of tech to do that with style. You still need to run power and data wires everywhere (no RF on this chip), but flexible wires are a very solvable problem.
The applications required only I2C to communicate with a bunch of other integrated circuits and a few general-purpose pins.
An example of an application was a kind of hardware video converter, which received video input from a camera and then sent it wirelessly or on cables, where the MCU configured and reconfigured everything on the board, after reset or when certain buttons were pressed, and the configuration for some things, like a HDMI transmitter, was complicated, requiring the reading and the writing of many internal registers via I2C, so a MCU was really needed.
There are many types of complex integrated circuits that need to be configured with values written in internal registers to be usable, so, even if just for the initial configuration after reset, you need some small MCU that can write the registers via I2C or SPI. For this, the smaller the MCU is, so it will not take space on the PCB just for booting the other ICs, the better.
I made and tested it but didn’t care enough to continue.
With tiny mcu like this one, I think it would be possible to add a bodge inside that would turn on recording automatically after single press of button. The MCU needs to be really tiny to fit inside camera.
Applications
• Battery charging and management
• Power supplies and power delivery
• Personal electronics
• Building security and fire safety
• Connected peripherals and printers
• Grid infrastructure
• Smart metering
• Communication modules
• Medical and healthcare
• Lighting
But like *really* tiny.
1KB is surely enough to store synthesizer patches. Several, probably.
They'd be done already if they bought up or licensed Analogue though.
On top of all this, latency for anything is gonna be abysmal because the cores are so slow...
I honestly don't see an application where this is even close to desirable.
Would be fun, tough, to have a 10-stack of PCBs with 10 by 10 CPUs each for a thousand cores (=> ~4W power @1.8V).
The ADC is really nice though, 1.5 MSPS is really good for such a small/low powered thing (fills the whole RAM in under half a millisecond).