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...
This is why highly accurate scales usually have very low max weights.
The reason is that most people use a dirt cheap HX711 or cheaper. A fancier microcontroller doesn't help all that much.
I got to 100dB of dynamic range at 1ksps (1 gram of noise at 100kg max load), so it's very much doable.
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.
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
I made and tested it but didn’t care enough to continue.
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.
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.
Every scale I've tried since is wildly inaccurate, and they do have brains and they fake it. Step on, get a random weight within a 5lb range of the true weight. Step on repeatedly, even after the scale has timed out and had to be rezeroed, and get that exact weight again. Fake. Every single 4-sensor scale (one in each corner post) that I've tried does this.
I've since found another relatively vintage single strain gauge scale whose battery still works. And I have a mechanical scale in reserve for when it no longer does.
Plenty of DIY projects used ATtiny2313 with V-USB. That's a pure software USB implementation bit banging the IO pins (not a USB stack on top of hardware USB support)+ your application logic squeezed into 2K of flash + 128 bytes of ram.
Chips like this are great for digital glue logic. Read a sensor, read a button press, blink some LEDs with simple state machine or control loop.
If you had 1024 of these, you'd have a grand total of 1 MiB of RAM. You won't be compute clustering much with 1 MiB of RAM.
I could only imagine the bringup fun for thousands of them. :P
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).
https://www.interfaceforce.com/products/load-cells/low-profi...
Click the "Specifications" tab to see the various error sources. Interface's technical library (linked at the top right of their shop) is a great training tool too, if you want to learn more. To keep your NIST certification - and to maintain accuracy after a high-stress...incident... you need to do occasional recalibration. That would be a problem for a consumer product, but with good mounting and overload protection they really don't change that much over time.
Then you've got the electronics, and the amplifier required to get the rated precision out of that load cell costs more than the load cell itself.
Achieving those performance targets costs money, and people buy the cheapest scale that says "Accurate High Precision Digital Bathroom Scale Glass" on the Amazon listing.
Huh. I have never experienced this and didn't even know this was a thing. My cheapo Chinesium scale that I bought from Amazon years ago occasionally jumps by a pound or so. I measure myself a couple of times to be sure. But it definitely doesn't "freeze" measurements, as I see a different measurements shoes on in back-to-back measurements.
Anything to save a few bucks on a 6264 SRAM component :-)
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.
Ofc there's auto-zero on start involved, but translated to a people bathroom scale that'd be "comfortably better than +-100g".
A precise bathroom scale just would want a bit more effort on drift prevention as a sample mass at this scale is rather unwieldy, and critically it'd need a toe-operated button to select that you've finished climbing onto the scale, upon which it starts averaging the load to progressively improve the weight measurement accuracy. I'd expect using a bounce-height-freefall-duration based length of timing uncertainty at the start and end of the averaging period to allow proper Bayesian uncertainty quantification of the shown result, say by displaying both the 10th and the 90th percentile on the display which grow closer as you wait while standing on it.
With some cleverness a compact calibration mass might be usable to calibrate absolute scale, transferring up to the "people" range using just a random assortment of stuff that fits on the platform, totalling around 10kg.
Because building the scale to be linear in response good enough for 20k count of resolution is pretty straight-forward.
That's resolution (or dynamic range), not accuracy. The scales could be 10lbs off of your weight and still do this.
C support is basically universal these days, very few chips require you to program in only assembly anymore.
There are more pieces like this in "wearables" market now, things like "SmartBond" series. But for a while, weird off-label pieces like this wore the integration crown.
If you dive into even more niche, NDA-Only MCU, We have BES2700 MCU, which is even better
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 was extremely surprised by how much functionality is packed into "core", and runs without an OS when using freestanding rust. Even stuff that requires an allocator can run provided you provide your own heap!
A cool example of this was implementing fmt::Write for a memory mapped uart console thing. Then implementing a kprintln! macro that supports all of the formatting machinery that you are use to. This worked without even a heap available.
Yes, I should have said binary opcodes instead of assembly. I just assumed anyone discussing embedded systems would know they are practically interchangeable.
User guides
Errata
CPU Arm Cortex-M0+ Frequency (MHz) 24 Flash memory (kByte) 16 RAM (kByte) 1 ADC type 12-bit SAR Features 5-V-tolerant I/Os, DMA, General purpose, LIN UART 1 Security Secure debug Number of ADC channels 3, 8, 10 SPI 1 Hardware accelerators 0 Edge AI enabled No Operating temperature range (°C) -40 to 125 Rating Catalog Operating system BareMetal (No OS) Nonvolatile memory (kByte) 16 Number of GPIOs 6, 14, 18 Number of I2Cs 1
CPU Arm Cortex-M0+ Frequency (MHz) 24 Flash memory (kByte) 16 RAM (kByte) 1 ADC type 12-bit SAR Features 5-V-tolerant I/Os, DMA, General purpose, LIN UART 1 Security Secure debug Number of ADC channels 3, 8, 10 SPI 1 Hardware accelerators 0 Edge AI enabled No Operating temperature range (°C) -40 to 125 Rating Catalog Operating system BareMetal (No OS) Nonvolatile memory (kByte) 16 Number of GPIOs 6, 14, 18 Number of I2Cs 1
DSBGA (YCJ) 8 1.3776 mm² 1.6 x 0.861 SOT-23-THN (DDF) 8 8.12 mm² 2.9 x 2.8 SOT-23-THN (DYY) 16 8.4 mm² 4.2 x 2 TSSOP (PW) 20 41.6 mm² 6.5 x 6.4 VSSOP (DGS) 20 24.99 mm² 5.1 x 4.9 WQFN (RUK) 20 9 mm² 3 x 3 WSON (DSG) 8 4 mm² 2 x 2
Core
Operating characteristics
Memories
High-performance analog peripherals
Optimized low-power modes
Intelligent digital peripherals
Enhanced communication interfaces
Clock system
Data integrity
Flexible I/O features
Development support
Package options
Family members (also see Device Comparison)
Development kits and software (also see Tools and Software)
Core
Operating characteristics
Memories
High-performance analog peripherals
Optimized low-power modes
Intelligent digital peripherals
Enhanced communication interfaces
Clock system
Data integrity
Flexible I/O features
Development support
Package options
Family members (also see Device Comparison)
Development kits and software (also see Tools and Software)
MSPM0C110x microcontrollers (MCUs) are part of the MSP highly-integrated ultra-low-power 32-bit MCU family based on the enhanced Arm Cortex-M0+ core platform operating at up to 24MHz frequency. These cost-optimized MCUs offer high-performance analog peripheral integration, support extended temperature ranges from -40°C to 125°C, and operate with supply voltages from 1.62V to 3.6V.
The MSPM0C110x devices provide up to 16KB embedded flash program memory with 1KB SRAM. These MCUs incorporate a high-speed on-chip oscillator with an accuracy from -2% to +1.2%, eliminating the need for an external crystal. Additional features include a 1-channel DMA, CRC-16 accelerator, and a variety of high-performance analog peripherals such as one 12-bit 1.5Msps ADC with VDD as the voltage reference, and an on-chip temperature sensor. These devices also offer intelligent digital peripherals such as one 16-bit advanced timer, two 16-bit general purpose timer, one windowed watchdog timer, and a variety of communication peripherals including one UART, one SPI, and one I2C. These communication peripherals offer protocol support for LIN, IrDA, DALI, Manchester, smart card, SMBus, and PMBus.
The TI MSPM0 family of low-power MCUs consists of devices with varying degrees of analog and digital integration let customers find the MCU that meets their project needs. The architecture combined with extensive low-power modes is optimized to achieve extended battery life in portable measurement applications.
MSPM0C110x MCUs are supported by an extensive hardware and software ecosystem with reference designs and code examples to get the design started quickly. Development kits include a LaunchPad™ kit available for purchase and design files for a target-socket board. TI also provides a free MSP Software Development Kit (SDK), which is available as a component of Code Composer Studio™ IDE desktop and cloud version within the TI Resource Explorer. MSPM0 MCUs are also supported by extensive online collateral, training with MSP Academy, and online support through the TI E2E™ support forums.
For complete module descriptions, see the MSPM0 C-Series 24MHz Microcontrollers Technical Reference Manual.
MSPM0C110x microcontrollers (MCUs) are part of the MSP highly-integrated ultra-low-power 32-bit MCU family based on the enhanced Arm Cortex-M0+ core platform operating at up to 24MHz frequency. These cost-optimized MCUs offer high-performance analog peripheral integration, support extended temperature ranges from -40°C to 125°C, and operate with supply voltages from 1.62V to 3.6V.
The MSPM0C110x devices provide up to 16KB embedded flash program memory with 1KB SRAM. These MCUs incorporate a high-speed on-chip oscillator with an accuracy from -2% to +1.2%, eliminating the need for an external crystal. Additional features include a 1-channel DMA, CRC-16 accelerator, and a variety of high-performance analog peripherals such as one 12-bit 1.5Msps ADC with VDD as the voltage reference, and an on-chip temperature sensor. These devices also offer intelligent digital peripherals such as one 16-bit advanced timer, two 16-bit general purpose timer, one windowed watchdog timer, and a variety of communication peripherals including one UART, one SPI, and one I2C. These communication peripherals offer protocol support for LIN, IrDA, DALI, Manchester, smart card, SMBus, and PMBus.
The TI MSPM0 family of low-power MCUs consists of devices with varying degrees of analog and digital integration let customers find the MCU that meets their project needs. The architecture combined with extensive low-power modes is optimized to achieve extended battery life in portable measurement applications.
MSPM0C110x MCUs are supported by an extensive hardware and software ecosystem with reference designs and code examples to get the design started quickly. Development kits include a LaunchPad™ kit available for purchase and design files for a target-socket board. TI also provides a free MSP Software Development Kit (SDK), which is available as a component of Code Composer Studio™ IDE desktop and cloud version within the TI Resource Explorer. MSPM0 MCUs are also supported by extensive online collateral, training with MSP Academy, and online support through the TI E2E™ support forums.
For complete module descriptions, see the MSPM0 C-Series 24MHz Microcontrollers Technical Reference Manual.
Download View video with transcript Video
star =Top documentation for this product selected by TI
No results found. Please clear your search and try again.
View all 49
For additional terms or required resources, click any title below to view the detail page where available.
Evaluation board
The LP-MSPM0C1104 LaunchPad™ development kit is an easy-to-use evaluation module (EVM) based on the MSPM0C1104. It contains everything needed to start developing on the MSPM0C1104 M0+ MCU platform, including on-board debug probe for programming and debugging in a smaller form factor. The (...)
Not available on TI.com
Evaluation board
μISP can either work connected to a host PC (RS-232, USB, LAN connections are built-in) or in standalone mode.
The programming cycle execution in standalone mode may occur by simply pressing the START button or through some TTL control lines.
Its compact size and versatility allows a simple (...)
Debug probe
The XDS200 is a debug probe (emulator) used for debugging TI embedded devices. For the majority of devices it is recommended to use the newer, lower cost XDS110 (www.ti.com/tool/TMDSEMU110-U). The XDS200 supports a wide variety of standards (IEEE1149.1, IEEE1149.7, SWD) in a single pod. All XDS (...)
Not available on TI.com
Debug probe
Lauterbach‘s TRACE32® tools are a suite of leading-edge hardware and software components that enables developers to analyze, optimize and certify all kinds of Arm®-based microcontrollers and processors. The globally renowned debug and trace solutions for embedded systems and SoCs are the perfect (...)
Debug probe
SEGGER J-Links are an industry-leading line of debug probes for embedded systems development. Known for their exceptional speed, reliability, and versatility, J-Links have become the go-to tools for developers around the world. For over two decades, these probes have been essential in enabling (...)
Debug probe
SEGGER's J-Trace is a professional streaming trace probe equipped with an extensive list of features that are tailored to meet the debugging needs of embedded developers and deliver the best possible tracing experience. With capabilities such as unlimited streaming trace, live code profiling, and (...)
Debug probe
TASKING’s Debug, Trace, and Test tools offer comprehensive solutions for efficient debugging, tracing, and testing of TI's embedded systems. The scalable TASKING BlueBox debuggers allow users to easily flash, debug, and test across TI's portfolio. Development on TI hardware is made even easier with (...)
Development kit
The BTV-3P-FMC solution provides control and communication capabilities for home fitness Machine, including two function modules:Self-Powered Control Module and Bluetooth Communication Control Module.
Designed for home fitness Machine such as rowing machines and exercise bikes, this solution could (...)
Hardware programming tool
AP6000, launched by Acroview, is a universal programmer designed to support TI ICs across all series. Leveraging Acroview's highly skilled algorithm R&D engineering team, it delivers the fastest chip support speed in the industry.The AP6000 is capable of programming 8 chips simultaneously, and (...)
Hardware programming tool
AP8000 is a leading technology platform of Universal Programming developed by Acroview. We have an accomplished team of algorithm R&D engineers, to offer the fastest chip support software development service among the industry. The AP8000 can support the programming of 8 chips simultaneously. (...)
Hardware programming tool
WriteNow! Series of In-System Programmers is a breakthrough in the programming industry. The programmers support a large number of devices (microcontrollers, memories, CPLDs and other programmable devices) from various manufacturers and have a compact size for easy ATE/fixture integration. They (...)
Hardware programming tool
The C-GANG is a low-cost gang programmer that can program up to six identical targets at once. It is compatible with a variety of TI microcontrollers including the MSPM0, MSP430 and C2000 devices.
Not available on TI.com
Software development kit (SDK)
The MSPM0 SDK provides the ultimate collection of software, tools and documentation to accelerate the development of applications for the MSPM0 MCU platform under a single software package.
Supported products & hardware
Application software & framework
This software is used for the application note Cooling FAN Controller with MSPM0
Supported products & hardware
Download options
Driver or library
The STM8S003 to MSPS003 migration tool provides a collection of software, tools, and documentation to simplify the process of migrating applications from the STM8S003 device family to the pin compatible MSPS003 (MSPM0C110x) devices.
Supported products & hardware
Download options
GUI for evaluation module (EVM)
Out-of-box experience GUI for LP-MSPM0C1104
Supported products & hardware
Getting started
Explore a vast library of example projects, categorized by application type, with support for multiple development environments
Supported products & hardware
Getting started
From evaluation to deployment the TI Developer Zone provides a comprehensive range of software, tools and training to ensure that you have everything you need for each stage of the development process.
Supported products & hardware
IDE, configuration, compiler or debugger
CCStudio™ IDE is part of TI's extensive CCStudio™ development ecosystem and is an integrated development environment for TI's microcontrollers, processors, wireless connectivity devices, and radar sensors. CCStudio IDE is available as desktop or cloud-based applications. The cloud version (...)
Supported products & hardware
IDE, configuration, compiler or debugger
Pre-built binaries for the popular open-source OpenOCD debug stack.
Supported products & hardware
IDE, configuration, compiler or debugger
The MULTI® development environment has been in use by thousands of developers for three decades and is the industry’s unrivaled integrated development environment to create, debug, and optimize C, C++ and Ada code for production-focused applications. It brings together (...)
IDE, configuration, compiler or debugger
MSP Zero Code Studio is a visual design environment that simplifies firmware development, making it possible to configure, develop, and run microcontroller applications in minutes with zero coding and no IDE required. Available as a standalone download or on the cloud.
Supported products & hardware
IDE, configuration, compiler or debugger
CCStudio™ SysConfig is part of TI's extensive CCStudio™ development ecosystem and is a configuration tool that simplifies hardware and software configuration challenges to accelerate software development.
SysConfig provides an intuitive graphical user interface for configuring pins, peripherals, (...)
Supported products & hardware
IDE, configuration, compiler or debugger
VX-toolset for Arm is certified for safety critical embedded software development on Cortex-M and Cortex-R Arm based devices from leading silicon vendors. The toolset has been certified by the TÜV NORD to meet the functional safety standard ISO 26262 and Cybersecurity standard ISO (...)
Operating system (OS)
The µ-velOSity™ Safety RTOS is the smallest of Green Hills Software's real-time operating systems and was designed especially for microcontrollers. It supports a wide range of TI processor families using the Arm® Cortex-M or Cortex-R cores as a main CPU or as a co-processors (...)
Software programming tool
UniFlash is part of TI's extensive CCStudio™ development ecosystem and is a software tool for programming on-chip flash on TI microcontrollers and wireless connectivity devices and on-board flash for TI processors. UniFlash provides both graphical and command-line interfaces and can be run on (...)
Supported products & hardware
Reference designs
For achieving energy efficiency, ceiling and ventilation fans are moving from simple AC induction motors to brushless DC (BLDC) motors. This reference design meets these challenges of higher efficiency and power factor by using a universal main power-supply input from 85 to 265VAC with a single (...)
Reference designs
This reference design is a high-cell voltage-accuracy 5s to 7s lithium-ion (Li-ion), lithium iron phosphate (LiFePO4) battery pack design. The design monitors each cell voltage, pack current, cell and metal-oxide semiconductor field-effect transistor (MOSFET) temperature with high accuracy and (...)
| Package | Pins | CAD symbols, footprints & 3D models |
|---|---|---|
| DSBGA (YCJ) | 8 | Ultra Librarian |
| SOT-23-THN (DDF) | 8 | Ultra Librarian |
| SOT-23-THN (DYY) | 16 | Ultra Librarian |
| TSSOP (PW) | 20 | Ultra Librarian |
| VSSOP (DGS) | 20 | Ultra Librarian |
| WQFN (RUK) | 20 | Ultra Librarian |
| WSON (DSG) | 8 | Ultra Librarian |
Information included:
Information included:
Recommended products may have parameters, evaluation modules or reference designs related to this TI product.
Content is provided "as is" by TI and community contributors and does not constitute TI specifications. See terms of use.
If you have questions about quality, packaging or ordering TI products, see TI support.