Last time, in If Integration Is the Solution, What Was the Problem? Part 1, we looked at the ICs of the integrated-solution approach (often called the “hardware”, but I prefer to reserve that term for the mechanical components).
But that's only part of the story; there's also the software. Let's face it, without software (or firmware), all you've got is some nearly-moribund silicon, but not much more. Somehow, you have to breathe life into it.
The good news is that if you are using a known, predefined chip or chipset, you can also expect to have various levels of software available that will make those ICs play together; they may even implement some of the application. But you have to ask:
- Where does it reside: in system processor memory, or the application's IC(s)?
- Do you write the bulk of the low-level code, using some tools from the IC vendor? Or does the vendor provide an almost ready-to-go package for you, to which you “merely” add the higher level-functions such as user interface?
- To what extent can you “get in there” and modify the software if you need to, or is it embedded as firmware in the IC(s)? Do you just get to set operating points and parameter values, but not much else — and are you OK with that?
- Who is there to support you and your project when you have questions, whether on the circuit side or the software/firmware/application code side?
- Did you want to write the application code yourself, because you can do a better job, or because you want to feel valuable on the job?
- Who is providing this application code, and how good is it? Did knowledgeable provide it? Is it from a qualified third party, or maybe someone who was “volunteered” and is not really versed in the application? And how was it verified? While many applications seem straightforward at first, all experienced engineers know that the challenge is in the details; for example, feature extraction from cardiac waveforms is not easy, regardless of how good your analog front end (AFE) chip set may be.
Part of the rationale for using an integrated chip or chips set and applications code is simple: Who has time to re-invent the wheel when 80 percent of the project's basics is similar to what someone else is doing, in many cases? It may be fun to learn by doing, but you can't take the time to discover everything on your own. You have to leverage the experience of others.
But it's always important to look and investigate carefully what you're getting, and not assume that the other guy has all the answers — especially when you are not sure of the questions you'll be facing from management and customers.