Ditto the comment on selective memory. I vividly remember the "7.2V" bug biting us at Great Lakes. And the horrible growing pains switching from the even older STAMP controller to the newer PIC controller. And so on and so forth. Every new control system has growing pains and atleast some people pines for the Good Ol' Days. So for a change in this thread, I'd like to point out (some) of the (numerous) positive aspects of the new FRC Control System:
- That you DO have the option of probing things live in Labview/Windriver for debugging. Slight bugginess in a feature not even available on IFI? Score one for the new system. I can tell you I won't miss having to litter my code with printfs.
- Real hardware encoder inputs. No more worrying about high resolution, high speed encoders jamming your processor with interrupts. Plus you can do more than 4 now.
- Real hardware sampled analog inputs. No more worrying about your interrupt routine to sample and average your analog inputs. As a bonus you can sample them at ludicrous speeds as well.
- Expanded speed controller abilities through the Jaguars + CAN bus. Now we have speed controllers that at linear and have smarts approaching the entire IFI controller. You don't even have to spend processor time on PID loops.
- Expanded peripheral counts. No, I haven't needed 20+ speed controllers and servos yet, but isn't it nice that it's available?
- For that matter, no more digging around in PIC datasheets to figure out just how you're supposed to use peripheral XYZ.
- Pre-made extremely useful dashboard with highly useful error messages and robot feedback. No more deciding which user byte is the most useful to you at any particular time. No more punching the user button to find out what your battery voltage is.
- Actual video on said dashboard. No more swapping camera cables back and forth trying to figure out what on earth that silly CMUCam is fixated on this time.
- Increased ease of programming. Knock it all you want, I can have a newbie team competently programming in Labview while you're still teaching your team the intricacies of C syntax. "You mean = and == are different?" vs. "You mean I just wire these little pictures together?"
- No more 8/16 bit integer math! Doubles for everyone! Say goodbye to all those pesky under/overflow bugs. Aren't you happy you no longer have to worry about the order of your multiplication and division and the loss of precision you're incurring? If I never see another typecast in our robot code, it'll be too soon.
- Download-less software testing and debugging (in Labview anyways). Wanna test that fancy new autonomous mode? Just hit the run button. Made your robot explode? No worries, just reboot and everything's back exactly as it was.
- No more backup batteries to worry about. Yes, this is a function of the new PD board, not the cRIO, but you're lumping it all together anyways. Also, new highly compact PD board with WAGO connectors. Take that giant copper maxi breaker blocks.
- Decentralized wiring. Isn't it nice not having to cram all of your wiring into the border around a 4x5 box? That also needs to be highly visible and accessible? Plus, swapping a cRIO out of a bot is loads simpler than swapping an IFI controller out.
- Development software that's actually licensed to be installed as many computers as you'd care to install it on. Yes, I know you didn't care that MPLAB was a single seat license. But now you can continue not caring about licenses and still be perfectly legal.
- The driver station doubles as a development platform. I'm sure you have to dig you way out of a pile of laptops if you open the wrong door, but I've run into many rookie teams that couldn't do a thing with their robot simply because they had no computer. Now one comes in the kit, ready to go for programming.
- Finally, no more analog joysticks and the hacks accompanying them! The fact that I no longer have to hoard '04 and earlier flightsticks? Excellent. The fact that I can now run down to the local CompU Buy Radio City and grab a joystick/steering wheel/game pad off the shelf and have it just work? Awesome. The fact that I never have to trim another joystick? Priceless.
So, I think there's a rather
lot of positives to the new control system that help to balance some of the annoyances. Frankly, my largest peeve with the new system is the sheer cost and the fact we don't get a new one on an annual basis.
I find it difficult to really get annoyed with "lengthy" compile/download times. As long as they are under 2-3 minutes, I could really care less. If you're downloading code so often that 2 minutes vs. 30 seconds KILLS you, then you're doing something wrong. And you should probably just be hitting the run button to avoid all that pesky downloading and rebooting, as your code clearly isn't in a finished state.
Similarly the back-to-back matches. There's never a scenario where this is a problem. You always have more than 5 minutes between matches, even in the finals. If you can't organize yourself enough to reset your robot in the allotted time, you have other issues.
Also, to your autonomous example. If you're still in development on your autonomous mode, you're not deploying code, you're running it in RAM. Which is a lot quicker. And if you're really clever, then the important variable in your autonomous code aren't constants. They're linked to front panel controls that you can change at whim without changing the program a bit. Time to change a front panel variable? About 5 seconds, plus restarting your DS in auton. Say about 5 times faster than your IFI controller.
Point being, the new control system gives you loads and loads of new tools and features. More than I can think of off the top of my head. You really have just two options:
1. Learn. Figure out what new features you can use to make your coding easier. Embrace the new system and delve into it as deeply as we all delved into that PIC processor. I'm not sure what the cRIO equivalent of the Counter0 control registers is, but there's gotta be something as esoteric and useful. Go explore and find it.
2. Stagnate. Continue to pine for the Good Ol' Days and resist working with the new system. Grumble about how much better things used to be. Don't bother with all those new-fangled debugging techniques. Declare how the youth of today don't know how easy they have it. Back in the day, they only had integers for math. Five typecasts and three overflow checks from the joystick to the victor it was, if you were lucky.
Oh. And shake your fist too. That always shows 'em.