Raspberry Pi with GPS connection to V5 Brain

Hi Guys, I’m trying to have my v5 brain read data from the raspberry pi. I have the micro USB of the v5 connected to a raspberry pi USB. How do I get the v5 brain to read the raspberry pi’s data? Pls help.

So when you connect the V5 to a device over USB, two device ports will be
created.

System Device
This is used to communicate with the underlying operating system

  • Filesystem I/O
  • Control Program Execution
  • See and modify system information

User Device
This device is piped to the standard I/O of the currently running program. You
will want to write you data to the user device

  • Exchange data with the currently running program

To write data to the User Device:

  1. Identify the correct port. See how the PROS CLI identifies the ports
    here. In my experience, the user device usually gets mounted by raspbian as
    /dev/ttyACM1, but your mileage may vary.

  2. Connect to this port in your program serial library, and write the data you
    need. Default settings should be okay.

  3. Beware if you’re reading data from a PROS program, Consistent Overhead Byte
    Stuffing is enabled by default. You can disable this with the serctl function

Good luck with your project!

9 Likes

How to install 5g WiFi module to V5 brain and use HTTP protocol? The wireless transmission of the system is too slow?

I highly doubt the V5 brain even supports WiFi, and if it does, then I would have no clue why. The Brain handles absolutely no wireless communications.

2 Likes

To my knowledge, VEXNet 3.0 only supports transport over vexnet and Bluetooth. If your wireless downloads are too slow, I would recommend either directly connecting to the brain, or looking at the hot/cold linking system offered by PROS.

4 Likes

Impossible, and certainly not competition legal. There’s almost nothing that the VEXnet connection is too slow for that you would reasonably do with a VEX robot. What are you trying to do?

Real robot development has the concept of upper computer and lower computer.
The lower machine refers to the V5 brain.
Upper computer refers to PC server.
Vex’s equipment is more than just for games

3 Likes

I am working with BotWorld on this Project. Here is an update…
We managed to send data from Pi to Vex Brain over Serial Port (using USB cable).

On Raspberry Pi, we use PySerial module.
We read the GPS data from NEO-8MN, connected to Pi Serial Port. with wires .
We parse the GPS Data on Pi and then send the parsed coordinates to the VEX Brain…
The image below is not from our project but it is the same idea…
image

On Vex Brain. we use VEX Serial functions to read the Serial Data.
Following is a working code snippet that we use on Robot Mesh…
image

5 Likes

Very cool. STEMRobotics participated in the Penn State Abbington Mini Grand Challenge where you had to do a road course. We did a similar thing to you, using serial data from a GPS to a Cortex to be able to plot our path. One of our downfalls was the accuracy of the data, it was +/- 16’, or a 32’ circle. We found that trusting the GPS data had us on the edge of the course a lot of the time.

Congrats on getting it all to work together!

4 Likes

As far as accuracy goes, V5 Brain Python Code does not seem to handle a fraction 6 digits beyond the point. We are struggling with that and might have to settle for that precision…
Our coordinates are truncated to 6 decimal digits.

I am trying to get it to work so it can have at least 6 decimal digit precsion…
image

python uses a generic float type, there’s no limit on the number of decimal points.

Looking at your code snippet, the coordinates never even get converted out of strings, so the issue is just that however you’re transmitting the data is truncating it.

1 Like

I actually had to add this code because float conversion was not working in Robot Mesh.
The frac_value in code below is exact before division.
The primted value after division by 10**frac_len, and addition of integer value.
some how is reduced precision.
image

Same goes for split and rstrip…
GPS_PRECISION = 8;
image

1 Like

You are mixing precision vs accuracy. While you can do 6 decimal digits of precision, the existing GPS setup does not give you the accuracy you need. Unless you have a solid lock on 5 or more references, you are going to be in that much larger bubble of “you are here”

Edited the next day to add:
You have the NEO-6M module. The chip company makes a NEO-6P model. According to the specification sheet, it will get you < 1Meter of accuracy with the

  1. Need to be stationary for ~8-10 mins
  2. Need to be able to see open sky.

These are designed for a survey device. Set it up, let it scan the sky until it has seen 5-6 different reference Sats and then come up with a location.

8 Likes

Thanks. We are using NEO-M8N but its simiar.