Open
Description
CircuitPython version
Adafruit CircuitPython 8.0.5; 4/23/2023 using IstyBitsy M4 Express
Code/REPL
import gc
import board
import adafruit_ssd1306
import adafruit_tca9548a
import alarm
import time
import digitalio
gc.collect() # Garbage Collector to free up residual space
# Create the TCA9548A object and give it the I2C bus
tca = adafruit_tca9548a.TCA9548A(board.I2C())
led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT
led.value = True
time.sleep(1)
# led.value = False No need to turn LED off, deep sleep will do it.
# For each sensor, create it using the TCA9548A channel instead of the I2C object
oled1 = adafruit_ssd1306.SSD1306_I2C(128, 64, tca[2])
oled2 = adafruit_ssd1306.SSD1306_I2C(128, 64, tca[3])
oled3 = adafruit_ssd1306.SSD1306_I2C(128, 64, tca[4])
# After initial setup, can just use sensors as normal.
oled1.fill(0)
oled1.text('Hello There', 0, 0, 1)
oled1.text('World', 0, 10, 1)
oled1.show()
oled2.fill(0)
oled2.text('Hi There!', 0, 0, 1)
oled2.text('How is the world?', 0, 10, 1)
oled2.show()
oled3.fill(0)
oled3.text('Hey!', 0, 0, 1)
oled3.text('What in the World?', 0, 10, 1)
oled3.show()
# Create a an alarm that will trigger 20 seconds from now.
#time_alarm = alarm.time.TimeAlarm(monotonic_time=time.monotonic() + 20)
# digitalio.DigitalInOut(board.D11).deinit()
pin_alarm = alarm.pin.PinAlarm(pin=board.D11, value=False, pull=True)
# Exit the program, and then deep sleep until the alarm wakes us.
#alarm.exit_and_deep_sleep_until_alarms(time_alarm)
# Does not return, so we never get here.
# Exit the program, and then deep sleep until the alarm wakes us.
alarm.exit_and_deep_sleep_until_alarms(pin_alarm)
# Does not return, so we never get here.
Behavior
soft reboot
Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.
code.py output:
Traceback (most recent call last):
File "code.py", line 51, in
ValueError: Invalid pin
Code done running.
Red LED starts blinking twice in succession every 5 seconds or so.
Description
Only happens when using the alarm.exit_and_deep_sleep_until_alarms(pin_alarm).
Ir will let me use the time_alatm and works fine but, not the pin_alarm.
It even lets me set the pin_alarm to D11 (tor basically any other pin) but errors out on the pin_alarm.
Additional information
No response