I don’t usually use graphs but when I do…
Ever since I started writing my drivers back at the end of 2008, I would not have thought that I would now be almost at 6000 downloads. I was pouring over the stats and I noticed something quite cool. It is not hard to tell that my main user base are students and FTC teams:
There is a distinct dip around the summer months that repeats itself each year, with a peak around the start of the FTC season.
I was also surprised to find out that, after the United States, the second country with the most downloads was actually France (ooh la la!):
Who knew ROBOTC and my suite were so popular in France? The Germans are not far behind, of course. There are a total of 92 countries (there’s an “unknown” and “unspecified European countries” as well, not counting those), from countries ranging from Viet Nam to Sweden and everything in between. Seems someone in Angola likes ROBOTC, too.
Are we there yet?
I have some grand plans for version 3.0 of the driver suite that involves quite a rewrite of some of the code. It will mean more clearly named functions, more data encapsulation, all the stuff that good programming practices are made of.
Inspired by the code I saw in this ROBOTC forum post, I’ve now got the first working driver and test program. This is a small snippet of the Dexter Industries dCompass driver test program:
I still need to come up with a better naming convention for the actual driver files and functions. One recurring comment I‘ve had is that it is very hard to be able to see which driver you’re supposed to use for a specific sensor. You could read the documentation and find out that way but that’s not always practical.
The suite also needs to have a proper tutorial; a step by step guide needs to be made that takes from you from downloading the zip file, configuring the sensors to writing your first program with them.
The Suite need YOU!
Without all the support and feedback of my users, I would’ve never gotten to version 2.x of this suite, so if there are any specific features in the driver suite you find missing now and leave you wanting, don’t hesitate to leave a comment or contact me via email. It’s at the top of practically every file in my suite, so I am sure you’ll find it.
A MASSIVE thank you to…
In alphabetical order:
- Dexter Industries
- HiTechnic
- Holit Data Systems
- Humarobotics
- LEGO
- Mindsensors
- MicroInfinity
- RoboMatter
- Rotacaster
I cannot thank you enough for supporting my habit over the past few years. Without you guys, I wouldn’t even be able to do what I enjoy doing the most; writing driver software for new and exciting hardware. You continue to make the Mindstorms NXT an interesting platform for both the novice and the more experienced roboteers.
Awesome work, Xander!
That recurring comment about sensor names didn’t come from me did it? 🙂
It would be cool if you could allow different sensors to be polled from parallel tasks.
Laurens
Laurens, I would love to be able to do that but that would require ROBOTC having reentrant functions, which it does not. However, from what I have gathered that functionality is on the roadmap, so as soon as ROBOTC supports it, I will do whatever is needed to make it work with my suite.
Can’t thank you enough for what you’ve done Xander. I don’t have any requirements, yet, though. But thanks for everything so far.
Hehe, I’m one of those FTC teams 🙂
I am glad they’re useful to you 🙂
Yup, FTC was my reason to investigate RobotC and your drivers. My suggestion for a change in V3 is to enhance the HiTechnic Gyro driver to do a lot more averaging during the calibration (maybe optionally pass milliseconds as a parameter?), and use a float to save the averaged zero value over that calibration. Then also have the Gyro read return a float rather than an int. When we implemented those changes in user code the reliability of the Gyro went up 10-fold when using it for navigation (both straight drives and turns). Of course, as an analog sensor it really only works well via the S-Mux. On an NXT port any motor activity plays havoc with the readings!
Keep up the good work Xander.
Ron,
The current version of the gyro driver in 2.5 does 50 samples, 50ms apart and stores the data as a float. Pretty much what you need, apart from the ms as a parameter. I could make that an optional one. The entire driver has been converted to using floats 🙂 Go check it out!
– Xander
Nice. Actually we found that beyond 2 seconds for calibration you didn’t get much more accuracy.
Ron.
In fact we exactly know why you are so popular in France 🙂
We have a full list of fans for you if you want !
Having a need to use the HTGyro w/SMUX in NXC I’ve downloaded drivers from the HT website. Date is April 2010, V0.4. Are these the latest NXC versions?
I didn’t edit the driver since I last published it, so I can only assume that’s the latest one 🙂
Thanks Xander. Worked a treat.