adafruit / circuitpython

CircuitPython - a Python implementation for teaching coding with microcontrollers
https://circuitpython.org
Other
4.11k stars 1.22k forks source link

Latest CP Stable on FeatherS2 and I lost the VID/PID settings #5640

Closed mdroberts1243 closed 2 years ago

mdroberts1243 commented 2 years ago

CircuitPython version

Adafruit CircuitPython 7.0.0 on 2021-09-20; FeatherS2 with ESP32S2

Code/REPL

import time, gc, os
import adafruit_dotstar
import board
import feathers2

# Make sure the 2nd LDO is turned on
feathers2.enable_LDO2(True)

# Create a DotStar instance
dotstar = adafruit_dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.5, auto_write=True)

# Say hello
print("\nHello from FeatherS2!")
print("---------------------\n")

# Turn on the internal blue LED
feathers2.led_set(True)

# Show available memory
print("Memory Info - gc.mem_free()")
print("---------------------------")
print("{} Bytes\n".format(gc.mem_free()))

flash = os.statvfs('/')
flash_size = flash[0] * flash[2]
flash_free = flash[0] * flash[3]
# Show flash size
print("Flash - os.statvfs('/')")
print("---------------------------")
print("Size: {} Bytes\nFree: {} Bytes\n".format(flash_size, flash_free))

print("Board stuff: {}\n".format(feathers2))
print("Dotstar Time!\n")

# Create a colour wheel index int
color_index = 0

# Rainbow colours on the Dotstar
while True:
    # Get the R,G,B values of the next colour
    r,g,b = feathers2.dotstar_color_wheel( color_index )
    # Set the colour on the dotstar
    dotstar[0] = ( r, g, b, 0.5)
    # Increase the wheel index
    color_index += 1

    # If the index == 255, loop it
    if color_index == 255:
        color_index = 0
        # Invert the internal LED state every half colour cycle
        feathers2.led_blink()

    # Sleep for 15ms so the colour cycle isn't too fast
    time.sleep(0.015)

Behavior

Debug Log Output from Mu (1.0.3) shows VID and PID are zeroed.

2021-11-30 15:36:50,794 - mu.logic:649(restore_session) INFO: Loaded files. 2021-11-30 15:36:50,794 - mu.logic:653(restore_session) INFO: User defined environment variables: [] 2021-11-30 15:36:50,794 - mu.logic:657(restore_session) INFO: Minify scripts on micro:bit? False 2021-11-30 15:36:50,806 - mu.logic:1150(change_mode) INFO: Workspace directory: D:\ 2021-11-30 15:36:54,646 - mu.modes.base:231(find_device) WARNING: Could not find device. 2021-11-30 15:36:54,646 - mu.modes.base:232(find_device) DEBUG: Available ports: 2021-11-30 15:36:54,646 - mu.modes.base:236(find_device) DEBUG: ['PID:0x0000 VID:0x0000 PORT:COM6', 'PID:0x0000 VID:0x0000 PORT:COM4'] 2021-11-30 15:36:54,659 - mu.interface.main:723(show_message) DEBUG: Could not find an attached device. 2021-11-30 15:36:54,659 - mu.interface.main:724(show_message) DEBUG: Please make sure the device is plugged into this computer.

It must have a version of MicroPython (or CircuitPython) flashed onto it before the REPL will work.

Finally, press the device's reset button and wait a few seconds before trying again. 2021-11-30 15:39:10,453 - mu.modes.base:259(toggle_repl) INFO: Toggle REPL on. 2021-11-30 15:39:20,349 - mu.logic:1077(show_admin) INFO: Showing logs from C:\Users\Mark\AppData\Local\python\mu\Logs\mu.log 2021-11-30 15:41:28,723 - mu.logic:1077(show_admin) INFO: Showing logs from C:\Users\Mark\AppData\Local\python\mu\Logs\mu.log

But after upgrading Mu the serial connection works. (Doesn't care about VID/PID it seems).

Description

I loaded the latest stable CP (7.0.0) from https://circuitpython.org/board/unexpectedmaker_feathers2/

I downloaded the UF2 version and updated the FeatherS2 with it after entering 'boot' mode.

Mu 1.0.3 reported it could not find an attached device, and it appears that the COM4 VID/PID were zeroed out. Previously, with the factory installed version of CP Mu 1.0.3 worked fine.

NOTE: after installing CP 7.0.0 on the FeatherS2, I also had to copy adafruit_pypixelbuf.mpy in order to get the default code.py to work (dotstar/neopixel failed to light). So the latest stable doesn't work out-of-the-box on the FeatherS2.

I updated Mu to 1.1.0.beta.6 and the Mu Serial console could connect properly. There is no debug log output showing the VID/PID scan results.

I took a look at the Windows Device Manager and it seems the VID/PID in the USB Serial Device (COM4) looks ok: USB\VID_239A&PID_80AC&REV_0100&MI_00 USB\VID_239A&PID_80AC&MI_00

Additional information

Upgrading to latest Mu allowed the serial connection to work, but disturbing that Mu 1.0.3 scan saw zeros for the VID/PID.

tannewt commented 2 years ago

I don't think this is a CircuitPython bug. It appears that Windows sees the USB PID and VID just fine.

It might be a Mu 1.0.3 bug but it doesn't really matter since the latest beta works.

NOTE: after installing CP 7.0.0 on the FeatherS2, I also had to copy adafruit_pypixelbuf.mpy in order to get the default code.py to work (dotstar/neopixel failed to light). So the latest stable doesn't work out-of-the-box on the FeatherS2.

Please bring this up with @UnexpectedMaker who provides the default code.py. The 7.0.0 S2 build has pixelbuf builtin so I'm not sure why you needed the python library.

dhalbert commented 2 years ago

@mdroberts1243 Closing this for now, please comment if you are still having this trouble.