A blinking LED is required on a control panel to indicate
a warning condition.
Therefore it must be extremely reliable.
Hardware engineer:
Easy, I'll use a 555, a few resistors and a capacitor; or LM3909 chip.
Done. Did I win a prize?
DIY Maker:
Easy. I'll use an Arduino with the blink sketch and a resistor.
Done. I have more billable hours than the first guy.
Senior Software Engineer:
You guys have it all wrong.
Such a system would never be flexible enough for a real application
where a blinking LED indicator is required.
Consider the inflexibility of the 555 approach.
What if the marketing people change the requirements from a simple
on/off blink to a different blink pattern.
The simplest example would be the double blink.
Blink, Blink, long pause, Blink, Blink, etc.
Then consider the lack of sophistication that the Arduino has.
With a simple microcontroller you can't have a web interface
to configure the LED's blink rate.
You would have to re flash the firmware.
With a more sophisticated controller, like a Raspberry PI, or
even better, a Beagle Bone, the system could automatically
check on the internet for software updates; and automatically
download and apply them.
For security, downloads could be signed with 4096 bit keys
using private certificates from the manufacturer.
(This also ensures ongoing contracts since no other vendor
would have the private certificates.)
Higher end boards provide more flexibility.
The LED controller could have it's own WiFI connection to
not burden the rest of the system to provide its
internet access.
And even better . . .
To blink an LED
Task:
To blink an LED.
A blinking LED is required on a control panel to indicate
a warning condition.
Therefore it must be extremely reliable.
Hardware engineer:
Easy, I'll use a 555, a few resistors and a capacitor; or LM3909 chip.
Done. Did I win a prize?
DIY Maker:
Easy. I'll use an Arduino with the blink sketch and a resistor.
Done. I have more billable hours than the first guy.
Senior Software Engineer:
You guys have it all wrong.
Such a system would never be flexible enough for a real application
where a blinking LED indicator is required.
Consider the inflexibility of the 555 approach.
What if the marketing people change the requirements from a simple
on/off blink to a different blink pattern.
The simplest example would be the double blink.
Blink, Blink, long pause, Blink, Blink, etc.
Then consider the lack of sophistication that the Arduino has.
With a simple microcontroller you can't have a web interface
to configure the LED's blink rate.
You would have to re flash the firmware.
With a more sophisticated controller, like a Raspberry PI, or
even better, a Beagle Bone, the system could automatically
check on the internet for software updates; and automatically
download and apply them.
For security, downloads could be signed with 4096 bit keys
using private certificates from the manufacturer.
(This also ensures ongoing contracts since no other vendor
would have the private certificates.)
Higher end boards provide more flexibility.
The LED controller could have it's own WiFI connection to
not burden the rest of the system to provide its
internet access.
And even better . . .
(lightning bolt strikes in mid sentence)
Post Comment