Arduino Home

An Open-Source platform to create digital devices and interactive objects that sense and control physical devices.

Arduino Tutorials
Arduino Projects


I am prototyping an intelligent buoy (that evolved into a boat) that uses LoRa to communicate with a base station using the Arduino MKR WAN 1300 as part of the Build A Smarter World promotion by element14 and Arduino.  This post is the third in a series, and an extension of last week where the project began the movement from a breadboard onto something more robust and suitable for field use.  This week additional sensors were added and a small board to hold sensor modules was constructed.

Intelligent Buoy with LoRa Logo

Implementation Status

The following features are now active:


  • ST3775 Display
  • LoRa Messaging
  • LoRa Reception
  • ICP10100  Atmospheric Pressure / Temperature
  • NEO-6M-0-001 GPS
  • Thermistor Water Temperature
  • Thermistor Air Temperature
  • KX224-I2C 3 axis Accelerometer


  • LoRa Reception (polls)
  • LoRa Messaging


A new hand wired board was constructed to hold the I2C modules and thermistors.  All other modules are mounted on or connect by ribbon cable to the daughter board that was described last week.  Power can be supplied from either USB or two "C" batteries.  The modules and parts have been attached to a cardboard box with Velcro and will be more permanently attached after the buoy is constructed.

Buoy in a Box

This is the minimum implementation.  Also shown unconnected in the photo above are a turbidity sensor upper right and a small pump.  Both require 5V which is not currently available but may be implemented in the first floating prototype if time permits.

Sensor Output

The sensors all seem to be working well and giving accurate results.  Results are sent to the base station as comma separated values and displayed for now on a terminal window.

Base Output

The sensor readings can also be viewed on the TFT screen at the buoy or if the buoy is connected to a computer on the serial monitor. 

Distance Tests

With the addition of the GPS it is now possible to get a more accurate estimate of distance between the base and the buoy.  My guesstimates of the distance were off last week and the distance from my home to the test site is closer to 700m than a kilometer.  During the week I was able to move the test out over the water where there is more unobstructed line of sight between antennas. Reception improved from -122 dB to -115dB.

Problems Encountered

  • Flakiness in the TFT Screen:  The screen does not always work on startup but will usually work when reset or powered on/off.  Probably due to transients and power instability on startup.
  • Power Hungry:  As reported last week, the MKR1300 does not have a good sleep mode in stock condition and is a need to be able to power on and off some of the other modules, in particular the GPS.
  • LoRaWan:  A considerable amount of time was spent trying to get a ESP32 TTGO all-in-one module to act as a single channel bridge to no avail.

Next Steps

Due to time pressures and the upcoming holidays (project due by January 15!) it is necessary to move on to the construction of the buoy itself.  Several possibilities are under consideration:

  • Box Shape, off the shelf plastic
  • Spar Shape, constructed of PVC pipe with everything inside
  • Spar with Box, attach box to top of spar
  • RC Boat, found a cheap one that might be fun

Comments, corrections, and ideas (especially about buoy construction this week) are always welcome!


MKR WAN 1300: LoRa Marine Environmental Ranger

Week 1:  Making it Portable

Winners Announcement: Build a Smarter World: Build an Arduino MKR WAN 1300 Project for an Arduino Engineering Kit!