from collections import defaultdict
from skidl import Pin, Part, Alias, SchLib, SKIDL, TEMPLATE

from skidl.pin import pin_types

SKIDL_lib_version = '0.0.1'

RF_GPS = SchLib(tool=SKIDL).add_parts(*[
        Part(**{ 'name':'L70-R', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'L70-R'}), 'ref_prefix':'U', 'fplist':['RF_GPS:Quectel_L70-R'], 'footprint':'RF_GPS:Quectel_L70-R', 'keywords':'quectel GPS GNSS module', 'description':'', 'datasheet':'https://www.quectel.com/product/gps-only-l70-r', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nL70-R\n\nquectel GPS GNSS module', 'pins':[
            Pin(num='1',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='10',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='11',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='12',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='13',name='ANTON',func=pin_types.OUTPUT,unit=1),
            Pin(num='14',name='VCC_RF',func=pin_types.PWROUT,unit=1),
            Pin(num='15',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='16',name='RESERVED',func=pin_types.PASSIVE,unit=1),
            Pin(num='17',name='RESERVED',func=pin_types.PASSIVE,unit=1),
            Pin(num='18',name='RESERVED',func=pin_types.PASSIVE,unit=1),
            Pin(num='2',name='TXD1',func=pin_types.OUTPUT,unit=1),
            Pin(num='3',name='RXD1',func=pin_types.INPUT,unit=1),
            Pin(num='4',name='1PPS',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='STANDBY',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='7',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='8',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='9',name='~{RESET}',func=pin_types.INPUT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'L80-R', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'L80-R'}), 'ref_prefix':'U', 'fplist':['RF_GPS:Quectel_L80-R'], 'footprint':'RF_GPS:Quectel_L80-R', 'keywords':'quectel GPS GNSS module', 'description':'', 'datasheet':'https://www.quectel.com/UploadImage/Downlad/Quectel_L80-R_Hardware_Design_V1.2.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nL80-R\n\nquectel GPS GNSS module', 'pins':[
            Pin(num='1',name='RXD1',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='~{RESET}',func=pin_types.INPUT,unit=1),
            Pin(num='11',name='RESERVED',func=pin_types.PASSIVE,unit=1),
            Pin(num='12',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='2',name='TXD1',func=pin_types.OUTPUT,unit=1),
            Pin(num='3',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='4',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='5',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='6',name='1PPS',func=pin_types.OUTPUT,unit=1),
            Pin(num='7',name='RESERVED',func=pin_types.PASSIVE,unit=1),
            Pin(num='8',name='RESERVED',func=pin_types.PASSIVE,unit=1),
            Pin(num='9',name='NC',func=pin_types.NOCONNECT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'LEA-M8F', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'LEA-M8F'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_LEA'], 'footprint':'RF_GPS:ublox_LEA', 'keywords':'ublox GPS GNSS module', 'description':'', 'datasheet':'https://www.u-blox.com/sites/default/files/products/documents/LEA-M8F_DataSheet_%28UBX-14001772%29.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nLEA-M8F\n\nublox GPS GNSS module', 'pins':[
            Pin(num='1',name='SDA2/~{SPI_CS}',func=pin_types.BIDIR,unit=1),
            Pin(num='10',name='~{RESET}',func=pin_types.INPUT,unit=1),
            Pin(num='11',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='12',name='~{SAFEBOOT}',func=pin_types.INPUT,unit=1),
            Pin(num='13',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='14',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='15',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='16',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='17',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='18',name='VCC_RF',func=pin_types.PWROUT,unit=1),
            Pin(num='19',name='V_ANT',func=pin_types.PWRIN,unit=1),
            Pin(num='2',name='SCL2/SPI_CLK',func=pin_types.INPUT,unit=1),
            Pin(num='20',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='21',name='FREQ_PHASE_IN1',func=pin_types.INPUT,unit=1),
            Pin(num='22',name='SDA_DAC',func=pin_types.BIDIR,unit=1),
            Pin(num='23',name='SCL_DAC',func=pin_types.OUTPUT,unit=1),
            Pin(num='24',name='VDD_USB',func=pin_types.PWRIN,unit=1),
            Pin(num='25',name='USB_DM',func=pin_types.BIDIR,unit=1),
            Pin(num='26',name='USB_DP',func=pin_types.BIDIR,unit=1),
            Pin(num='27',name='FREQ_PHASE_IN0',func=pin_types.INPUT,unit=1),
            Pin(num='28',name='TIMEPULSE/TP2/~{SAFEBOOT}',func=pin_types.BIDIR,unit=1),
            Pin(num='3',name='TxD1/SPI_MISO',func=pin_types.OUTPUT,unit=1),
            Pin(num='4',name='RxD1/SPI_MOSI',func=pin_types.INPUT,unit=1),
            Pin(num='5',name='D_SEL',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='7',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='8',name='VCC_OUT',func=pin_types.PWROUT,unit=1),
            Pin(num='9',name='REF_FREQ_OUT',func=pin_types.OUTPUT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'LEA-M8S', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'LEA-M8S'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_LEA'], 'footprint':'RF_GPS:ublox_LEA', 'keywords':'ublox GPS GNSS module', 'description':'', 'datasheet':'https://www.u-blox.com/sites/default/files/LEA-M8S-FW3_DataSheet_%28UBX-16010205%29.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nLEA-M8S\n\nublox GPS GNSS module', 'pins':[
            Pin(num='1',name='SDA',func=pin_types.BIDIR,unit=1),
            Pin(num='10',name='~{RESET}',func=pin_types.INPUT,unit=1),
            Pin(num='11',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='12',name='~{SAFEBOOT}',func=pin_types.INPUT,unit=1),
            Pin(num='13',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='14',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='15',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='16',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='17',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='18',name='VCC_RF',func=pin_types.PWROUT,unit=1),
            Pin(num='19',name='V_ANT',func=pin_types.PWRIN,unit=1),
            Pin(num='2',name='SCL',func=pin_types.INPUT,unit=1),
            Pin(num='20',name='EXTINT1',func=pin_types.INPUT,unit=1),
            Pin(num='21',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='22',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='23',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='24',name='VDD_USB',func=pin_types.PWRIN,unit=1),
            Pin(num='25',name='USB_DM',func=pin_types.BIDIR,unit=1),
            Pin(num='26',name='USB_DP',func=pin_types.BIDIR,unit=1),
            Pin(num='27',name='EXTINT0',func=pin_types.INPUT,unit=1),
            Pin(num='28',name='TIMEPULSE',func=pin_types.OUTPUT,unit=1),
            Pin(num='3',name='TXD',func=pin_types.OUTPUT,unit=1),
            Pin(num='4',name='RXD',func=pin_types.INPUT,unit=1),
            Pin(num='5',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='6',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='7',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='8',name='VCC_OUT',func=pin_types.PWROUT,unit=1),
            Pin(num='9',name='RESERVED',func=pin_types.NOCONNECT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'LEA-M8T', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'LEA-M8T'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_LEA'], 'footprint':'RF_GPS:ublox_LEA', 'keywords':'ublox GPS GNSS module', 'description':'', 'datasheet':'https://content.u-blox.com/sites/default/files/documents/NEO-LEA-M8T-FW3_DataSheet_UBX-15025193.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nLEA-M8T\n\nublox GPS GNSS module', 'pins':[
            Pin(num='1',name='SDA/~{SPI_CS}',func=pin_types.BIDIR,unit=1),
            Pin(num='10',name='~{RESET}',func=pin_types.INPUT,unit=1),
            Pin(num='11',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='12',name='TP2/~{SAFEBOOT}',func=pin_types.BIDIR,unit=1),
            Pin(num='13',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='14',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='15',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='16',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='17',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='18',name='VCC_RF',func=pin_types.PWROUT,unit=1),
            Pin(num='19',name='V_ANT',func=pin_types.PWRIN,unit=1),
            Pin(num='2',name='SCL/SPI_CLK',func=pin_types.INPUT,unit=1),
            Pin(num='20',name='EXTINT1',func=pin_types.INPUT,unit=1),
            Pin(num='21',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='22',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='23',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='24',name='VDD_USB',func=pin_types.PWRIN,unit=1),
            Pin(num='25',name='USB_DM',func=pin_types.BIDIR,unit=1),
            Pin(num='26',name='USB_DP',func=pin_types.BIDIR,unit=1),
            Pin(num='27',name='EXTINT0',func=pin_types.INPUT,unit=1),
            Pin(num='28',name='TIMEPULSE',func=pin_types.OUTPUT,unit=1),
            Pin(num='3',name='TXD/SPI_MISO',func=pin_types.OUTPUT,unit=1),
            Pin(num='4',name='RXD/SPI_MOSI',func=pin_types.INPUT,unit=1),
            Pin(num='5',name='D_SEL',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='7',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='8',name='VCC_OUT',func=pin_types.PWROUT,unit=1),
            Pin(num='9',name='RESERVED',func=pin_types.NOCONNECT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'MAX-8C', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'MAX-8C'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_MAX'], 'footprint':'RF_GPS:ublox_MAX', 'keywords':'ublox GPS GNSS module', 'description':'', 'datasheet':'https://www.u-blox.com/sites/default/files/MAX-8_DataSheet_%28UBX-16000093%29.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nMAX-8C\n\nublox GPS GNSS module', 'pins':[
            Pin(num='1',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='10',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='11',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='12',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='13',name='LNA_EN',func=pin_types.OUTPUT,unit=1),
            Pin(num='14',name='VCC_RF',func=pin_types.PWROUT,unit=1),
            Pin(num='15',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='16',name='SDA',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='SCL',func=pin_types.INPUT,unit=1),
            Pin(num='18',name='~{SAFEBOOT}',func=pin_types.INPUT,unit=1),
            Pin(num='2',name='TXD',func=pin_types.OUTPUT,unit=1),
            Pin(num='3',name='RXD',func=pin_types.INPUT,unit=1),
            Pin(num='4',name='TIMEPULSE',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='EXTINT',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='7',name='VCC_IO',func=pin_types.PWRIN,unit=1),
            Pin(num='8',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='9',name='~{RESET}',func=pin_types.INPUT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'MAX-M10S', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'MAX-M10S'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_MAX'], 'footprint':'RF_GPS:ublox_MAX', 'keywords':'ublox GPS GNSS module', 'description':'', 'datasheet':'https://content.u-blox.com/sites/default/files/MAX-M10S_DataSheet_UBX-20035208.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nMAX-M10S\n\nublox GPS GNSS module', 'pins':[
            Pin(num='1',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='10',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='11',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='12',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='13',name='LNA_EN',func=pin_types.OUTPUT,unit=1),
            Pin(num='14',name='VCC_RF',func=pin_types.PWROUT,unit=1),
            Pin(num='15',name='VIO_SEL',func=pin_types.INPUT,unit=1),
            Pin(num='16',name='SDA',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='SCL',func=pin_types.INPUT,unit=1),
            Pin(num='18',name='~{SAFEBOOT}',func=pin_types.INPUT,unit=1),
            Pin(num='2',name='TXD',func=pin_types.OUTPUT,unit=1),
            Pin(num='3',name='RXD',func=pin_types.INPUT,unit=1),
            Pin(num='4',name='TIMEPULSE',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='EXTINT',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='7',name='VCC_IO',func=pin_types.PWRIN,unit=1),
            Pin(num='8',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='9',name='~{RESET}',func=pin_types.INPUT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'MAX-M8W', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'MAX-M8W'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_MAX'], 'footprint':'RF_GPS:ublox_MAX', 'keywords':'ublox GPS GNSS module', 'description':'', 'datasheet':'https://www.u-blox.com/sites/default/files/MAX-M8-FW3_DataSheet_%28UBX-15031506%29.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nMAX-M8W\n\nublox GPS GNSS module', 'pins':[
            Pin(num='1',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='10',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='11',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='12',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='13',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='14',name='VCC_RF',func=pin_types.PWROUT,unit=1),
            Pin(num='15',name='V_ANT',func=pin_types.PWRIN,unit=1),
            Pin(num='16',name='SDA',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='SCL',func=pin_types.INPUT,unit=1),
            Pin(num='18',name='~{SAFEBOOT}',func=pin_types.INPUT,unit=1),
            Pin(num='2',name='TXD',func=pin_types.OUTPUT,unit=1),
            Pin(num='3',name='RXD',func=pin_types.INPUT,unit=1),
            Pin(num='4',name='TIMEPULSE',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='EXTINT',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='7',name='VCC_IO',func=pin_types.PWRIN,unit=1),
            Pin(num='8',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='9',name='~{RESET}',func=pin_types.INPUT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'NEO-M8M', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'NEO-M8M'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_NEO'], 'footprint':'RF_GPS:ublox_NEO', 'keywords':'ublox GPS GNSS module', 'description':'', 'datasheet':'https://content.u-blox.com/sites/default/files/NEO-M8-FW3_DataSheet_UBX-15031086.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nNEO-M8M\n\nublox GPS GNSS module', 'pins':[
            Pin(num='1',name='~{SAFEBOOT}',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='11',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='12',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='13',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='14',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='15',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='16',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='17',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='18',name='SDA/~{SPI_CS}',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='SCL/SPI_CLK',func=pin_types.INPUT,unit=1),
            Pin(num='2',name='D_SEL',func=pin_types.INPUT,unit=1),
            Pin(num='20',name='TXD/SPI_MISO',func=pin_types.OUTPUT,unit=1),
            Pin(num='21',name='RXD/SPI_MOSI',func=pin_types.INPUT,unit=1),
            Pin(num='22',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='23',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='24',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='3',name='TIMEPULSE',func=pin_types.OUTPUT,unit=1),
            Pin(num='4',name='EXTINT',func=pin_types.INPUT,unit=1),
            Pin(num='5',name='USB_DM',func=pin_types.BIDIR,unit=1),
            Pin(num='6',name='USB_DP',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='VDD_USB',func=pin_types.PWRIN,unit=1),
            Pin(num='8',name='~{RESET}',func=pin_types.INPUT,unit=1),
            Pin(num='9',name='VCC_RF',func=pin_types.PWROUT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'NEO-M8N', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'NEO-M8N'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_NEO'], 'footprint':'RF_GPS:ublox_NEO', 'keywords':'ublox GPS GNSS module', 'description':'', 'datasheet':'https://content.u-blox.com/sites/default/files/NEO-M8-FW3_DataSheet_UBX-15031086.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nNEO-M8N\n\nublox GPS GNSS module', 'pins':[
            Pin(num='1',name='~{SAFEBOOT}',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='11',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='12',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='13',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='14',name='LNA_EN',func=pin_types.OUTPUT,unit=1),
            Pin(num='15',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='16',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='17',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='18',name='SDA/~{SPI_CS}',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='SCL/SPI_CLK',func=pin_types.INPUT,unit=1),
            Pin(num='2',name='D_SEL',func=pin_types.INPUT,unit=1),
            Pin(num='20',name='TXD/SPI_MISO',func=pin_types.OUTPUT,unit=1),
            Pin(num='21',name='RXD/SPI_MOSI',func=pin_types.INPUT,unit=1),
            Pin(num='22',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='23',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='24',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='3',name='TIMEPULSE',func=pin_types.OUTPUT,unit=1),
            Pin(num='4',name='EXTINT',func=pin_types.INPUT,unit=1),
            Pin(num='5',name='USB_DM',func=pin_types.BIDIR,unit=1),
            Pin(num='6',name='USB_DP',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='VDD_USB',func=pin_types.PWRIN,unit=1),
            Pin(num='8',name='~{RESET}',func=pin_types.INPUT,unit=1),
            Pin(num='9',name='VCC_RF',func=pin_types.PWROUT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'NEO-M8P', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'NEO-M8P'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_NEO'], 'footprint':'RF_GPS:ublox_NEO', 'keywords':'ublox GPS GNSS RTK module', 'description':'', 'datasheet':'https://content.u-blox.com/sites/default/files/NEO-M8P_DataSheet_UBX-15016656.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nNEO-M8P\n\nublox GPS GNSS RTK module', 'pins':[
            Pin(num='1',name='~{SAFEBOOT}',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='11',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='12',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='13',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='14',name='LNA_EN',func=pin_types.OUTPUT,unit=1),
            Pin(num='15',name='RTK_STAT',func=pin_types.OUTPUT,unit=1),
            Pin(num='16',name='GEOFENCE_STAT',func=pin_types.OUTPUT,unit=1),
            Pin(num='17',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='18',name='SDA/~{SPI_CS}',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='SCL/SPI_CLK',func=pin_types.INPUT,unit=1),
            Pin(num='2',name='D_SEL',func=pin_types.INPUT,unit=1),
            Pin(num='20',name='TXD/SPI_MISO',func=pin_types.OUTPUT,unit=1),
            Pin(num='21',name='RXD/SPI_MOSI',func=pin_types.INPUT,unit=1),
            Pin(num='22',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='23',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='24',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='3',name='TIMEPULSE',func=pin_types.OUTPUT,unit=1),
            Pin(num='4',name='EXTINT',func=pin_types.INPUT,unit=1),
            Pin(num='5',name='USB_DM',func=pin_types.BIDIR,unit=1),
            Pin(num='6',name='USB_DP',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='VDD_USB',func=pin_types.PWRIN,unit=1),
            Pin(num='8',name='~{RESET}',func=pin_types.INPUT,unit=1),
            Pin(num='9',name='VCC_RF',func=pin_types.PWROUT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'NEO-M8T', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'NEO-M8T'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_NEO'], 'footprint':'RF_GPS:ublox_NEO', 'keywords':'ublox GPS GNSS module', 'description':'', 'datasheet':'https://content.u-blox.com/sites/default/files/documents/NEO-LEA-M8T-FW3_DataSheet_UBX-15025193.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nNEO-M8T\n\nublox GPS GNSS module', 'pins':[
            Pin(num='1',name='TP2/~{SAFEBOOT}',func=pin_types.BIDIR,unit=1),
            Pin(num='10',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='11',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='12',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='13',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='14',name='LNA_EN',func=pin_types.OUTPUT,unit=1),
            Pin(num='15',name='EXTINT1',func=pin_types.INPUT,unit=1),
            Pin(num='16',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='17',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='18',name='SDA/~{SPI_CS}',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='SCL/SPI_CLK',func=pin_types.INPUT,unit=1),
            Pin(num='2',name='D_SEL',func=pin_types.INPUT,unit=1),
            Pin(num='20',name='TXD/SPI_MISO',func=pin_types.OUTPUT,unit=1),
            Pin(num='21',name='RXD/SPI_MOSI',func=pin_types.INPUT,unit=1),
            Pin(num='22',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='23',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='24',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='3',name='TIMEPULSE',func=pin_types.OUTPUT,unit=1),
            Pin(num='4',name='EXTINT0',func=pin_types.INPUT,unit=1),
            Pin(num='5',name='USB_DM',func=pin_types.BIDIR,unit=1),
            Pin(num='6',name='USB_DP',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='VDD_USB',func=pin_types.PWRIN,unit=1),
            Pin(num='8',name='~{RESET}',func=pin_types.INPUT,unit=1),
            Pin(num='9',name='VCC_RF',func=pin_types.PWROUT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'RXM-GPS-RM', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'RXM-GPS-RM'}), 'ref_prefix':'U', 'fplist':['RF_GPS:Linx_RXM-GPS'], 'footprint':'RF_GPS:Linx_RXM-GPS', 'keywords':'gps low-power', 'description':'', 'datasheet':'https://linxtechnologies.com/wp/wp-content/uploads/rxm-gps-rm.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nRXM-GPS-RM\n\ngps low-power', 'pins':[
            Pin(num='1',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='10',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='11',name='VBCKUP',func=pin_types.PWRIN,unit=1),
            Pin(num='12',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='13',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='14',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='15',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='16',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='18',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='19',name='RFIN',func=pin_types.INPUT,unit=1),
            Pin(num='2',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='20',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='21',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='22',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='3',name='1PPS',func=pin_types.OUTPUT,unit=1),
            Pin(num='4',name='TX',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='RX',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='7',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='8',name='~{RESET}',func=pin_types.INPUT,unit=1),
            Pin(num='9',name='NC',func=pin_types.NOCONNECT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'SAM-M8Q', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'SAM-M8Q'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_SAM-M8Q'], 'footprint':'RF_GPS:ublox_SAM-M8Q', 'keywords':'gps module with antenna', 'description':'', 'datasheet':'https://www.u-blox.com/sites/default/files/SAM-M8Q_DataSheet_%28UBX-16012619%29.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nSAM-M8Q\n\ngps module with antenna', 'pins':[
            Pin(num='1',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='10',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='11',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='12',name='SCL',func=pin_types.INPUT,unit=1),
            Pin(num='13',name='TXD',func=pin_types.OUTPUT,unit=1),
            Pin(num='14',name='RXD',func=pin_types.INPUT,unit=1),
            Pin(num='15',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='16',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='17',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='18',name='~{RESET}',func=pin_types.INPUT,unit=1),
            Pin(num='19',name='EXTINT',func=pin_types.INPUT,unit=1),
            Pin(num='2',name='VCC_IO',func=pin_types.PWRIN,unit=1),
            Pin(num='20',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='3',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='4',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='5',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='6',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='7',name='TIMEPULSE',func=pin_types.OUTPUT,unit=1),
            Pin(num='8',name='~{SAFEBOOT}',func=pin_types.INPUT,unit=1),
            Pin(num='9',name='SDA',func=pin_types.BIDIR,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'SIM28ML', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'SIM28ML'}), 'ref_prefix':'U', 'fplist':['RF_GPS:SIM28ML'], 'footprint':'RF_GPS:SIM28ML', 'keywords':'GPS A-GPS receiver', 'description':'', 'datasheet':'https://simcom.ee/documents/SIM28ML/SIM28ML_Hardware%20Design_V1.01.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nSIM28ML\n\nGPS A-GPS receiver', 'pins':[
            Pin(num='1',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='10',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='11',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='12',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='13',name='ANTON',func=pin_types.PWROUT,unit=1),
            Pin(num='14',name='Vcc_RF',func=pin_types.PWROUT,unit=1),
            Pin(num='15',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='16',name='TXD1/SDA',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='RXD1/SCL',func=pin_types.INPUT,unit=1),
            Pin(num='18',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='2',name='TXD0',func=pin_types.OUTPUT,unit=1),
            Pin(num='3',name='RXD0',func=pin_types.INPUT,unit=1),
            Pin(num='4',name='TIMEMARK',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='EXTINT',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='V_BACKUP',func=pin_types.PWRIN,unit=1),
            Pin(num='7',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='8',name='Vcc',func=pin_types.PWRIN,unit=1),
            Pin(num='9',name='~{RESET}',func=pin_types.INPUT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'ZED-F9P', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'ZED-F9P'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_ZED'], 'footprint':'RF_GPS:ublox_ZED', 'keywords':'u-blox GNSS multi-band RTK', 'description':'', 'datasheet':'https://content.u-blox.com/sites/default/files/ZED-F9P-04B_DataSheet_UBX-21044850.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nZED-F9P\n\nu-blox GNSS multi-band RTK', 'pins':[
            Pin(num='1',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='10',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='11',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='12',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='13',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='14',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='15',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='16',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='17',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='18',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='19',name='GEOFENCE_STAT',func=pin_types.OUTPUT,unit=1),
            Pin(num='2',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='20',name='RTK_STAT',func=pin_types.OUTPUT,unit=1),
            Pin(num='21',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='22',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='23',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='24',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='25',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='26',name='RXD2',func=pin_types.INPUT,unit=1),
            Pin(num='27',name='TXD2',func=pin_types.OUTPUT,unit=1),
            Pin(num='28',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='29',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='3',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='30',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='31',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='32',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='33',name='VCC',func=pin_types.PASSIVE,unit=1),
            Pin(num='34',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='35',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='36',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='37',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='38',name='V_USB',func=pin_types.PWRIN,unit=1),
            Pin(num='39',name='USB_DM',func=pin_types.BIDIR,unit=1),
            Pin(num='4',name='ANT_DETECT',func=pin_types.INPUT,unit=1),
            Pin(num='40',name='USB_DP',func=pin_types.BIDIR,unit=1),
            Pin(num='41',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='42',name='TXD/SPI_MISO',func=pin_types.OUTPUT,unit=1),
            Pin(num='43',name='RXD/SPI_MOSI',func=pin_types.INPUT,unit=1),
            Pin(num='44',name='SDA/~{SPI_CS}',func=pin_types.BIDIR,unit=1),
            Pin(num='45',name='SCL/SPI_CLK',func=pin_types.BIDIR,unit=1),
            Pin(num='46',name='TX_READY',func=pin_types.OUTPUT,unit=1),
            Pin(num='47',name='D_SEL',func=pin_types.INPUT,unit=1),
            Pin(num='48',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='49',name='~{RESET}',func=pin_types.INPUT,unit=1),
            Pin(num='5',name='ANT_OFF',func=pin_types.OUTPUT,unit=1),
            Pin(num='50',name='~{SAFEBOOT}',func=pin_types.INPUT,unit=1),
            Pin(num='51',name='EXTINT',func=pin_types.INPUT,unit=1),
            Pin(num='52',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='53',name='TIMEPULSE',func=pin_types.OUTPUT,unit=1),
            Pin(num='54',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='55',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='6',name='~{ANT_SHORT}',func=pin_types.INPUT,unit=1),
            Pin(num='7',name='VCC_RF',func=pin_types.PWROUT,unit=1),
            Pin(num='8',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='9',name='Reserved',func=pin_types.NOCONNECT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'ZOE-M8G', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'ZOE-M8G'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_ZOE_M8'], 'footprint':'RF_GPS:ublox_ZOE_M8', 'keywords':'ublox gnss sip', 'description':'', 'datasheet':'https://content.u-blox.com/sites/default/files/ZOE-M8_HIM_UBX-16030136.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nZOE-M8G\n\nublox gnss sip', 'pins':[
            Pin(num='A1',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='A2',name='SDA/~{SPI_CS}',func=pin_types.BIDIR,unit=1),
            Pin(num='A3',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='A4',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='A5',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='A6',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='A7',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='A8',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='A9',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='B1',name='SCL/SPI_CLK',func=pin_types.INPUT,unit=1),
            Pin(num='B9',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='C1',name='SQI_D1',func=pin_types.INPUT,unit=1),
            Pin(num='C3',name='TIMEPULSE',func=pin_types.OUTPUT,unit=1),
            Pin(num='C4',name='~{SAFEBOOT}',func=pin_types.INPUT,unit=1),
            Pin(num='C5',name='LNA_EN',func=pin_types.OUTPUT,unit=1),
            Pin(num='C6',name='PIO15',func=pin_types.BIDIR,unit=1),
            Pin(num='C7',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='C9',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='D1',name='SQI_D0',func=pin_types.BIDIR,unit=1),
            Pin(num='D3',name='~{SQI_CS}',func=pin_types.BIDIR,unit=1),
            Pin(num='D4',name='D_SEL',func=pin_types.INPUT,unit=1),
            Pin(num='D6',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='D9',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='E1',name='SQI_CLK',func=pin_types.BIDIR,unit=1),
            Pin(num='E3',name='SQI_D2',func=pin_types.BIDIR,unit=1),
            Pin(num='E7',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='E9',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='F1',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='F3',name='SQI_D3',func=pin_types.BIDIR,unit=1),
            Pin(num='F4',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='F6',name='PIO14',func=pin_types.BIDIR,unit=1),
            Pin(num='F7',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='F9',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='G1',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='G3',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='G4',name='PIO13/EXTINT',func=pin_types.INPUT,unit=1),
            Pin(num='G5',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='G6',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='G7',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='G9',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='H1',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='H9',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='J1',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='J2',name='VCC',func=pin_types.PASSIVE,unit=1),
            Pin(num='J3',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='J4',name='RXD/SPI_MOSI',func=pin_types.INPUT,unit=1),
            Pin(num='J5',name='TXD/SPI_MISO',func=pin_types.OUTPUT,unit=1),
            Pin(num='J6',name='~{RESET}',func=pin_types.INPUT,unit=1),
            Pin(num='J7',name='RTC_I',func=pin_types.INPUT,unit=1),
            Pin(num='J8',name='RTC_O',func=pin_types.OUTPUT,unit=1),
            Pin(num='J9',name='GND',func=pin_types.PASSIVE,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'ZOE-M8Q', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'ZOE-M8Q'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_ZOE_M8'], 'footprint':'RF_GPS:ublox_ZOE_M8', 'keywords':'ublox gnss sip', 'description':'', 'datasheet':'https://content.u-blox.com/sites/default/files/ZOE-M8_HIM_UBX-16030136.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nZOE-M8Q\n\nublox gnss sip', 'pins':[
            Pin(num='A1',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='A2',name='SDA/~{SPI_CS}',func=pin_types.BIDIR,unit=1),
            Pin(num='A3',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='A4',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='A5',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='A6',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='A7',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='A8',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='A9',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='B1',name='SCL/SPI_CLK',func=pin_types.INPUT,unit=1),
            Pin(num='B9',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='C1',name='SQI_D1',func=pin_types.INPUT,unit=1),
            Pin(num='C3',name='TIMEPULSE',func=pin_types.OUTPUT,unit=1),
            Pin(num='C4',name='~{SAFEBOOT}',func=pin_types.INPUT,unit=1),
            Pin(num='C5',name='LNA_EN',func=pin_types.OUTPUT,unit=1),
            Pin(num='C6',name='PIO15',func=pin_types.BIDIR,unit=1),
            Pin(num='C7',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='C9',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='D1',name='SQI_D0',func=pin_types.BIDIR,unit=1),
            Pin(num='D3',name='~{SQI_CS}',func=pin_types.BIDIR,unit=1),
            Pin(num='D4',name='D_SEL',func=pin_types.INPUT,unit=1),
            Pin(num='D6',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='D9',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='E1',name='SQI_CLK',func=pin_types.BIDIR,unit=1),
            Pin(num='E3',name='SQI_D2',func=pin_types.BIDIR,unit=1),
            Pin(num='E7',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='E9',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='F1',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='F3',name='SQI_D3',func=pin_types.BIDIR,unit=1),
            Pin(num='F4',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='F6',name='PIO14',func=pin_types.BIDIR,unit=1),
            Pin(num='F7',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='F9',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='G1',name='V_CORE',func=pin_types.PWRIN,unit=1),
            Pin(num='G3',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='G4',name='PIO13/EXTINT',func=pin_types.INPUT,unit=1),
            Pin(num='G5',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='G6',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='G7',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='G9',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='H1',name='V_DCDC_OUT',func=pin_types.PWROUT,unit=1),
            Pin(num='H9',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='J1',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='J2',name='VCC',func=pin_types.PASSIVE,unit=1),
            Pin(num='J3',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='J4',name='RXD/SPI_MOSI',func=pin_types.INPUT,unit=1),
            Pin(num='J5',name='TXD/SPI_MISO',func=pin_types.OUTPUT,unit=1),
            Pin(num='J6',name='~{RESET}',func=pin_types.INPUT,unit=1),
            Pin(num='J7',name='RTC_I',func=pin_types.INPUT,unit=1),
            Pin(num='J8',name='RTC_O',func=pin_types.OUTPUT,unit=1),
            Pin(num='J9',name='GND',func=pin_types.PASSIVE,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'MAX-8Q', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'MAX-8Q'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_MAX', 'RF_GPS:ublox_MAX'], 'footprint':'RF_GPS:ublox_MAX', 'keywords':'ublox GPS GNSS module', 'description':'', 'datasheet':'https://www.u-blox.com/sites/default/files/MAX-8_DataSheet_%28UBX-16000093%29.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nMAX-8Q\n\nublox GPS GNSS module', 'pins':[
            Pin(num='1',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='10',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='11',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='12',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='13',name='LNA_EN',func=pin_types.OUTPUT,unit=1),
            Pin(num='14',name='VCC_RF',func=pin_types.PWROUT,unit=1),
            Pin(num='15',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='16',name='SDA',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='SCL',func=pin_types.INPUT,unit=1),
            Pin(num='18',name='~{SAFEBOOT}',func=pin_types.INPUT,unit=1),
            Pin(num='2',name='TXD',func=pin_types.OUTPUT,unit=1),
            Pin(num='3',name='RXD',func=pin_types.INPUT,unit=1),
            Pin(num='4',name='TIMEPULSE',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='EXTINT',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='7',name='VCC_IO',func=pin_types.PWRIN,unit=1),
            Pin(num='8',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='9',name='~{RESET}',func=pin_types.INPUT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'MAX-M8C', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'MAX-M8C'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_MAX', 'RF_GPS:ublox_MAX', 'RF_GPS:ublox_MAX'], 'footprint':'RF_GPS:ublox_MAX', 'keywords':'ublox GPS GNSS module', 'description':'', 'datasheet':'https://www.u-blox.com/sites/default/files/MAX-M8-FW3_DataSheet_%28UBX-15031506%29.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nMAX-M8C\n\nublox GPS GNSS module', 'pins':[
            Pin(num='1',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='10',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='11',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='12',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='13',name='LNA_EN',func=pin_types.OUTPUT,unit=1),
            Pin(num='14',name='VCC_RF',func=pin_types.PWROUT,unit=1),
            Pin(num='15',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='16',name='SDA',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='SCL',func=pin_types.INPUT,unit=1),
            Pin(num='18',name='~{SAFEBOOT}',func=pin_types.INPUT,unit=1),
            Pin(num='2',name='TXD',func=pin_types.OUTPUT,unit=1),
            Pin(num='3',name='RXD',func=pin_types.INPUT,unit=1),
            Pin(num='4',name='TIMEPULSE',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='EXTINT',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='7',name='VCC_IO',func=pin_types.PWRIN,unit=1),
            Pin(num='8',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='9',name='~{RESET}',func=pin_types.INPUT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'MAX-M8Q', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'MAX-M8Q'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_MAX', 'RF_GPS:ublox_MAX', 'RF_GPS:ublox_MAX', 'RF_GPS:ublox_MAX'], 'footprint':'RF_GPS:ublox_MAX', 'keywords':'ublox GPS GNSS module', 'description':'', 'datasheet':'https://www.u-blox.com/sites/default/files/MAX-M8-FW3_DataSheet_%28UBX-15031506%29.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nMAX-M8Q\n\nublox GPS GNSS module', 'pins':[
            Pin(num='1',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='10',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='11',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='12',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='13',name='LNA_EN',func=pin_types.OUTPUT,unit=1),
            Pin(num='14',name='VCC_RF',func=pin_types.PWROUT,unit=1),
            Pin(num='15',name='Reserved',func=pin_types.NOCONNECT,unit=1),
            Pin(num='16',name='SDA',func=pin_types.BIDIR,unit=1),
            Pin(num='17',name='SCL',func=pin_types.INPUT,unit=1),
            Pin(num='18',name='~{SAFEBOOT}',func=pin_types.INPUT,unit=1),
            Pin(num='2',name='TXD',func=pin_types.OUTPUT,unit=1),
            Pin(num='3',name='RXD',func=pin_types.INPUT,unit=1),
            Pin(num='4',name='TIMEPULSE',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='EXTINT',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='7',name='VCC_IO',func=pin_types.PWRIN,unit=1),
            Pin(num='8',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='9',name='~{RESET}',func=pin_types.INPUT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'NEO-8Q', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'NEO-8Q'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_NEO', 'RF_GPS:ublox_NEO'], 'footprint':'RF_GPS:ublox_NEO', 'keywords':'ublox GPS GNSS module', 'description':'', 'datasheet':'https://content.u-blox.com/sites/default/files/documents/NEO-8Q_DataSheet_UBX-15031913.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nNEO-8Q\n\nublox GPS GNSS module', 'pins':[
            Pin(num='1',name='~{SAFEBOOT}',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='11',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='12',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='13',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='14',name='LNA_EN',func=pin_types.OUTPUT,unit=1),
            Pin(num='15',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='16',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='17',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='18',name='SDA/~{SPI_CS}',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='SCL/SPI_CLK',func=pin_types.INPUT,unit=1),
            Pin(num='2',name='D_SEL',func=pin_types.INPUT,unit=1),
            Pin(num='20',name='TXD/SPI_MISO',func=pin_types.OUTPUT,unit=1),
            Pin(num='21',name='RXD/SPI_MOSI',func=pin_types.INPUT,unit=1),
            Pin(num='22',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='23',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='24',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='3',name='TIMEPULSE',func=pin_types.OUTPUT,unit=1),
            Pin(num='4',name='EXTINT',func=pin_types.INPUT,unit=1),
            Pin(num='5',name='USB_DM',func=pin_types.BIDIR,unit=1),
            Pin(num='6',name='USB_DP',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='VDD_USB',func=pin_types.PWRIN,unit=1),
            Pin(num='8',name='~{RESET}',func=pin_types.INPUT,unit=1),
            Pin(num='9',name='VCC_RF',func=pin_types.PWROUT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'NEO-M8Q', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'NEO-M8Q'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_NEO', 'RF_GPS:ublox_NEO', 'RF_GPS:ublox_NEO'], 'footprint':'RF_GPS:ublox_NEO', 'keywords':'ublox GPS GNSS module', 'description':'', 'datasheet':'https://content.u-blox.com/sites/default/files/NEO-M8-FW3_DataSheet_UBX-15031086.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nNEO-M8Q\n\nublox GPS GNSS module', 'pins':[
            Pin(num='1',name='~{SAFEBOOT}',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='11',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='12',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='13',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='14',name='LNA_EN',func=pin_types.OUTPUT,unit=1),
            Pin(num='15',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='16',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='17',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='18',name='SDA/~{SPI_CS}',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='SCL/SPI_CLK',func=pin_types.INPUT,unit=1),
            Pin(num='2',name='D_SEL',func=pin_types.INPUT,unit=1),
            Pin(num='20',name='TXD/SPI_MISO',func=pin_types.OUTPUT,unit=1),
            Pin(num='21',name='RXD/SPI_MOSI',func=pin_types.INPUT,unit=1),
            Pin(num='22',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='23',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='24',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='3',name='TIMEPULSE',func=pin_types.OUTPUT,unit=1),
            Pin(num='4',name='EXTINT',func=pin_types.INPUT,unit=1),
            Pin(num='5',name='USB_DM',func=pin_types.BIDIR,unit=1),
            Pin(num='6',name='USB_DP',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='VDD_USB',func=pin_types.PWRIN,unit=1),
            Pin(num='8',name='~{RESET}',func=pin_types.INPUT,unit=1),
            Pin(num='9',name='VCC_RF',func=pin_types.PWROUT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'NEO-M9N', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'NEO-M9N'}), 'ref_prefix':'U', 'fplist':['RF_GPS:ublox_NEO', 'RF_GPS:ublox_NEO', 'RF_GPS:ublox_NEO', 'RF_GPS:ublox_NEO'], 'footprint':'RF_GPS:ublox_NEO', 'keywords':'ublox GPS GNSS module', 'description':'', 'datasheet':'https://www.u-blox.com/sites/default/files/NEO-M9N-00B_DataSheet_UBX-19014285.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nNEO-M9N\n\nublox GPS GNSS module', 'pins':[
            Pin(num='1',name='~{SAFEBOOT}',func=pin_types.INPUT,unit=1),
            Pin(num='10',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='11',name='RF_IN',func=pin_types.INPUT,unit=1),
            Pin(num='12',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='13',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='14',name='LNA_EN',func=pin_types.OUTPUT,unit=1),
            Pin(num='15',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='16',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='17',name='RESERVED',func=pin_types.NOCONNECT,unit=1),
            Pin(num='18',name='SDA/~{SPI_CS}',func=pin_types.BIDIR,unit=1),
            Pin(num='19',name='SCL/SPI_CLK',func=pin_types.INPUT,unit=1),
            Pin(num='2',name='D_SEL',func=pin_types.INPUT,unit=1),
            Pin(num='20',name='TXD/SPI_MISO',func=pin_types.OUTPUT,unit=1),
            Pin(num='21',name='RXD/SPI_MOSI',func=pin_types.INPUT,unit=1),
            Pin(num='22',name='V_BCKP',func=pin_types.PWRIN,unit=1),
            Pin(num='23',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='24',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='3',name='TIMEPULSE',func=pin_types.OUTPUT,unit=1),
            Pin(num='4',name='EXTINT',func=pin_types.INPUT,unit=1),
            Pin(num='5',name='USB_DM',func=pin_types.BIDIR,unit=1),
            Pin(num='6',name='USB_DP',func=pin_types.BIDIR,unit=1),
            Pin(num='7',name='VDD_USB',func=pin_types.PWRIN,unit=1),
            Pin(num='8',name='~{RESET}',func=pin_types.INPUT,unit=1),
            Pin(num='9',name='VCC_RF',func=pin_types.PWROUT,unit=1)], 'unit_defs':[] }),
        Part(**{ 'name':'RXM-GPS-FM', 'dest':TEMPLATE, 'tool':SKIDL, 'aliases':Alias({'RXM-GPS-FM'}), 'ref_prefix':'U', 'fplist':['RF_GPS:Linx_RXM-GPS', 'RF_GPS:Linx_RXM-GPS'], 'footprint':'RF_GPS:Linx_RXM-GPS', 'keywords':'gps low-power', 'description':'', 'datasheet':'https://linxtechnologies.com/wp/wp-content/uploads/rxm-gps-fm.pdf', 'search_text':'/usr/share/kicad/symbols/RF_GPS.kicad_sym\nRXM-GPS-FM\n\ngps low-power', 'pins':[
            Pin(num='1',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='10',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='11',name='VBCKUP',func=pin_types.PWRIN,unit=1),
            Pin(num='12',name='VCC',func=pin_types.PWRIN,unit=1),
            Pin(num='13',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='14',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='15',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='16',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='18',name='GND',func=pin_types.PWRIN,unit=1),
            Pin(num='19',name='RFIN',func=pin_types.INPUT,unit=1),
            Pin(num='2',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='20',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='21',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='22',name='GND',func=pin_types.PASSIVE,unit=1),
            Pin(num='3',name='1PPS',func=pin_types.OUTPUT,unit=1),
            Pin(num='4',name='TX',func=pin_types.OUTPUT,unit=1),
            Pin(num='5',name='RX',func=pin_types.INPUT,unit=1),
            Pin(num='6',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='7',name='NC',func=pin_types.NOCONNECT,unit=1),
            Pin(num='8',name='~{RESET}',func=pin_types.INPUT,unit=1),
            Pin(num='9',name='NC',func=pin_types.NOCONNECT,unit=1)], 'unit_defs':[] })])