The intelligent ski-course consists of 22 buoys where every buoy is identical in both its hardware and software. This makes the project easily scalable for other uses. The course is then configured, monitored and controlled by a simple central interface located on the boat. A later addition will be a wearable add-on for the skier, which will enable him to interact with the course and vice-versa. The basic design of a ski buoy can be seen in the schematic below.

The micro-controller at the heart of the project will be responsible for keeping the buoy at a specific position and facilitating communication over the network. The GPS and compass will determine the buoy position and heading. Using this data the buoy will change its location accordingly, using 2 motors. Because the device will essentially be closed and not easily opened, wireless charging is used to replenish the battery. To make charging practical, a charging bench with multiple wireless charging bays will be used.  Solar power could be added at a later stage. For initial development, over-the-air (OTA) updates will be important. Therefore a Bluetooth module will be attached to the micro-controller. In further development OTA updates could be made available through its transceiver module. The quasi-mesh network will essentially act as a relay network to make sure packets from the boat reach their buoys and that packets from the skier reaches the boat. At a later point ultrasonic triangulation or a RTK solution could be used to increase the positional accuracy. The former of which will extensively make use of the mesh network for buoy-to-buoy communication.

For now the goal is to build a set of 10 buoys. These buoys should be controlled by a simple device to instruct them to hold and change their position. Also, the controller should work at least 50m away from the closest buoy. Additionally, a simple charging dock will need to be built to make practical testing possible. For the community, this project will be built mostly from off-the-shelf modules and easily accessible hardware materials.


The Road-Map (Planning on finishing  up to No. 3 for the Hackaday competition):

1 - Design and test a single working buoy (With a simple user controller).

2 - Finish 3 more identical buoys.

3 - Implement networking protocols and human interface for the 4 buoy set.

4 - Build and test a 10 buoy course.

5 - Increase positional accuracy.

6 - Integrate all systems on a custom PCB to lower cost.

7 - Start with ski-sensor development.

For interest, the layout of a water slalom-ski course:

An entrance gate consisting of 2 gate buoys. The skier has to enter the course through these 2 gates. This is followed by 6 turning buoys on alternating sides of the course, which the skier needs to slalom around. Finally the course ends with an exit gate at the end. The 12 remaining buoys are used to mark out the straight lane for the boat towing the skier. 

Image from Yasak Waterski Club website


Battery Life:

Consumption:

Motors: 500mA @ 6V = 3W

Tranceiver: 14mA @ 3.3V = 0.05W

GPS and Compass: 67mA @ 3.3V = 0.22W

Microcontroller: 10mA @ 5V = 0.05W

Capacity: 5000mAh @ 3.7V = 18.5Wh

Run-time: 5.58 hours

Bear in mind, this does not take into account all of the losses, for example micro-controller sourcing, etc. These calculations were also based on the assumption that both motors will be turned on 100% of the time. To be cautions, a better estimate would be about 4 hours of battery life. Its also not a good idea to run a LiPo battery down to its limit.


Possible Pitfalls and Mitigation:

- Motors to weak to drive buoy in lake conditions. (Upgrade to hobby brushless-dc motors or a bilge pump configuration, this will significantly increase cost.)

- Buoy stability under power. (Better understanding of the mechanics involved should solve this problem)

- nRF24L01+ does not currently have a mesh network implementation. A simple hierarchy network is available with RF24Network which will work, but drastically increase the chance of multi-buoy communication loss. ( A self-healing network library can be developed or more expensive radios with mesh functionality can be used.)

- Low positional accuracy with GPS. (Using a RTK solution from NavSpark might be possible at a low cost point. Also, sonar-ranging under water could be used to measure more precise distances. The GPS in this case will only be used for base line positioning. This will however be quite a complicated solution.)


Requested Features (Forums and Comments):

- Buoys assemble at a point for easy pickup

- Translation and rotation of entire course

- Immunity from other radio sources

- Notification of stray buoy

- Durability to withstand a run-over

- Mechanism to save sinking buoy

- Soft buoy for the safety of the skier

- Apple/Android app to manage buoys

- Differential GPS

- Waterproofed electronics using potting material

- Solar recharging

- Anchor deployment for lazy position holding


Github:

https://github.com/hardiepiennar/ISBuoy

Thingiverse:

http://www.thingiverse.com/thing:427140


Thanks to:

Adafruit for their LCD Library and tutorials.

0xPIT for his rotary encoder library.

All of the incredibly useful Arduino libraries.

Fritzing for their great circuit drawing tool.

FreeCAD for helping us draw our 3D printed parts.