Coder Social home page Coder Social logo

zubax / zubax_gnss Goto Github PK

View Code? Open in Web Editor NEW
48.0 13.0 57.0 30.04 MB

Zubax GNSS module

Home Page: https://zubax.com/products/gnss_2

License: GNU General Public License v3.0

Makefile 2.61% C++ 79.70% C 9.74% Python 7.81% Shell 0.15%
uavcan drone uav dronecode gps glonass gnss zubax

zubax_gnss's Introduction

Zubax GNSS

Forum Forum

Zubax GNSS 2 is a multipurpose high-performance positioning module interfaced via CAN bus, USB, and UART. It includes a state-of-the-art multi-system concurrent GPS+GLONASS+Galileo receiver, a high-precision barometric altimeter, and a 3-axis compass with thermal compensation. Zubax GNSS 2 supports a variety of standard protocols, which ensure compatibility with most of existing software and hardware: UAVCAN (over CAN bus), NMEA 0183 (over USB and UART), and u-Blox M8 protocol.

ZUBAX GNSS HOMEPAGE

Revisions

The following table documents existing modifications of Zubax GNSS hardware and compatible firmware versions.

Hardware Compatible firmware versions Branch
Zubax GNSS v1 (year 2014) 1.x, 2.x release_1.0, release_2.0
Zubax GNSS v2.1 (year 2015) 3.x release_3.0
Zubax GNSS v2.2 (year 2017) 4.x master
Zubax GNSS v2.3 (year 2019) 4.x, xโ‰ฅ1 see v2.2
Zubax GNSS v2.4 (year 2023) 4.x, xโ‰ฅ1 see v2.2

Please check out the corresponding branch to see instructions specific for your firmware version. Master branch always contains the newest version of firmware and it may be unstable.

Release notes

Newest entries at the top. Additional information is available upon request to [email protected].

Zubax GNSS v2.4

  • Replace the NVRAM/RTC backup supercapacitor because the original model is no longer available outside the US. The height of the new supercapacitor is 8.5 mm while the old model is 5.5 mm tall; hence, the total height of the device is increased by 3 mm.
  • Replace passive components that have reached the end-of-life with fully functionally equivalent alternatives.

Zubax GNSS v2.3

  • Upgrade the RF front-end to use a higher-performance LNA.
  • Switch most of the design to AEC-Q qualified components.

Zubax GNSS v2.2, firmware v4.1

  • Added support for Galileo, since the system is now operational. Now, Zubax GNSS 2 utilizes GPS+GLONASS+Galileo concurrently.
  • Added a configuration parameter that allows the user to change the dynamic model of the vehicle. Three options are available: Automotive, Sea, Airborne. Airborne is chosen by default.
  • Bootloader updated to version 1.1, where the field naming issue in zubax_id was resolved.
  • Static UAVCAN node ID setting takes precedence over the value provided by the bootloader.

Zubax GNSS v2.2, firmware v4.0

  • New GNSS RF front-end enables even better noise rejection and sensitivity.
  • Improved power supply noise filtering.
  • New compass: LIS3MDL instead of HMC5983.
  • Using Zubax Embedded Bootloader instead of the old PX4 UAVCAN bootloader. The new bootloader supports USB, UART, and CAN interfaces for firmware update purposes. Supported protocols are UAVCAN over CAN, and YMODEM/XMODEM/XMODEM-1K over USB and UART.
  • Faster sensor update rates.
  • Static temperature publishing rate is fixed at 1/5th of the static pressure publishing rate.

Zubax GNSS v2.1, firmware v3.2

  • Increased the default and the maximum compass publishing rate to 100 Hz.
  • Magnetometer output is processed through a three sample long median filter in order to work-around a bug in the HMC5983 sensor which causes it to periodically provide single erroneous measurements.

Zubax GNSS v2.1, firmware v3.1

  • Added an optional magnetic field rescaling feature in order to work around improper scale handling in some autopilots.

Bootloader

The Zubax Embedded Bootloader allows the end user to upgrade the firmware via USB (YMODEM/XMODEM/XMODEM-1K), UART (YMODEM/XMODEM/XMODEM-1K), or CAN (UAVCAN). The sources of the bootloader are located in the dedicated directory. No special steps are needed in order to build it - the makefile will build it automatically as needed. Please refer to the official documentation in order to learn more about the bootloader and how to use it.

The bootloader can be flashed either independently, or as a combined image together with the application (see below).

Building the firmware

You will need a GNU/Linux distribution to build the firmware.

  • Install the ARM GCC toolchain version 7.3.1.
  • Init the sources:
git submodule update --init --recursive
  • Build:
cd firmware
make binaries RELEASE=1 # RELEASE is optional; omit to build the debug version

The steps above will produce the following outputs in the build output directory:

  • com.zubax.*.application.bin - application binary suitable for bootloading, with the correct application descriptor.
  • com.zubax.*.compound.bin - above image combined with the bootloader; can be flashed on an empty MCU.
  • compound.elf - ELF file with embedded bootloader and correct application descriptor; can be used for symbol debugging. Since this ELF includes the bootloader and has correct application descriptor, it can be flashed and executed directly with an SWD debugger, no extra steps required.

Loading the firmware

Using in-circuit debuggers

Avialable loaders:

cd ./zubax_chibios/tools

./blackmagic_flash.sh   # Black Magic Debug Probe
./stlink_flash.sh       # ST-Link v2

Using the bootloader

Please refer to the official documentation.

License

The firmware is licensed under the terms of GNU GPL v3.

Copyright (C) 2015 Zubax Robotics [email protected]

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

zubax_gnss's People

Contributors

gitter-badger avatar hsteinhaus avatar j3qq4hch avatar pavel-kirienko avatar zentrus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zubax_gnss's Issues

Error during building - air_sensor.cpp

Getting following error on the latest commit.

cc1plus: error: -Werror=implicit-fallthrough: no option -Wimplicit-fallthrough
zubax_chibios///chibios/os/common/ports/ARMCMx/compilers/GCC/rules.mk:198: recipe for target 'build/obj/air_sensor.o' failed
make: *** [build/obj/air_sensor.o] Error 1

GNU Tools for ARM Embedded Processors 6.3.1, but tried with 7 version as well with no success.

Explicitly state in the docs that the compass requires calibration

From a relevant email exchange:

The magnetic field sensor populated on Zubax GNSS 2 is not factory-calibrated. Calibration is intentionally omitted because it is impossible to account for magnetic field distortions caused by the end user's hardware and environment. You should calibrate the compass individually for each unit in your specific application in order to achieve reliable results.

Accurate timestamping

u-Blox can be configured to emit the precise absolute timestamp of the next PPS pulse. This feature, in combination with the hardware PPS capture, can be used to implement very accurate fix timestamping.

Drwatson must ignore incorrect unicode received from CLI

Now we're going to test USB. If this application is running on a virtual machine, make sure that the corresponsing USB device is made available for the VM, then press ENTER.

Connecting via USB...
FAILURE: UnicodeDecodeError('utf-8', b'~x\xf0~~x\xf0~systime ?\r\n', 2, 3, 'invalid continuation byte')

Feature request: supply raw GPS time if possible

Some software that was developed to interface with GPS receivers directly, internally works on lower-level GPS time information. For instance ArduPilot's internal realtime clock expects to be adjusted by a tuple consisting of the GPS week number plus an offset in ms since begin of GPS week. It is very hard to reconstruct this information from UTC time, as GPS time runs without any respect to leap seconds.

It would be very nice if the raw GPS time info is made public in some way.

Porting bootloader to STM32F4xx platform

Hi,

I'm working to port the bootloader to STM32F405, so far , what i did was to change these:

In board.h and mcuconf.h:

#define STM32_HSECLK 8000000
#define STM32_LSECLK 1
#define STM32_VDD 300
#define STM32F4XX
#define STM32F405xx
#define STM32F40_41xxx
#define STM32F4xx_MCUCONF

Also in makefile ๐Ÿ‘
include zubax_chibios/rules_stm32f40x.mk

And create the rules_stm32f40x.mk file

CHIBIOS := $(ZUBAX_CHIBIOS_DIR)/chibios
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/startup_stm32f4xx.mk
include $(CHIBIOS)/os/hal/ports/STM32/STM32F4xx/platform.mk
include $(CHIBIOS)/os/rt/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk

LDSCRIPT ?= $(PORTLD)/STM32F405xG.ld

After all of these it's complaining about clocking issues, and i suspect there are some wrong include files
zubax_chibios//chibios/os/hal/ports/STM32/STM32F4xx/hal_lld.h:1115:2: error: #error "STM32_PLLVCO outside acceptable range (STM32_PLLVCO_MIN...STM32_PLLVCO_MAX)"

Thanks,
Adrian.

cc1plus Werror

Whenever I attempt "make binaries" on the Raspberry Pi, I get the following error messages.

Compiling main.cpp
cc1plus: error: -Werror=implicit-fallthrough: no option -Wimplicit-fallthrough
cc1plus: error: -Werror=bool-operation: no option -Wbool-operation
zubax_chibios///chibios/os/common/ports/ARMCMx/compilers/GCC/rules.mk:198: recipe for target 'build/obj/main.o' failed
make: *** [build/obj/main.o] Error 1

I also had to separately clone libuavcan and zubax_chibios. Might that have something to do with it?

Any schematic for this?

Is the hardware opensource? I'm curious where I can find the schematic for this, many thx

the application descriptor "APDesc00" how did it create in bin?

question 1
by the source code i see "APDesc00' set by linker script"
but in the ld.ld
only define the address by "PROVIDE(DeviceSignatureStorage = ORIGIN(flash) - 256);"
i cant find the define of "APDes00"

question 2
after build the firmware , check bin file , why the address of "APDesc00" is not equal ORIGIN(flash) - 256) ?
thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.