can't find busio and board libraries

CircuitPython on hardware including Adafruit's boards, and CircuitPython libraries using Blinka on host computers.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
muttstang
 
Posts: 86
Joined: Mon May 10, 2021 3:24 pm

can't find busio and board libraries

Post by muttstang »

There's probably a simple answer for me that I'm too stupid to see but I downloaded the library bundle and am not seeing board.mpy or busio.mpy. when I try to start the code I'm getting errors that it can't find board or busio (when I comment out the include board line). I'm trying to modify the ultimate gps code to the ultimate gps logger shield but I haven't gotten past the first few lines of code yet.

Code: Select all

# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT

# Simple GPS module demonstration.
# Will wait for a fix and print a message every second with the current location
# and other details.
import time
import board
import busio

import adafruit_gps

# Create a serial connection for the GPS connection using default speed and
# a slightly higher timeout (GPS modules typically update once a second).
# These are the defaults you should use for the GPS FeatherWing.
# For other boards set RX = GPS module TX, and TX = GPS module RX pins.
uart = busio.UART(8, 7, baudrate=9600, timeout=10)

# for a computer, use the pyserial library for uart access
# import serial
# uart = serial.Serial("/dev/ttyUSB0", baudrate=9600, timeout=10)

# If using I2C, we'll create an I2C interface to talk to using default pins
# i2c = board.I2C()

# Create a GPS module instance.
gps = adafruit_gps.GPS(uart, debug=False)  # Use UART/pyserial
# gps = adafruit_gps.GPS_GtopI2C(i2c, debug=False)  # Use I2C interface

# Initialize the GPS module by changing what data it sends and at what rate.
# These are NMEA extensions for PMTK_314_SET_NMEA_OUTPUT and
# PMTK_220_SET_NMEA_UPDATERATE but you can send anything from here to adjust
# the GPS module behavior:
#   https://cdn-shop.adafruit.com/datasheets/PMTK_A11.pdf

# Turn on the basic GGA and RMC info (what you typically want)
gps.send_command(b"PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0")
# Turn on just minimum info (RMC only, location):
# gps.send_command(b'PMTK314,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0')
# Turn off everything:
# gps.send_command(b'PMTK314,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0')
# Turn on everything (not all of it is parsed!)
# gps.send_command(b'PMTK314,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0')

# Set update rate to once a second (1hz) which is what you typically want.
gps.send_command(b"PMTK220,1000")
# Or decrease to once every two seconds by doubling the millisecond value.
# Be sure to also increase your UART timeout above!
# gps.send_command(b'PMTK220,2000')
# You can also speed up the rate, but don't go too fast or else you can lose
# data during parsing.  This would be twice a second (2hz, 500ms delay):
# gps.send_command(b'PMTK220,500')

# Main loop runs forever printing the location, etc. every second.
last_print = time.monotonic()
while True:
    # Make sure to call gps.update() every loop iteration and at least twice
    # as fast as data comes from the GPS unit (usually every second).
    # This returns a bool that's true if it parsed new data (you can ignore it
    # though if you don't care and instead look at the has_fix property).
    gps.update()
    # Every second print out current location details if there's a fix.
    current = time.monotonic()
    if current - last_print >= 1.0:
        last_print = current
        if not gps.has_fix:
            # Try again if we don't have a fix yet.
            print("Waiting for fix...")
            continue
        # We have a fix! (gps.has_fix is true)
        # Print out details about the fix like location, date, etc.
        print("=" * 40)  # Print a separator line.
        print(
            "Fix timestamp: {}/{}/{} {:02}:{:02}:{:02}".format(
                gps.timestamp_utc.tm_mon,  # Grab parts of the time from the
                gps.timestamp_utc.tm_mday,  # struct_time object that holds
                gps.timestamp_utc.tm_year,  # the fix time.  Note you might
                gps.timestamp_utc.tm_hour,  # not get all data like year, day,
                gps.timestamp_utc.tm_min,  # month!
                gps.timestamp_utc.tm_sec,
            )
        )
        print("Latitude: {0:.6f} degrees".format(gps.latitude))
        print("Longitude: {0:.6f} degrees".format(gps.longitude))
        print("Fix quality: {}".format(gps.fix_quality))
        # Some attributes beyond latitude, longitude and timestamp are optional
        # and might not be present.  Check if they're None before trying to use!
        if gps.satellites is not None:
            print("# satellites: {}".format(gps.satellites))
        if gps.altitude_m is not None:
            print("Altitude: {} meters".format(gps.altitude_m))
        if gps.speed_knots is not None:
            print("Speed: {} knots".format(gps.speed_knots))
        if gps.track_angle_deg is not None:
            print("Track angle: {} degrees".format(gps.track_angle_deg))
        if gps.horizontal_dilution is not None:
            print("Horizontal dilution: {}".format(gps.horizontal_dilution))
        if gps.height_geoid is not None:
            print("Height geo ID: {} meters".format(gps.height_geoid))

User avatar
Franklin97355
 
Posts: 23902
Joined: Mon Apr 21, 2008 2:33 pm

Re: can't find busio and board libraries

Post by Franklin97355 »

Did you download from https://circuitpython.org/libraries ?

User avatar
muttstang
 
Posts: 86
Joined: Mon May 10, 2021 3:24 pm

Re: can't find busio and board libraries

Post by muttstang »

Yep that’s where I got them

User avatar
jerryn
 
Posts: 1865
Joined: Sat Sep 14, 2013 9:05 am

Re: can't find busio and board libraries

Post by jerryn »

“board and busio” are core CircuitPython modules, not libraries.
What board are you using? What errors are you seeing?

User avatar
muttstang
 
Posts: 86
Joined: Mon May 10, 2021 3:24 pm

Re: can't find busio and board libraries

Post by muttstang »

I have a metro ESP32-S2

I get this error :

Traceback (most recent call last):
File "d:\code.py", line 9, in <module>
import busio
ModuleNotFoundError: No module named 'busio'
>>>

---------- FINISHED ----------
exit code: 2 status: 0

User avatar
muttstang
 
Posts: 86
Joined: Mon May 10, 2021 3:24 pm

Re: can't find busio and board libraries

Post by muttstang »

Maybe I’ll try going through the boot loader process again and reinstall circuitpython

User avatar
jerryn
 
Posts: 1865
Joined: Sat Sep 14, 2013 9:05 am

Re: can't find busio and board libraries

Post by jerryn »

How are you connecting to the board and executing the code?

User avatar
muttstang
 
Posts: 86
Joined: Mon May 10, 2021 3:24 pm

Re: can't find busio and board libraries

Post by muttstang »

I'm using Mu. Connecting with a USB-C cable

User avatar
jerryn
 
Posts: 1865
Joined: Sat Sep 14, 2013 9:05 am

Re: can't find busio and board libraries

Post by jerryn »

That does not make much sense to me. What Circuitpython file did you load onto the board?
Can you post the contents of the "boot_out.txt" file from your CIRCUITPY drive?
At the REPL can you type

Code: Select all

help('modules')
and post the output?

Note, I do not represent Adafruit. Just trying to help.

User avatar
muttstang
 
Posts: 86
Joined: Mon May 10, 2021 3:24 pm

Re: can't find busio and board libraries

Post by muttstang »

I'll check that when I have a chance. I appreciate the help!

User avatar
tannewt
 
Posts: 3298
Joined: Thu Oct 06, 2016 8:48 pm

Re: can't find busio and board libraries

Post by tannewt »

Make sure Mu is in CircuitPython mode. It looks like you are trying to run the CircuitPython code in normal CPython.

User avatar
muttstang
 
Posts: 86
Joined: Mon May 10, 2021 3:24 pm

Re: can't find busio and board libraries

Post by muttstang »

tannewt wrote:Make sure Mu is in CircuitPython mode. It looks like you are trying to run the CircuitPython code in normal CPython.
Maybe that was the issue, I have it running fine on a different laptop right now. I need to move my gps antenna over by a window as it's just sitting here waiting to get a fix using the ultimate gps logger shield.

Locked
Please be positive and constructive with your questions and comments.

Return to “Adafruit CircuitPython”