MikroElektronika white logo
  • Products
    • Click Boards
      • Wireless Connectivity
        • GPS/GNSS
        • GSM/LTE
        • LTE IoT
        • BT/BLE
        • WiFi
        • RFID/NFC
        • GSM+GPS
        • 6LoWPAN
        • ZigBee
        • UWB
        • SigFox
        • Sub-1 GHz Transceievers
        • 2.4 GHz Trancevers
        • LoRa
        • WiFi+BLE
      • Sensors
        • Biometrics
        • Gas
        • Magnetic
        • Motion
        • Optical
        • Pressure
        • Proximity
        • Temperature & humidity
        • Current sensor
        • Miscellaneous
        • Environmental
        • Force
        • Inductance
        • RF meter
        • Click Shields
        • Click Bundles
      • Interface
        • Adapter
        • CAN
        • Port expander
        • RS485
        • USB
        • 1-Wire
        • RS232
        • Ethernet
        • LIN
        • PWM
        • Current
        • DALI
        • I2C
        • Fiber optics
        • SPI
        • DMX
        • CXPI
        • Click Shields
        • Click Bundles
      • Display & LED
        • LED Drivers
        • LED Matrix
        • LED Segment
        • OLED
        • LCD
        • Electronic Paper Display
        • OSD
        • TFT
        • Click Shields
        • Click Bundles
      • Miscellaneous
        • Relay
        • Optocoupler
        • ID
        • Proto
        • Encryption
        • Click Shields
        • Click Bundles
      • Mixed Signal
        • ADC
        • Measurements
        • DAC
        • Digital potentiometer
        • ADC-DAC
        • Click Shields
        • Click Bundles
      • Storage
        • EEPROM
        • FLASH
        • FRAM
        • microSD
        • MRAM
        • SRAM
        • EERAM
        • ReRAM
        • DRAM
        • Click Shields
        • Click Bundles
      • Motor Control
        • Brushed
        • Brushless
        • Servo
        • Stepper
        • Click Shields
        • Click Bundles
      • Audio & Voice
        • Amplifier
        • Microphone
        • Speakers
        • Signal Processing
        • Speech recognition
        • FM
        • MP3
        • Click Shields
        • Click Bundles
      • HMI
        • Capacitive
        • Pushbutton/Switches
        • Potentiometers
        • Rotary encoder
        • Haptic
        • Fingerprint
        • Click Shields
        • Click Bundles
      • Clock & Timing
        • RTC
        • Clock generator
        • Click Shields
        • Click Bundles
      • Power Management
        • Battery charger
        • Boost
        • Buck
        • Linear
        • Buck-Boost
        • Wireless Charging
        • Power Switch
        • USB-C PD
        • Click Shields
        • Click Bundles
      • Click Bundles
      • Click Shields
    • NECTO
      • NECTO Studio
    • Compilers
      • PIC
        • C
          • NECTO Studio
          • mikroC PRO for PIC
        • Basic
          • mikroBasic PRO for PIC
        • Pascal
          • mikroPascal PRO for PIC
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual TFT AI
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • dsPIC/PIC24
        • C
          • NECTO Studio
          • mikroC PRO for dsPIC
        • Basic
          • mikroBasic PRO for dsPIC
        • Pascal
          • mikroPascal PRO for dsPIC
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • PIC32
        • C
          • NECTO Studio
          • mikroC PRO for PIC32
        • Basic
          • mikroBasic PRO for PIC32
        • Pascal
          • mikroPascal PRO for PIC32
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • ARM
        • C
          • NECTO Studio
          • mikroC PRO for ARM
        • Basic
          • mikroBasic PRO for ARM
        • Pascal
          • mikroPascal PRO for ARM
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual TFT AI
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • AVR
        • C
          • NECTO Studio
          • mikroC PRO for AVR
        • Basic
          • mikroBasic PRO for AVR
        • Pascal
          • mikroPascal PRO for AVR
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • FT90x
        • C
          • mikroC PRO for FT90x
        • Basic
          • mikroBasic PRO for FT90x
        • Pascal
          • mikroPascal PRO for FT90x
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • 8051
        • C
          • mikroC PRO for 8051
        • Basic
          • mikroBasic PRO for 8051
        • Pascal
          • mikroPascal PRO for 8051
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
    • Dev Boards
      • PIC (8-bit)
        • 8th Generation
          • Fusion for PIC v8
          • EasyPIC PRO v8
          • EasyPIC PRO v8 over USB-C
          • EasyPIC v8
          • EasyPIC v8 over USB-C
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyPIC PRO v7a
          • PICPLC16 v7a
          • EasyPIC v7a
          • EasyPIC PRO v7
          • EasyPIC v7
        • 6th Generation
          • PICPLC16 v6
      • dsPIC/PIC24 (16-bit)
        • 8th Generation
          • EasyPIC v8 PIC24/dsPIC33
          • EasyPIC v8 for dsPIC30
          • EasyPIC v8 for dsPIC30 over USB-C
          • Fusion for PIC v8
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyPIC Fusion v7
          • EasyPIC v7 for dsPIC30
        • 6th Generation
          • Easy24-33 v6
      • PIC32 (32-bit)
        • 8th Generation
          • Fusion for PIC32
          • Fusion for PIC32 over USB-C
          • Fusion for PIC v8
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyPIC Fusion v7
      • ARM (32-bit)
        • 8th Generation
          • Fusion for ARM v8
          • Fusion for ARM v8 over USB-C
          • Fusion for STM32 v8
          • Fusion for STM32 over USB-C
          • Fusion for KINETIS v8
          • Fusion for Kinetis v8 over USB-C
          • Fusion for TIVA v8
          • Fusion for TIVA v8 over USB-C
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyMx PRO v7a STM32
          • EasyMx PRO v7 STM32
          • EasyMx PRO v7 Tiva
      • AVR (8-bit)
        • 8th Generation
          • EasyAVR PRO v8
          • EasyAVR PRO v8 over USB-C
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyAVR v7
        • 6th Generation
          • AVRPLC16 v6
      • 8051 (8-bit)
        • 7th generation
          • BIG8051
        • 6th Generation
          • Easy8051 v6
      • PSoC (8-bit)
        • 6th Generation
          • UNI-DS6 Development System
      • RISC-V (32bit)
        • 8th Generation
          • UNI-DS v8
          • UNI-DS v8 over USB-C
      • Universal Boards
        • 8th Generation
          • UNI-DS v8
          • UNI-DS v8 over USB-C
          • Fusion for PIC v8
          • Fusion for ARM v8
        • 7th Generation
          • EasyPIC Fusion v7
        • 6th Generation
          • UNI-DS6
          • mikroBoard for PIC 80-pin
          • mikroBoard for AVR
          • mikroBoard for dsPIC
          • mikroBoard for PSoC
          • mikroBoard for 8051
          • mikroBoard for PIC 40-pin
          • mikroBoard for ARM
          • mikroBoard for ARM 144-pin
      • IoT - Wearable
        • Hexiwear
          • Hexiwear
          • Hexiwear Power User Pack
          • Hexiwear Docking Station
          • Hexiwear Battery Pack
          • Hexiwear Color Pack
          • Hexiwear Workstation
      • Analog Boards
        • 7th Generation
          • Analog System Lab Kit PRO
    • Starter Boards
      • PIC (8-bit)
        • Clicker
          • PIC clicker
        • Clicker 2
          • Clicker 2 for PIC18FJ
          • Clicker 2 for PIC18FK
        • Clicker 4
          • UNI Clicker
        • Ready
          • Ready for PIC Board
          • Ready for PIC (DIP28)
          • PIC-Ready2 Board
          • MMC Ready Board
        • StartUSB
          • StartUSB for PIC
      • dsPIC/PIC24 (16-bit)
        • Clicker 2
          • Clicker 2 for PIC24
          • Clicker 2 for dsPIC33
        • Clicker 4
          • UNI Clicker
        • Ready
          • dsPIC-Ready1 Board
          • dsPIC-Ready2 Board
          • DsPIC-Ready3 Board
          • dsPIC-Ready4 Board
      • PIC32 (32-bit)
        • Clicker
          • PIC32MX clicker
          • 6LoWPAN Clicker
          • PIC32MZ clicker
        • Clicker 2
          • Clicker 2 for PIC32MX
          • Clicker 2 for PIC32MZ
        • Clicker 4
          • UNI Clicker
        • MINI
          • MINI-32 Board
          • MINI-32 for PIC32MZ
        • Flip&Click
          • Flip&Click PIC32MZ
      • ARM (32-bit)
        • Clicker
          • RA4M1 Clicker
          • Kinetis Clicker
          • MSP432 Clicker
          • CEC1702 clicker
          • CEC1302 Clicker
          • STM32 M4 clicker
        • Clicker 2
          • Clicker 2 for STM32
          • Clicker 2 for Kinetis
          • Clicker 2 for CEC1702
          • Clicker 2 for MSP432
          • Clicker 2 for CEC1302
          • Clicker 2 for PSoC 6
        • Clicker 4
          • Clicker 4 for TMPM4K
          • Clicker 4 for STM32
          • UNI Clicker
        • MINI
          • MINI-M4 for STM32
          • MINI-M4 For Kinetis
          • MINI-M4 for Tiva
          • MINI-M4 for Stellaris
          • MINI-M4 for MSP432
          • MINI-M0 for STM32
        • Flip&Click
          • Flip&Click SAM3X
      • AVR (8-bit)
        • Clicker 4
          • UNI Clicker
        • MINI
          • MINI-AT Board - 3.3V
          • MINI-AT Board - 5V
        • Ready
          • Ready for AVR Board
          • Ready For XMEGA
          • mikroXMEGA Board
          • AVR-Ready2 Board
        • StartUSB
          • StartUSB for AVR
      • 8051 (8-bit)
        • Clicker 4
          • UNI Clicker
        • Ready
          • 8051-Ready Board
      • FT90x (32-bit)
        • Clicker 2
          • Clicker 2 for FT90x
      • Miscellaneous
        • USB
          • USB Wizard
          • Quail
          • FlowPaw Kit
      • Universal Boards
        • Clicker 4
          • UNI Clicker
    • Prog-Debug
      • PIC (8-bit)
        • CODEGRIP
          • UNI CODEGRIP
          • UNI CODEGRIP - USB-C
          • CODEGRIP for PIC
          • CODEGRIP for PIC USB-C
        • mikroProg
          • mikroProg for PIC
      • dsPIC/PIC24 (16-bit)
        • CODEGRIP
          • UNI CODEGRIP
          • UNI CODEGRIP - USB-C
          • CODEGRIP for PIC
        • mikroProg
          • mikroProg for dsPIC
      • PIC32 (32-bit)
        • CODEGRIP
          • UNI CODEGRIP
          • UNI CODEGRIP - USB-C
          • CODEGRIP for PIC
          • CODEGRIP for PIC USB-C
        • mikroProg
          • mikroProg for PIC32
      • ARM (32-bit)
        • CODEGRIP
          • UNI CODEGRIP
          • UNI CODEGRIP USB-C
          • CODEGRIP for ARM
          • CODEGRIP for ARM USB-C
          • CODEGRIP for STM32
          • CODEGRIP for KINETIS
          • CODEGRIP for Tiva
          • CODEGRIP for Tiva USB-C
        • mikroProg
          • mikroProg for STM32
          • mikroProg for Tiva
          • mikroProg for Kinetis
          • mikroProg for CEC
          • mikroProg for MSP432
          • mikroProg for PSoC 5LP
      • AVR (8-bit)
        • CODEGRIP
          • CODEGRIP for AVR
          • CODEGRIP for AVR - USB-C
          • UNI CODEGRIP
          • UNI CODEGRIP - USB-C
        • mikroProg
          • mikroProg for AVR
      • 8051 (8-bit)
        • mikroProg
          • mikroProg for 8051
      • FT90x (32-bit)
        • mikroProg
          • mikroProg for FT90x
    • Smart Displays
      • 2.8"
        • ARM (32-bit)
        • AVR (8-bit)
        • dsPIC/PIC24 (16-bit)
        • PIC (8-bit)
        • PIC32 (32-bit)
      • 3.5"
        • ARM (32-bit)
        • FT90x (32-bit)
        • PIC (8-bit)
        • PIC32 (32-bit)
      • 4.3"
        • ARM (32-bit)
        • FT90x (32-bit)
        • PIC (8-bit)
        • PIC32 (32-bit)
      • 5"
        • ARM (32-bit)
        • FT90x (32-bit)
        • PIC32 (32-bit)
      • 7"
        • ARM (32-bit)
        • FT90x (32-bit)
    • MCU Cards
      • PIC (8-bit)
        • 8th Generation
        • 7th Generation
        • 7th Generation (empty)
        • 6th Generation
        • 6th Generation (empty)
      • dsPIC/PIC24 (16-bit)
        • 8th Generation
        • 7th Generation
        • 7th Generation (empty)
        • 6th Generation
        • 6th Generation (empty)
      • PIC32 (32-bit)
        • 8th Generation
        • 7th Generation
        • 6th Generation
        • 6th Generation (empty)
      • ARM (32-bit)
        • 8th Generation
        • 7th Generation
        • 7th Generation (empty)
      • AVR (8-bit)
        • 8th Generation
        • 6th Generation
        • 6th Generation (empty)
      • RISC-V (32bit)
        • 8th Generation
    • Accessories
      • TFT Displays
      • LCD Displays
      • LED Displays
      • E-Paper Displays
      • Sensors
      • Headers and Connectors
      • Wire Jumpers and Cables
      • Antennas
      • Batteries
      • RFID/NFC
      • Proto
      • Motors
      • Storage
      • Power
      • Adapters
      • Interface
      • Input/Output
      • Miscellaneous
      • FANware
      • MCUs
      • Books
    • Kits
      • PIC
        • mikroLab
          • PIC M
          • PIC L
          • PIC 18FK
          • PIC XL
          • PIC 18FJ
        • EasyStart
          • PIC EasyStart
        • TFT Designer
          • PIC 18FJ
        • TFT Developer
          • PIC 18FJ
        • GLCD Designer
          • GLCD Designer
        • GLCD Developer
          • GLCD Developer
      • ARM
        • mikroLab Kits
          • mikroLAB for STM32
          • mikroLAB for Tiva
        • EasyStart Kits
          • EasyStart Kit - STM32
          • Easy Start Kit - Tiva
        • TFT Designer Kits
          • TFT 3" - TIVA
          • TFT 4" - STM32F4
          • TFT 5" - TIVA
          • TFT 7" - STM32F4
          • TFT 3" - STM32 M3
          • TFT 3" - STM32 M4
        • TFT Developer Kits
          • TFT 3" - TIVA
          • TFT 3" - STM32F3
          • TFT 3" - STM32F4
        • TFT Professional Kits
          • TFT 5 Pro Kit - TIVA
          • TFT 7 Pro Kit - STM32F4
          • TFT Plus Pro Kit - STM32F4
      • PIC32
        • mikroLab Kits
          • mikroLAB for PIC32
        • EasyStart Kits
          • EasyStart Kit - PIC32MX4
          • EasyStart Kit - PIC32MX7
        • TFT Designer Kits
          • TFT 3" - PIC32MX4
          • TFT 4" - PIC32MX7
        • TFT Developer Kits
          • TFT 3" - PIC32MX4
        • Home Automation
          • AWS Home
      • dsPIC/PIC24
        • mikroLab Kits
          • mikroLAB for dsPIC
          • mikroLAB for dsPIC L
          • mikroLAB for dsPIC XL
        • EasyStart Kits
          • EasyStart Kit - dsPIC33FJ
          • EasyStart Kit - dsPIC33EP
          • EasyStart Kit - PIC24EP
          • Easy Start Kit - dsPIC30
        • TFT Designer Kits
          • TFT 3" - dsPIC33FJ
          • TFT 3" - dsPIC33EP
          • TFT 3" - PIC24EP
          • TFT 3" - PIC24FJ
        • TFT Developer Kits
          • TFT 3" - dsPIC33FJ
          • TFT 3" - PIC24FJ
          • TFT 3" - PIC24EP
          • TFT 3" - dsPIC33EP
      • AVR
        • mikroLab Kits
          • mikroLAB for AVR
          • mikroLAB for AVR L
          • mikroLAB for AVR XL
        • EasyStart Kits
          • Easy Start Kit - AVR
        • TFT Designer Kits
          • TFT Designer kit - XMEGA
        • TFT Developer Kits
          • TFT Developer kit - XMEGA
      • 8051
        • mikroLab Kits
          • mikroLAB for 8051 L
          • mikroLAB for 8051
        • EasyStart Kits
          • Easy Start Kit - 8051
  • Shop
  • Applications
  • Support
    • Helpdesk
    • Contact us
    • Forum
    • LibStock
    • Learn
    • Let's make
    • Books
  • Services
    • Planet Debug
    • Design Service
    • Product Customization
    • Contract Manufacturing
    • Premium Technical Support
  • News
  • My profile
  • Privacy settings
  • Activity
  • Sign out

Your shoppingcart is empty.
Continue shopping.

MikroElektronika white logo
  • Products
    • click boards icon Click Boards
      • Wireless Connectivity
        • GPS/GNSS
        • GSM/LTE
        • LTE IoT
        • BT/BLE
        • WiFi
        • RFID/NFC
        • GSM+GPS
        • 6LoWPAN
        • ZigBee
        • UWB
        • SigFox
        • Sub-1 GHz Transceievers
        • 2.4 GHz Trancevers
        • LoRa
        • WiFi+BLE
      • Sensors
        • Biometrics
        • Gas
        • Magnetic
        • Motion
        • Optical
        • Pressure
        • Proximity
        • Temperature & humidity
        • Current sensor
        • Miscellaneous
        • Environmental
        • Force
        • Inductance
        • RF meter
        • Click Shields
        • Click Bundles
      • Interface
        • Adapter
        • CAN
        • Port expander
        • RS485
        • USB
        • 1-Wire
        • RS232
        • Ethernet
        • LIN
        • PWM
        • Current
        • DALI
        • I2C
        • Fiber optics
        • SPI
        • DMX
        • CXPI
        • Click Shields
        • Click Bundles
      • Display & LED
        • LED Drivers
        • LED Matrix
        • LED Segment
        • OLED
        • LCD
        • Electronic Paper Display
        • OSD
        • TFT
        • Click Shields
        • Click Bundles
      • Miscellaneous
        • Relay
        • Optocoupler
        • ID
        • Proto
        • Encryption
        • Click Shields
        • Click Bundles
      • Mixed Signal
        • ADC
        • Measurements
        • DAC
        • Digital potentiometer
        • ADC-DAC
        • Click Shields
        • Click Bundles
      • Storage
        • EEPROM
        • FLASH
        • FRAM
        • microSD
        • MRAM
        • SRAM
        • EERAM
        • ReRAM
        • DRAM
        • Click Shields
        • Click Bundles
      • Motor Control
        • Brushed
        • Brushless
        • Servo
        • Stepper
        • Click Shields
        • Click Bundles
      • Audio & Voice
        • Amplifier
        • Microphone
        • Speakers
        • Signal Processing
        • Speech recognition
        • FM
        • MP3
        • Click Shields
        • Click Bundles
      • HMI
        • Capacitive
        • Pushbutton/Switches
        • Potentiometers
        • Rotary encoder
        • Haptic
        • Fingerprint
        • Click Shields
        • Click Bundles
      • Clock & Timing
        • RTC
        • Clock generator
        • Click Shields
        • Click Bundles
      • Power Management
        • Battery charger
        • Boost
        • Buck
        • Linear
        • Buck-Boost
        • Wireless Charging
        • Power Switch
        • USB-C PD
        • Click Shields
        • Click Bundles
      • Click Bundles
      • Click Shields
    • necto icon NECTO
      • NECTO Studio
    • compilers icon Compilers
      • PIC
        • C
          • NECTO Studio
          • mikroC PRO for PIC
        • Basic
          • mikroBasic PRO for PIC
        • Pascal
          • mikroPascal PRO for PIC
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual TFT AI
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • dsPIC/PIC24
        • C
          • NECTO Studio
          • mikroC PRO for dsPIC
        • Basic
          • mikroBasic PRO for dsPIC
        • Pascal
          • mikroPascal PRO for dsPIC
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • PIC32
        • C
          • NECTO Studio
          • mikroC PRO for PIC32
        • Basic
          • mikroBasic PRO for PIC32
        • Pascal
          • mikroPascal PRO for PIC32
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • ARM
        • C
          • NECTO Studio
          • mikroC PRO for ARM
        • Basic
          • mikroBasic PRO for ARM
        • Pascal
          • mikroPascal PRO for ARM
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual TFT AI
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • AVR
        • C
          • NECTO Studio
          • mikroC PRO for AVR
        • Basic
          • mikroBasic PRO for AVR
        • Pascal
          • mikroPascal PRO for AVR
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • FT90x
        • C
          • mikroC PRO for FT90x
        • Basic
          • mikroBasic PRO for FT90x
        • Pascal
          • mikroPascal PRO for FT90x
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • 8051
        • C
          • mikroC PRO for 8051
        • Basic
          • mikroBasic PRO for 8051
        • Pascal
          • mikroPascal PRO for 8051
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
    • dev boards icon Dev Boards
      • PIC (8-bit)
        • 8th Generation
          • Fusion for PIC v8
          • EasyPIC PRO v8
          • EasyPIC PRO v8 over USB-C
          • EasyPIC v8
          • EasyPIC v8 over USB-C
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyPIC PRO v7a
          • PICPLC16 v7a
          • EasyPIC v7a
          • EasyPIC PRO v7
          • EasyPIC v7
        • 6th Generation
          • PICPLC16 v6
      • dsPIC/PIC24 (16-bit)
        • 8th Generation
          • EasyPIC v8 PIC24/dsPIC33
          • EasyPIC v8 for dsPIC30
          • EasyPIC v8 for dsPIC30 over USB-C
          • Fusion for PIC v8
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyPIC Fusion v7
          • EasyPIC v7 for dsPIC30
        • 6th Generation
          • Easy24-33 v6
      • PIC32 (32-bit)
        • 8th Generation
          • Fusion for PIC32
          • Fusion for PIC32 over USB-C
          • Fusion for PIC v8
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyPIC Fusion v7
      • ARM (32-bit)
        • 8th Generation
          • Fusion for ARM v8
          • Fusion for ARM v8 over USB-C
          • Fusion for STM32 v8
          • Fusion for STM32 over USB-C
          • Fusion for KINETIS v8
          • Fusion for Kinetis v8 over USB-C
          • Fusion for TIVA v8
          • Fusion for TIVA v8 over USB-C
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyMx PRO v7a STM32
          • EasyMx PRO v7 STM32
          • EasyMx PRO v7 Tiva
      • AVR (8-bit)
        • 8th Generation
          • EasyAVR PRO v8
          • EasyAVR PRO v8 over USB-C
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyAVR v7
        • 6th Generation
          • AVRPLC16 v6
      • 8051 (8-bit)
        • 7th generation
          • BIG8051
        • 6th Generation
          • Easy8051 v6
      • PSoC (8-bit)
        • 6th Generation
          • UNI-DS6 Development System
      • RISC-V (32bit)
        • 8th Generation
          • UNI-DS v8
          • UNI-DS v8 over USB-C
      • Universal Boards
        • 8th Generation
          • UNI-DS v8
          • UNI-DS v8 over USB-C
          • Fusion for PIC v8
          • Fusion for ARM v8
        • 7th Generation
          • EasyPIC Fusion v7
        • 6th Generation
          • UNI-DS6
          • mikroBoard for PIC 80-pin
          • mikroBoard for AVR
          • mikroBoard for dsPIC
          • mikroBoard for PSoC
          • mikroBoard for 8051
          • mikroBoard for PIC 40-pin
          • mikroBoard for ARM
          • mikroBoard for ARM 144-pin
      • IoT - Wearable
        • Hexiwear
          • Hexiwear
          • Hexiwear Power User Pack
          • Hexiwear Docking Station
          • Hexiwear Battery Pack
          • Hexiwear Color Pack
          • Hexiwear Workstation
      • Analog Boards
        • 7th Generation
          • Analog System Lab Kit PRO
    • starter boards icon Starter Boards
      • PIC (8-bit)
        • Clicker
          • PIC clicker
        • Clicker 2
          • Clicker 2 for PIC18FJ
          • Clicker 2 for PIC18FK
        • Clicker 4
          • UNI Clicker
        • Ready
          • Ready for PIC Board
          • Ready for PIC (DIP28)
          • PIC-Ready2 Board
          • MMC Ready Board
        • StartUSB
          • StartUSB for PIC
      • dsPIC/PIC24 (16-bit)
        • Clicker 2
          • Clicker 2 for PIC24
          • Clicker 2 for dsPIC33
        • Clicker 4
          • UNI Clicker
        • Ready
          • dsPIC-Ready1 Board
          • dsPIC-Ready2 Board
          • DsPIC-Ready3 Board
          • dsPIC-Ready4 Board
      • PIC32 (32-bit)
        • Clicker
          • PIC32MX clicker
          • 6LoWPAN Clicker
          • PIC32MZ clicker
        • Clicker 2
          • Clicker 2 for PIC32MX
          • Clicker 2 for PIC32MZ
        • Clicker 4
          • UNI Clicker
        • MINI
          • MINI-32 Board
          • MINI-32 for PIC32MZ
        • Flip&Click
          • Flip&Click PIC32MZ
      • ARM (32-bit)
        • Clicker
          • RA4M1 Clicker
          • Kinetis Clicker
          • MSP432 Clicker
          • CEC1702 clicker
          • CEC1302 Clicker
          • STM32 M4 clicker
        • Clicker 2
          • Clicker 2 for STM32
          • Clicker 2 for Kinetis
          • Clicker 2 for CEC1702
          • Clicker 2 for MSP432
          • Clicker 2 for CEC1302
          • Clicker 2 for PSoC 6
        • Clicker 4
          • Clicker 4 for TMPM4K
          • Clicker 4 for STM32
          • UNI Clicker
        • MINI
          • MINI-M4 for STM32
          • MINI-M4 For Kinetis
          • MINI-M4 for Tiva
          • MINI-M4 for Stellaris
          • MINI-M4 for MSP432
          • MINI-M0 for STM32
        • Flip&Click
          • Flip&Click SAM3X
      • AVR (8-bit)
        • Clicker 4
          • UNI Clicker
        • MINI
          • MINI-AT Board - 3.3V
          • MINI-AT Board - 5V
        • Ready
          • Ready for AVR Board
          • Ready For XMEGA
          • mikroXMEGA Board
          • AVR-Ready2 Board
        • StartUSB
          • StartUSB for AVR
      • 8051 (8-bit)
        • Clicker 4
          • UNI Clicker
        • Ready
          • 8051-Ready Board
      • FT90x (32-bit)
        • Clicker 2
          • Clicker 2 for FT90x
      • Miscellaneous
        • USB
          • USB Wizard
          • Quail
          • FlowPaw Kit
      • Universal Boards
        • Clicker 4
          • UNI Clicker
    • prog-debug icon Prog-Debug
      • PIC (8-bit)
        • CODEGRIP
          • UNI CODEGRIP
          • UNI CODEGRIP - USB-C
          • CODEGRIP for PIC
          • CODEGRIP for PIC USB-C
        • mikroProg
          • mikroProg for PIC
      • dsPIC/PIC24 (16-bit)
        • CODEGRIP
          • UNI CODEGRIP
          • UNI CODEGRIP - USB-C
          • CODEGRIP for PIC
        • mikroProg
          • mikroProg for dsPIC
      • PIC32 (32-bit)
        • CODEGRIP
          • UNI CODEGRIP
          • UNI CODEGRIP - USB-C
          • CODEGRIP for PIC
          • CODEGRIP for PIC USB-C
        • mikroProg
          • mikroProg for PIC32
      • ARM (32-bit)
        • CODEGRIP
          • UNI CODEGRIP
          • UNI CODEGRIP USB-C
          • CODEGRIP for ARM
          • CODEGRIP for ARM USB-C
          • CODEGRIP for STM32
          • CODEGRIP for KINETIS
          • CODEGRIP for Tiva
          • CODEGRIP for Tiva USB-C
        • mikroProg
          • mikroProg for STM32
          • mikroProg for Tiva
          • mikroProg for Kinetis
          • mikroProg for CEC
          • mikroProg for MSP432
          • mikroProg for PSoC 5LP
      • AVR (8-bit)
        • CODEGRIP
          • CODEGRIP for AVR
          • CODEGRIP for AVR - USB-C
          • UNI CODEGRIP
          • UNI CODEGRIP - USB-C
        • mikroProg
          • mikroProg for AVR
      • 8051 (8-bit)
        • mikroProg
          • mikroProg for 8051
      • FT90x (32-bit)
        • mikroProg
          • mikroProg for FT90x
    • smart displays icon Smart Displays
      • 2.8"
        • ARM (32-bit)
        • AVR (8-bit)
        • dsPIC/PIC24 (16-bit)
        • PIC (8-bit)
        • PIC32 (32-bit)
      • 3.5"
        • ARM (32-bit)
        • FT90x (32-bit)
        • PIC (8-bit)
        • PIC32 (32-bit)
      • 4.3"
        • ARM (32-bit)
        • FT90x (32-bit)
        • PIC (8-bit)
        • PIC32 (32-bit)
      • 5"
        • ARM (32-bit)
        • FT90x (32-bit)
        • PIC32 (32-bit)
      • 7"
        • ARM (32-bit)
        • FT90x (32-bit)
    • mcu cards icon MCU Cards
      • PIC (8-bit)
        • 8th Generation
        • 7th Generation
        • 7th Generation (empty)
        • 6th Generation
        • 6th Generation (empty)
      • dsPIC/PIC24 (16-bit)
        • 8th Generation
        • 7th Generation
        • 7th Generation (empty)
        • 6th Generation
        • 6th Generation (empty)
      • PIC32 (32-bit)
        • 8th Generation
        • 7th Generation
        • 6th Generation
        • 6th Generation (empty)
      • ARM (32-bit)
        • 8th Generation
        • 7th Generation
        • 7th Generation (empty)
      • AVR (8-bit)
        • 8th Generation
        • 6th Generation
        • 6th Generation (empty)
      • RISC-V (32bit)
        • 8th Generation
    • accessories icon Accessories
      • TFT Displays
      • LCD Displays
      • LED Displays
      • E-Paper Displays
      • Sensors
      • Headers and Connectors
      • Wire Jumpers and Cables
      • Antennas
      • Batteries
      • RFID/NFC
      • Proto
      • Motors
      • Storage
      • Power
      • Adapters
      • Interface
      • Input/Output
      • Miscellaneous
      • FANware
      • MCUs
      • Books
    • kits icon Kits
      • PIC
        • mikroLab
          • PIC M
          • PIC L
          • PIC 18FK
          • PIC XL
          • PIC 18FJ
        • EasyStart
          • PIC EasyStart
        • TFT Designer
          • PIC 18FJ
        • TFT Developer
          • PIC 18FJ
        • GLCD Designer
          • GLCD Designer
        • GLCD Developer
          • GLCD Developer
      • ARM
        • mikroLab Kits
          • mikroLAB for STM32
          • mikroLAB for Tiva
        • EasyStart Kits
          • EasyStart Kit - STM32
          • Easy Start Kit - Tiva
        • TFT Designer Kits
          • TFT 3" - TIVA
          • TFT 4" - STM32F4
          • TFT 5" - TIVA
          • TFT 7" - STM32F4
          • TFT 3" - STM32 M3
          • TFT 3" - STM32 M4
        • TFT Developer Kits
          • TFT 3" - TIVA
          • TFT 3" - STM32F3
          • TFT 3" - STM32F4
        • TFT Professional Kits
          • TFT 5 Pro Kit - TIVA
          • TFT 7 Pro Kit - STM32F4
          • TFT Plus Pro Kit - STM32F4
      • PIC32
        • mikroLab Kits
          • mikroLAB for PIC32
        • EasyStart Kits
          • EasyStart Kit - PIC32MX4
          • EasyStart Kit - PIC32MX7
        • TFT Designer Kits
          • TFT 3" - PIC32MX4
          • TFT 4" - PIC32MX7
        • TFT Developer Kits
          • TFT 3" - PIC32MX4
        • Home Automation
          • AWS Home
      • dsPIC/PIC24
        • mikroLab Kits
          • mikroLAB for dsPIC
          • mikroLAB for dsPIC L
          • mikroLAB for dsPIC XL
        • EasyStart Kits
          • EasyStart Kit - dsPIC33FJ
          • EasyStart Kit - dsPIC33EP
          • EasyStart Kit - PIC24EP
          • Easy Start Kit - dsPIC30
        • TFT Designer Kits
          • TFT 3" - dsPIC33FJ
          • TFT 3" - dsPIC33EP
          • TFT 3" - PIC24EP
          • TFT 3" - PIC24FJ
        • TFT Developer Kits
          • TFT 3" - dsPIC33FJ
          • TFT 3" - PIC24FJ
          • TFT 3" - PIC24EP
          • TFT 3" - dsPIC33EP
      • AVR
        • mikroLab Kits
          • mikroLAB for AVR
          • mikroLAB for AVR L
          • mikroLAB for AVR XL
        • EasyStart Kits
          • Easy Start Kit - AVR
        • TFT Designer Kits
          • TFT Designer kit - XMEGA
        • TFT Developer Kits
          • TFT Developer kit - XMEGA
      • 8051
        • mikroLab Kits
          • mikroLAB for 8051 L
          • mikroLAB for 8051
        • EasyStart Kits
          • Easy Start Kit - 8051
  • Shop
  • Applications
  • Support
    • Helpdesk
    • Contact us
    • Forum
    • LibStock
    • Learn
    • Let's make
    • Books
  • Services
    • Planet Debug
    • Design Service
    • Product Customization
    • Contract Manufacturing
    • Premium Technical Support
  • News
  • Price :

    More info
Reset filter
  • 0
Authentication
Account

Create account

Forgot your password?

Your cart is empty !
View cart ( )
  1. Home
  2. Blog
  3. Not All GPS Units Are Created Equal

Not All GPS Units Are Created Equal

Published: 09/03/2016 | Post categories: Learn, RF Technologies & IOT

| Views:22257

Not All GPS Units Are Created Equal

Got lost this morning due to my bus driver getting himself lost. He dropped me off in an unfamiliar part of town and there I was, lost. Fortunately for me I had my handy dandy GPS and within a couple of minutes my fear was turn to joy. Yes, I wasn't going to be late to work today and no I wasn't going to have to beg for directions. GPS modules are great. They have revolutionized mapping and directional questions. What becomes unclear is how they differentiate from one another. Here at MikroElektronika we produce several units and although they look similar, their internal makeup is varied wildly. Let's dive into the models and dissect the internals to determine what purpose one would be more fitting for.

How Does GPS Work

gps-tracking-devices-technology-system-satellite

Easiest explanation of how the technology works is by the way of the word triangulation. 24 satellites orbit the earth at a mild 7000mi ( 11265km ) per hour. These satellites are transmitters and broadcast a weak 50 watt signal. Now that may sound like alot, but when you consider it is transmitting from 12,000 mi ( 19312 km ) away and over a broad area, the signal is spread very thin. Each transmission contains information about the ID of the satellite, status information, date, time, and position data relating to where the satellite should be at that time. If you have multiple satellites reporting to you, with some simple math you can calculate their paths relative to your receiver. Therefore position. Change in position can give you speed. Although I'd love to bore you to tears with ephemeris data and such, I'll let you find that information for yourself. Suffice to say, it works and it's awesome.

Incoming Data

Data transmitted comes in the form of encoded messages. The format of this data is primarily made up from the NMEA definitions. Each complete line of transmission is called a sentence and multiple sentence come across a transmit. Some of the sentences are:

  • AAM - Waypoint Arrival Alarm
  • ALM - Almanac data
  • APA - Auto Pilot A sentence
  • APB - Auto Pilot B sentence
  • BOD - Bearing Origin to Destination
  • BWC - Bearing using Great Circle route
  • DTM - Datum being used.
  • GGA - Fix information
  • GLL - Lat/Lon data
  • GRS - GPS Range Residuals
  • GSA - Overall Satellite data
  • GST - GPS Pseudorange Noise Statistics
  • GSV - Detailed Satellite data
  • MSK - send control for a beacon receiver
  • MSS - Beacon receiver status information.
  • RMA - recommended Loran data
  • RMB - recommended navigation data for gps
  • RMC - recommended minimum data for gps
  • RTE - route message
  • TRF - Transit Fix Data
  • STN - Multiple Data ID
  • VBW - dual Ground / Water Spped
  • VTG - Vector track an Speed over the Ground
  • WCV - Waypoint closure velocity (Velocity Made Good)
  • WPL - Waypoint Location information
  • XTC - cross track error
  • XTE - measured cross track error
  • ZTG - Zulu (UTC) time and time to go (to destination)
  • ZDA - Date and Time
  • HCHDG - Compass output
  • PSLIB - Remote Control for a DGPS receiver

Each one of these sentences have specific information and are related to a unique form of location information. What this means is that you could pick a GPS that has support for several sentences that are related to marine navigation but your application will never see water. It could be the opposite as well. You chose the least expensive GPS module you could find for your marine application but unfortunately, that GPS may not support marine specifics.

Here is some good news. Most of your GPS modules today support the majority of these standards. In fact, if they claim a NMEA 2.0 compatibility then you will have a broad selection of the most common sentences.

MikroE. GPS Modules

  • GPS clickUblox LEA-6 Series drives this workhorse.
  • GPS click - L10Quectel L10 drives this alternative
  • GPS 2 clickGPS 2 with the Quectel L30
  • GPS 3 clickGPS 3 carries an integrated patch antenna
  • GNSS clickGNSS L86 Module with Integrated Patch Antenna
  • Nano GPS clickNano GPS click

With such a selection, how to choose? This is where your application will answer this. For those that need compact with integrated antennas, your choices are GPS 3, GNSS, and Nano. If space isn't the issue then you have some additional choices. Other variables that come into question is sentence support, sensitivity, and power efficiency.

Sentence Support

GPS Model AAM ALM APA APB BOD BWC DTM GGA GLL GRS GSA GST GSV MSK MSS RMA RMB RMC RTE TRF STN VBW VTG WCV WPL XTC XTE ZTG ZDA
GPS X X X X X X X X X
GPS L10 X X X X X X X
GPS 2 X X X X X X X
GPS 3 X X X X X X
GNSS X X X X X X
Nano X X X X X X X

Sensitivity

This measurement will determine if your GPS will work when partially covered, in remote areas, or even indoors. The lower the number the lower the signal can go in strength before it is received. Low sensitivity numbers mean a lower requirements for reception.

Model Tracking Reacquisition Cold Start
GPS -162 dBm -160 dBm -148 dBm
GPS L10 -162 dBm -160 dBm -145 dBm
GPS 2 -163 dBm -160 dBm -148 dBm
GPS 3 -165 dBm -160 dBm -148 dBm
GNSS -165 dBm -160 dBm -148 dBm
Nano -163 dBm -162 dBm -148 dBm

Acquisition Time

Not only does your application depend on how, but when will the GPS receive it's first location fix. The lower the time the faster it will start to report accurate location. However, sometimes this comes at a cost of power. Choosing a low fix time means your receiver will be on for less time which turns into quicker results.

Model Cold Start Warm Start Hot Start
GPS <26s <26s <1s
GPS L10 <35s <35s <1s
GPS 2 <35s <35s <1s
GPS 3 <15s <5s <1s
GNSS <15s <5s <1s
Nano <35s <32s <1s

Power

When building a portable application or potentially on off-grid project, power becomes a concern. Each model has both a Acquisition power requirement, and active tracking requirement but can also include several power saving modes. Units that have an adaptive mode will use an internal algorithm to switch the power on and off at regular intervals in order to save power. Others have a standby mode that allows for quick wake-up and a warm acquisition of position.

Model Acquisition Tracking Standby Adaptive
GPS 47mA 41mA 12mA
GPS L10 52mA 38mA 2mA
GPS 2 40mA 36mA 17uA 10mA
GPS 3 25mA 20mA 1mA 3mA
GNSS 25mA 22mA 1mA 3mA
Nano 43mA 40mA 90uA 6mA

Great, I have a GPS, but how to I get anything useful out of it?

You might be happy to learn that all the parsing of the complex sentences has already been done for you. All you need to do is get the data from the GPS to our GPS Parser library and it will do the rest. You can download already packed version of parser from Libstock.

https://github.com/MikroElektronika/GPS_Parser

Here's how it works. As characters are coming from the GPS, put them in the parser. The parser will detect when a complete sentence has been provided and parse it into it's respective elements.

It is preferable to have this happen within an interrupt to insure no characters are dropped during transmission.

void UART3_RX_ISR() iv IVT_INT_USART3 ics ICS_AUTO
{
    if( RXNE_USART3_SR_bit )
    {
        char tmp = USART3_DR;
        gps_put( tmp );
    }
}

gps_put( char )  is the function called in the ISR that places the character in the parser buffer. It would be inefficient to do the parsing in the ISR. That and it is poor coding to have too much code happening in the ISR itself. To do the processing of the strings, a worker function is needed.

void main()
{
    system_init();
  
    while( 1 )
    {
        gps_parse();
    }
}

gps_parse()  is the working engine that will, when a sentence is received, will parse the sentence into respective parts.

What kind of information can you extract from the parser depends on what the module supports. The good news is that almost all GPS GNSS modules on the market support the basic sentences which are GGA, RMC, GSA, GSV, GLL, VTG. These are the universal structures will give an application most if not all the information needed for location, speed, direction, time, and navigation.

location_t* gps_current_lon( void );
location_t* gps_current_lat( void );
TimeStruct*gps_current_time( void );

Want to know when the last time the GPS was given its last fix?

utc_time_t* gps_current_fix( void );

Need to know how good quality of the last fix was?
fix_t gps_gga_fix_quality( void );

What about satellite count? That one is found in the GGA sentence.

uint8_t gps_gga_satcount( void );

Need some more complex. How about the dilution of precision in the horizontal component? That's found in the GSA sentence.

float gps_gsa_horizontal_dilution( void );

The point is that inside the parser there are MANY types of information you can gain from the parser. The next question is efficiency. How big is this code if you are parsing everything? Maybe I don't need everything. Ok, solution is found in the gps_config.h  file.

#ifndef _GPS_CONFIG_H
#define _GPS_CONFIG_H

#define UBLOX_6
//#define QUECTEL_L10
//#define QUECTEL_L30
//#define QUECTEL_L80
//#define HORNET_NANO

/* Universal sentences automatically supported
   GGA,RMC,GSA,GSV,GLL,VTG
*/

#if defined( UBLOX_6 )
#define DTM
#define GBS
#define GPQ
#define GRS
#define GST
#define THS
#define TXT
#endif

#if defined( QUECTEL_L10 )
#define ZDA
#define TXT
#endif

#if defined( QUECTEL_L30 )
#define ZDA
#endif

#if defined( QUECTEL_L80 )
#define TXT
#endif

#if defined( HORNET_NANO )
#define MSS

#endif

#endif

You can comment out the models you are not using or even leave all of them uncommitted to just provide the basics. Re-compile and now your code is smaller in size.

How about a full example:

Example

#include "scheduler.h"
#include "gps_parser.h"

#define MSG( TXT ) UART1_Write_Text( TXT )

sbit STATUS_LED at GPIOB_ODR.B0;
sbit RX_LED at GPIOB_ODR.B1;
sbit POWER at GPIOA_ODR.B0;
sbit RESET at GPIOC_ODR.B2;
sbit WAKEUP at GPIOA_ODR.B4;

static void check_gps()
{
    char text[80];
    location_t *me;

    me = gps_current_lat();

    sprintf( text, "LatituderntDegrees: %drntMinutes: %4frntDirection %drn",
             me->degrees, me->minutes, me->azmuth );
    MSG( text );

    me = gps_current_lon();

    sprintf( text, "LongituderntDegrees: %drntMinutes: %4frntDirection %drn",
             me->degrees, me->minutes, me->azmuth );
    MSG( text );

    sprintf( text, "Speed:rnt%frn", gps_rmc_speed() );
    MSG( text );

    sprintf( text, "Num of sats in view:rnt%drn", gps_gga_satcount() );
    MSG( text );

    sprintf( text, "Magnetic var:rnt%frn", gps_vtg_mag() );
    MSG( text );

    sprintf( text, "Tracking:rnt%frn", gps_rmc_track() );
    MSG( text );

    sprintf( text, "Altitude:rnt%frn", gps_gga_altitude() );
    MSG( text );

}

//Timer2 Prescaler :575; Preload = 62499; Actual Interrupt Time = 500 ms
void init_timer2()
{
    RCC_APB1ENR.TIM2EN = 1;
    TIM2_CR1.CEN = 0;
    TIM2_PSC = 575;
    TIM2_ARR = 62499;
    TIM2_DIER.UIE = 1;
    TIM2_CR1.CEN = 1;
}

void gps_initialize()
{
    RESET = 1;
    Delay_ms( 300 );
    RESET = 0;

    POWER = 0;
    Delay_ms( 100 );
    POWER = 1;
    Delay_ms( 2000 );
    POWER = 0;
    Delay_ms( 100 );
}

void system_init()
{
    GPIO_Digital_Output( &GPIOA_BASE, _GPIO_PINMASK_0 );
    GPIO_Digital_Output( &GPIOB_BASE, _GPIO_PINMASK_0 | _GPIO_PINMASK_1 );
    GPIO_Digital_Output( &GPIOC_BASE, _GPIO_PINMASK_2 );

    GPIO_Digital_Input( &GPIOA_BASE, _GPIO_PINMASK_4 );

    UART1_Init_Advanced( 115200, _UART_8_BIT_DATA, _UART_NOPARITY,
                         _UART_ONE_STOPBIT, &_GPIO_MODULE_USART1_PA9_10 );
    Delay_ms( 100 );
    RXNEIE_USART1_CR1_bit = 1;

    UART2_Init_Advanced(  9600, _UART_8_BIT_DATA, _UART_NOPARITY,
                          _UART_ONE_STOPBIT, &_GPIO_MODULE_USART2_PD56 );

    Delay_ms( 100 );
    RXNEIE_USART2_CR1_bit = 1;

    UART3_Init_Advanced( 9600, _UART_8_BIT_DATA, _UART_NOPARITY,
                         _UART_ONE_STOPBIT, &_GPIO_MODULE_USART3_PD89 );

    Delay_ms( 100 );
    
    init_timer2();
    task_scheduler_init( 500 );
    gps_initialize();

    NVIC_IntEnable( IVT_INT_USART1 );
    NVIC_IntEnable( IVT_INT_USART2 );
    NVIC_IntEnable(IVT_INT_TIM2);

    EnableInterrupts();
}

void main()
{
    system_init();
    task_add( check_gps, SCH_SECONDS_5 );
    task_add( heartbeat, SCH_SECONDS_1 );

    task_scheduler_start();

    while( 1 )
    {
        gps_parse();
        task_dispatch();
    }
}

void UART2_RX_ISR() iv IVT_INT_USART2 ics ICS_AUTO
{
    if( RXNE_USART2_SR_bit )
    {
        char tmp = USART2_DR;
        gps_put( tmp );
    }
}

void Timer2_interrupt() iv IVT_INT_TIM2
{
    TIM2_SR.UIF = 0;
    task_scheduler_clock();
}

Note

The GPS parser does require the Time library in the MikroC. IDE / Compiler. It is installed by default in all new installations, but you will have to select Time in the Library Manager.

Summary

Getting information from the GPS is a matter of slicing and dicing the sentences into parts. The parser does a good job of this and is a valuable tool for those of you wondering out into application land and need some "guidance". Some units have custom or unique sentences supported by their brand or model. These sentences would have to be added to the parser, but since the code is open source, have at it. Just make sure you do a pull request so others can benefit from your great work.

References

GPS Information - http://gpsinformation.net 2016

Garmin / How GPS Works - http://www.garmin.com 2016

Products mentioned in this post

  • Compare

    More info

    MikroE Wireless Connectivity GPS Click front
    $49.00
    GPS Click

    GPS click is a compact solution for adding GPS functionality to your device. It carries the u-blox LEA-6S high-performance position engine. The click is designed to run on a 3.3V power supply and communicates with the target MCU through UART or I2C interface. Data can also be acquired through a PC application using the USB connection.

    PID: MIKROE-1032
    $49.00
    MIKROE-1032

    Add To Cart

  • Compare

    More info

    Mikroe GPS2 click front
    GPS2 Click

    GPS 2 Click is a compact add-on board that provides users with positioning, navigation, and timing services. This board features the L30, a GPS receiver module that enables fast acquisition and tracking with SIRFstar IV technology from Quectel. This small-form-factor L1 band module operates with a frequency of 1575.42MHz, alongside accuracy from 2 up to...

    PID: MIKROE-1374
    Legacy

    Unavailable

  • Compare

    More info

    Mikroe Wireless Connectivity GPS3 click front
    $44.00
    GPS3 Click

    GPS 3 Click is a compact add-on board that provides users with positioning, navigation, and timing services. This board features the L80, a GPS receiver module with a patch antenna from Quectel, equipped with an MTK positioning engine. Combining an advanced AGPS called EASY™ and proven Alwayslocate™ technology, the L80 achieves the highest performance and...

    PID: MIKROE-1714
    $44.00
    MIKROE-1714

    Add To Cart

  • Compare

    More info

    Mikroe Wireless Connectivity GNSS click front
    $46.00
    GNSS Click

    GNSS Click is a compact add-on board that provides fast positioning capability. This board features the L86, an ultra-compact GNSS Patch-on-Top (POT) module from Quectel Wireless Solutions. It is a concurrent GNSS receiver with a multi-GNSS engine that provides simultaneous GPS, GLONASS, Galileo, and QZSS open-service L1 reception capability. Combining...

    PID: MIKROE-1850
    $46.00
    MIKROE-1850

    Add To Cart

  • Compare

    More info

    MikroE Wireless Connectivity NANO GPS click front
    $59.00
    NANO GPS Click

    Nano GPS click carries the Nano Hornet module from OriginGPS. It’s the smallest GPS module with an integrated patch antenna (measuring just 10x10x3.8mm).

    PID: MIKROE-1912
    $59.00
    MIKROE-1912

    Add To Cart

Loading

Load more

Loading

Share this post

MIKROE

MIKROE is a development tools company dedicated to standardization and time-saving in the embedded industry.

  • About us
  • Success story
  • Contact
  • PressKit
  • Timeline
  • Partners
  • Legal
  • Distributors
  • Legacy Products

SOLUTIONS

  • Click boards™
  • Development boards
  • Mikromedia
  • CODEGRIP
  • NECTO Studio
  • Planet Debug

SUPPORT

  • Helpdesk
  • Forum
  • Libstock
  • Learn
  • Let's Make
  • eBooks
  • Premium TS
  • Design service
  • Product Customization
  • Contract Manufacturing

STANDARD

  • mikroBUS™
  • mikroSDK
  • SiBRAIN
  • DISCON

Prodavnica za inostrano tržište

Nalazite se na prodavnici za inostrano tržište. Da li želite da Vas odvedemo na prodavnicu koja je namenjena za Srbiju?

Prodavnica za inostrano tržište

Nalazite se na prodavnici za inostrano tržište. Da li želite da Vas odvedemo na prodavnicu koja je namenjena za Srbiju?

Daily products releases, special offers, and more

  • FOLLOW US:

  • instagram
  • linkedin
  • facebook
  • github
  • newsletter
  • youtube
  • twitter

Join us

Pridruži nam se

Careers
Internship
Posao
Napravi Click
Praksa
Copyright© 2023 MikroElektronika d.o.o.

Privacy