| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- ## FILE OBTAINED FROM: https://github.com/RetiredWizard/PyDOS/blob/main/cpython/boot.py
- ## BECAUSE ! I cannot find anyone else who explains boot.py clearly enough to work for the Cardputer and Circuitpython
- ## *specifically* for writing to the SD card!
-
- ## Minor edits made to comments and print statements for relevance to Cardputer generally
-
- """CircuitPython Essentials Storage logging boot.py file"""
- from sys import implementation
- import board
- import digitalio
- import storage
-
- # The file system will be set to Read/Write status for next
- # power cycle unless a control GPIO is grounded (GP2,5 or 6 depending on the Microcontroller)
- # in which case the host computer will have Read/Write access and PyDOS will have readonly access.
-
- if board.board_id == 'arduino_nano_rp2040_connect':
- swpin = board.D2
- elif board.board_id in ['raspberry_pi_pico','cytron_maker_pi_rp2040']:
- swpin = board.GP6
- elif board.board_id == 'adafruit_qtpy_esp32c3':
- swpin = board.A1
- elif board.board_id == 'adafruit_itsybitsy_rp2040':
- swpin = board.D7
- else:
- if "D5" in dir(board):
- swpin = board.D5
- elif "GP5" in dir(board):
- swpin = board.GP5
- elif "IO5" in dir(board):
- swpin = board.IO5
- elif "D6" in dir(board):
- swpin = board.D6
- elif "GP6" in dir(board):
- swpin = board.GP6
- elif "IO6" in dir(board):
- swpin = board.IO6
- elif "D2" in dir(board):
- swpin = board.D2
- elif "GP2" in dir(board):
- swpin = board.GP2
- elif "IO2" in dir(board):
- swpin = board.IO2
- else:
- swpin = None
-
- if swpin:
- switch = digitalio.DigitalInOut(swpin)
- switch.direction = digitalio.Direction.INPUT
- switch.pull = digitalio.Pull.UP
-
- # If the switch pin is connected to ground (switch.value == False) allow host to write to the drive
- if switch.value == False:
- # Mounts so Host computer can write to micro-flash
- storage.remount("/", True)
- print("Switch False (pin grounded), FS is ReadOnly")
- else:
- storage.remount("/", False)
- print("Switch True (not grounded), FS is ReadWrite")
-
- switch.deinit()
- else:
- storage.remount("/", False )
|