diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..233a0f6 --- /dev/null +++ b/404.html @@ -0,0 +1,1082 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + +Now that we have our library and board add-on installed, we can get started experimenting with the breakout board. For the scope of this tutorial, we will go over the examples from the Arduino Library. From there, we will be able to build our own custom code to integrate the development board into a project.
+In this example, we will query a UM980's UART2 port for its position, velocity, and time data.
+From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example1_PositionVelocityTime . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200.
+Give it a moment to check the satellites in view. You will be able to see your position, velocity, date, time, and the number of satellites in view.
+ + +In this example, characters coming from the UM980's UART2 port are echoed and send characters to the UM980. This allows a user to directly enter command strings into the UM980 while still connected to the Arduino. This is good for viewing the raw output from a given command.
+From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example2_DirectConnect . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. For this example, make sure to have both NL & *CR turned on.
+Type CONFIG and send the command through the serial terminal. You should receive a response with the current UM980 configuration. Make sure to check out the UM980's Reference Commands Manual linked in the Resources for more commands.
+ + +This example will query the UM980's UART2 port for the signal quality and fix type.
+From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example3_ECEFandStats . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200.
+The output will be similar to example 1 with additional information.
+ + +This example shows how to enable various NMEA sentences at different rates on different ports at 5Hz.
+From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example4_EnableNMEA_5Hz . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200.
+The output will begin outputting NEMA sentences.
+ + +This example shows how to configure the UM980 into base mode using specified coordinates.
+From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example5_EnableRTCM . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200.
+Once open, the example will begin outputting the RTCM data. The Serial Terminal will output random characters due to the RTCM being in binary. This data will be interpreted by other high precision RTK GNSS modules.
+ + +This example shows how to put the UM980 into a Base mode configuration using the average of positional fixes obtained over a 60 second period. We also turn on RTCM messages.
+From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example6_AverageBase . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200.
+Once open, the example will begin outputting certain NMEA sentences and RTCM messages.
+ + +This example shows how to put the UM980 into a Base mode configuration using specified coordinates.
+From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example7_FixedBase . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200.
+Once open, the example will begin outputting certain NMEA sentences and RTCM messages.
+ + +This example enables/disables various constellations to be included in position calculations for GPS, GLO, BDS, GAL, and QZSS.
+From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example8_SetConstellations . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200.
+Once open, the output will respond with a message indicating if the GPS was enabled and the configuration is complete.
+ + +This example shows how set the Elevation Angle and minimum CN0 value required from a satellite to be included in the position calculation.
+From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example9_SignalEleveation . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200.
+Once open, the output will notify you when the UM980 is configured.
+ + +This example shows how set the station mode to Survey, UAV, or Automotive.
+From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example10_SetRoverMode. If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200.
+Once open, the output will notify you when the UM980 is configured. If you need to configure the device for a different mode, you will just need to use a single line comment (//
) to adjust the code.
This sketch turns on all the major NMEA sentences at 2Hz and prints the incoming serial out to the Serial port. This is useful for viewing the GNSS data in a program like u-center (u-blox's software) or UPrecise (Unicore's software).
+From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example11_UsbNMEA . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200.
+Once open, the output will notify you when the UM980 is configured.
+ + +Disconnect the UM980 from the IoT RedBoard - ESP32. Then disconnect the USB cable from the IoT RedBoard - ESP32. Connect the USB cable between the UM980 and your computer. Open a terminal emulator set at 115200 baud. Once connected, you should begin seeing NMEA sentences through the USB port.
+ + +Of course, you can also view the data through a GUI such as the u-center (u-blox's software) or UPrecise (Unicore's software) as well.
+This example shows how set the UM980 back to factory defaults.
+From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example12_FactoryReset . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200.
+Once open, the output will notify you when the UM980 is ready to be configured. Send a character through the Serial Monitor to factory reset the UM980. The code will then begin outputting the position, velocity, date, time, and satellites as shown in example 1. Give it a moment to check the satellites in view before getting valid data.
+ + +While the SparkFun UM980 Arduino library covers most of the features in the UM980, there may be a special command that is needed but not supported. This sketch shows how to send commands directly to the UM980.
+From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example13_SendCommand* . If you have not already, select your Board (in this case the **SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200.
+Once open, there's not too much in the output. Try adjusting the ASCII command within the myGNSS.sendCommand()
to send a different special command. For more information, try looking at the Reference Commands Manual in the Resources.
The example shows how to configure the PPS signal's width, frequency, and polarity.
+From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example14_SetPPS . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200.
+Once open, the output just tells you the rate that the PPS is blinking at. If you look at the PPS LED on the UM980, the LED will blink at the rate that was set.
+ + +This example shows how to send the 'CONFIG' command to get a clear text response that the user can parse to see which settings are set. In this case, we will get the current configuration, version, mode, and mask from the UM980.
+From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example15_QueryDevice . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200.
+ + +The documentation for the UM980 does not explicitly state which RTCM messages are supported but by sending the enable command to the module we can insinuate which are supported. This sketch sends the 'RTCMxxxx' command and looks for an OK.
+From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example15_PollForValidRTCMMessages . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200.
+Once open, the output will notify you of the RTCM messages that are supported. As of the writing of this tutorial, there are 55 RTCM messages that are supported!
+ + + + + + + + + + + + + + + + + + + + + + + + +Arduino
+This example assumes you are using the latest version of the Arduino IDE on your desktop. If this is your first time using the Arduino IDE, library, or board add-on, please review the following tutorials.
+ +SparkFun has written a library to work with the Unicore UM980 module. You can obtain this library through the Arduino Library Manager by searching for "SparkFun Unicore GNSS". Find the one written by SparkFun Electronics and install the latest version. Users who prefer to manually install the library can get it from the GitHub Repository or download the .ZIP by clicking the button below:
+ + + + + + + + + + + + + + + + + + + + + + + + +{"use strict";var fs=/["'&<>]/;di.exports=us;function us(e){var t=""+e,r=fs.exec(t);if(!r)return t;var o,n="",i=0,s=0;for(i=r.index;i Note The following instructions were taken from the UPrecise User Manual: 2.2.11 Receiver Upgrade. For more information about how to use UPrecise software, make sure to check out the user manual. Note At the time of writing, UPrecise Version 2.0 was used. Note that the GUI appearance and features may change upon future releases. You can update your firmware (they call this a firmware upgrade in the manual) using Unicore's UPrecise software. Make sure to check Unicore's UM980 product page, download center, or contact Unicore Communications for any firmware releases. We'll assume that you have the firmware downloaded at this point and connected to the UM980. With UPrecise open, click on the menu with the triple bar (≡) near the upper left of the window to expand the menu. The menu should expand with text next to each icon. Click on the Receiver Upgrade button. The following window should open up. Click the Select upgrade file button. Head to the folder where you downloaded the firmware and select the file. The extension should be a *pkg file. In this case, there was a copy of the firmware in the GitHub SparkFun UM980 Triband GNSS RTK Breakout Repo named "UM980_R4.10Build11833.pkg". Older firmware versions were moved to the Old Firmware folder. Select the GNSS receiver that will be receiving the firmware update. In this case it was Receiver1. While we are at it, select either the "Soft reset" or "Hard reset". While updating, the module will need to be reset and this selection will determine the reset method. Let's select the "Soft Reset" and have UPrecise reset the module. When ready, hit the "Start" button! Warning Make sure to pay attention to the progress bar! You'll want to avoid any interruptions while the firmware is updating as this will cause the upgrade to fail. Note If you have issues updating the software with the reset method chosen, try exiting the Receiver Upgrade menu by hitting the "x" button. Then disconnect and reconnect the module by selecting the "Connect" button. You will then need to open the Receiver Upgrade window again before hitting the "Start" button. Once the firmware has been updated, you will notice that the progress bar is at 100% and a message indicating that the firmware upgrade succeeded and finished. You can exit out of the window by clicking on the "x" button. Spot something wrong? Feel free to contribute our open-source design and documentation. All of this documentation can be modified by you! Please help us make it better. All of our designs are open-source! Please help us make it better. Let's provided some recognition to the contributors for this project! Spot something wrong? Please let us know. Attention This is not where customers should seek assistance on a product. If you require technical assistance or have questions about a product that is not working as expected, please head over to the SparkFun Technical Assistance page for some initial troubleshooting.
+ If you can't find what you need there, you'll need a Forum Account to search product forums and post questions. All of this documentation can be modified by you! Please help us make it better. If a section of the documentation is incorrect, please open an issue and let us know. All of our designs are open-source! Please help us make it better. If part of the design is confusing, please open an issue and let us know. Need to download or print our hookup guide? In this section, we'll go over how to connect the Triband GNSS Antenna, GNSS RTK Breakout - UM980, and IoT RedBoard - ESP32 for embedded systems. Of course, you can also connect the UM980 directly to your computer without the need for a microcontroller if you decide to use the UPrecise Software as well. Connect a compatible multi-band antenna that is capable of receiving L1, L2, and L5 bands. In this case, we used the "GNSS Multi-Band L1/L2/L5 Surveying Antenna - TNC (SPK6618H)." This also has a ground plane embedded in the antenna. Insert the TNC side of the interface cable into the antenna's TNC connector. Secure the connection by tightening the screw until it is finger-tight. Then insert the SMA side of the interface cable into the Triband GNSS RTK Breakout's SMA connector. Secure the connection by using the SMA's hex nut until it is finger-tight. Note For users that are using a different multiband antenna, you may need to include a antenna ground plate to get the most of the multi-band antenna. Note Not all multiband antennas are made the same! Make sure that you are connecting a multi-band antenna that is capable of receiving L1/L2/L5 signals when using the Triband GNSS RTK Breakout - UM980. Note The Arduino Library was written and tested with the ESP32 processor. We recommend using the IoT RedBoard - ESP32 for the scope of this tutorial. For users using the breakout board in embedded applications, you will need to plug in the JST-GHR-04V Cable to the Triband GNSS RTK Breakout - UM980. You will then need to connect the other end to a microcontroller to process the data. In this case, we used the IoT RedBoard - ESP32. To power and program the IoT RedBoard - ESP32, users will just need to insert the Type C side of the cable to the development board. The other end will connect to a computer's USB port. For users that simply want to connect to the board via USB, you will insert a USB C cable into the USB connector. Then connect the other end to your computer USB port. For temporary connections to the PTHs, you could use IC hooks to test out the pins. However, you'll need to solder headers or wires of your choice to the board for a secure connection. You can choose between a combination of header pins and jumper wires, or stripping wire and soldering the wire directly to the board. In this section, we will highlight the hardware and pins that are broken out on the SparkFun Triband GNSS RTK Breakout - UM980. For more information, check out our Resources and Going Further for the UM980. The board breaks out the UM980 which is an all-constellation, all-frequency, high precision RTK positioning module. This module has a low power consumption of about ~480mW. The UM980 is a 1408-Channel GNSS Receiver based on the Nebulas IV™ that is able to simultaneously track multiple constellation for L1, L2, and L5 bands. *: Items marked with * are only supported by specific firmware. When a RTK solution is reached, the module can achieve a horizontal accuracy of about 8mm (~0.3 inches) and vertical accuracy of 15mm (~0.59 inches). The UM980 is capable of both rover and base station operations. Below are a few specs taken from the datasheet. For more information, check out the related documents for the UM980 in the Resources. *: Items marked with * are only supported by specific firmware. There are a variety of power and power-related nets broken out to connectors and through hole pads. Power is regulated down to 3.3V with the AP2122K 3.3V/600mA voltage regulator. The logic levels for the UM980 is 3.3V for the I/O pins. The small metal disk is a small 3V/1mAh lithium battery. This battery does not provide power to the IC like the 3.3V system does, but to relevant systems inside the IC that allow for a quick reconnection to satellites. The first time to fix (TTFF) is about ~30 seconds. With the backup battery, the warm start is less than 20 seconds and the hot start is less than 5 seconds. The top side of the board includes a CH340 USB-to-serial converter connected to the serial UART1 port. The chip can be used to send serial data between the device and computer. You can view the output or configure the device through a serial terminal. When using the UM980 with Unicore's UPrecise Software, you can also initiate firmware updates. The CH340 driver should automatically install on most operating systems. However, there is a wide range of operating systems out there. You may need to install drivers the first time you connect the chip to your computer's USB port or when there are operating system updates. For more information, check out our How to Install CH340 Drivers Tutorial. Note Current serial UART is only supported on the UM980 module. I2C, SPI, and CAN have been reserved on the module but are not currently supported. There are three serial UART ports available on the breakout board. Serial UART1 is connected to the CH340 USB-to-serial converter as stated earlier. Serial UART2 is connected to the 4-pin locking JST connector. Tx and Rx are also broken out as PTHs. We recommend using a compatible cable to connect to the locking JST connector to save time connecting to a microcontroller. Serial UART3 is connected to the PTH pins labeled as BlueSMiRF on the edge of the board. What is a BlueSMiRF? The BlueSMiRF was a Bluetooth device that was included in SparkFun's catalog. The footprint consists of a 1x6 header for the serial UART and power pins. Note that the arrangement of the header pins is different from USB-to-serial converters (i.e. FTDI Serial Breakout Boards and CH340 Serial Basics Boards). The board is populated with one SMA connector for a secure connection. You will need a multiband GNSS antenna capable of receiving L1, L2, and L5 bands to get the most out of the UM980. Note that this is intended for active antennas. We recommend using the
+GNSS Multi-Band L1/L2/L5 Surveying Antenna - TNC (SPK6618H) as it includes a built-in ground plane and SMA Male to TNC Male interface cable. Besides the power and serial UART pins, the following pins are also broken out on the edge of the breakout board. The board includes the following status LEDs as indicated in the image below. Note If this is your first time working with jumpers, check out the How to Work with Jumper Pads and PCB Traces tutorial for more information. There are a few jumper pads available on the bottom of the board. The board is 2.0" x 2.0" (50.8mm x 50.8mm). There are 4x mounting holes by each corner of the board. The SparkFun Triband GNSS RTK Breakout features the UM980 GNSS high precision RTK position module from Unicore Communications. The UM980 is a 1408-Channel GNSS Receiver based on the Nebulas IV™ that is able to simultaneously track GPS L1/L2/L5, GLONASS L1/L2, Galileo E1/E5a/E5b/E6, Beidou B1I/B2I/B3I/B1C/B2a/B2b, QZSS L1/L2/L5, and SBAS. With this board, you will be able to know where your (or any object's) X, Y, and Z location is within roughly the width of your fingernail. When an RTK solution is reached, the module can achieve a horizontal accuracy of about 8mm (~0.3 inches) and vertical accuracy of 15mm (~0.59 inches). The UM980 is capable of both rover and base station operations. In this tutorial, we'll go over the hardware and how to hookup the breakout board. We will also go over the Arduino examples to get started. To follow along with this tutorial, you will need the following materials. You may not need everything though depending on what you have. Add it to your cart, read through the guide, and adjust the cart as necessary. Depending on your setup, you may need the following mounting hardware. Note that the antenna ground plate is needed for tri-band antennas that do not have a ground plane. For users that require radios to transmit RTK correction data, you could use the following radios. You will need a soldering iron, solder, and general soldering accessories for a secure connection when using the plated through holes. As listed earlier, we recommend using the 4-pin JST-GHR-04V cable to connect directly to the IoT RedBoard - ESP32's female header pins. However, you could also use IC hooks for a temporary connection depending on your setup and what you have available. For those that prefer to the 0.1" spaced PTH, you will want to solder header pins for a secure connection. If you aren’t familiar with the following concepts, we also recommend checking out a few of these tutorials before continuing. You may also be interested in the following blog posts on GNSS technologies. Now that you've successfully got your SparkFun TriBand GNSS RTK- Breakout - UM980 up and running, it's time to incorporate it into your own project! For more information, check out the resources below: Placeholder file for index redirect functionality. Now that we have our library and board add-on installed, we can get started experimenting with the breakout board. For the scope of this tutorial, we will go over the examples from the Arduino Library. From there, we will be able to build our own custom code to integrate the development board into a project. In this example, we will query a UM980's UART2 port for its position, velocity, and time data. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example1_PositionVelocityTime . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Give it a moment to check the satellites in view. You will be able to see your position, velocity, date, time, and the number of satellites in view. In this example, characters coming from the UM980's UART2 port are echoed and send characters to the UM980. This allows a user to directly enter command strings into the UM980 while still connected to the Arduino. This is good for viewing the raw output from a given command. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example2_DirectConnect . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. For this example, make sure to have both NL & *CR turned on. Type CONFIG and send the command through the serial terminal. You should receive a response with the current UM980 configuration. Make sure to check out the UM980's Reference Commands Manual linked in the Resources for more commands. This example will query the UM980's UART2 port for the signal quality and fix type. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example3_ECEFandStats . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. The output will be similar to example 1 with additional information. This example shows how to enable various NMEA sentences at different rates on different ports at 5Hz. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example4_EnableNMEA_5Hz . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. The output will begin outputting NEMA sentences. This example shows how to configure the UM980 into base mode using specified coordinates. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example5_EnableRTCM . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the example will begin outputting the RTCM data. The Serial Terminal will output random characters due to the RTCM being in binary. This data will be interpreted by other high precision RTK GNSS modules. This example shows how to put the UM980 into a Base mode configuration using the average of positional fixes obtained over a 60 second period. We also turn on RTCM messages. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example6_AverageBase . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the example will begin outputting certain NMEA sentences and RTCM messages. This example shows how to put the UM980 into a Base mode configuration using specified coordinates. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example7_FixedBase . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the example will begin outputting certain NMEA sentences and RTCM messages. This example enables/disables various constellations to be included in position calculations for GPS, GLO, BDS, GAL, and QZSS. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example8_SetConstellations . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output will respond with a message indicating if the GPS was enabled and the configuration is complete. This example shows how set the Elevation Angle and minimum CN0 value required from a satellite to be included in the position calculation. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example9_SignalEleveation . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output will notify you when the UM980 is configured. This example shows how set the station mode to Survey, UAV, or Automotive. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example10_SetRoverMode. If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output will notify you when the UM980 is configured. If you need to configure the device for a different mode, you will just need to use a single line comment ( This sketch turns on all the major NMEA sentences at 2Hz and prints the incoming serial out to the Serial port. This is useful for viewing the GNSS data in a program like u-center (u-blox's software) or UPrecise (Unicore's software). From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example11_UsbNMEA . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output will notify you when the UM980 is configured. Disconnect the UM980 from the IoT RedBoard - ESP32. Then disconnect the USB cable from the IoT RedBoard - ESP32. Connect the USB cable between the UM980 and your computer. Open a terminal emulator set at 115200 baud. Once connected, you should begin seeing NMEA sentences through the USB port. Of course, you can also view the data through a GUI such as the u-center (u-blox's software) or UPrecise (Unicore's software) as well. This example shows how set the UM980 back to factory defaults. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example12_FactoryReset . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output will notify you when the UM980 is ready to be configured. Send a character through the Serial Monitor to factory reset the UM980. The code will then begin outputting the position, velocity, date, time, and satellites as shown in example 1. Give it a moment to check the satellites in view before getting valid data. While the SparkFun UM980 Arduino library covers most of the features in the UM980, there may be a special command that is needed but not supported. This sketch shows how to send commands directly to the UM980. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example13_SendCommand* . If you have not already, select your Board (in this case the **SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, there's not too much in the output. Try adjusting the ASCII command within the The example shows how to configure the PPS signal's width, frequency, and polarity. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example14_SetPPS . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output just tells you the rate that the PPS is blinking at. If you look at the PPS LED on the UM980, the LED will blink at the rate that was set. This example shows how to send the 'CONFIG' command to get a clear text response that the user can parse to see which settings are set. In this case, we will get the current configuration, version, mode, and mask from the UM980. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example15_QueryDevice . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. The documentation for the UM980 does not explicitly state which RTCM messages are supported but by sending the enable command to the module we can insinuate which are supported. This sketch sends the 'RTCMxxxx' command and looks for an OK. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example15_PollForValidRTCMMessages . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output will notify you of the RTCM messages that are supported. As of the writing of this tutorial, there are 55 RTCM messages that are supported! Arduino This example assumes you are using the latest version of the Arduino IDE on your desktop. If this is your first time using the Arduino IDE, library, or board add-on, please review the following tutorials. SparkFun has written a library to work with the Unicore UM980 module. You can obtain this library through the Arduino Library Manager by searching for \"SparkFun Unicore GNSS\". Find the one written by SparkFun Electronics and install the latest version. Users who prefer to manually install the library can get it from the GitHub Repository or download the .ZIP by clicking the button below: Note The following instructions were taken from the UPrecise User Manual: 2.2.11 Receiver Upgrade. For more information about how to use UPrecise software, make sure to check out the user manual. Note At the time of writing, UPrecise Version 2.0 was used. Note that the GUI appearance and features may change upon future releases. You can update your firmware (they call this a firmware upgrade in the manual) using Unicore's UPrecise software. Make sure to check Unicore's UM980 product page, download center, or contact Unicore Communications for any firmware releases. We'll assume that you have the firmware downloaded at this point and connected to the UM980. With UPrecise open, click on the menu with the triple bar (\u2261) near the upper left of the window to expand the menu. The menu should expand with text next to each icon. Click on the Receiver Upgrade button. The following window should open up. Click the Select upgrade file button. Head to the folder where you downloaded the firmware and select the file. The extension should be a *pkg file. In this case, there was a copy of the firmware in the GitHub SparkFun UM980 Triband GNSS RTK Breakout Repo named \"UM980_R4.10Build11833.pkg\". Older firmware versions were moved to the Old Firmware folder. Select the GNSS receiver that will be receiving the firmware update. In this case it was Receiver1. While we are at it, select either the \"Soft reset\" or \"Hard reset\". While updating, the module will need to be reset and this selection will determine the reset method. Let's select the \"Soft Reset\" and have UPrecise reset the module. When ready, hit the \"Start\" button! Warning Make sure to pay attention to the progress bar! You'll want to avoid any interruptions while the firmware is updating as this will cause the upgrade to fail. Note If you have issues updating the software with the reset method chosen, try exiting the Receiver Upgrade menu by hitting the \"x\" button. Then disconnect and reconnect the module by selecting the \"Connect\" button. You will then need to open the Receiver Upgrade window again before hitting the \"Start\" button. Once the firmware has been updated, you will notice that the progress bar is at 100% and a message indicating that the firmware upgrade succeeded and finished. You can exit out of the window by clicking on the \"x\" button. Need to download or print our hookup guide? In this section, we'll go over how to connect the Triband GNSS Antenna, GNSS RTK Breakout - UM980, and IoT RedBoard - ESP32 for embedded systems. Of course, you can also connect the UM980 directly to your computer without the need for a microcontroller if you decide to use the UPrecise Software as well. Connect a compatible multi-band antenna that is capable of receiving L1, L2, and L5 bands. In this case, we used the \"GNSS Multi-Band L1/L2/L5 Surveying Antenna - TNC (SPK6618H).\" This also has a ground plane embedded in the antenna. Insert the TNC side of the interface cable into the antenna's TNC connector. Secure the connection by tightening the screw until it is finger-tight. Then insert the SMA side of the interface cable into the Triband GNSS RTK Breakout's SMA connector. Secure the connection by using the SMA's hex nut until it is finger-tight. Note For users that are using a different multiband antenna, you may need to include a antenna ground plate to get the most of the multi-band antenna. Note Not all multiband antennas are made the same! Make sure that you are connecting a multi-band antenna that is capable of receiving L1/L2/L5 signals when using the Triband GNSS RTK Breakout - UM980. Note The Arduino Library was written and tested with the ESP32 processor. We recommend using the IoT RedBoard - ESP32 for the scope of this tutorial. For users using the breakout board in embedded applications, you will need to plug in the JST-GHR-04V Cable to the Triband GNSS RTK Breakout - UM980. You will then need to connect the other end to a microcontroller to process the data. In this case, we used the IoT RedBoard - ESP32. To power and program the IoT RedBoard - ESP32, users will just need to insert the Type C side of the cable to the development board. The other end will connect to a computer's USB port. For users that simply want to connect to the board via USB, you will insert a USB C cable into the USB connector. Then connect the other end to your computer USB port. For temporary connections to the PTHs, you could use IC hooks to test out the pins. However, you'll need to solder headers or wires of your choice to the board for a secure connection. You can choose between a combination of header pins and jumper wires, or stripping wire and soldering the wire directly to the board. How to Solder: Through Hole Soldering Working with Wire In this section, we will highlight the hardware and pins that are broken out on the SparkFun Triband GNSS RTK Breakout - UM980. For more information, check out our Resources and Going Further for the UM980. The board breaks out the UM980 which is an all-constellation, all-frequency, high precision RTK positioning module. This module has a low power consumption of about ~480mW. The UM980 is a 1408-Channel GNSS Receiver based on the Nebulas IV\u2122 that is able to simultaneously track multiple constellation for L1, L2, and L5 bands. *: Items marked with * are only supported by specific firmware. When a RTK solution is reached, the module can achieve a horizontal accuracy of about 8mm (~0.3 inches) and vertical accuracy of 15mm (~0.59 inches). The UM980 is capable of both rover and base station operations. Below are a few specs taken from the datasheet. For more information, check out the related documents for the UM980 in the Resources. *: Items marked with * are only supported by specific firmware. There are a variety of power and power-related nets broken out to connectors and through hole pads. Power is regulated down to 3.3V with the AP2122K 3.3V/600mA voltage regulator. The logic levels for the UM980 is 3.3V for the I/O pins. The small metal disk is a small 3V/1mAh lithium battery. This battery does not provide power to the IC like the 3.3V system does, but to relevant systems inside the IC that allow for a quick reconnection to satellites. The first time to fix (TTFF) is about ~30 seconds. With the backup battery, the warm start is less than 20 seconds and the hot start is less than 5 seconds. The top side of the board includes a CH340 USB-to-serial converter connected to the serial UART1 port. The chip can be used to send serial data between the device and computer. You can view the output or configure the device through a serial terminal. When using the UM980 with Unicore's UPrecise Software, you can also initiate firmware updates. The CH340 driver should automatically install on most operating systems. However, there is a wide range of operating systems out there. You may need to install drivers the first time you connect the chip to your computer's USB port or when there are operating system updates. For more information, check out our How to Install CH340 Drivers Tutorial. Note Current serial UART is only supported on the UM980 module. I2C, SPI, and CAN have been reserved on the module but are not currently supported. There are three serial UART ports available on the breakout board. Serial UART1 is connected to the CH340 USB-to-serial converter as stated earlier. Serial UART2 is connected to the 4-pin locking JST connector. Tx and Rx are also broken out as PTHs. We recommend using a compatible cable to connect to the locking JST connector to save time connecting to a microcontroller. Serial UART3 is connected to the PTH pins labeled as BlueSMiRF on the edge of the board. What is a BlueSMiRF? The BlueSMiRF was a Bluetooth device that was included in SparkFun's catalog. The footprint consists of a 1x6 header for the serial UART and power pins. Note that the arrangement of the header pins is different from USB-to-serial converters (i.e. FTDI Serial Breakout Boards and CH340 Serial Basics Boards). The board is populated with one SMA connector for a secure connection. You will need a multiband GNSS antenna capable of receiving L1, L2, and L5 bands to get the most out of the UM980. Note that this is intended for active antennas. We recommend using the GNSS Multi-Band L1/L2/L5 Surveying Antenna - TNC (SPK6618H) as it includes a built-in ground plane and SMA Male to TNC Male interface cable. Besides the power and serial UART pins, the following pins are also broken out on the edge of the breakout board. The board includes the following status LEDs as indicated in the image below. Note If this is your first time working with jumpers, check out the How to Work with Jumper Pads and PCB Traces tutorial for more information. There are a few jumper pads available on the bottom of the board. The board is 2.0\" x 2.0\" (50.8mm x 50.8mm). There are 4x mounting holes by each corner of the board. The SparkFun Triband GNSS RTK Breakout features the UM980 GNSS high precision RTK position module from Unicore Communications. The UM980 is a 1408-Channel GNSS Receiver based on the Nebulas IV\u2122 that is able to simultaneously track GPS L1/L2/L5, GLONASS L1/L2, Galileo E1/E5a/E5b/E6, Beidou B1I/B2I/B3I/B1C/B2a/B2b, QZSS L1/L2/L5, and SBAS. With this board, you will be able to know where your (or any object's) X, Y, and Z location is within roughly the width of your fingernail. When an RTK solution is reached, the module can achieve a horizontal accuracy of about 8mm (~0.3 inches) and vertical accuracy of 15mm (~0.59 inches). The UM980 is capable of both rover and base station operations. SparkFun Triband GNSS RTK Breakout - UM980 GPS-23286 Purchase from SparkFun In this tutorial, we'll go over the hardware and how to hookup the breakout board. We will also go over the Arduino examples to get started. To follow along with this tutorial, you will need the following materials. You may not need everything though depending on what you have. Add it to your cart, read through the guide, and adjust the cart as necessary. SparkFun IoT RedBoard - ESP32 Development Board WRL-19177 Reversible USB A to C Cable - 0.8m CAB-15425 SparkFun Triband GNSS RTK Breakout - UM980 GPS-23286 Breadboard to JST-GHR-04V Cable - 4-Pin x 1.25mm Pitch CAB-17240 Reinforced Interface Cable - SMA Male to TNC Male (10m) CAB-21740 GNSS Multi-Band L1/L2/L5 Surveying Antenna - TNC (SPK6618H) GPS-21801 Depending on your setup, you may need the following mounting hardware. Note that the antenna ground plate is needed for tri-band antennas that do not have a ground plane. GNSS Magnetic Antenna Mount - 5/8\" 11-TPI TOL-21257 GNSS Antenna Mounting Hardware Kit KIT-22197 GPS Antenna Ground Plate GPS-17519 For users that require radios to transmit RTK correction data, you could use the following radios. SiK Telemetry Radio V3 - 915MHz, 100mW WRL-19032 SparkFun LoRaSerial Kit - 915MHz (Enclosed) WRL-20029 You will need a soldering iron, solder, and general soldering accessories for a secure connection when using the plated through holes. Soldering Iron - 60W (Adjustable Temperature) TOL-14456 Solder Lead Free - 15-gram Tube TOL-09163 Hook-Up Wire - Assortment (Stranded, 22 AWG) PRT-11375 Wire Stripper - 20-30 AWG Solid (22-32 AWG Stranded) TOL-22263 Flush Cutters - Xcelite TOL-14782 As listed earlier, we recommend using the 4-pin JST-GHR-04V cable to connect directly to the IoT RedBoard - ESP32's female header pins. However, you could also use IC hooks for a temporary connection depending on your setup and what you have available. For those that prefer to the 0.1\" spaced PTH, you will want to solder header pins for a secure connection. Breadboard - Self-Adhesive (White) PRT-12002 IC Hook with Pigtail CAB-09741 Break Away Headers - Straight PRT-00116 Female Headers PRT-00115 Jumper Wires Premium 6\" M/M Pack of 10 PRT-08431 If you aren\u2019t familiar with the following concepts, we also recommend checking out a few of these tutorials before continuing. GPS Basics IoT RedBoard ESP32 Development Board Hookup Guide Installing Arduino IDE Installing Board Definitions in the Arduino IDE How to Solder: Through-Hole Soldering Serial Communication You may also be interested in the following blog posts on GNSS technologies. GPS vs GNSS What is Correction Data? Real-Time Kinematics Explained Now that you've successfully got your SparkFun TriBand GNSS RTK- Breakout - UM980 up and running, it's time to incorporate it into your own project! For more information, check out the resources below: The SparkFun Triband GNSS RTK Breakout features the UM980 GNSS high precision RTK position module from Unicore Communications. The UM980 is a 1408-Channel GNSS Receiver based on the Nebulas IV\u2122 that is able to simultaneously track GPS L1/L2/L5, GLONASS L1/L2, Galileo E1/E5a/E5b/E6, Beidou B1I/B2I/B3I/B1C/B2a/B2b, QZSS L1/L2/L5, and SBAS. With this board, you will be able to know where your (or any object's) X, Y, and Z location is within roughly the width of your fingernail. When an RTK solution is reached, the module can achieve a horizontal accuracy of about 8mm (~0.3 inches) and vertical accuracy of 15mm (~0.59 inches). The UM980 is capable of both rover and base station operations. SparkFun Triband GNSS RTK Breakout - UM980 GPS-23286 Purchase from SparkFun In this tutorial, we'll go over the hardware and how to hookup the breakout board. We will also go over the Arduino examples to get started. To follow along with this tutorial, you will need the following materials. You may not need everything though depending on what you have. Add it to your cart, read through the guide, and adjust the cart as necessary. SparkFun IoT RedBoard - ESP32 Development Board WRL-19177 Reversible USB A to C Cable - 0.8m CAB-15425 SparkFun Triband GNSS RTK Breakout - UM980 GPS-23286 Breadboard to JST-GHR-04V Cable - 4-Pin x 1.25mm Pitch CAB-17240 Reinforced Interface Cable - SMA Male to TNC Male (10m) CAB-21740 GNSS Multi-Band L1/L2/L5 Surveying Antenna - TNC (SPK6618H) GPS-21801 Depending on your setup, you may need the following mounting hardware. Note that the antenna ground plate is needed for tri-band antennas that do not have a ground plane. GNSS Magnetic Antenna Mount - 5/8\" 11-TPI TOL-21257 GNSS Antenna Mounting Hardware Kit KIT-22197 GPS Antenna Ground Plate GPS-17519 For users that require radios to transmit RTK correction data, you could use the following radios. SiK Telemetry Radio V3 - 915MHz, 100mW WRL-19032 SparkFun LoRaSerial Kit - 915MHz (Enclosed) WRL-20029 You will need a soldering iron, solder, and general soldering accessories for a secure connection when using the plated through holes. Soldering Iron - 60W (Adjustable Temperature) TOL-14456 Solder Lead Free - 15-gram Tube TOL-09163 Hook-Up Wire - Assortment (Stranded, 22 AWG) PRT-11375 Wire Stripper - 20-30 AWG Solid (22-32 AWG Stranded) TOL-22263 Flush Cutters - Xcelite TOL-14782 As listed earlier, we recommend using the 4-pin JST-GHR-04V cable to connect directly to the IoT RedBoard - ESP32's female header pins. However, you could also use IC hooks for a temporary connection depending on your setup and what you have available. For those that prefer to the 0.1\" spaced PTH, you will want to solder header pins for a secure connection. Breadboard - Self-Adhesive (White) PRT-12002 IC Hook with Pigtail CAB-09741 Break Away Headers - Straight PRT-00116 Female Headers PRT-00115 Jumper Wires Premium 6\" M/M Pack of 10 PRT-08431 If you aren\u2019t familiar with the following concepts, we also recommend checking out a few of these tutorials before continuing. GPS Basics IoT RedBoard ESP32 Development Board Hookup Guide Installing Arduino IDE Installing Board Definitions in the Arduino IDE How to Solder: Through-Hole Soldering Serial Communication You may also be interested in the following blog posts on GNSS technologies. GPS vs GNSS What is Correction Data? Real-Time Kinematics Explained In this section, we will highlight the hardware and pins that are broken out on the SparkFun Triband GNSS RTK Breakout - UM980. For more information, check out our Resources and Going Further for the UM980. The board breaks out the UM980 which is an all-constellation, all-frequency, high precision RTK positioning module. This module has a low power consumption of about ~480mW. The UM980 is a 1408-Channel GNSS Receiver based on the Nebulas IV\u2122 that is able to simultaneously track multiple constellation for L1, L2, and L5 bands. *: Items marked with * are only supported by specific firmware. When a RTK solution is reached, the module can achieve a horizontal accuracy of about 8mm (~0.3 inches) and vertical accuracy of 15mm (~0.59 inches). The UM980 is capable of both rover and base station operations. Below are a few specs taken from the datasheet. For more information, check out the related documents for the UM980 in the Resources. *: Items marked with * are only supported by specific firmware. There are a variety of power and power-related nets broken out to connectors and through hole pads. Power is regulated down to 3.3V with the AP2122K 3.3V/600mA voltage regulator. The logic levels for the UM980 is 3.3V for the I/O pins. The small metal disk is a small 3V/1mAh lithium battery. This battery does not provide power to the IC like the 3.3V system does, but to relevant systems inside the IC that allow for a quick reconnection to satellites. The first time to fix (TTFF) is about ~30 seconds. With the backup battery, the warm start is less than 20 seconds and the hot start is less than 5 seconds. The top side of the board includes a CH340 USB-to-serial converter connected to the serial UART1 port. The chip can be used to send serial data between the device and computer. You can view the output or configure the device through a serial terminal. When using the UM980 with Unicore's UPrecise Software, you can also initiate firmware updates. The CH340 driver should automatically install on most operating systems. However, there is a wide range of operating systems out there. You may need to install drivers the first time you connect the chip to your computer's USB port or when there are operating system updates. For more information, check out our How to Install CH340 Drivers Tutorial. Note Current serial UART is only supported on the UM980 module. I2C, SPI, and CAN have been reserved on the module but are not currently supported. There are three serial UART ports available on the breakout board. Serial UART1 is connected to the CH340 USB-to-serial converter as stated earlier. Serial UART2 is connected to the 4-pin locking JST connector. Tx and Rx are also broken out as PTHs. We recommend using a compatible cable to connect to the locking JST connector to save time connecting to a microcontroller. Serial UART3 is connected to the PTH pins labeled as BlueSMiRF on the edge of the board. What is a BlueSMiRF? The BlueSMiRF was a Bluetooth device that was included in SparkFun's catalog. The footprint consists of a 1x6 header for the serial UART and power pins. Note that the arrangement of the header pins is different from USB-to-serial converters (i.e. FTDI Serial Breakout Boards and CH340 Serial Basics Boards). The board is populated with one SMA connector for a secure connection. You will need a multiband GNSS antenna capable of receiving L1, L2, and L5 bands to get the most out of the UM980. Note that this is intended for active antennas. We recommend using the GNSS Multi-Band L1/L2/L5 Surveying Antenna - TNC (SPK6618H) as it includes a built-in ground plane and SMA Male to TNC Male interface cable. Besides the power and serial UART pins, the following pins are also broken out on the edge of the breakout board. The board includes the following status LEDs as indicated in the image below. Note If this is your first time working with jumpers, check out the How to Work with Jumper Pads and PCB Traces tutorial for more information. There are a few jumper pads available on the bottom of the board. The board is 2.0\" x 2.0\" (50.8mm x 50.8mm). There are 4x mounting holes by each corner of the board. In this section, we'll go over how to connect the Triband GNSS Antenna, GNSS RTK Breakout - UM980, and IoT RedBoard - ESP32 for embedded systems. Of course, you can also connect the UM980 directly to your computer without the need for a microcontroller if you decide to use the UPrecise Software as well. Connect a compatible multi-band antenna that is capable of receiving L1, L2, and L5 bands. In this case, we used the \"GNSS Multi-Band L1/L2/L5 Surveying Antenna - TNC (SPK6618H).\" This also has a ground plane embedded in the antenna. Insert the TNC side of the interface cable into the antenna's TNC connector. Secure the connection by tightening the screw until it is finger-tight. Then insert the SMA side of the interface cable into the Triband GNSS RTK Breakout's SMA connector. Secure the connection by using the SMA's hex nut until it is finger-tight. Note For users that are using a different multiband antenna, you may need to include a antenna ground plate to get the most of the multi-band antenna. Note Not all multiband antennas are made the same! Make sure that you are connecting a multi-band antenna that is capable of receiving L1/L2/L5 signals when using the Triband GNSS RTK Breakout - UM980. Note The Arduino Library was written and tested with the ESP32 processor. We recommend using the IoT RedBoard - ESP32 for the scope of this tutorial. For users using the breakout board in embedded applications, you will need to plug in the JST-GHR-04V Cable to the Triband GNSS RTK Breakout - UM980. You will then need to connect the other end to a microcontroller to process the data. In this case, we used the IoT RedBoard - ESP32. To power and program the IoT RedBoard - ESP32, users will just need to insert the Type C side of the cable to the development board. The other end will connect to a computer's USB port. For users that simply want to connect to the board via USB, you will insert a USB C cable into the USB connector. Then connect the other end to your computer USB port. For temporary connections to the PTHs, you could use IC hooks to test out the pins. However, you'll need to solder headers or wires of your choice to the board for a secure connection. You can choose between a combination of header pins and jumper wires, or stripping wire and soldering the wire directly to the board. How to Solder: Through Hole Soldering Working with Wire Arduino This example assumes you are using the latest version of the Arduino IDE on your desktop. If this is your first time using the Arduino IDE, library, or board add-on, please review the following tutorials. SparkFun has written a library to work with the Unicore UM980 module. You can obtain this library through the Arduino Library Manager by searching for \"SparkFun Unicore GNSS\". Find the one written by SparkFun Electronics and install the latest version. Users who prefer to manually install the library can get it from the GitHub Repository or download the .ZIP by clicking the button below: Now that we have our library and board add-on installed, we can get started experimenting with the breakout board. For the scope of this tutorial, we will go over the examples from the Arduino Library. From there, we will be able to build our own custom code to integrate the development board into a project. In this example, we will query a UM980's UART2 port for its position, velocity, and time data. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example1_PositionVelocityTime . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Give it a moment to check the satellites in view. You will be able to see your position, velocity, date, time, and the number of satellites in view. In this example, characters coming from the UM980's UART2 port are echoed and send characters to the UM980. This allows a user to directly enter command strings into the UM980 while still connected to the Arduino. This is good for viewing the raw output from a given command. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example2_DirectConnect . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. For this example, make sure to have both NL & *CR turned on. Type CONFIG and send the command through the serial terminal. You should receive a response with the current UM980 configuration. Make sure to check out the UM980's Reference Commands Manual linked in the Resources for more commands. This example will query the UM980's UART2 port for the signal quality and fix type. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example3_ECEFandStats . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. The output will be similar to example 1 with additional information. This example shows how to enable various NMEA sentences at different rates on different ports at 5Hz. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example4_EnableNMEA_5Hz . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. The output will begin outputting NEMA sentences. This example shows how to configure the UM980 into base mode using specified coordinates. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example5_EnableRTCM . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the example will begin outputting the RTCM data. The Serial Terminal will output random characters due to the RTCM being in binary. This data will be interpreted by other high precision RTK GNSS modules. This example shows how to put the UM980 into a Base mode configuration using the average of positional fixes obtained over a 60 second period. We also turn on RTCM messages. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example6_AverageBase . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the example will begin outputting certain NMEA sentences and RTCM messages. This example shows how to put the UM980 into a Base mode configuration using specified coordinates. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example7_FixedBase . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the example will begin outputting certain NMEA sentences and RTCM messages. This example enables/disables various constellations to be included in position calculations for GPS, GLO, BDS, GAL, and QZSS. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example8_SetConstellations . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output will respond with a message indicating if the GPS was enabled and the configuration is complete. This example shows how set the Elevation Angle and minimum CN0 value required from a satellite to be included in the position calculation. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example9_SignalEleveation . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output will notify you when the UM980 is configured. This example shows how set the station mode to Survey, UAV, or Automotive. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example10_SetRoverMode. If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output will notify you when the UM980 is configured. If you need to configure the device for a different mode, you will just need to use a single line comment ( This sketch turns on all the major NMEA sentences at 2Hz and prints the incoming serial out to the Serial port. This is useful for viewing the GNSS data in a program like u-center (u-blox's software) or UPrecise (Unicore's software). From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example11_UsbNMEA . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output will notify you when the UM980 is configured. Disconnect the UM980 from the IoT RedBoard - ESP32. Then disconnect the USB cable from the IoT RedBoard - ESP32. Connect the USB cable between the UM980 and your computer. Open a terminal emulator set at 115200 baud. Once connected, you should begin seeing NMEA sentences through the USB port. Of course, you can also view the data through a GUI such as the u-center (u-blox's software) or UPrecise (Unicore's software) as well. This example shows how set the UM980 back to factory defaults. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example12_FactoryReset . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output will notify you when the UM980 is ready to be configured. Send a character through the Serial Monitor to factory reset the UM980. The code will then begin outputting the position, velocity, date, time, and satellites as shown in example 1. Give it a moment to check the satellites in view before getting valid data. While the SparkFun UM980 Arduino library covers most of the features in the UM980, there may be a special command that is needed but not supported. This sketch shows how to send commands directly to the UM980. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example13_SendCommand* . If you have not already, select your Board (in this case the **SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, there's not too much in the output. Try adjusting the ASCII command within the The example shows how to configure the PPS signal's width, frequency, and polarity. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example14_SetPPS . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output just tells you the rate that the PPS is blinking at. If you look at the PPS LED on the UM980, the LED will blink at the rate that was set. This example shows how to send the 'CONFIG' command to get a clear text response that the user can parse to see which settings are set. In this case, we will get the current configuration, version, mode, and mask from the UM980. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example15_QueryDevice . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. The documentation for the UM980 does not explicitly state which RTCM messages are supported but by sending the enable command to the module we can insinuate which are supported. This sketch sends the 'RTCMxxxx' command and looks for an OK. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example15_PollForValidRTCMMessages . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output will notify you of the RTCM messages that are supported. As of the writing of this tutorial, there are 55 RTCM messages that are supported! For users interested in a GUI to visualize the data or update firmware, there is the UPrecise Software. You can head over to Unicore's UPrecise Download Page. Or clicking on the button below to download UPrecise. Note For the latest software version, you may want to check the Unicore's UPrecise Download Page. Once downloaded, select the executable and follow the prompts to install the software to your computer. Note that the software is currently only supported on Windows 7/8/10, 64-bit OS. After downloading and installing UPrecise, open the software up! There are two languages that are supported with the software. For the scope of this tutorial, we'll be using the software in English. Click on \"CH\" button to change the default language from Chinese to English. For users with UPrecise V2.0, you will be prompted with a new window indicating that you will need reboot the software for the changes to take effect. Select the button on the left to reboot the software. The language will switch to English similar to the image below. We will assume that you have a triband multiband antenna connected to the UM980's breakout board and USB cable connected to your computer. Select the COM port that the CH340 enumerated to. There is no need to make a selection in the other two drop down menus by the COM port since the software automatically determines the receiver and baud rate. In this case, it was COM17. You may need to open your device manager to determine which COM port the CH340 enumerated to. Once connected, try exploring the features available on the software as the UM980 sends data to your COM port. You can also check out the UPrecise user manual for more information on the software: Note The following instructions were taken from the UPrecise User Manual: 2.2.11 Receiver Upgrade. For more information about how to use UPrecise software, make sure to check out the user manual. Note At the time of writing, UPrecise Version 2.0 was used. Note that the GUI appearance and features may change upon future releases. You can update your firmware (they call this a firmware upgrade in the manual) using Unicore's UPrecise software. Make sure to check Unicore's UM980 product page, download center, or contact Unicore Communications for any firmware releases. We'll assume that you have the firmware downloaded at this point and connected to the UM980. With UPrecise open, click on the menu with the triple bar (\u2261) near the upper left of the window to expand the menu. The menu should expand with text next to each icon. Click on the Receiver Upgrade button. The following window should open up. Click the Select upgrade file button. Head to the folder where you downloaded the firmware and select the file. The extension should be a *pkg file. In this case, there was a copy of the firmware in the GitHub SparkFun UM980 Triband GNSS RTK Breakout Repo named \"UM980_R4.10Build11833.pkg\". Older firmware versions were moved to the Old Firmware folder. Select the GNSS receiver that will be receiving the firmware update. In this case it was Receiver1. While we are at it, select either the \"Soft reset\" or \"Hard reset\". While updating, the module will need to be reset and this selection will determine the reset method. Let's select the \"Soft Reset\" and have UPrecise reset the module. When ready, hit the \"Start\" button! Warning Make sure to pay attention to the progress bar! You'll want to avoid any interruptions while the firmware is updating as this will cause the upgrade to fail. Note If you have issues updating the software with the reset method chosen, try exiting the Receiver Upgrade menu by hitting the \"x\" button. Then disconnect and reconnect the module by selecting the \"Connect\" button. You will then need to open the Receiver Upgrade window again before hitting the \"Start\" button. Once the firmware has been updated, you will notice that the progress bar is at 100% and a message indicating that the firmware upgrade succeeded and finished. You can exit out of the window by clicking on the \"x\" button. Now that we have successfully flashed the firmware, let's verify the version number. In the serial terminal, send the command Note Sending the command Try viewing the UM980 output through the UPrecise software. Not seeing any satellites in the GUI or output in the serial terminal? Try adjusting the configuration to output every second. From the menu, head to the following to configure the messages: Receiver Configurations > Message configuration. In this case, we selected the following: GGA, GSA, GSV, RMC, GST. Feel free to select more depending on your application. Scroll down Receiver Configurations window and select Enter button. You should be able to see messages outputting through the serial terminal and displaying graphically. Note Not working as expected and need help? If you need technical assistance and more information on a product that is not working as you expected, we recommend heading on over to the SparkFun Technical Assistance page for some initial troubleshooting. SparkFun Technical Assistance Page If you don't find what you need there, the SparkFun Forums are a great place to find and ask for help. If this is your first visit, you'll need to create a Forum Account to search product forums and post questions. Create New Forum Account Log Into SparkFun Forums Now that you've successfully got your SparkFun TriBand GNSS RTK- Breakout - UM980 up and running, it's time to incorporate it into your own project! For more information, check out the resources below: Note Not working as expected and need help? If you need technical assistance and more information on a product that is not working as you expected, we recommend heading on over to the SparkFun Technical Assistance page for some initial troubleshooting. SparkFun Technical Assistance Page If you don't find what you need there, the SparkFun Forums are a great place to find and ask for help. If this is your first visit, you'll need to create a Forum Account to search product forums and post questions. Create New Forum Account Log Into SparkFun Forums For users interested in a GUI to visualize the data or update firmware, there is the UPrecise Software. You can head over to Unicore's UPrecise Download Page. Or clicking on the button below to download UPrecise. Note For the latest software version, you may want to check the Unicore's UPrecise Download Page. Once downloaded, select the executable and follow the prompts to install the software to your computer. Note that the software is currently only supported on Windows 7/8/10, 64-bit OS. After downloading and installing UPrecise, open the software up! There are two languages that are supported with the software. For the scope of this tutorial, we'll be using the software in English. Click on \"CH\" button to change the default language from Chinese to English. For users with UPrecise V2.0, you will be prompted with a new window indicating that you will need reboot the software for the changes to take effect. Select the button on the left to reboot the software. The language will switch to English similar to the image below. We will assume that you have a triband multiband antenna connected to the UM980's breakout board and USB cable connected to your computer. Select the COM port that the CH340 enumerated to. There is no need to make a selection in the other two drop down menus by the COM port since the software automatically determines the receiver and baud rate. In this case, it was COM17. You may need to open your device manager to determine which COM port the CH340 enumerated to. Once connected, try exploring the features available on the software as the UM980 sends data to your COM port. You can also check out the UPrecise user manual for more information on the software: Now that we have successfully flashed the firmware, let's verify the version number. In the serial terminal, send the command Note Sending the command Try viewing the UM980 output through the UPrecise software. Not seeing any satellites in the GUI or output in the serial terminal? Try adjusting the configuration to output every second. From the menu, head to the following to configure the messages: Receiver Configurations > Message configuration. In this case, we selected the following: GGA, GSA, GSV, RMC, GST. Feel free to select more depending on your application. Scroll down Receiver Configurations window and select Enter button. You should be able to see messages outputting through the serial terminal and displaying graphically. Spot something wrong? Feel free to contribute our open-source design and documentation. All of this documentation can be modified by you! Please help us make it better. All of our designs are open-source! Please help us make it better. Let's provided some recognition to the contributors for this project! Spot something wrong? Please let us know. Attention This is not where customers should seek assistance on a product. If you require technical assistance or have questions about a product that is not working as expected, please head over to the SparkFun Technical Assistance page for some initial troubleshooting. SparkFun Technical Assistance Page If you can't find what you need there, you'll need a Forum Account to search product forums and post questions. All of this documentation can be modified by you! Please help us make it better. If a section of the documentation is incorrect, please open an issue and let us know. All of our designs are open-source! Please help us make it better. If part of the design is confusing, please open an issue and let us know. This folder should contain the files for the custom javascript that is enabled in the product documentation The SparkFun Triband GNSS RTK Breakout features the UM980 GNSS high precision RTK position module from Unicore Communications. The UM980 is a 1408-Channel GNSS Receiver based on the Nebulas IV™ that is able to simultaneously track GPS L1/L2/L5, GLONASS L1/L2, Galileo E1/E5a/E5b/E6, Beidou B1I/B2I/B3I/B1C/B2a/B2b, QZSS L1/L2/L5, and SBAS. With this board, you will be able to know where your (or any object's) X, Y, and Z location is within roughly the width of your fingernail. When an RTK solution is reached, the module can achieve a horizontal accuracy of about 8mm (~0.3 inches) and vertical accuracy of 15mm (~0.59 inches). The UM980 is capable of both rover and base station operations. In this tutorial, we'll go over the hardware and how to hookup the breakout board. We will also go over the Arduino examples to get started. To follow along with this tutorial, you will need the following materials. You may not need everything though depending on what you have. Add it to your cart, read through the guide, and adjust the cart as necessary. Depending on your setup, you may need the following mounting hardware. Note that the antenna ground plate is needed for tri-band antennas that do not have a ground plane. For users that require radios to transmit RTK correction data, you could use the following radios. You will need a soldering iron, solder, and general soldering accessories for a secure connection when using the plated through holes. As listed earlier, we recommend using the 4-pin JST-GHR-04V cable to connect directly to the IoT RedBoard - ESP32's female header pins. However, you could also use IC hooks for a temporary connection depending on your setup and what you have available. For those that prefer to the 0.1" spaced PTH, you will want to solder header pins for a secure connection. If you aren’t familiar with the following concepts, we also recommend checking out a few of these tutorials before continuing. You may also be interested in the following blog posts on GNSS technologies. In this section, we will highlight the hardware and pins that are broken out on the SparkFun Triband GNSS RTK Breakout - UM980. For more information, check out our Resources and Going Further for the UM980. The board breaks out the UM980 which is an all-constellation, all-frequency, high precision RTK positioning module. This module has a low power consumption of about ~480mW. The UM980 is a 1408-Channel GNSS Receiver based on the Nebulas IV™ that is able to simultaneously track multiple constellation for L1, L2, and L5 bands. *: Items marked with * are only supported by specific firmware. When a RTK solution is reached, the module can achieve a horizontal accuracy of about 8mm (~0.3 inches) and vertical accuracy of 15mm (~0.59 inches). The UM980 is capable of both rover and base station operations. Below are a few specs taken from the datasheet. For more information, check out the related documents for the UM980 in the Resources. *: Items marked with * are only supported by specific firmware. There are a variety of power and power-related nets broken out to connectors and through hole pads. Power is regulated down to 3.3V with the AP2122K 3.3V/600mA voltage regulator. The logic levels for the UM980 is 3.3V for the I/O pins. The small metal disk is a small 3V/1mAh lithium battery. This battery does not provide power to the IC like the 3.3V system does, but to relevant systems inside the IC that allow for a quick reconnection to satellites. The first time to fix (TTFF) is about ~30 seconds. With the backup battery, the warm start is less than 20 seconds and the hot start is less than 5 seconds. The top side of the board includes a CH340 USB-to-serial converter connected to the serial UART1 port. The chip can be used to send serial data between the device and computer. You can view the output or configure the device through a serial terminal. When using the UM980 with Unicore's UPrecise Software, you can also initiate firmware updates. The CH340 driver should automatically install on most operating systems. However, there is a wide range of operating systems out there. You may need to install drivers the first time you connect the chip to your computer's USB port or when there are operating system updates. For more information, check out our How to Install CH340 Drivers Tutorial. Note Current serial UART is only supported on the UM980 module. I2C, SPI, and CAN have been reserved on the module but are not currently supported. There are three serial UART ports available on the breakout board. Serial UART1 is connected to the CH340 USB-to-serial converter as stated earlier. Serial UART2 is connected to the 4-pin locking JST connector. Tx and Rx are also broken out as PTHs. We recommend using a compatible cable to connect to the locking JST connector to save time connecting to a microcontroller. Serial UART3 is connected to the PTH pins labeled as BlueSMiRF on the edge of the board. What is a BlueSMiRF? The BlueSMiRF was a Bluetooth device that was included in SparkFun's catalog. The footprint consists of a 1x6 header for the serial UART and power pins. Note that the arrangement of the header pins is different from USB-to-serial converters (i.e. FTDI Serial Breakout Boards and CH340 Serial Basics Boards). The board is populated with one SMA connector for a secure connection. You will need a multiband GNSS antenna capable of receiving L1, L2, and L5 bands to get the most out of the UM980. Note that this is intended for active antennas. We recommend using the
+GNSS Multi-Band L1/L2/L5 Surveying Antenna - TNC (SPK6618H) as it includes a built-in ground plane and SMA Male to TNC Male interface cable. Besides the power and serial UART pins, the following pins are also broken out on the edge of the breakout board. The board includes the following status LEDs as indicated in the image below. Note If this is your first time working with jumpers, check out the How to Work with Jumper Pads and PCB Traces tutorial for more information. There are a few jumper pads available on the bottom of the board. The board is 2.0" x 2.0" (50.8mm x 50.8mm). There are 4x mounting holes by each corner of the board. In this section, we'll go over how to connect the Triband GNSS Antenna, GNSS RTK Breakout - UM980, and IoT RedBoard - ESP32 for embedded systems. Of course, you can also connect the UM980 directly to your computer without the need for a microcontroller if you decide to use the UPrecise Software as well. Connect a compatible multi-band antenna that is capable of receiving L1, L2, and L5 bands. In this case, we used the "GNSS Multi-Band L1/L2/L5 Surveying Antenna - TNC (SPK6618H)." This also has a ground plane embedded in the antenna. Insert the TNC side of the interface cable into the antenna's TNC connector. Secure the connection by tightening the screw until it is finger-tight. Then insert the SMA side of the interface cable into the Triband GNSS RTK Breakout's SMA connector. Secure the connection by using the SMA's hex nut until it is finger-tight. Note For users that are using a different multiband antenna, you may need to include a antenna ground plate to get the most of the multi-band antenna. Note Not all multiband antennas are made the same! Make sure that you are connecting a multi-band antenna that is capable of receiving L1/L2/L5 signals when using the Triband GNSS RTK Breakout - UM980. Note The Arduino Library was written and tested with the ESP32 processor. We recommend using the IoT RedBoard - ESP32 for the scope of this tutorial. For users using the breakout board in embedded applications, you will need to plug in the JST-GHR-04V Cable to the Triband GNSS RTK Breakout - UM980. You will then need to connect the other end to a microcontroller to process the data. In this case, we used the IoT RedBoard - ESP32. To power and program the IoT RedBoard - ESP32, users will just need to insert the Type C side of the cable to the development board. The other end will connect to a computer's USB port. For users that simply want to connect to the board via USB, you will insert a USB C cable into the USB connector. Then connect the other end to your computer USB port. For temporary connections to the PTHs, you could use IC hooks to test out the pins. However, you'll need to solder headers or wires of your choice to the board for a secure connection. You can choose between a combination of header pins and jumper wires, or stripping wire and soldering the wire directly to the board. Arduino This example assumes you are using the latest version of the Arduino IDE on your desktop. If this is your first time using the Arduino IDE, library, or board add-on, please review the following tutorials. SparkFun has written a library to work with the Unicore UM980 module. You can obtain this library through the Arduino Library Manager by searching for "SparkFun Unicore GNSS". Find the one written by SparkFun Electronics and install the latest version. Users who prefer to manually install the library can get it from the GitHub Repository or download the .ZIP by clicking the button below: Now that we have our library and board add-on installed, we can get started experimenting with the breakout board. For the scope of this tutorial, we will go over the examples from the Arduino Library. From there, we will be able to build our own custom code to integrate the development board into a project. In this example, we will query a UM980's UART2 port for its position, velocity, and time data. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example1_PositionVelocityTime . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Give it a moment to check the satellites in view. You will be able to see your position, velocity, date, time, and the number of satellites in view. In this example, characters coming from the UM980's UART2 port are echoed and send characters to the UM980. This allows a user to directly enter command strings into the UM980 while still connected to the Arduino. This is good for viewing the raw output from a given command. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example2_DirectConnect . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. For this example, make sure to have both NL & *CR turned on. Type CONFIG and send the command through the serial terminal. You should receive a response with the current UM980 configuration. Make sure to check out the UM980's Reference Commands Manual linked in the Resources for more commands. This example will query the UM980's UART2 port for the signal quality and fix type. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example3_ECEFandStats . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. The output will be similar to example 1 with additional information. This example shows how to enable various NMEA sentences at different rates on different ports at 5Hz. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example4_EnableNMEA_5Hz . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. The output will begin outputting NEMA sentences. This example shows how to configure the UM980 into base mode using specified coordinates. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example5_EnableRTCM . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the example will begin outputting the RTCM data. The Serial Terminal will output random characters due to the RTCM being in binary. This data will be interpreted by other high precision RTK GNSS modules. This example shows how to put the UM980 into a Base mode configuration using the average of positional fixes obtained over a 60 second period. We also turn on RTCM messages. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example6_AverageBase . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the example will begin outputting certain NMEA sentences and RTCM messages. This example shows how to put the UM980 into a Base mode configuration using specified coordinates. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example7_FixedBase . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the example will begin outputting certain NMEA sentences and RTCM messages. This example enables/disables various constellations to be included in position calculations for GPS, GLO, BDS, GAL, and QZSS. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example8_SetConstellations . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output will respond with a message indicating if the GPS was enabled and the configuration is complete. This example shows how set the Elevation Angle and minimum CN0 value required from a satellite to be included in the position calculation. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example9_SignalEleveation . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output will notify you when the UM980 is configured. This example shows how set the station mode to Survey, UAV, or Automotive. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example10_SetRoverMode. If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output will notify you when the UM980 is configured. If you need to configure the device for a different mode, you will just need to use a single line comment ( This sketch turns on all the major NMEA sentences at 2Hz and prints the incoming serial out to the Serial port. This is useful for viewing the GNSS data in a program like u-center (u-blox's software) or UPrecise (Unicore's software). From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example11_UsbNMEA . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output will notify you when the UM980 is configured. Disconnect the UM980 from the IoT RedBoard - ESP32. Then disconnect the USB cable from the IoT RedBoard - ESP32. Connect the USB cable between the UM980 and your computer. Open a terminal emulator set at 115200 baud. Once connected, you should begin seeing NMEA sentences through the USB port. Of course, you can also view the data through a GUI such as the u-center (u-blox's software) or UPrecise (Unicore's software) as well. This example shows how set the UM980 back to factory defaults. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example12_FactoryReset . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output will notify you when the UM980 is ready to be configured. Send a character through the Serial Monitor to factory reset the UM980. The code will then begin outputting the position, velocity, date, time, and satellites as shown in example 1. Give it a moment to check the satellites in view before getting valid data. While the SparkFun UM980 Arduino library covers most of the features in the UM980, there may be a special command that is needed but not supported. This sketch shows how to send commands directly to the UM980. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example13_SendCommand* . If you have not already, select your Board (in this case the **SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, there's not too much in the output. Try adjusting the ASCII command within the The example shows how to configure the PPS signal's width, frequency, and polarity. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example14_SetPPS . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output just tells you the rate that the PPS is blinking at. If you look at the PPS LED on the UM980, the LED will blink at the rate that was set. This example shows how to send the 'CONFIG' command to get a clear text response that the user can parse to see which settings are set. In this case, we will get the current configuration, version, mode, and mask from the UM980. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example15_QueryDevice . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. The documentation for the UM980 does not explicitly state which RTCM messages are supported but by sending the enable command to the module we can insinuate which are supported. This sketch sends the 'RTCMxxxx' command and looks for an OK. From the menu, select the following: File > Examples > SparkFun UM980 Triband RTK GNSS Arduino Library > Example15_PollForValidRTCMMessages . If you have not already, select your Board (in this case the SparkFun ESP32 IoT RedBoard), and associated COM port. Then hit the upload button. After uploading the code, open the Serial Monitor or terminal emulator of your choice with a baud rate set to 115200. Once open, the output will notify you of the RTCM messages that are supported. As of the writing of this tutorial, there are 55 RTCM messages that are supported! For users interested in a GUI to visualize the data or update firmware, there is the UPrecise Software. You can head over to Unicore's UPrecise Download Page. Or clicking on the button below to download UPrecise. Note For the latest software version, you may want to check the Unicore's UPrecise Download Page. Once downloaded, select the executable and follow the prompts to install the software to your computer. Note that the software is currently only supported on Windows 7/8/10, 64-bit OS. After downloading and installing UPrecise, open the software up! There are two languages that are supported with the software. For the scope of this tutorial, we'll be using the software in English. Click on "CH" button to change the default language from Chinese to English. For users with UPrecise V2.0, you will be prompted with a new window indicating that you will need reboot the software for the changes to take effect. Select the button on the left to reboot the software. The language will switch to English similar to the image below. We will assume that you have a triband multiband antenna connected to the UM980's breakout board and USB cable connected to your computer. Select the COM port that the CH340 enumerated to. There is no need to make a selection in the other two drop down menus by the COM port since the software automatically determines the receiver and baud rate. In this case, it was COM17. You may need to open your device manager to determine which COM port the CH340 enumerated to. Once connected, try exploring the features available on the software as the UM980 sends data to your COM port. You can also check out the UPrecise user manual for more information on the software: Note The following instructions were taken from the UPrecise User Manual: 2.2.11 Receiver Upgrade. For more information about how to use UPrecise software, make sure to check out the user manual. Note At the time of writing, UPrecise Version 2.0 was used. Note that the GUI appearance and features may change upon future releases. You can update your firmware (they call this a firmware upgrade in the manual) using Unicore's UPrecise software. Make sure to check Unicore's UM980 product page, download center, or contact Unicore Communications for any firmware releases. We'll assume that you have the firmware downloaded at this point and connected to the UM980. With UPrecise open, click on the menu with the triple bar (≡) near the upper left of the window to expand the menu. The menu should expand with text next to each icon. Click on the Receiver Upgrade button. The following window should open up. Click the Select upgrade file button. Head to the folder where you downloaded the firmware and select the file. The extension should be a *pkg file. In this case, there was a copy of the firmware in the GitHub SparkFun UM980 Triband GNSS RTK Breakout Repo named "UM980_R4.10Build11833.pkg". Older firmware versions were moved to the Old Firmware folder. Select the GNSS receiver that will be receiving the firmware update. In this case it was Receiver1. While we are at it, select either the "Soft reset" or "Hard reset". While updating, the module will need to be reset and this selection will determine the reset method. Let's select the "Soft Reset" and have UPrecise reset the module. When ready, hit the "Start" button! Warning Make sure to pay attention to the progress bar! You'll want to avoid any interruptions while the firmware is updating as this will cause the upgrade to fail. Note If you have issues updating the software with the reset method chosen, try exiting the Receiver Upgrade menu by hitting the "x" button. Then disconnect and reconnect the module by selecting the "Connect" button. You will then need to open the Receiver Upgrade window again before hitting the "Start" button. Once the firmware has been updated, you will notice that the progress bar is at 100% and a message indicating that the firmware upgrade succeeded and finished. You can exit out of the window by clicking on the "x" button. Now that we have successfully flashed the firmware, let's verify the version number. In the serial terminal, send the command Note Sending the command Try viewing the UM980 output through the UPrecise software. Not seeing any satellites in the GUI or output in the serial terminal? Try adjusting the configuration to output every second. From the menu, head to the following to configure the messages: Receiver Configurations > Message configuration. In this case, we selected the following: GGA, GSA, GSV, RMC, GST. Feel free to select more depending on your application. Scroll down Receiver Configurations window and select Enter button. You should be able to see messages outputting through the serial terminal and displaying graphically. Note
+ Not working as expected and need help? If you need technical assistance and more information on a product that is not working as you expected, we recommend heading on over to the SparkFun Technical Assistance page for some initial troubleshooting. If you don't find what you need there, the SparkFun Forums are a great place to find and ask for help. If this is your first visit, you'll need to create a Forum Account to search product forums and post questions. Now that you've successfully got your SparkFun TriBand GNSS RTK- Breakout - UM980 up and running, it's time to incorporate it into your own project! For more information, check out the resources below: Note
+ Not working as expected and need help? If you need technical assistance and more information on a product that is not working as you expected, we recommend heading on over to the SparkFun Technical Assistance page for some initial troubleshooting. If you don't find what you need there, the SparkFun Forums are a great place to find and ask for help. If this is your first visit, you'll need to create a Forum Account to search product forums and post questions. For users interested in a GUI to visualize the data or update firmware, there is the UPrecise Software. You can head over to Unicore's UPrecise Download Page. Or clicking on the button below to download UPrecise. Note For the latest software version, you may want to check the Unicore's UPrecise Download Page. Once downloaded, select the executable and follow the prompts to install the software to your computer. Note that the software is currently only supported on Windows 7/8/10, 64-bit OS. After downloading and installing UPrecise, open the software up! There are two languages that are supported with the software. For the scope of this tutorial, we'll be using the software in English. Click on "CH" button to change the default language from Chinese to English. For users with UPrecise V2.0, you will be prompted with a new window indicating that you will need reboot the software for the changes to take effect. Select the button on the left to reboot the software. The language will switch to English similar to the image below. We will assume that you have a triband multiband antenna connected to the UM980's breakout board and USB cable connected to your computer. Select the COM port that the CH340 enumerated to. There is no need to make a selection in the other two drop down menus by the COM port since the software automatically determines the receiver and baud rate. In this case, it was COM17. You may need to open your device manager to determine which COM port the CH340 enumerated to. Once connected, try exploring the features available on the software as the UM980 sends data to your COM port. You can also check out the UPrecise user manual for more information on the software: Now that we have successfully flashed the firmware, let's verify the version number. In the serial terminal, send the command Note Sending the command Try viewing the UM980 output through the UPrecise software. Not seeing any satellites in the GUI or output in the serial terminal? Try adjusting the configuration to output every second. From the menu, head to the following to configure the messages: Receiver Configurations > Message configuration. In this case, we selected the following: GGA, GSA, GSV, RMC, GST. Feel free to select more depending on your application. Scroll down Receiver Configurations window and select Enter button. You should be able to see messages outputting through the serial terminal and displaying graphically.=q){if(s=W.limit_backward,W.limit_backward=q,W.ket=W.cursor,e=W.find_among_b(P,7))switch(W.bra=W.cursor,e){case 1:if(l()){if(i=W.limit-W.cursor,!W.eq_s_b(1,"s")&&(W.cursor=W.limit-i,!W.eq_s_b(1,"t")))break;W.slice_del()}break;case 2:W.slice_from("i");break;case 3:W.slice_del();break;case 4:W.eq_s_b(2,"gu")&&W.slice_del()}W.limit_backward=s}}function b(){var e=W.limit-W.cursor;W.find_among_b(U,5)&&(W.cursor=W.limit-e,W.ket=W.cursor,W.cursor>W.limit_backward&&(W.cursor--,W.bra=W.cursor,W.slice_del()))}function d(){for(var e,r=1;W.out_grouping_b(F,97,251);)r--;if(r<=0){if(W.ket=W.cursor,e=W.limit-W.cursor,!W.eq_s_b(1,"é")&&(W.cursor=W.limit-e,!W.eq_s_b(1,"è")))return;W.bra=W.cursor,W.slice_from("e")}}function k(){if(!w()&&(W.cursor=W.limit,!f()&&(W.cursor=W.limit,!m())))return W.cursor=W.limit,void _();W.cursor=W.limit,W.ket=W.cursor,W.eq_s_b(1,"Y")?(W.bra=W.cursor,W.slice_from("i")):(W.cursor=W.limit,W.eq_s_b(1,"ç")&&(W.bra=W.cursor,W.slice_from("c")))}var p,g,q,v=[new r("col",-1,-1),new r("par",-1,-1),new r("tap",-1,-1)],h=[new r("",-1,4),new r("I",0,1),new r("U",0,2),new r("Y",0,3)],z=[new r("iqU",-1,3),new r("abl",-1,3),new r("Ièr",-1,4),new r("ièr",-1,4),new r("eus",-1,2),new r("iv",-1,1)],y=[new r("ic",-1,2),new r("abil",-1,1),new r("iv",-1,3)],C=[new r("iqUe",-1,1),new r("atrice",-1,2),new r("ance",-1,1),new r("ence",-1,5),new r("logie",-1,3),new r("able",-1,1),new r("isme",-1,1),new r("euse",-1,11),new r("iste",-1,1),new r("ive",-1,8),new r("if",-1,8),new r("usion",-1,4),new r("ation",-1,2),new r("ution",-1,4),new r("ateur",-1,2),new r("iqUes",-1,1),new r("atrices",-1,2),new r("ances",-1,1),new r("ences",-1,5),new r("logies",-1,3),new r("ables",-1,1),new r("ismes",-1,1),new r("euses",-1,11),new r("istes",-1,1),new r("ives",-1,8),new r("ifs",-1,8),new r("usions",-1,4),new r("ations",-1,2),new r("utions",-1,4),new r("ateurs",-1,2),new r("ments",-1,15),new r("ements",30,6),new r("issements",31,12),new r("ités",-1,7),new r("ment",-1,15),new r("ement",34,6),new r("issement",35,12),new r("amment",34,13),new r("emment",34,14),new r("aux",-1,10),new r("eaux",39,9),new r("eux",-1,1),new r("ité",-1,7)],x=[new r("ira",-1,1),new r("ie",-1,1),new r("isse",-1,1),new r("issante",-1,1),new r("i",-1,1),new r("irai",4,1),new r("ir",-1,1),new r("iras",-1,1),new r("ies",-1,1),new r("îmes",-1,1),new r("isses",-1,1),new r("issantes",-1,1),new r("îtes",-1,1),new r("is",-1,1),new r("irais",13,1),new r("issais",13,1),new r("irions",-1,1),new r("issions",-1,1),new r("irons",-1,1),new r("issons",-1,1),new r("issants",-1,1),new r("it",-1,1),new r("irait",21,1),new r("issait",21,1),new r("issant",-1,1),new r("iraIent",-1,1),new r("issaIent",-1,1),new r("irent",-1,1),new r("issent",-1,1),new r("iront",-1,1),new r("ît",-1,1),new r("iriez",-1,1),new r("issiez",-1,1),new r("irez",-1,1),new r("issez",-1,1)],I=[new r("a",-1,3),new r("era",0,2),new r("asse",-1,3),new r("ante",-1,3),new r("ée",-1,2),new r("ai",-1,3),new r("erai",5,2),new r("er",-1,2),new r("as",-1,3),new r("eras",8,2),new r("âmes",-1,3),new r("asses",-1,3),new r("antes",-1,3),new r("âtes",-1,3),new r("ées",-1,2),new r("ais",-1,3),new r("erais",15,2),new r("ions",-1,1),new r("erions",17,2),new r("assions",17,3),new r("erons",-1,2),new r("ants",-1,3),new r("és",-1,2),new r("ait",-1,3),new r("erait",23,2),new r("ant",-1,3),new r("aIent",-1,3),new r("eraIent",26,2),new r("èrent",-1,2),new r("assent",-1,3),new r("eront",-1,2),new r("ât",-1,3),new r("ez",-1,2),new r("iez",32,2),new r("eriez",33,2),new r("assiez",33,3),new r("erez",32,2),new r("é",-1,2)],P=[new r("e",-1,3),new r("Ière",0,2),new r("ière",0,2),new r("ion",-1,1),new r("Ier",-1,2),new r("ier",-1,2),new r("ë",-1,4)],U=[new r("ell",-1,-1),new r("eill",-1,-1),new r("enn",-1,-1),new r("onn",-1,-1),new r("ett",-1,-1)],F=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,128,130,103,8,5],S=[1,65,20,0,0,0,0,0,0,0,0,0,0,0,0,0,128],W=new s;this.setCurrent=function(e){W.setCurrent(e)},this.getCurrent=function(){return W.getCurrent()},this.stem=function(){var e=W.cursor;return n(),W.cursor=e,u(),W.limit_backward=e,W.cursor=W.limit,k(),W.cursor=W.limit,b(),W.cursor=W.limit,d(),W.cursor=W.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.fr.stemmer,"stemmer-fr"),e.fr.stopWordFilter=e.generateStopWordFilter("ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes".split(" ")),e.Pipeline.registerFunction(e.fr.stopWordFilter,"stopWordFilter-fr")}});
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.he.min.js b/assets/javascripts/lunr/min/lunr.he.min.js
new file mode 100644
index 0000000..b863d3e
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.he.min.js
@@ -0,0 +1 @@
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.he=function(){this.pipeline.reset(),this.pipeline.add(e.he.trimmer,e.he.stopWordFilter,e.he.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.he.stemmer))},e.he.wordCharacters="֑-״א-תa-zA-Za-zA-Z0-90-9",e.he.trimmer=e.trimmerSupport.generateTrimmer(e.he.wordCharacters),e.Pipeline.registerFunction(e.he.trimmer,"trimmer-he"),e.he.stemmer=function(){var e=this;return e.result=!1,e.preRemoved=!1,e.sufRemoved=!1,e.pre={pre1:"ה ו י ת",pre2:"ב כ ל מ ש כש",pre3:"הב הכ הל המ הש בש לכ",pre4:"וב וכ ול ומ וש",pre5:"מה שה כל",pre6:"מב מכ מל ממ מש",pre7:"בה בו בי בת כה כו כי כת לה לו לי לת",pre8:"ובה ובו ובי ובת וכה וכו וכי וכת ולה ולו ולי ולת"},e.suf={suf1:"ך כ ם ן נ",suf2:"ים ות וך וכ ום ון ונ הם הן יכ יך ינ ים",suf3:"תי תך תכ תם תן תנ",suf4:"ותי ותך ותכ ותם ותן ותנ",suf5:"נו כם כן הם הן",suf6:"ונו וכם וכן והם והן",suf7:"תכם תכן תנו תהם תהן",suf8:"הוא היא הם הן אני אתה את אנו אתם אתן",suf9:"ני נו כי כו כם כן תי תך תכ תם תן",suf10:"י ך כ ם ן נ ת"},e.patterns=JSON.parse('{"hebrewPatterns": [{"pt1": [{"c": "ה", "l": 0}]}, {"pt2": [{"c": "ו", "l": 0}]}, {"pt3": [{"c": "י", "l": 0}]}, {"pt4": [{"c": "ת", "l": 0}]}, {"pt5": [{"c": "מ", "l": 0}]}, {"pt6": [{"c": "ל", "l": 0}]}, {"pt7": [{"c": "ב", "l": 0}]}, {"pt8": [{"c": "כ", "l": 0}]}, {"pt9": [{"c": "ש", "l": 0}]}, {"pt10": [{"c": "כש", "l": 0}]}, {"pt11": [{"c": "בה", "l": 0}]}, {"pt12": [{"c": "וב", "l": 0}]}, {"pt13": [{"c": "וכ", "l": 0}]}, {"pt14": [{"c": "ול", "l": 0}]}, {"pt15": [{"c": "ומ", "l": 0}]}, {"pt16": [{"c": "וש", "l": 0}]}, {"pt17": [{"c": "הב", "l": 0}]}, {"pt18": [{"c": "הכ", "l": 0}]}, {"pt19": [{"c": "הל", "l": 0}]}, {"pt20": [{"c": "המ", "l": 0}]}, {"pt21": [{"c": "הש", "l": 0}]}, {"pt22": [{"c": "מה", "l": 0}]}, {"pt23": [{"c": "שה", "l": 0}]}, {"pt24": [{"c": "כל", "l": 0}]}]}'),e.execArray=["cleanWord","removeDiacritics","removeStopWords","normalizeHebrewCharacters"],e.stem=function(){var r=0;for(e.result=!1,e.preRemoved=!1,e.sufRemoved=!1;r
=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(m,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(u,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(l,11),e?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,m=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],u=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}});
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.pt.min.js b/assets/javascripts/lunr/min/lunr.pt.min.js
new file mode 100644
index 0000000..6c16996
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.pt.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `Portuguese` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.pt=function(){this.pipeline.reset(),this.pipeline.add(e.pt.trimmer,e.pt.stopWordFilter,e.pt.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.pt.stemmer))},e.pt.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.pt.trimmer=e.trimmerSupport.generateTrimmer(e.pt.wordCharacters),e.Pipeline.registerFunction(e.pt.trimmer,"trimmer-pt"),e.pt.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,n=new function(){function e(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(k,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("a~");continue;case 2:z.slice_from("o~");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function n(){if(z.out_grouping(y,97,250)){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!0;z.cursor++}return!1}return!0}function i(){if(z.in_grouping(y,97,250))for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return g=z.cursor,!0}function o(){var e,r,s=z.cursor;if(z.in_grouping(y,97,250))if(e=z.cursor,n()){if(z.cursor=e,i())return}else g=z.cursor;if(z.cursor=s,z.out_grouping(y,97,250)){if(r=z.cursor,n()){if(z.cursor=r,!z.in_grouping(y,97,250)||z.cursor>=z.limit)return;z.cursor++}g=z.cursor}}function t(){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return!0}function a(){var e=z.cursor;g=z.limit,b=g,h=g,o(),z.cursor=e,t()&&(b=z.cursor,t()&&(h=z.cursor))}function u(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(q,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("ã");continue;case 2:z.slice_from("õ");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function w(){return g<=z.cursor}function m(){return b<=z.cursor}function c(){return h<=z.cursor}function l(){var e;if(z.ket=z.cursor,!(e=z.find_among_b(F,45)))return!1;switch(z.bra=z.cursor,e){case 1:if(!c())return!1;z.slice_del();break;case 2:if(!c())return!1;z.slice_from("log");break;case 3:if(!c())return!1;z.slice_from("u");break;case 4:if(!c())return!1;z.slice_from("ente");break;case 5:if(!m())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(j,4),e&&(z.bra=z.cursor,c()&&(z.slice_del(),1==e&&(z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del()))));break;case 6:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(C,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 7:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(P,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 8:if(!c())return!1;z.slice_del(),z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del());break;case 9:if(!w()||!z.eq_s_b(1,"e"))return!1;z.slice_from("ir")}return!0}function f(){var e,r;if(z.cursor>=g){if(r=z.limit_backward,z.limit_backward=g,z.ket=z.cursor,e=z.find_among_b(S,120))return z.bra=z.cursor,1==e&&z.slice_del(),z.limit_backward=r,!0;z.limit_backward=r}return!1}function d(){var e;z.ket=z.cursor,(e=z.find_among_b(W,7))&&(z.bra=z.cursor,1==e&&w()&&z.slice_del())}function v(e,r){if(z.eq_s_b(1,e)){z.bra=z.cursor;var s=z.limit-z.cursor;if(z.eq_s_b(1,r))return z.cursor=z.limit-s,w()&&z.slice_del(),!1}return!0}function p(){var e;if(z.ket=z.cursor,e=z.find_among_b(L,4))switch(z.bra=z.cursor,e){case 1:w()&&(z.slice_del(),z.ket=z.cursor,z.limit-z.cursor,v("u","g")&&v("i","c"));break;case 2:z.slice_from("c")}}function _(){if(!l()&&(z.cursor=z.limit,!f()))return z.cursor=z.limit,void d();z.cursor=z.limit,z.ket=z.cursor,z.eq_s_b(1,"i")&&(z.bra=z.cursor,z.eq_s_b(1,"c")&&(z.cursor=z.limit,w()&&z.slice_del()))}var h,b,g,k=[new r("",-1,3),new r("ã",0,1),new r("õ",0,2)],q=[new r("",-1,3),new r("a~",0,1),new r("o~",0,2)],j=[new r("ic",-1,-1),new r("ad",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],C=[new r("ante",-1,1),new r("avel",-1,1),new r("ível",-1,1)],P=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],F=[new r("ica",-1,1),new r("ância",-1,1),new r("ência",-1,4),new r("ira",-1,9),new r("adora",-1,1),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,8),new r("eza",-1,1),new r("logía",-1,2),new r("idade",-1,7),new r("ante",-1,1),new r("mente",-1,6),new r("amente",12,5),new r("ável",-1,1),new r("ível",-1,1),new r("ución",-1,3),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,1),new r("imento",-1,1),new r("ivo",-1,8),new r("aça~o",-1,1),new r("ador",-1,1),new r("icas",-1,1),new r("ências",-1,4),new r("iras",-1,9),new r("adoras",-1,1),new r("osas",-1,1),new r("istas",-1,1),new r("ivas",-1,8),new r("ezas",-1,1),new r("logías",-1,2),new r("idades",-1,7),new r("uciones",-1,3),new r("adores",-1,1),new r("antes",-1,1),new r("aço~es",-1,1),new r("icos",-1,1),new r("ismos",-1,1),new r("osos",-1,1),new r("amentos",-1,1),new r("imentos",-1,1),new r("ivos",-1,8)],S=[new r("ada",-1,1),new r("ida",-1,1),new r("ia",-1,1),new r("aria",2,1),new r("eria",2,1),new r("iria",2,1),new r("ara",-1,1),new r("era",-1,1),new r("ira",-1,1),new r("ava",-1,1),new r("asse",-1,1),new r("esse",-1,1),new r("isse",-1,1),new r("aste",-1,1),new r("este",-1,1),new r("iste",-1,1),new r("ei",-1,1),new r("arei",16,1),new r("erei",16,1),new r("irei",16,1),new r("am",-1,1),new r("iam",20,1),new r("ariam",21,1),new r("eriam",21,1),new r("iriam",21,1),new r("aram",20,1),new r("eram",20,1),new r("iram",20,1),new r("avam",20,1),new r("em",-1,1),new r("arem",29,1),new r("erem",29,1),new r("irem",29,1),new r("assem",29,1),new r("essem",29,1),new r("issem",29,1),new r("ado",-1,1),new r("ido",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("indo",-1,1),new r("ara~o",-1,1),new r("era~o",-1,1),new r("ira~o",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("ir",-1,1),new r("as",-1,1),new r("adas",47,1),new r("idas",47,1),new r("ias",47,1),new r("arias",50,1),new r("erias",50,1),new r("irias",50,1),new r("aras",47,1),new r("eras",47,1),new r("iras",47,1),new r("avas",47,1),new r("es",-1,1),new r("ardes",58,1),new r("erdes",58,1),new r("irdes",58,1),new r("ares",58,1),new r("eres",58,1),new r("ires",58,1),new r("asses",58,1),new r("esses",58,1),new r("isses",58,1),new r("astes",58,1),new r("estes",58,1),new r("istes",58,1),new r("is",-1,1),new r("ais",71,1),new r("eis",71,1),new r("areis",73,1),new r("ereis",73,1),new r("ireis",73,1),new r("áreis",73,1),new r("éreis",73,1),new r("íreis",73,1),new r("ásseis",73,1),new r("ésseis",73,1),new r("ísseis",73,1),new r("áveis",73,1),new r("íeis",73,1),new r("aríeis",84,1),new r("eríeis",84,1),new r("iríeis",84,1),new r("ados",-1,1),new r("idos",-1,1),new r("amos",-1,1),new r("áramos",90,1),new r("éramos",90,1),new r("íramos",90,1),new r("ávamos",90,1),new r("íamos",90,1),new r("aríamos",95,1),new r("eríamos",95,1),new r("iríamos",95,1),new r("emos",-1,1),new r("aremos",99,1),new r("eremos",99,1),new r("iremos",99,1),new r("ássemos",99,1),new r("êssemos",99,1),new r("íssemos",99,1),new r("imos",-1,1),new r("armos",-1,1),new r("ermos",-1,1),new r("irmos",-1,1),new r("ámos",-1,1),new r("arás",-1,1),new r("erás",-1,1),new r("irás",-1,1),new r("eu",-1,1),new r("iu",-1,1),new r("ou",-1,1),new r("ará",-1,1),new r("erá",-1,1),new r("irá",-1,1)],W=[new r("a",-1,1),new r("i",-1,1),new r("o",-1,1),new r("os",-1,1),new r("á",-1,1),new r("í",-1,1),new r("ó",-1,1)],L=[new r("e",-1,1),new r("ç",-1,2),new r("é",-1,1),new r("ê",-1,1)],y=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,3,19,12,2],z=new s;this.setCurrent=function(e){z.setCurrent(e)},this.getCurrent=function(){return z.getCurrent()},this.stem=function(){var r=z.cursor;return e(),z.cursor=r,a(),z.limit_backward=r,z.cursor=z.limit,_(),z.cursor=z.limit,p(),z.cursor=z.limit_backward,u(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.pt.stemmer,"stemmer-pt"),e.pt.stopWordFilter=e.generateStopWordFilter("a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos".split(" ")),e.Pipeline.registerFunction(e.pt.stopWordFilter,"stopWordFilter-pt")}});
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.ro.min.js b/assets/javascripts/lunr/min/lunr.ro.min.js
new file mode 100644
index 0000000..7277140
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.ro.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `Romanian` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ro=function(){this.pipeline.reset(),this.pipeline.add(e.ro.trimmer,e.ro.stopWordFilter,e.ro.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ro.stemmer))},e.ro.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.ro.trimmer=e.trimmerSupport.generateTrimmer(e.ro.wordCharacters),e.Pipeline.registerFunction(e.ro.trimmer,"trimmer-ro"),e.ro.stemmer=function(){var i=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,n=new function(){function e(e,i){L.eq_s(1,e)&&(L.ket=L.cursor,L.in_grouping(W,97,259)&&L.slice_from(i))}function n(){for(var i,r;;){if(i=L.cursor,L.in_grouping(W,97,259)&&(r=L.cursor,L.bra=r,e("u","U"),L.cursor=r,e("i","I")),L.cursor=i,L.cursor>=L.limit)break;L.cursor++}}function t(){if(L.out_grouping(W,97,259)){for(;!L.in_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}return!0}function a(){if(L.in_grouping(W,97,259))for(;!L.out_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}function o(){var e,i,r=L.cursor;if(L.in_grouping(W,97,259)){if(e=L.cursor,!t())return void(h=L.cursor);if(L.cursor=e,!a())return void(h=L.cursor)}L.cursor=r,L.out_grouping(W,97,259)&&(i=L.cursor,t()&&(L.cursor=i,L.in_grouping(W,97,259)&&L.cursor=e;r--){var n=this.uncheckedNodes[r],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(r){var n=new t.QueryParser(e,r);n.parse()})},t.Index.prototype.query=function(e){for(var r=new t.Query(this.fields),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Firmware Update
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Contribute: Help Fix our Mistake!
+Improve our Documentation
+
+
+docs
folder of the SparkFun Triband GNSS RTK Breakout - UM980 repository.Submit a Correction
+
+
+words worlds world a better place.
+
+Improve our Hardware Design
+
+
+Hardware
folder of the SparkFun Triband GNSS RTK Breakout repository.Submit a Design Improvement
+
+
+words worlds world a better place.
+
+Contributors
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Did we make a mistake?
+Discrepancies in the Documentation
+
+
+docs
folder of the SparkFun Triband GNSS RTK Breakout repository.Spot something wrong?
+Do you have a suggested correction?
+
+
+words worlds world a better place.
+
+Problems in the Hardware Design
+
+
+Hardware
folder of the SparkFun Triband GNSS RTK Breakout repository.Does something not make sense?
+Did we forget to include an important function of the board?
+
+
+Do you wish to contribute directly to improving the board design?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ words worlds world a better place.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hard copy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+*.pdf
file, select the Printer or Destination labeled Save as PDF. (Instructions will vary based on the browser)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hardware Hookup
+
+L1/L2/L5 Multiband GNSS Antenna
+Microcontroller
+
+
+
+
+ IoT RedBoard - ESP32
+
+ Triband GNSS RTK Breakout - UM980
+
+
+
+ 3V3
+
+ 3.3V
+
+
+
+ UART1_TX (D4)
+
+ RX2
+
+
+
+ UART1_RX (D13)
+
+ TX2
+
+
+
+ GND
+
+ GND
+
+ USB to Microcontroller
+USB to Triband GNSS RTK Breakout - UM980
+Connecting via PTH
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hardware Overview
+
+UM980 Module
+
+
+
+
+
+
+
+
+
+
+
+ Image Courtesy of everythingRF
+
+
+
+
+
+
+
+
+
+
+Power
+
+
+
+
+Backup Battery
+CH340 USB-to-Serial Converter
+
+
+
+
+
+
+
+
+
+
+ How to Install CH340 Drivers
+
+
+ Serial UARTs
+SMA Connector
+Breakout Pins
+
+
+
+
+LEDs
+
+
+
+
+Jumpers
+
+
+
+
+Board Dimensions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Introduction
+
+Required Materials
+
+
+GNSS Accessories (Optional)
+
+
+
+
+
+
+
+Radios (Optional)
+
+
+Tools (Optional)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Prototyping Accessories (Optional)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Suggested Reading
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ =m[t]&&t
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ //
) to adjust the code.myGNSS.sendCommand()
to send a different special command. For more information, try looking at the Reference Commands Manual in the Resources.
"},{"location":"hardware_hookup/","title":"Hardware Hookup","text":"
*.pdf
file, select the Printer or Destination labeled Save as PDF. (Instructions will vary based on the browser)
"},{"location":"hardware_overview/","title":"Hardware Overview","text":"
"},{"location":"hardware_overview/#backup-battery","title":"Backup Battery","text":"
Top View of Breakout Pins Bottom View of Breakout Pins"},{"location":"hardware_overview/#leds","title":"LEDs","text":"
"},{"location":"hardware_overview/#jumpers","title":"Jumpers","text":"
"},{"location":"hardware_overview/#board-dimensions","title":"Board Dimensions","text":"
"},{"location":"introduction/#gnss-accessories-optional","title":"GNSS Accessories \u00a0(Optional)","text":"
"},{"location":"introduction/#radios-optional","title":"Radios \u00a0(Optional)","text":"
"},{"location":"introduction/#tools-optional","title":"Tools \u00a0(Optional)","text":"
"},{"location":"introduction/#prototyping-accessories-optional","title":"Prototyping Accessories \u00a0(Optional)","text":"
"},{"location":"introduction/#suggested-reading","title":"Suggested Reading","text":"
"},{"location":"single_page/","title":"Introduction","text":"
"},{"location":"single_page/#gnss-accessories-optional","title":"GNSS Accessories \u00a0(Optional)","text":"
"},{"location":"single_page/#radios-optional","title":"Radios \u00a0(Optional)","text":"
"},{"location":"single_page/#tools-optional","title":"Tools \u00a0(Optional)","text":"
"},{"location":"single_page/#prototyping-accessories-optional","title":"Prototyping Accessories \u00a0(Optional)","text":"
"},{"location":"single_page/#suggested-reading","title":"Suggested Reading","text":"
"},{"location":"single_page/#backup-battery","title":"Backup Battery","text":"
Top View of Breakout Pins Bottom View of Breakout Pins"},{"location":"single_page/#leds","title":"LEDs","text":"
"},{"location":"single_page/#jumpers","title":"Jumpers","text":"
"},{"location":"single_page/#board-dimensions","title":"Board Dimensions","text":"
"},{"location":"single_page/#installing-the-arduino-library","title":"Installing the Arduino Library","text":"
//
) to adjust the code.myGNSS.sendCommand()
to send a different special command. For more information, try looking at the Reference Commands Manual in the Resources.VERSIONA
. The UM980 will respond by providing the firmware version and authorization date. Look for the part of the message after the model number (i.e. \"UM980\"). This should match the build number from *pkg file name.VERSIONA
is one method of verifying the version number on the UM980. You can use the Arduino example code to verify the version number on the UM980 breakout board.
"},{"location":"troubleshooting/","title":"Troubleshooting","text":""},{"location":"troubleshooting/#general-troubleshooting-help","title":"General Troubleshooting Help","text":"
VERSIONA
. The UM980 will respond by providing the firmware version and authorization date. Look for the part of the message after the model number (i.e. \"UM980\"). This should match the build number from *pkg file name.VERSIONA
is one method of verifying the version number on the UM980. You can use the Arduino example code to verify the version number on the UM980 breakout board.
"},{"location":"github/contribute/#submit-a-correction","title":"Submit a Correction","text":"docs
folder of the SparkFun Triband GNSS RTK Breakout - UM980 repository.
"},{"location":"github/contribute/#improve-our-hardware-design","title":"Improve our Hardware Design","text":"
"},{"location":"github/contribute/#submit-a-design-improvement","title":"Submit a Design Improvement","text":"Hardware
folder of the SparkFun Triband GNSS RTK Breakout repository.
"},{"location":"github/contribute/#contributors","title":"Contributors","text":"
"},{"location":"github/file_issue/#spot-something-wrong","title":"Spot something wrong?","text":"docs
folder of the SparkFun Triband GNSS RTK Breakout repository.
"},{"location":"github/file_issue/#problems-in-the-hardware-design","title":"Problems in the Hardware Design","text":"
"},{"location":"github/file_issue/#does-something-not-make-sense","title":"Does something not make sense?","text":"Hardware
folder of the SparkFun Triband GNSS RTK Breakout repository.
"},{"location":"github/file_issue/#do-you-wish-to-contribute-directly-to-improving-the-board-design","title":"Do you wish to contribute directly to improving the board design?","text":"
"},{"location":"javascript/","title":"javascript directory","text":"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Introduction
+Required Materials
+
+
+GNSS Accessories (Optional)
+
+
+
+
+
+
+
+Radios (Optional)
+
+
+Tools (Optional)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Prototyping Accessories (Optional)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Suggested Reading
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hardware Overview
+UM980 Module
+
+
+
+
+
+
+
+
+
+
+
+ Image Courtesy of everythingRF
+
+
+
+
+
+
+
+
+
+
+Power
+
+
+
+
+Backup Battery
+CH340 USB-to-Serial Converter
+
+
+
+
+
+
+
+
+
+
+ How to Install CH340 Drivers
+
+
+ Serial UARTs
+SMA Connector
+Breakout Pins
+
+
+
+
+LEDs
+
+
+
+
+Jumpers
+
+
+
+
+Board Dimensions
+Hardware Hookup
+L1/L2/L5 Multiband GNSS Antenna
+Microcontroller
+
+
+
+
+ IoT RedBoard - ESP32
+
+ Triband GNSS RTK Breakout - UM980
+
+
+
+ 3V3
+
+ 3.3V
+
+
+
+ UART1_TX (D4)
+
+ RX2
+
+
+
+ UART1_RX (D13)
+
+ TX2
+
+
+
+ GND
+
+ GND
+
+ USB to Microcontroller
+USB to Triband GNSS RTK Breakout - UM980
+Connecting via PTH
+
+
+
+
+
+
+
+
+
+
+Installing the Arduino Library
+Arduino Examples
+Example 1: Position, Velocity, and Time
+Example 2: Direct Connect
+Example 3: ECEF and Stats
+Example 4: Enable NMEA at 5Hz
+Example 5: Enable RTCM
+Example 6: Average Base
+Example 7: Fixed Base
+Example 8: Set Constellations
+Example 9: Signal Elevation
+Example 10: Set Rover Mode
+//
) to adjust the code.Example 11: USB NMEA
+Example 12: Factory Reset
+Example 13: Send Command
+myGNSS.sendCommand()
to send a different special command. For more information, try looking at the Reference Commands Manual in the Resources.Example 14: Set PPS
+Example 15: Query Device
+Example 16: Poll for Valid RTCM Messages
+Installing UPrecise
+Selecting a Language
+Connecting the UM980 Breakout Board to a Computer
+Firmware Update
+Verification
+VERSIONA
. The UM980 will respond by providing the firmware version and authorization date. Look for the part of the message after the model number (i.e. "UM980"). This should match the build number from *pkg file name.VERSIONA
is one method of verifying the version number on the UM980. You can use the Arduino example code to verify the version number on the UM980 breakout board.Troubleshooting
+General Troubleshooting Help
+Resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Troubleshooting
+
+General Troubleshooting Help
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Installing UPrecise
+
+Selecting a Language
+Connecting the UM980 Breakout Board to a Computer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Verification
+
+VERSIONA
. The UM980 will respond by providing the firmware version and authorization date. Look for the part of the message after the model number (i.e. "UM980"). This should match the build number from *pkg file name.VERSIONA
is one method of verifying the version number on the UM980. You can use the Arduino example code to verify the version number on the UM980 breakout board.