I am creating a tracking project for lacrosse sticks that uses an IMU to give the absolute position of the stick. The goal is to use it to guess the speed of the ball shot, and I will use that as a way to practice machine learning.

My main question is implementing the system to get the IMU data back to the computer. I am thinking of using bluetooth to transmit the data, but since the field is so big I would like to put a receiving antenna on each corner of the field, or have multiple directional antennas pointing to different sectors of the field.

Is there a way to implement bluetooth (LE or Classic) with multiple antennas? Is there a better technology to use? and should I do the calculations on the stick with a bigger uC and infer from the neural network on the uC?


  • \$\begingroup\$ How about recording the data totally on the "stick" and process it off-line afterwards? \$\endgroup\$ – Eugene Sh. Mar 26 at 21:00
  • \$\begingroup\$ @EugeneSh. The reason I want live data is to stream stats to the coaches and viewers so they do not have to wait till after the game to see it. \$\endgroup\$ – James Singhal Mar 26 at 21:04
  • 1
    \$\begingroup\$ First of all, an IMU can't give you position, but it can give you acceleration and rotation which may be what you care about. Likely what you want here is not BLE, but rather comparable/predecessor 2.4 GHz radio technology (nRF24, etc) and some sort of "event compression" from a local MCU where you transmit a summary immediately after a shot, and have multiple receivers catching it and reporting it in to a server via an IP network - see how LoRaWan gateways cooperate for example. You can also record full data to an SPI flash on the stick for later analysis to validate your live compression. \$\endgroup\$ – Chris Stratton Mar 26 at 21:12
  • \$\begingroup\$ @ChrisStratton What I meant by position is the Euler vector/angles and using that to track the rotational acceleration of the stick to check the shot speed. I was thinking of something like a summary after the shot but the main question was if there was a way to live stream the imu data. \$\endgroup\$ – James Singhal Mar 26 at 21:53
  • \$\begingroup\$ Essentially you face the "UDP vs TCP" problem. If you don't mind gaps you can stream the raw data by transmitting, capturing it at several receivers and recombining - that's how time critical things like RC aircraft manual piloting commands are sent. But if you want all of the data without gaps, you need a retry strategy, which is hard to do real-time. You can build in various redundancies... Also consider that things will get crowded if every stick on the field is transmitting real time regardless if it is doing anything interesting or not. \$\endgroup\$ – Chris Stratton Mar 26 at 22:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.