Skip to content

article: Every Prototype Is Also a Measurement Tool - #140

Open
markusgruen wants to merge 11 commits into
Zuehlke:mainfrom
markusgruen:Blog-Artikel-von-grue
Open

article: Every Prototype Is Also a Measurement Tool #140
markusgruen wants to merge 11 commits into
Zuehlke:mainfrom
markusgruen:Blog-Artikel-von-grue

Conversation

@markusgruen

Copy link
Copy Markdown

I am unfamiliar with git. I hope I did everything correctly....

Regarding the picture: I copied it from Unsplash. Am i required to put in a reference somewhere?

@kunman93 kunman93 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

very well written.

P.S. I used AI to review your PR, otherwise I wouldn't have found all of these findings.

Whether it’s a completely new, innovative product or the next iteration of an existing one, I keep seeing the same pattern.

Right from the start — during requirements definition, system architecture, and in early functional prototypes — one crucial element is often overlooked.
And this happens regardless of whether you’re developing an electric toothbrush, a coffee machine, or a medical ventilator.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
And this happens regardless of whether you’re developing an electric toothbrush, a coffee machine, or a medical ventilator.
This happens regardless of whether you’re developing an electric toothbrush, a coffee machine, or a medical ventilator.

And this happens regardless of whether you’re developing an electric toothbrush, a coffee machine, or a medical ventilator.

From day one, the device is designed with the finished product in mind.
What's often forgotten is this: the path to that finished product is long, full of unknowns that must be explored, understood, and — most importantly — measured. During development, the final product doesn’t exist yet.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
What's often forgotten is this: the path to that finished product is long, full of unknowns that must be explored, understood, and — most importantly — measured. During development, the final product doesn’t exist yet.
What's often forgotten is this: the path to the finished product is long, full of unknowns that must be explored, understood, and — most importantly — measured. During development, the final product doesn’t exist yet.


From day one, the device is designed with the finished product in mind.
What's often forgotten is this: the path to that finished product is long, full of unknowns that must be explored, understood, and — most importantly — measured. During development, the final product doesn’t exist yet.
It only emerges through countless iterations, tests, measurements, debugging loops, and insights.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
It only emerges through countless iterations, tests, measurements, debugging loops, and insights.
It emerges only through countless iterations, tests, measurements, debugging loops, and insights.


## The missing piece: measurability during development

Especially in early phases, core functions of the device often need to be explored experimentally.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Especially in early phases, core functions of the device often need to be explored experimentally.
Especially in the early phases, core functions of the device often need to be explored experimentally.

**But for development, the opposite is true.**

System integrators and engineers need access to all relevant signals — and since nobody knows at the beginning which signals will turn out to be relevant later, "relevant" effectively means *everything*.
All raw sensor data, all actuator control values, all internal states (such as state machine states), ideally at the native sampling rate.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
All raw sensor data, all actuator control values, all internal states (such as state machine states), ideally at the native sampling rate.
All raw sensor data, all actuator control values, and all internal states (such as state machine states), ideally at the native sampling rate.

4. **Selective logging:**
Developers choose only the signals relevant for the current measurement. This requires more logic and user interaction.
5. **Event-based logging:**
Useful for signals that change infrequently (e.g., system states). Harder to use with CSV because timestamps must be transmitted.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Useful for signals that change infrequently (e.g., system states). Harder to use with CSV because timestamps must be transmitted.
Useful for signals that change infrequently (e.g., system states) but harder to use with CSV because timestamps must be transmitted.

Developers choose only the signals relevant for the current measurement. This requires more logic and user interaction.
5. **Event-based logging:**
Useful for signals that change infrequently (e.g., system states). Harder to use with CSV because timestamps must be transmitted.
6. **Separate channels:**

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
6. **Separate channels:**
6. **Separate channels:**


Both approaches can work — but only if the architecture supports them.
Once again, this brings us back to early design decisions.
Inter-controller communication must either be designed for the required data volume and frequency, or the main processor must provide a system clock or heartbeat that other controllers can synchronize to.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Inter-controller communication must either be designed for the required data volume and frequency, or the main processor must provide a system clock or heartbeat that other controllers can synchronize to.
Inter-controller communication must either be designed for the required data volume and frequency, or the main processor must provide a system clock or heartbeat that other controllers can synchronize with.

Comment on lines +147 to +148
> A prototype that 'works' is useful".\
"A prototype that is measurable is invaluable.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
> A prototype that 'works' is useful".\
"A prototype that is measurable is invaluable.
> A prototype that “works” is useful. A prototype that is measurable is invaluable.


Without complete and correctly timed measurement data, debugging becomes guesswork and optimization becomes trial and error. Planning a clear developer interface early saves time, reduces frustration, and dramatically accelerates product development.

Or, to put it another way:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Or, to put it another way:
Or, to put it another way:

## The missing piece: measurability during development

Especially in early phases, core functions of the device often need to be explored experimentally.
Proofs-of-concept usually only answer a simple question: _Does it work at all?_ How it works in detail only becomes clear over the course of the project.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Proofs-of-concept usually only answer a simple question: _Does it work at all?_ How it works in detail only becomes clear over the course of the project.
POC'a usually only answer a simple question: _Does it work at all?_ How it works in detail only becomes clear over the course of the project.

4. **Selective logging:**
Developers choose only the signals relevant for the current measurement. This requires more logic and user interaction.
5. **Event-based logging:**
Useful for signals that change infrequently (e.g., system states). Harder to use with CSV because timestamps must be transmitted.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Useful for signals that change infrequently (e.g., system states). Harder to use with CSV because timestamps must be transmitted.
Useful for signals that change infrequently (e.g., system states), this is harder to use with CSV because timestamps must be transmitted.

Comment on lines +120 to +122
In one of my recent projects, I was fortunate: a logging function already existed, though not in the required scope.
Extending it was accepted without much resistance.
Still, it became clear once again that retrofitting logging late is far more work than planning it upfront.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In one of my recent projects, I was fortunate: a logging function already existed, though not in the required scope.
Extending it was accepted without much resistance.
Still, it became clear once again that retrofitting logging late is far more work than planning it upfront.
I was fortunate in one of my recent projects as a logging function already existed. Unfortunately it was not (yet) fit for purpose.
We were allowed to extend it without excessive deliberation.
That said, retrofitting the existing solution was more complicated than if we had planned the logging capability upfront.

Comment on lines +130 to +131
As a result, the entire data path — both between processors and in the logging output — had to be reworked to support native-rate raw data logging.
It took more than a week of unplanned work before all raw data finally appeared correctly at the logging interface.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
As a result, the entire data path — both between processors and in the logging output — had to be reworked to support native-rate raw data logging.
It took more than a week of unplanned work before all raw data finally appeared correctly at the logging interface.
As a result, the entire data path — both between processors and in the logging output — had to be reworked to support logging at the raw data rate.
It took more than a week of unplanned work before all of the raw data finally appeared correctly at the logging interface.

As a result, the entire data path — both between processors and in the logging output — had to be reworked to support native-rate raw data logging.
It took more than a week of unplanned work before all raw data finally appeared correctly at the logging interface.

## Example: pressure sensor calibration during operation

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Example: pressure sensor calibration during operation
## Example: Pressure Sensor Calibration During Operation

Inter-controller communication must either be designed for the required data volume and frequency, or the main processor must provide a system clock or heartbeat that other controllers can synchronize to.
These are not details you want to figure out late in the project.

## Why logging must be planned from day one

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Why logging must be planned from day one
## Why Logging Must Be Planned From Day One

A well-designed early concept saves time, makes the project more robust, and — most importantly — accelerates development.
Debugging becomes painful when you can’t see what’s happening inside the system.

## Example: logging in a highly complex distributed system

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Example: logging in a highly complex distributed system
## Example: Logging in a Highly Complex Distributed System


The key takeaway: logging must be considered from the very beginning — during system architecture design, hardware design, and even component selection — to avoid performance issues later.

## Distributed systems: logging across multiple controllers

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Distributed systems: logging across multiple controllers
## Distributed Systems: Logging Across Multiple Controllers

Most importantly, the output must be synchronized to the system clock, ideally by including timestamps.
Without proper timing, measurement data quickly becomes ambiguous and hard to interpret.

## When data volume becomes a problem

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## When data volume becomes a problem
## When Data Volume Becomes a Problem

All raw sensor data, all actuator control values, all internal states (such as state machine states), ideally at the native sampling rate.
Only with this level of visibility can you truly understand system behavior, develop features efficiently, analyze bugs, and systematically identify root causes.

## Turning prototypes into measurement instruments

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Turning prototypes into measurement instruments
## Turning Prototypes Into Measurement Instruments

What's often forgotten is this: the path to that finished product is long, full of unknowns that must be explored, understood, and — most importantly — measured. During development, the final product doesn’t exist yet.
It only emerges through countless iterations, tests, measurements, debugging loops, and insights.

## The missing piece: measurability during development

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## The missing piece: measurability during development
## The Missing Piece: Measurability During Development


## Example: pressure sensor calibration during operation

The same project also showed why logging actuator commands is just as important as logging raw sensor data — both at native frequency and fully time-synchronized.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The same project also showed why logging actuator commands is just as important as logging raw sensor data — both at native frequency and fully time-synchronized.
This same project also showed why logging actuator commands is just as important as logging raw sensor data — both at controller native frequency and fully time-synchronized.

Without complete and correctly timed measurement data, debugging becomes guesswork and optimization becomes trial and error. Planning a clear developer interface early saves time, reduces frustration, and dramatically accelerates product development.

Or, to put it another way:
> We’re not just building a tea machine. First, we’re building a measurement instrument.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
> We’re not just building a tea machine. First, we’re building a measurement instrument.
> We’re not just building a tea machine. First: we’re building a measurement instrument.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants