4 ms·
It's not specifically about my father's proficiency/expertise. (There's a quirky brilliance to the way he builds this stuff, but it's unconventional. He's an el
by tomhoward 4y ago
It's not specifically about my father's proficiency/expertise. (There's a quirky brilliance to the way he builds this stuff, but it's unconventional. He's an electronics engineer, not a computer scientist; he taught himself assembly language when the 6800 micros came out in the 70s, and has never felt the need to learn newer techniques).
So yeah, it's more about the newer platforms having more hardware and software abstraction layers, so more things that can break and they have much higher power consumption.
In our applications, the weakest links are always the more "modern" communications modules, of which we've used Bluetooth and Cellular/IoT. In both cases, they are high-level SoC devices, with all kinds of capabilities and the ability to run BASIC or Python scripts on them. But they turn out to be much less reliable than our assembly code on the basic micros we use, and are the source of almost all device faults.
To illustrate the real-world advantage of the way we do it: our biggest competitor (a significant player that has shipped thousands of devices globally), uses a more modern/high-level platform (I don't know what exactly - it may be Arduino). One of our customers was given one to try out. Like most of our customers, they wanted data uploaded to the web app every 60 or even 30 minutes in order to have precise visibility of their soil moisture throughout the day. Ours can do that, running on just two 3.7V Li-ion cells that last for 1-2 years per charge. For the competitor product, to upload more than twice a day, it needs a solar panel, which needs to be mounted high up on a post above the crop. But that's a deal-breaker for this grower and many others, due to the use of pivot sprinklers and machinery.
- dgb23 4y agoThat’s a gigantic difference. Almost comically so.
- dmonitor 4y agoSounds like they didn't optimize for low power. You can easily get 1-2 years out of a Nordic MCU
- pjc50 4y agoIt sounds like this is the abstraction/capability/risk tradeoff. Higher level languages and systems can let you do more things, at the reduced cost of not having to understand all the components - but then you're not perceiving the quality of the components and are exposed to their limitations.
- manholio 4y agoI'm not convinced it's an assembly language advantage per se. Most of these very low power MCUs now come in variants with ridiculous amounts of flash that negate the space advantage of hand tuned assembly. The binary a C compiler will generate will be bloated but the tight loops that matter will run with comparable speed and induction count, and the extra dead code and flash will not impact power draw. So you are down to C knowledge, a datasheet and a register and pin map, which many people in their 20s definitely knew how to handle 10 years ago, when I used to work for Freescale/NXP. To expedite that further you can go with Processor Expert, which will generate C code and abstract much of the datasheet swordsmanship. Can be finicky to setup, but the "drivers" you get (C routines) benefit from long debugging sessions and lessons we learned about the "proper" way to use a peripheral, sometimes using info from the hardware teams that was not in any datasheet. The thing to win with newer, power hungry platforms is the so called "race to idle". They are so powerful and have such efficient low power modes that the best battery life is obtained by cramming as much work in a wakeup as possible and then going to sleep, as opposed to having an exceptionally low power machine that is awake most of the time. So someone with an 80s paradigm might need to adjust to this reality. Thousands of units is nothing and definitely not enough to (profitably) stay on hand tuned assembly.