What series of steps would you take to design a car?
Don't worry, this isn't one of those interview questions that gauge your analytic thinking. Would you break the project down into high-level systems - propulsion, control, safety, aesthetic, storage, etc.?
Or would you begin with lower-level uncertainties like differential steering, fuel mix, or crash detection? Perhaps you'd want to start at even more fundamental components - would you begin by reinventing the wheel? (pun very much intended)
While there is certainly a time and place for a Musk-esque first-principles approach, the mechanics and design of most cars are so similar for a good reason. The fundamentals have been figured out. They've been improved on time and again. They are now building blocks that can be dropped into new designs with minimal alteration.
This affords you lower costs, faster design times, increased safety, and a common language to describe problems and solutions. From the designer's perspective, all these advantages add up to one much greater benefit - peace of mind.
It is the same reason that Hollywood has massive lots full of sets that can be reused across many movies or why you use store-bought pasta instead of always creating your own.
When looking at this board, you're probably not seeing the building blocks. You probably cannot break this down into simple areas like propulsion, control, safety, aesthetics, or storage. That doesn't mean they are not there.
10 points to your Hogwarts house if you point out an electronics building block I am missing from this list:
Sensing - taking in data from the physical world
Signal processing - modifying that data into a form that can be used by the machine
Storage - securely keeping data for future use
Computation - running algorithms to perform a task
Communication - sending data to other areas of the machine or to other machines
Actuating - interacting with the physical world in some way (movement, emitting light or sound, sourcing/sinking heat, etc)
Human-machine interface (HMI) - specific means of sensing/actuating to communicate to people (touch panels, lcd displays, voice control, haptic feedback, etc.)
Power - manipulating the electron-juice that makes everything above work
At every company I have worked for, we would reuse entire chunks of older products when developing new ones. For example, when one of my previous teams was designing a new wifi router, we reused the human-machine interface from the previous model and only made minor changes to the power management electronics. The majority of our time was spent integrating a new chip that allowed for better speeds and performance and refactoring the signal processing accordingly.
Another team I worked with was trying to miniaturize a DNA testing device we already had in the market. This time the computation and signal processing didn't change from the original but we had to overhaul the sensing and actuation required for DNA replication in order to fit the new form factor.
While tweaking existing products is a fairly common practice, sometimes you need to start at a lower level (fuel mix and crash detection in the car analogy) while still trying to avoid reinventing the wheel. Enter electronics development platforms. Most people have heard of the common ones - Arduino, Raspberry Pi, Particle, BeagleBone, Feather, LittleBits, etc.
In our next post we'll dive into how these dev kits can save you tons of time by giving you a foundation of building blocks for you to build on top of.