Go here to sign up for The Embedded Muse.
The Embedded Muse Logo The Embedded Muse
Issue Number 460, December 19, 2022
Copyright 2022 The Ganssle Group

Editor: Jack Ganssle, jack@ganssle.com

   Jack Ganssle, Editor of The Embedded Muse

You may redistribute this newsletter for non-commercial purposes. For commercial use contact jack@ganssle.com. To subscribe or unsubscribe go here or drop Jack an email.

Editor's Notes

SEGGER embOS-Ultra

Tip for sending me email: My email filters are super aggressive and I no longer look at the spam mailbox. If you include the phrase "embedded muse" in the subject line your email will wend its weighty way to me.

Turns out, remote work does not impact productivity.

Quotes and Thoughts

Don't worry about people stealing your ideas. If your ideas are any good, you’ll have to ram them down people's throats. Howard Aiken, early computer pioneer

Tools and Tips

Please submit clever ideas or thoughts about tools, techniques and resources you love or hate. Here are the tool reviews submitted in the past.

Larry Marks sent this link to an article about how Android is increasingly using the Rust language with good results.

The Heartbreak of Nomophobia

For this end-of-year Muse, here's a tale of woe.

Nomophobia. It’s a bitter curse, an affliction that cripples those affected. Perhaps you have a friend or relative who suffers from this condition. I’m sure we’ll soon have a Huge Federal Program in place to address the issue.

The mostly-incompetent PR zombies of the world send me hundreds of press releases a week, usually with topics tremendously germane to embedded engineers like hair treatments and ED cures. I particularly enjoyed a gem from SecurEnvoy, another one of those annoying companies with camel-case names, that warns that two thirds of us suffer from nomophobia - the fear of losing or being without our mobile phones. The apprehension is so intense that, according to the release, 41% of us have a backup cell phone.

The PR claims 77% of those in the 18-24 age group are nomophobic. Like so many early-onset diseases  perhaps the syndrome will metastasize as that generation ages. First, fear of being without their phones. Next, panic over data throttling. When the 5G symbol disappears and 4G pops up howls of despair will fill the air. I can see the beginnings of an Occupy Verizon movement, tent cities arising on that company’s sites, people living in squalor except for their state-of-the-art digital connections.

Or maybe they’ll grow up and worry about real problems, like feeding their families.

I figured nomophobia was a neologism concocted by SecurEnvoy to push their wares, but the word has a Wikipedia entry and there even used to be a website dedicated to it. No doubt poor sufferers surf the net in the wee hours, looking for solace in the virtual company of others so afflicted. On their smartphones, if they weren't misplaced.

A quote from the PR: "Another interesting revelation from this study is that, with 49% of people getting upset if their messages and texts were viewed by a partner, they’re still lax at securing these devices. Forty-six percent do not use any protection at all." I'm not sure what kind of protection that refers to, but perhaps a bright entrepreneur will come up with a latex solution.

Like all good press releases, Securely’s latest eschews technical terms in favor of marketing-speak. No PR is complete without a rash of "innovatives," "solutions," "benefits," and "centric." The word "deploy" occurs four times in a single sentence, which amusingly ends with the clause "allowing them to rapidly deploy up to 20,000 users per hour." I can see the mad crush of identical gray-suited users, 20k per hour, spilling out of SecurEnvoy's gates to help us with our nomophobic angst.

But never fear; technology always has a solution. Why not connect a cable between the mobile phone and a base unit? The phone will never get lost, and nomophobes will always know precisely where it can be found.

A nomophobia solution

On Compiler Warnings

A number of people sent comments about compiler warnings. Phil Koopman said it best:

John Carter's suggestion to use compiler warnings as a first step toward coding standards is an important one.  I tend to split these up into "coding style for people" and "coding styles for the compiler." Often we talk about indenting curly braces and tabs vs. spaces (for people) -- but making sure the compiler isn't confused about what you mean is also important. For those who've never contemplated the difference you might find video lectures #4 and #5 here of interest: http://course.ece.cmu.edu/~ece642/

However, there is a common misconception that someone might take away from a recommendation of a gcc warning default of "-W -Wall -Werror" which is that "-Wall" is not actually "all." Apparently the warning list for "-Wall" got frozen at some point, and there are a whole bunch more useful baseline warnings included if you add "-Wextra"

So for starting I'd recommend:
-Wall -Wextra -Werror

When I teach better software engineering skills (including clean code) at Carnegie Mellon University, I require all projects to use these warnings to produce some interesting learning experiences:

-Werror -Wextra -Wall -Wfloat-equal -Wconversion -Wparentheses -pedantic -Wunused-parameter -Wunused-variable -Wreturn-type -Wunused-function -Wredundant-decls -Wreturn-type -Wunused-value -Wswitch-default -Wuninitialized -Winit-self

No doubt there will be those who find some warnings controversial, but any warning that helps find a bug provides value, and I'd rather spend a bit more time structuring my code to enable passing automated compiler analysis than chase down bugs in production.

Rationalizing Multiple Sensors

We often have more than one sensor that measures more or less the same thing. Too often we don't take care to insure that the data these provide is in any way coherent. The best examples were in the 737MAX crashes where the software didn't reject readings from two sensors giving opposite data.

Charles Manning has seen this in medical devices:

Herewith a photo of my monitor screen in ED earlier this year.

In green we have my pulse as measured by ECG: 132

In blue (top right) we have my pulse measured by a pulse oximeter (finger clamp thing): 61

I was in atrial fibrillation at the time. The 132 is real. The 61 is not. The ECG picks it up, the pulse oximeter doesn't..

This is not cheap-ass equipment from Walgreens either. This is top-shelf ED gear. I don't pick on the maker of this instrument - most have this flaw.

Unfortunately pulse oximeters are routinely used as screening devices for triage and monitoring and do not capture the real picture. Pretty scary really. Here is a device that is the backbone of diagnostics and is often way out. There is an over-reliance on an instrument that can produce bad results.

The problem is almost certainly a DSP issue in the way pulse-oximeters are designed. Assumptions are made when they tune the DSP algorithms (eg. they look for a certain pulse shape) and they get confused by Afib. I have also seen some get confused by low BPM (my regular pulse is around 45-50 and many pulse oximeters reject anything below 50).

I have learned that when I am in Afib I have to constantly remind the medical staff I encounter to not use a pulse oximeter and only use ECG or measurements done the old school way.

Failure of the Week

From Harold Kraus. It's good to know people were thinking about avionics in 1656:

Jim Kelleher sent this from a Samsung Galaxy Watch 4. More bogus medical info:

Have you submitted a Failure of the Week? I'm getting a ton of these and yours was added to the queue.


Let me know if you’re hiring embedded engineers. No recruiters please, and I reserve the right to edit ads to fit the format and intent of this newsletter. Please keep it to 100 words. There is no charge for a job ad.


Joke For The Week

These jokes are archived here.

About The Embedded Muse

The Embedded Muse is Jack Ganssle's newsletter. Send complaints, comments, and contributions to me at jack@ganssle.com.

The Embedded Muse is supported by The Ganssle Group, whose mission is to help embedded folks get better products to market faster.