{"id":45948,"library":"pyubx2","title":"pyubx2","description":"A library for parsing and generating UBX protocol messages used by u-blox GNSS receivers. Current version 1.3.2, supports Python >=3.10. Actively maintained with regular releases.","status":"active","version":"1.3.2","language":"python","source_language":"en","source_url":"https://github.com/semuconsulting/pyubx2","tags":["gps","gnss","ublox","serial","protocol"],"install":[{"cmd":"pip install pyubx2","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"NMEA parsing support (optional)","package":"pynmea2","optional":true}],"imports":[{"note":"Library is not named 'ubx2'","wrong":"from ubx2 import UBXMessage","symbol":"UBXMessage","correct":"from pyubx2 import UBXMessage"},{"note":"UBXReader is a top-level export, not in a submodule","wrong":"from pyubx2.ubxread import UBXReader","symbol":"UBXReader","correct":"from pyubx2 import UBXReader"}],"quickstart":{"code":"from pyubx2 import UBXMessage, POLL, poll\nmsg = UBXMessage(b'\\xb5\\x62\\x06\\x01\\x03\\x00\\x01\\x06\\x01\\x0e', validate=False)\nprint(msg)\npoll_msg = poll(0x06, 0x01)\nprint(poll_msg)","lang":"python","description":"Parse a raw UBX message and generate a poll request."},"warnings":[{"fix":"Pass bytes object like b'\\xb5\\xb62...'","message":"UBXMessage constructor expects bytes (including sync chars), not a hex string.","severity":"gotcha","affected_versions":"<2.0"},{"fix":"Set validate=False if you want to parse malformed messages.","message":"Validation is enabled by default; messages with invalid checksums raise errors.","severity":"gotcha","affected_versions":">=1.0"},{"fix":"Use mode='serial' or mode='file' instead of protocol='serial'.","message":"The 'serial' protocol argument in UBXReader is deprecated; use 'mode' instead.","severity":"deprecated","affected_versions":">=1.2.0"},{"fix":"Upgrade Python or pin to pyubx2<1.3.0.","message":"Python 3.9 support dropped; requires Python >=3.10.","severity":"breaking","affected_versions":">=1.3.0"},{"fix":"Access fields via parsed_message.identity and parsed_message.payload.","message":"UBXReader yields (raw_data, parsed_message) tuples; parsed_message is an UBXMessage.","severity":"gotcha","affected_versions":">=1.0"},{"fix":"Use poll() to generate message bytes, then send them to the receiver.","message":"The 'poll()' function returns a message with length zero; does not communicate with device.","severity":"gotcha","affected_versions":">=1.0"}],"env_vars":null,"search_vec":"'1.3.2':20 '3.10':23 'activ':24 'blox':15 'current':18 'generat':7 'gnss':16,30 'gps':29 'librari':3 'maintain':25 'messag':10 'pars':5 'protocol':9,33 'python':22 'pyubx2':1 'receiv':17 'regular':27 'releas':28 'serial':32 'support':21 'u':14 'u-blox':13 'ublox':31 'ubx':8 'use':11 'version':19","created_at":"2026-06-07T12:57:30.963860+00:00","updated_at":"2026-06-07T12:57:30.963860+00:00","problems":[{"fix":"pip install pyubx2","cause":"Library not installed or wrong environment.","error":"ModuleNotFoundError: No module named 'pyubx2'"},{"fix":"Check that you pass correct UBX frame including sync chars b'\\xb5\\xb62'.","cause":"Message was parsed with validate=False but the bytes are invalid.","error":"ubxMessage.identity returns None or unexpected value"},{"fix":"Check input data integrity or set validate=False in UBXReader constructor.","cause":"UBXReader yielded None for parsed message (e.g., invalid data).","error":"AttributeError: 'NoneType' object has no attribute 'payload'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":null,"github":null,"docs":null,"changelog":null,"pypi":null,"npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["hardware","iot"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-29","last_verified":"2026-06-29","next_check":"2026-07-29","install_tag":null}}