Intermediate/Advanced Sensor Training

Will VEX offer professional development/training opportunities for their newer and advanced sensors that they now have available? The example programs are helpful, but only minimally when you consider the wide array of uses and variances that need to be accounted for with the sensors. For example, I understand the workflow of the VEXcode GPS sensor example with an unknown starting point, but after accounting for configuration, location, and position of the equipment, it still does not work as intended. It would be immensely helpful to get in-front of someone LIVE and go over the sensors various operations, outputs, and applications. The same goes for the inertial, and vision sensors. Simply covering a STEM lab on video PD session just doesn’t go far enough. Something needs designed for the intermediate coder. Someone who understands loops, conditions, variables, and functions, but needs help with applications for the specific sensor. Because, as it stands now, VEX provides sensors without sufficient training on how to use them. Providing this will greatly improve the quality of instruction that is able to be given for high school courses, and to teams, that use, and more importantly want to use these elements. Even if it is a paid option, or only offered at a regional location even. At least it’s an opportunity for us to get with someone for an extended amount of time to get more comfortable with the sensor’s applications. Because right now were flying blind. And those who have the technical training can overcome that barrier, while others who wish to gain the specific training needed are left empty handed from it not being available. Which are a lot of us. And, believe me, I’ve reached out to other programs in our region, and they can provide us with no assistance, from where they are in the same boat we are in. We all believed in the platform, ran with it, and now have gotten as far as we can given our moderate background knowledge. We need something to take us past being a novice. And helping use learn how to use these advanced sensors will accomplish this. And simply telling us to take a python/C++ course doesn’t help the issue of being unfamiliar with the sensors, and needing to get together with someone to help us become comfortable. I know this sounded like a rant, and maybe it was, but it is made with the best of intention. There is an area of need, and solving that need will greatly improve the overall experience of the VEX community, and help bridge the gap between teams with coaches with advanced technical backgrounds, and those with coaches who want to learn more, are stuck due to nothing being offered past introductory lessons/training.

1 Like

Maybe I’m just out of touch, but I don’t really understand what you mean by this. When I did VRC I never really had “technical training”. I just looked at the documentation online for what kind of information a sensor could give me, and then used that sensor where I needed that kind of information. You’re using the GPS sensor as an example, and say “it does not work as intended”; can you elaborate on this? Are you saying the GPS is damaged, or it is not returning your position accurately? The API for the GPS sensor is relatively basic; you can get your position in 6 axes and that’s about it. What you do with that information I feel is a bit beyond the scope of the GPS sensor’s documentation.


Looking at documentation, which is limited for new sensors as it is, cannot account for variances in observations seen in their applications. They are built with specific purposes that do not account for alternative applications. Which is understandable, but still neglects to address the problem that I present. Someone without advanced technical knowhow cannot adequately progress past a presented roadblock due to the inadequacies of troubleshooting articles, or the “let’s go down the list” questions that you present in your response. Looking at articles related to use of these sensors, I see that no one issue is the same. What is needed is a PD opportunity to work with these sensors, as a collective. A hands-on session that allows for troubleshooting issues that arise in “real world” application. So, we are not left with just a pre-recorded video, that maybe somebody made on YouTube, or a configuration article, that kind of, but not really, addresses my specific issue.

I’m still not understanding exactly what you are talking about. Can you give a specific example of a “variance in observations” seen in the application of a sensor?

I’m not sure it is the purpose of the documentation to enumerate all the different ways a sensor could be used. Usually the documentation lists the capabilities of the sensor, maybe a few example applications, then leaves the rest up to the creativity of the student to solve the particular problem they have.

I think fundamentally my problem is I do not understand what kind of roadblock you are referring to here. There can be technical roadblocks such as out of date software and damaged hardware, but you seem to be referring to more the roadblock of “how do I make my robot self-correct its heading based on GPS data” which is much more conceptual. Ultimately in my experience it is the job of the documentation to address the former roadblock, and it is the job of the student to address the latter roadblock


I’m not sure it is the purpose of the documentation to enumerate all the different ways a sensor could be used. Usually the documentation lists the capabilities of the sensor, maybe a few example applications, then leaves the rest up to the creativity of the student to solve the particular problem they have.

*Exactly! But if a student has a potential application, I as the teacher would be unable to help them as I have “reached my peak”. Especially if they run into a problem that goes outside of the scope of the troubleshooting documentation. It would be nice if a teacher, with the desire to go beyond the basic knowhow and examples, would have the ability to attend a training, which currently does not exist, to help facilitate that progression of knowledge (with VEX equipment specifically).

I’m still not understanding exactly what you are talking about. Can you give a specific example of a “variance in observations” seen in the application of a sensor?

  • I am trying to state that there are a myriad of different occurrences, that would fall outside of that available documentation, that would be best solves by having someone to walk through/demonstrate
    these concepts for/with us. Live.

I think fundamentally my problem is I do not understand what kind of roadblock you are referring to here. There can be technical roadblocks such as out of date software and damaged hardware, but you seem to be referring to more the roadblock of “how do I make my robot self-correct its heading based on GPS data” which is much more conceptual. Ultimately in my experience it is the job of the documentation to address the former roadblock, and it is the job of the student to address the latter roadblock

  • I am using my GPS scenario as an example of the problem, and not looking for a specific solution for the purposes of this post. I a merely attempting to express that there are many of us that lack the technical knowledge to address, and nurture, conceptual applications that students wish to pursue, because it goes beyond what information’s we could accumulate for them (because it doesn’t exist), and what we know.

I feel like it’s kind of unrealistic to expect any kind of live training at the level of “walking you through how to use a sensor and helping you debug problems live” from the RECF/VEX. There are over 20,000 VRC teams in the world. The RECF team support rep for our region is responsible for I think… 7 or 8 different states? The resources just aren’t there.

Your best bet if you run into any problems is to just ask specific questions about the issue you’re experiencing here on the forum, and there are lots of helpful people in the community who will help you work your way through it.


I completely understand your point. And many reps have only basic programming knowledge themselves. Which is why even if it is a regional, or central, training location, I feel that it would be well attended. A bootcamp for the intermediate programmer, who may/may not be ready for python/C++, but would like to learn the technical knowhow to approach moderately more complicated concepts. That, and help with the basic concepts of the more advanced sensors. For my GPS sensor issue specifically, I have accounted for device configuration, location of sensor, faulty sensors, gear ratio, and directional perspective. I’ve even tested it on multiple robots. It will not go to the desired location (0,0) From an unknown starting point. We are only using the example code, with no modification other than different gps device port location in the block code. I evidently am not the only one having the issue either. Looking at other posts with similar issues, there seems to not be a universal solution. Which is why it would be great to have a camp so that we can come together, with someone with specific knowledge and knowhow, that can train us on how to use them. Because that currently does not exist. Even if they were to include this into an EP summit breakout, that would at least be more than what we currently have to help us. I don’t see why it’s so large of an ask for VEX to train people how to use their own equipment. Just because something has a “user manual” doesn’t mean their isn’t a need to train the user. The RECF used to come and train new teachers with basic programming. Why can’t they, or VEX offer this?

I’ve seen this need for a while, both advanced training like you mention, as well as introductory courses for new teachers getting started with STEM, with training IN-PERSON. My theory is that many more VEX programs could be started if teachers had a chance to learn what they are getting into. While it doesn’t do you any good now, my plan is to start offering a variety of seminar-style VEX courses for adults in the summers, from beginning IQ through advanced VRC stuff, once I retire from my “real job” in 2025. I would offer these courses through Monroe County Community College, so there would be CEU’s for the participants, and I could probably swing grants to cover most of the costs, so the participants just need to provide transportation and lodging.


Broadly, I agree that there is a large gap in going from a beginner to “intermediate” programmer. I’ve reviewed a lot of the team code that jpearman’s annual appeal for teams to release their code, and most (90+%) is “beginner” level. Maybe higher level teams are unwilling to open their code because it gives them a competitive advantage, but I would say of the VRC code I’ve seen, most is written without any knowledge of good programming practices.

Some of it too, I think, is one of the downsides of the otherwise fantastic student-oriented philosophy in VRC. Based on a post this year from James, I did re-interpret that and ported/adopted the WPI library (which is, IMO, extremely well written and thought out) for VRC in the hopes of “raising the floor” and exposing teams to better programming practices:

I also think, that as mentors, we can help our students sometimes best by being able to ask them questions. If a student came to me and said that the same GPS code “didn’t work” when applied to their robot design, I’d go into a bit of the “Toyota 5 Why’s” mode:

  1. Why does the robot not go from a random starting position on the field to the field’s origin?
  2. Does the GPS correctly report its position when manually moving the sensor around the field? If not, why?
  3. Assuming the GPS correctly reports position, if the robot is placed at (1,1) and pointed to the origin, does the robot move the correct distance forward? If not, why?
  4. Assuming 3, if the robot is placed at (1,1) and pointed 90 degrees away, will it turn 90 degrees in the correct direction? If not, why?

One interesting observation my team made about the GPS sensor is that when they mounted it “upside down” (for better wire management), it didn’t report the correct position


Haha, yes, the GPS must be mounted so the image it sees is right side up. I guess we should add that to the KB article, things like that I’m afraid are always obvious to the developers until we get customer feedback.


A bit off topic, but what does it do ? Are you using a standard clawbot build or something else ? Many examples will only run correctly on a known standard robot.


I disagree with this sentiment a bit. A programmer who has yet to transition to text programming is still a beginner programmer. As someone who properly started programming in VEX and who is now pursuing a degree in Software Engineering, and who considers myself to be an “intermediate” programmer, I think that getting beginner programmers transitioned to “real” programming languages like python and c++ should be the priority even before introducing sensors like the GPS. Once a student transitions away from blocks and into text the opportunities for practicing programming expand greatly beyond just VRC. If our goal is to inspire and educate students to pursue STEM careers, in this instance programming, I think that they would be much better served being introduced to industry standard programming languages before another fancy sensor from VEX. I know you don’t want to be told to take a Python/C++ course, but from my experiences dealing with and supporting VRC student programmers, a Python/C++ course is what they most desperately need in most instances. Too often I see students jumping to trying to work with sensors like the GPS in an unfamiliar programming language, and this slows them down much more than if they had been taught some text programming fundamentals first.


Yeah, we figured since it seemed to have a built-in 3-axis gyro (I think) that it could figure out which way gravity was pointing and “orient” the image based on that…that was a fun hour to figure out


This. 1000000x


How many recent posts have there been on questions of how to write a PID in Blocks. Can it be done? Sure. Should it be done? No. Spend the time learning Python/C++ and then learn from actual working implementations of PID controllers, for example.

I don’t have experience with Block programming and am probably biased against it. IMO about the only purpose it serves is to help beginners go from a flow-chart of what they want a program to do, to something the computer can actually execute. Anything that can’t be represented in a single-page flow-chart shouldn’t be implemented in a Block programming language, IMO.

Block programming absolves the programmer from learning the actual syntax, while introducing concepts like loops and branches. Once one understands loops and branches, it’s probably time to learn an actual language’s syntax.


They are not clawbot builds. One was a mini, 2 motor drivetrain basic drivebot, the other was a competition ready 4 motor drivetrain. But if the devices are configured correctly in the devices menu (utilizing either the inertial (which is what we used) or the GPS sensor within the drivetrain device group), wouldn’t that account for, and negate, any difference in wheel base width?

I don’t disagree with what you are saying, and I can especially relate to the PID analogy. But at the same time, you also need to consider that most of the coaches that I am referring to are just parents, or teachers, who are from other content specializations. That they are doing this strictly for the kids, and to give them exposure. They have no desire, let alone the time, to pursue formal course work. As it is just one more thing that would be added to their already overloaded plate. In other words, they only want to know what they need to know to help their students. And many of use have reached our peak. Were good with the easy stuff. Now we just need to be given time to work with a trainer so that we can help the students take the next step in their progression. A progression that would next lead to working with text programming projects. Call us beginners/novice still if you’d like. The VEX platforms did an amazing job of setting up their programming user interface to accommodate for a progressive and scaffolded approach to programming. And if VEXcode is the only exposure to programming at current for the student, then this step is needed. And maybe that can be what the next computer science course is that they create. But in person would be preferred. Think of it this way, we are at the point to where we could do text projects, but need to get comfortable seeing, understanding, the api/syntax elements of text by first creating a block project and toggling back and forth. And do to that correctly, it would be nice to have training to go over scenarios that can make best use of those advanced sensors.

I’m trying to reconcile


So parents/mentors in your area have no experience with text-based programming languages and both want to learn but don’t want to spend time learning? Or am I misunderstanding?

I’ve never opened Vex Blocks, but my belief is that Vex provides the ClawBot code in all of Blocks, Python, and C++. Is it not sufficient to look at the ClawBot code side-by-side in Blocks and Python/C++ and begin to learn the associated Python/C++ syntax?

I’m also not sure that it is Vex’s responsibility to provide “Intro to Python” and “Intro to C++” courses, when these topics are already well-covered in the opensource community, free YouTube videos, etc. I think it’s entirely reasonable for Vex to require pre-existing knowledge of C++ or Python to start using those languages. I’m open to changing my opinion, and I do feel like the VexForum (and James Pearman especially) are exceptionally patient with novice programmers unfamiliar with text-based programming language constructs such as “functions”, “scopes”, “data types”, etc. let alone “classes” and “inheritance”.


Seems like instead of mass produced scalable teaching resources you want some individual level attention. Which is fine. There are programs like this

That provide either virtual training sessions or onsite training at their facility. Potentially there is room for a more advanced session taught less often for teachers wishing for a deeper dive.


So, I didn’t want to mention their offerings, since its not VEX, even though I know they work closely together. And they do a great job, I’ve attended this training before when the V5 was first released. But even in their training, they are covering basics, and only get to sensors on the last day, and even then its only touching on them for 2 or 3 hours. I’m talking about a bootcamp specifically for them (vison, inertial, gps). And I agree that James and others do do a great job with helping us. But its more than just me. I am not speaking for just me. Please show me a video on that goes beyond an unboxing review of those sensors. PLEASE. It doesn’t exist. And I feel it is VEXs responsibility ( I say this in the respectful way possible, because I believe they do a great job) to help those who buy their sensors. Understand, and show them the different applications it can be used for.

Just opening up my Vex Code V5 environment. Under Examples, there’s a long list of programs included that touch on seemingly all sensors:

As well as programs that demonstrate text-based programming concepts such as functions, etc.

I know I’m coming across as unsympathetic, but James is but one person and Vex/RECF have real constraints. There is a reasonably knowledgeable and generally helpful on-line community here, and I’m not sure I understand what gap you perceive that isn’t being filled reasonably.