Suddenly I'm working on not one, but two timer projects.
One's a teeny tiny timer for Larry Renger's program to put planes in the hands of kids.
The other is a project to make a timer that -- with the exception of size (it's big) -- can be all things to all people. It's turning into a bit of a monster, but I think I'll get it done. I'm modest, so I'm calling it
Tim's Universal Timer.
- What it definitely has:
- Four connections for input or output, pulse or logic
- A freaking insanely powerful processor for a mere timer (STM32F303)
- A USB port (I said it's turning into a monster!)
- The ability to talk to, and be programmed by, a JETIBox
- A 3-axis gyro, 3-axis compass, and a 3-axis accelerometer
- 2 megabytes of flash memory, for data-logging
- A blinking light, because no board with a processor should be without one*
- What it definitely will have:
- The ability to emulate a KR timer or a Hubin timer
- The ability to sequence landing gears along with motors
- The ability to control more than one motor in a Renicle-esque way
- The ability to sequence things other than motors, if that's what you want (consider a FF-style motor cutoff after six minutes)
- The ability to detect premature motor or IC engine stall, and extend the landing gear**
- The ability to detect one motor or IC engine cutting out prematurely, and cut out all the others
- The ability to record RPM and all motion of the aircraft into flash, and upload it to your computer after a flight, for review
- And more. Read on
- What it will probably have:
- The ability to emulate Igor Burger's timer
- The ability to regulate an IC engine speed***
The way that I'm achieving such flexibility, and a good part of the reason that this project has turned into a monster, is because in order to meet my minimum requirements, I needed to give the thing a programming language**** of its own. This fact means that you'll be able to take a variety of modules -- RPM detectors, PID controllers, timeouts, and the like, and combine them in ways that I have not yet imagined. Then you'll be able to download a program to the timer (remember the USB port?) and have it run the next time you turn it on.
So, given that you have an idea of what this critter can do -- what do
you want in a timer? Forget any constraints -- just say what you'd like a timer to do, and ignore anyone (even me) that says "oh, that's not possible*****".
* Well, almost none. To quote a new customer of mine who's very power-consumption sensitive, and who will be potting his board in opaque epoxy: "What the hell is this light here for?"
** Or drop the landing gear immediately after a crash. I suggest no retracts if you're still at the crashing stage.
*** Whether there's any advantage to it or not. This kind of comes for free with the KR timer emulation.
**** Any time a software engineer for an embedded product waltzes into a design review and announces that he's working on a programming language for the product, the correct and rational response is for every other engineer in the room to turn to him as one, and say
ARE YOU CRAZY!!!. Then, as follow-up, they each need to collar the guy one by one and say "OK, explain to me why you're
not crazy."
***** Except for teaching you how to pick up women in bars. If I were born with the technical chops to make a gizmo that would help me pick up women in bars, I would still be single. Or quite happily dead from exhaustion.