Monday, June 10, 2013

Bug of the Month Ends

For the last ten years Gimpel Software has posted a short stand alone program with an obscure C bug in it, with the challenge to the reader to figure out the bug.

Gimpel does this to show off their static analyzer Lint, the nitpickyest of all programs, something that I use almost daily. Lint exposes bugs by looking at a project as a whole, with multi-pass value tracking, rather than just as a file at a time as most humans would. Lint also can test for compliance with various guidelines such as MISRA or The Barr Group's Embedded C Coding Standard.

You can even input your own bugs to test short snippets of code that you might come across. For example the abysmal "if( A==B==C )" found in some of Freescale's USB stack code (I'll save the rant on poor manufacture example code for an other time).

I always looked forward to the challenge of the Bug of the Month, sadly it has be discontinued in favor of a new blog (May not be operational until late summer). I really don't like how everyone thinks replacing something useful with something akin to 'Social Media' is a good thing, how about you?

Colleagues over the years have complained that Lint puts out to many warnings. That is usually the case of Linting legacy code. Error messages may be turned off in layers. Get rid of the ones that will crash the system first, followed by the ones that might, until you get down to none or the ones you are willing to live with. Also with people trying to turn serious development in to some kind of game, see Development has become the game. Whats your Potty Mouth Score today?, make Lint a game. Can you write code that will give no Lint errors today?


The Cyborg Era Begins

Looks like I'm up for a trip to the library, just came across an intriguingly titled paper: The Cyborg Era Begins by Robert F. Service in Science in the area of Bioelectronics.

Abstract: Electronic components are invading the body. In the lab, cling wrap–like circuitry draped over the hearts of test animals can track the activity of each of the heart's four chambers and kill tissue that initiate potentially deadly arrhythmias. Other arrays penetrate brain tissue to monitor the abnormal nerve firing patterns in epilepsy or induce gene expression in the brain tissue of mice. One team has even made a 3D printed bionic ear able to pick up ultrasonic bleats that humans cannot hear. These early prototypes can't produce science-fiction cyborgs; most are used in medicine. But over time, expect devices that will make us better athletes and soldiers, or even improve our complexions.

Science 7 June 2013:
Vol. 340 no. 6137 pp. 1162-1165
DOI: 10.1126/science.340.6137.1162
Robert F. Service

M. Scott Veach and I have been discussing the ethics of replacing our organs so that we can live forever, or until the batteries run down at least, in the comments of my Brain Boost Button one step closer article from last year. Ahead of the curve again it seems...


Monday, May 20, 2013

TI Tech Day 2013

Texas Instruments held their fifth annual Technology Days 2013 in Cleveland this past Thursday [May/16/2013]. According to Jackie Filby, Technical Sales Rep for TI that covers my area 264 people attended this year, the largest crowed ever. If you did not make it check the TI calender for the Tech Days that may be in your area this fall.

The day had six parallel tracks running for during the day, two classes in the morning with a half hour between the classes to explore the exibits, and three sessions after a very good lunch. This years tracks were:

  1. Industrial and Sensing
  2. Signal Chain Design
  3. Power Supply Considerations
  4. Wireless Connectivity
  5. Embedded Microcontrollers
  6. ARM® Processors

The Cleveland presentations are available here. Just reading the presentations online lacks the interaction with the other participants and TI instructors. For example I got to discuss gas sensors research with someone I just meet, and discussed how to design a gas gauge for Alkaline Batteries with TI's Analog Field Applications Engineer Keith Keller.

Keith did a good job of condensing the vast area of battery charger design in to the hour of time he had available, especially concentrating on the safety aspects. Using a simple resistor to charge a battery like in the days of NiCads and Lead Acid are long gone. The other area Keith concentrated on was measuring the battery capacity. In the old days you could simply measure the batteries voltage to tell how long it was until it would no longer support a load, not so any more. Some modern Lithium chemistry's a 1 mV change in battery voltage can represent a 10% change in battery capacity. TI has brought to market Gas Gagues that measure the batteries impedance, which rises as the battery discharges, to give a true indication of remaining battery capacity. For completeness I want to point out the late Jim Williams of Linear Technology describes a battery test system based on impedance measurements in Application Note Power Conversion, Measurement and Pulse Circuits.

Art Kay, of Operational Amplifier Noise: Techniques and Tips for Analyzing and Reducing Noise fame present the courses Ten Little Analog Lessons and Parasitics in Precision PCB layout. After the session Art and I got in to a discussion on how to make noise rather than get rid of it. For example out of band 'noise' injected, in the form of Dither, into a A/D can improve the Spurious-free dynamic range (SFDR).

If you have not attended events such as these in the past, make a point of getting out of the cubical, as sometimes the people in you run into at lunch and in the hallways adds to the excitement of the day. For example I ran in to Andrew Girson president of the Barr Group, Michael Barr's new company (Mike is well known in the Embedded Space from his books, training and time as editor of Embedded Systems Magazine). Members of the Barr Group were teaching the Android Introduction class on the TI Sitara™ platform.

The other reason that will motivate you to go next year is the coupon at the TI EStore for any item on their selected tool list of about 50 items for $10. Note that is not $10 off, rather you get the tool regardless of its list price for $10. I picked up the $475 TMDSSOLARCEXPKIT - Concerto-based Solar Explorer Development Kit.

The only disappointment I had this year was that in the past there was a gymnasium sized exhibit area, with TI showing many of their products and independent supporting vendors, inductor suppliers as an example. This year the demos were a few tables in one of the hallways. Jackie said that they downsized this year and last due to budget constraints but was hopping to be back at full force next year. Hope to see you there!


Sunday, May 19, 2013

DHS Study of Critical Infrastructure Risks from GPS Disruptions

I've blogged about how we are to reliant on GPS, for example see: Are we to reliant on GPS/GNSS? Royal Academy of Engineering says we are. Now the Department of Homeland Security is saying the same thing in the report:

National Protection and Programs Directorate Department of Homeland Security
National Risk Estimate: Risks to U.S. Critical Infrastructure from Global Positioning System Disruptions
The Office of Infrastructure Protection

Bottom Line: U.S. critical infrastructure sectors are increasingly at risk from a growing dependency on GPS for positioning, navigation, and timing (PNT) services. Such dependencies are not always apparent

"Human skills for using manual techniques could erode due to lack of training and practice as GPS becomes more ubiquitous", means that just because we have calculators and computers does not mean we should not teach and learn to do math with paper and pencil, and how to use a sextant. Also few understand how the banking and stock market have become dependent on timing synchronized transactions, at the nano-second or better levels of accuracy and precision.

For more information visit, http://www.dhs.gov/criticalinfrastructure, today. The day-after-tomorrow may be to late. Space Weather is reporting that sunspot AR1748 may release more X-Class flares this week, this time directed toward Earth. See Geomagnetic Storms: An Evaluation of Risks and Risk Assessments, 2011.

See also, The National Infrastructure Advisory Council Final Report and Recommendations on the insider threat to critical infrastructures, 2008 and Critical Infrastructure Partnership Advisory Council 2012 annual update.


Saturday, April 27, 2013

Software Estimation

My entry on Probabilistic Programming got me to wondering about estimating productivity. Made me dig out J.P. Lewis classic paper Mathematical Limits to Software Estimation.

Abstract: Algorithmic (KCS) complexity results can be interpreted as indicating some limits to software estimation. While these limits are abstract they nevertheless contradict enthusiastic claims occasionally made by commercial software estimation advocates. Specifically, if it is accepted that algorithmic complexity is an appropriate definition of the complexity of a programming project,then claims of purely objective estimation of project complexity, development time, and programmer productivity are necessarily incorrect.

Mr. Lewis wrote a lengthy supplement, elaborating on the many misunderstands of what the paper actually said. Alas it did not really help me figure how to estimate the time it might take to use probabilistic methods. At this point, that is probably not even possible given this prenatal state of the probabilistic methodology?


Probabilistic Programming

The Defense Advanced Research Projects Agency's (DARPA) budget proposals are always an interesting read. They lead to things like this, potentially Open Source Project: Probabilistic Programming for Advancing Machine Learning (PPAML); Solicitation Number: DARPA-BAA-13-31

Machine learning is at the heart of modern approaches to artificial intelligence. The field posits that teaching computers how to learn can be significantly more effective than programming them explicitly. This idea has revolutionized what computers can do in a wide range of domains, including Intelligence, Surveillance, and Reconnaissance (ISR), Natural Language Processing (NLP), Predictive Analytics, Cyber, and various scientific disciplines. Example applications include self-driving cars, image search and activity detection, object tracking, topic models, spam filters, recommender systems, predictive databases, and gene sequencing. Unfortunately, building effective machine learning applications currently requires Herculean efforts on the part of highly trained experts in machine learning. Probabilistic Programming is a new programming paradigm for managing uncertain information. The goal of the Probabilistic Programming for Advancing Machine Learning (PPAML) program is to facilitate the construction of machine learning applications by using probabilistic programming to: (1) dramatically increase the number of people who can successfully build machine learning applications; (2) make machine learning experts radically more effective; and (3) enable new applications that are inconceivable today.

Machine learning applications work by building a model of a phenomenon of interest and then training or conditioning that model with observed data, similar to the way we may 'teach' a Neural Network today. What Probabilistic Programming is not is the classic Inference Engine, rather it is a front end to classic IEs or yet unthought of IEs. BUGS would be an example of a classic IE. The Probabilistic Programming approach separates the model from the solver, making it possible for one set of users to develop the model without having to implement or know the details of the solver. With Probabilistic Programming languages, once they exist, developers will be able to focus on developing their models while solver experts will be able to embed their expertise in reusable new style inference engines.

Where I see Probabilistic Programming being of the most use in Embedded Space is in the area of network routing for the Internet of Things (leaving aside the issues of lack of conventional radio spectrum and the raising Internet noise floor slowing everything down for the moment).

There are some Software Safety issues to address, such as how is a Probabilistic Programming verified and validated? No human may actually know how it works, to explain how a particular conclusion was reached. MISRA well known for their C and C++ safety Guidelines does have an obscure section on Autocode generation. However that is still based on conventional technology of today. What happens when true Artificial Intelligence systems do start creating programs that we rely on?

To keep up to date follow the Probabilistic-Programming.org Mailing List.


Monday, April 1, 2013

Weight of the Soul or Dust on the Scale?

Back around Halloween I mentioned my visit to the J. B. Rhine Research Center (Rhine was the first to do experiments with 'ESP' at Duke University in Durham, North Carolina in the 1920's), see Near Death at the Rhine Research Center. The first formal report of the optical work, Electromagnetic Emission From Humans During Focused Intent by William T. Joines, Stephen B. Baumann (deceased), and John G. Kruth, see Journal of Parapsychology 76(2), is now online (Membership is required). The formal report does cover Mitogenetic Radiation something I thought was lacking previously.

What also fascinates me is that if they can get the funding for this future research project: They want to try to weigh people that claim they can leave their body, sometimes refereed to as Astral Travel or Astral Projection (the original experiments invovled death, no one wants to be killing the research subjects today) , and see if there is a change in their weight.

If you believe in such things that is your personal choice, what is fascinating to me after looking into this a bit is just how hard it is to make an precise and accurate weight scale. This scale road has been traveled in the past:

[Jim Williams] worked for a few years with the Nutrition and Food Sciences Dept at MIT, building equipment for them. Once he built a scale that was so sensitive he could stand on it, take a bite out of a donut and measure the weight of the bite. He had to add a low frequency notch filter to take out the heartbeat of the user as the blood flowed up and down the femur arteries, modulating the weight on the scale. - I Remember Jim Williams, a Guru of the Analog Electronics World, as Much an Artist as Engineer.

Scott Wayne, Analog Dialogue's editor, pointed me to Jim Williams scale paper, Thank You Scott: High resolution scale: Measures up to 250 lb +/- .01 lb, detects a single bite of food, Analog Dialogue, vol. 10, no. 2, p. 17, 1976. Every issue of Analog Dialogue, from Volume 1, Number 1, 1967 through the present is available in Analog Devices' Analog Dialogue's archives.

Getting back to our current time, Vishay Precision Group (VPG) has released a Video, described here, on their Z-Foil Resistors.

In the video, a custom designed scale is used to weigh 200 grams of gold at +25C and +60C, first utilizing thin film technology for the gain resistors and then using the Z-foil resistors.

At +25C, both the thin film and Z-foil resistors measure the 200 grams of gold for a value of $11,400. With an ambient temperature increase to +60C, however, the assembly utilizing precision thin film resistors weighs the gold as 197.8 grams for a value of $11,277 - which represents a 'loss' of $123. The same assembly using Z-foil resistors is not affected by the temperature change, providing an accurate measurement of 200 grams at +60C - and no loss in measured value.

See also Why Honest Weigh Scales Are Application Specific and Application Note 5275: Calibration - Needless or a Necessity?, from Maxim Integrated.

In 1976 we could measure +/- 0.16 of ounce change in a 250 pound person. Thirty-seven years on, I wonder if Analog Devices, Intersil (see the video), Linear Technology (Jim Williams), Maxim Integrated or Vishay Precision Group (VPG), would step up to the challenge of funding the Rhine's project to showcase their current technologies, on how things have improved? Maybe you think you are up to the challenge of this scale design? Let us know.


'Magic Smoke' Resistors available off-the-shelf

Anyone that has been around electronic devices for any length of time know that when the devices fail, they tend to go up in smoke, leading to the idea that electronic parts are run by Magic Smoke. Alas our sterilized, sanitized, paranoid society is taking the *fun* out of such things as hands on learning.

While places like Analog Devices' Engineering University are great for learning theory and hands on labs with their hardware, sometimes it is far more educational, and down right *fun*, to learn why things went wrong. Only experience is going to teach one, the important debugging skill, of the differences in smells between burning resistors, burning capacitors, and burning circuit board material. Also teaches the importance of wearing protective eyewear (never know when a backwards part might try to impale itself into the ceiling or ones face if it is closer), and having a electrical rated fire extinguisher next to the workbench.


What brings us to Magic Smoke, is that Vishay has upgraded their old line of Electro-Pyrotechnic Initiator Chip Resistor (EPIC) (and Design Guide and App Notes) to the new Massive Electro-Pyrotechnic Initiator Chip Resistor (MEPIC).
MEPIC resistors, also known as bridge resistors, are resistive elements that convert electrical energy into heat energy in a precise electro-thermal profile for the purpose of initiating a series of pyrotechnic events in a controlled energetic reaction. [They go *BOOM* on command, which is different than Rapid Spontanious Self-Disassembly.]
The new Vishay Sfernice resistor is optimized for electronic igniter applications in automotive safety systems for the deployment of airbags and other safety devices; digital blasting in mining applications; and in fireworks applications for better synchronization of fireworks, music, and special effects.
With firing energy down to 1.5 mJ and a typical ohmic range of 2 Ohms (+/- 10 %), the device provides designers with very predictable, reproducible, and reliable behavior.
Offered in the standard 0805 case size for the wraparound and flip chip versions, with other sizes available upon request, the resistor features easy set-up of firing levels, and is compatible with various pyrotechnic compositions.
Offering ESD withstanding to 25 kV without extra protection, the MEPIC resistor's performance meets no fire/all fire conditions and the requirements of USCAR, AKLV16, and major car manufacturer standards. The device is RoHS-compliant and conforms to Vishay "Green" standards. [Is it not great that Fuzes are 'Green'?]
Almost lost in the mists of time is that in the past manufactures made military specific parts, before someone thought that Commercial Off The Shelf technology (COTS) was a good idea (it wasn't). National Semiconductor's, now part of TI, Application Note #761:Electronic Fuzing covers the basic terminology of Fuzing:
Fuzing mechanisms are devices used to "safe", "arm" and detonate explosive military munitions (such as missiles, mines, demolition charges, explosive shells ranging in size from 20 mm to 16 inches, unguided bombs and various submunitions). Early electronic fuzes developed for 5-inch naval air defense...
Sadly even tho I'm it good standing with my Vishay Rep. Firm, samples of (M)EPIC parts are restricted to people that can show good cause for getting them, so Homeland Security can relax. To bad, think of the fun the people at Hack A Day or Make Magazine could have with some these...as well as those great educational experiences that are being lost...