greatfet icon indicating copy to clipboard operation
greatfet copied to clipboard

Logic driver issue Windows

Open the-lifting-engineer opened this issue 2 years ago • 3 comments

Running into a driver issue when I try to run the logic command on Windows 10.

gf logic -p /tmp/spi-capture12.sr Sampling 8 channels at 17 MHz. Press Ctrl+C to stop reading data from device.

ERROR: Communications failure -- check the connection to -- and state of -- the GreatFET. (More debug information may be available if you run 'gf dmesg'). [Errno None] b'libusb0-dll:err [_usb_reap_async] timeout error\n'

Capture terminated -- waiting for data processing to complete. Sigrok/PulseView compatible session file created: '/tmp/spi-capture12.sr'. Sampled for 3.0159 seconds.

When I run dmesg it doesn't pull any errors and when I run the gf info command it has no problem detecting the board.

I've reinstalled the drivers through Zadig but it appears to have made no difference.

the-lifting-engineer avatar Aug 25 '21 07:08 the-lifting-engineer

Can you please run gf info -a and put the output here? I'd also appreciate if you could run gf dmesg after an error occurs and also paste that output here.

straithe avatar Aug 26 '21 20:08 straithe

gf info -a outputs: gf info -a Host tools info: host module version: 2021.2.1 pygreat module version: 2021.2.1 python version: 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)]

    module path: c:\users\school\appdata\local\programs\python\python39\lib\site-packages\greatfet
    command path: c:\users\school\appdata\local\programs\python\python39\lib\site-packages\greatfet\commands
    gnuradio-companion block path: c:\users\school\appdata\local\programs\python\python39\lib\site-packages\greatfet\gnuradio

Found a GreatFET One! Board ID: 0 Firmware version: v2021.2.1 Part ID: a0000a303d4764 Serial number: 000057cc67e633455757

it also shows the supported API's (not sure if you needed these to)

gf dmesg after the error occurs: gf dmesg [------------] System started after hard reset / power cycle. [ 131457] System clock bringup complete. [ 131489] Configuring board pins... [ 131541] GreatFET initialization complete! [ 296623274] jtag: using half-period delay of 0 microseconds to achieve frequency of 405000 [ 476471217] jtag: using half-period delay of 0 microseconds to achieve frequency of 405000 [ 486578009] jtag: using half-period delay of 0 microseconds to achieve frequency of 405000

Thank you for helping me out with this.

the-lifting-engineer avatar Aug 27 '21 03:08 the-lifting-engineer

I'm getting a similar error with this too. Windows 10

C:\Users\User>gf logic -p testSigrokCapture.sr Sampling 8 channels at 17 MHz. Press Ctrl+C to stop reading data from device. Traceback (most recent call last): File "C:\Users\User\AppData\Roaming\Python\Python310\site-packages\usb\core.py", line 236, in get_interface_and_endpoint return self._ep_info[endpoint_address] KeyError: 129

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\Program Files\Python310\Scripts\greatfet_logic-script.py", line 33, in sys.exit(load_entry_point('GreatFET==2021.2.1', 'console_scripts', 'greatfet_logic')()) File "C:\Program Files\Python310\lib\site-packages\greatfet-2021.2.1-py3.10.egg\greatfet\commands\greatfet_logic.py", line 303, in main device.comms.device.read(endpoint, transfer_buffer, 3000) File "C:\Users\User\AppData\Roaming\Python\Python310\site-packages\usb\core.py", line 1021, in read intf, ep = self._ctx.setup_request(self, endpoint) File "C:\Users\User\AppData\Roaming\Python\Python310\site-packages\usb\core.py", line 113, in wrapper return f(self, *args, **kwargs) File "C:\Users\User\AppData\Roaming\Python\Python310\site-packages\usb\core.py", line 228, in setup_request intf, ep = self.get_interface_and_endpoint(device, endpoint_address) File "C:\Users\User\AppData\Roaming\Python\Python310\site-packages\usb\core.py", line 113, in wrapper return f(self, *args, **kwargs) File "C:\Users\User\AppData\Roaming\Python\Python310\site-packages\usb\core.py", line 244, in get_interface_and_endpoint raise ValueError('Invalid endpoint address ' + hex(endpoint_address)) ValueError: Invalid endpoint address 0x81

and the output of C:\Users\User>gf info -H Host tools info: host module version: 2021.2.1 pygreat module version: 2021.2.1 python version: 3.10.4 (tags/v3.10.4:9d38120, Mar 23 2022, 23:13:41) [MSC v.1929 64 bit (AMD64)]

    module path: C:\Program Files\Python310\lib\site-packages\greatfet-2021.2.1-py3.10.egg\greatfet
    command path: C:\Program Files\Python310\lib\site-packages\greatfet-2021.2.1-py3.10.egg\greatfet\commands
    gnuradio-companion block path: C:\Program Files\Python310\lib\site-packages\greatfet-2021.2.1-py3.10.egg\greatfet\gnuradio

Found a GreatFET One! Board ID: 0 Firmware version: v2021.2.1 Part ID: a0000a306d4f6a Serial number: 000057cc67e632725257

C:\Users\User>gf info -a Host tools info: host module version: 2021.2.1 pygreat module version: 2021.2.1 python version: 3.10.4 (tags/v3.10.4:9d38120, Mar 23 2022, 23:13:41) [MSC v.1929 64 bit (AMD64)]

    module path: C:\Program Files\Python310\lib\site-packages\greatfet-2021.2.1-py3.10.egg\greatfet
    command path: C:\Program Files\Python310\lib\site-packages\greatfet-2021.2.1-py3.10.egg\greatfet\commands
    gnuradio-companion block path: C:\Program Files\Python310\lib\site-packages\greatfet-2021.2.1-py3.10.egg\greatfet\gnuradio

Found a GreatFET One! Board ID: 0 Firmware version: v2021.2.1 Part ID: a0000a306d4f6a Serial number: 000057cc67e632725257 APIs supported: core: get_available_classes -- Fetches the available class numbers. get_available_verbs -- Fetches the available verb numbers for a given class. get_class_docs -- Fetches for documentation the given class. get_class_name -- Fetches the string name for the given class. get_verb_descriptor -- Fetches the information about the given verb. get_verb_documentation -- Fetches the given verb's documentation. get_verb_in_param_names -- Fetches the given verb's in-param names. get_verb_in_signature -- Fetches the given verb's in-signature. get_verb_name -- Fetches the string name for the given verb. get_verb_out_param_names -- Fetches the given verb's out-param names. get_verb_out_signature -- Fetches the given verb's out-signature. read_board_id -- Fetches the board's type identifier. read_part_id -- Fetches the part ID used on the board. read_serial_number -- Fetches the board's serial number. read_version_string -- Fetches the board's version. request_reset -- Resets the relevant board. firmware: full_erase -- Erases the entire firmware flash chip. initialize -- Sets up the board to have its firmware programmed. page_erase -- Erases the page with the provided address on the fw flash. read_page -- Returns the contents of the flash page at the given address. write_page -- Writes the provided data to a single firmware flash page. uart: initialize -- Prepares a UART for use by the rest of this API. read -- Reads from the UART buffer, capturing recently received data synchronous_transmit -- Transmits the provided byte over the given UART. swra124: chip_erase -- erase the chip debug_init -- reset target into debugging mode debug_instr -- execute instruction on target get_chip_id -- read chip ID from target get_pc -- get program counter from target halt -- halt target execution read_status -- read status byte from target resume -- resume target execution setup -- initialize pin mapping for debugging step_instr -- single-step target spi_flash: full_erase -- Erases the entire spi_flash flash chip. initialize -- Sets up the board to program an external SPI flash. query_device_id -- Reads the target SPI flash's JEDEC ID. query_topology -- Attempts to read information about the device's 'shape' usin read_page -- Returns the contents of the flash page at the given address. write_page -- Writes the provided data to a single spi_flash flash page. spi: clock_data -- Clock data out and in; but don't change the chip select. enable_drive -- If enable is false, the SPI pins will be tri-stated; if true init -- Initialize a SPI device set_clock_polarity_and_phase -- Applies a standard SPI mode to set the polarity and phase. transmit -- Write to a SPI device and read response selftest: measure_clock_frequencies -- Returns the frequencies of the provided clocks, in MHz. measure_raw_clock -- Returns the frequencies of the provided clocks, in MHz. sdir: dac_register_read -- debug: read a raw value from an AD904 register dac_register_write -- debug: write a raw value from an AD904 register start_receive -- Start receipt of SDIR data on the primary bulk comms pipe. stop -- Halt SDIR communications; termianting any active communicati pattern_generator: dump_sgpio_configuration -- Requests that the system dumps its SGPIO configuration state generate_pattern -- Sets the GreatFET to repeatedly emit a short pattern. generate_simple_pattern -- Sets the GreatFET to emit a short pattern. stop -- Stops all pattern generation functionality. upload_samples -- Uploads a set of samples into the pattern generator's sample logic_analyzer: change_first_pin -- Changes the first SGPIO pin captured in future captures, but configure -- Configures a logic analyzer capture; should be called before configure_alt_mappings -- Swaps the locations of pins 8/9 for use with Rhodadendron's dump_sgpio_configuration -- Requests that the system dumps its SGPIO configuration state start -- Starts a logic analyzer capture, which will run until stop i stop -- Terminates an active logic analyzer capture. loadables: halt_m0 -- Starts execution of a loaded program on the device's M0 core load_m0_page -- Copies a page of data into the M0 address space. start_m0 -- Starts execution of a loaded program on the device's M0 core leds: off -- Turn an LED off on -- Turn an LED on toggle -- Toggle an LED jtag_msp430: erase_flash -- Erase all flash (except info segment). erase_info -- Erase info flash segment. halt_cpu -- Halt program execution. read_mem -- Read n words from memory. release_cpu -- Release control of the CPU, continuing execution. set_instruction_fetch -- Put CPU in to instruction fetch state (probably). set_pc -- Set CPU program counter. set_reg -- Set a register to the given value. start -- Start JTAG process. stop -- Stop JTAG process. write_flash -- Write data to flash from a given address. write_mem -- Write a 16 bit word to memory. jtag: configure -- Configures a JTAG scan chain; can be run multiple times, but run_clock -- Pulses the clock for the chain; but neither scans in nor sca scan -- Scans a set of data out to the chain, and returns a response scan_in -- Scans a set of data in from the chain, scanning out all fill scan_out -- Scans a set of data out to the chain, discarding any respons i2c: issue_bytes -- Issues a raw set of bytes on the I2C bus. Gives low-level co issue_start -- Issues a raw start bit onto the I2C bus. issue_stop -- Issues a raw stop bit on the I2C bus. read -- Reads from the I2C bus and responds accordingly read_bytes -- Reads a raw set of bytes on the I2C bus. Should follow an is scan -- Scans all valid I2C addresses for attached devices start -- Initialize and transmit a start bit to an I2C device stop -- Transmit a stop bit to an I2C device stop_periodic_read -- Stop any active periodic read. stream_periodic_read -- Schedule a periodic I2C transaction, and stream its results write -- Writes to the I2C bus and responds accordingly heartbeat: get_period -- Returns the base period for the hearbeat LED. Arbitary units set_period -- Sets the base period for the hearbeat LED. Arbitary units. start -- Enables heartbeat mode, e.g. after the heartbeat has been st stop -- Disables heartbeat mode, free'ing the LED for user use. greatdancer: bus_reset -- Causes the target device to handle a bus reset. clean_up_transfer -- Cleans up any complete transfers on the given endpoint. connect -- Sets up the target port to connect to a host. disconnect -- Disconnects the target port from the host. finish_nonblocking_read -- Returns the data read after a given non-blocking read. get_nonblocking_data_length -- Returns the amount of data read after a given non-blocking r get_status -- Reads one of the device's USB status registers. read_setup -- Reads any pending setup packets recieved on the given endpoi send_on_endpoint -- Sends the provided data on the given IN endpoint. set_address -- Sets the address of the target device. set_up_endpoints -- Sets up all of the non-control endpoints for the device. stall_endpoint -- Stalls the endpoint with the provided address. start_nonblocking_read -- Begins listening for data on the given OUT endpoint. gpio: get_pin_directions -- Reads the direction of a GPIO pin or pins given tuples of (p read_pins -- Reads the value of a GPIO pin or pins given tuples of (port, release_pin -- Releases a GPIO pin for use by other peripherals. set_up_pin -- Configures a single pin to be used for GPIO. write_pins -- Sets the value of a GPIO pin or pins, given tuples of (port, glitchkit_usb: configure_requests -- Configures future requests. Optional; defaults are somewhat control_in -- Issues a control IN request as GlitchKit stimuli and capture glitchkit: add_trigger_events -- Adds to the active collection of events to be used to trigge provide_target_clock -- Sets up the board to provide a clock to a target device. set_synchronization_events -- Sets a collection of events to be used to synchronize stimul set_trigger_events -- Sets a collection of events to be used to trigger fault inje example: capitalize -- Capitalizes the first N characters of the provided string. sum_and_difference -- Computes the sum and difference of two ints. debug: clear_dmesg -- Fetches and clears content of the device's debug ring (log). peek -- Reads a raw LPC4330 memory address; for debug. poke -- Writes a raw LPC4330 memory address; for debug. read_dmesg -- Fetches the content of the device's debug ring (log). dac: initialize -- Initializes the DAC driver. Should be called before anything set_value -- Sets the DAC value. set_voltage -- Sets the DAC value by voltage in millivolts. clock_gen: output_clock -- Provide the target clock on a given CLKOUT pin, adc: read_samples -- Initialize the specified ADC for usage, with the given param stop_periodic_read -- Stop any active periodic read. stream_periodic_read -- Schedule a periodic ADC read, and stream its results to the

C:\Users\User>gf dmesg [------------] System started after hard reset / power cycle. [ 126499] System clock bringup complete. [ 126530] Configuring board pins... [ 126583] GreatFET initialization complete! [ 182057695] jtag: using half-period delay of 0 microseconds to achieve frequency of 405000 [ 201550884] jtag: using half-period delay of 0 microseconds to achieve frequency of 405000 [ 210392378] jtag: using half-period delay of 0 microseconds to achieve frequency of 405000 [ 256794954] jtag: using half-period delay of 0 microseconds to achieve frequency of 405000 [ 373056795] jtag: using half-period delay of 0 microseconds to achieve frequency of 405000 [ 380556697] jtag: using half-period delay of 0 microseconds to achieve frequency of 405000 [ 388804469] jtag: using half-period delay of 0 microseconds to achieve frequency of 405000

pickeditmate avatar Apr 29 '22 19:04 pickeditmate