diff --git a/micropython/modules_py/automation.py b/micropython/modules_py/automation.py index 36552e3d..01fe390b 100644 --- a/micropython/modules_py/automation.py +++ b/micropython/modules_py/automation.py @@ -145,6 +145,7 @@ class Automation2040W(): return self.__relays[relay].value() self.__relays[relay].value(actuate) + return None def actuate_relay(self, relay): if relay < 0 or relay >= self.NUM_RELAYS: @@ -172,7 +173,7 @@ class Automation2040W(): try: if value >= 0.0 and value <= 100.0: self.__outputs[output].duty_u16(int((value / 100.0) * 65535)) - return + return None except TypeError: pass @@ -338,6 +339,7 @@ class Automation2040WMini(): return self.__relay.value() self.__relay.value(actuate) + return None def actuate_relay(self): self.__relay.on() @@ -361,7 +363,7 @@ class Automation2040WMini(): try: if value >= 0.0 and value <= 100.0: self.__outputs[output].duty_u16(int((value / 100.0) * 65535)) - return + return None except TypeError: pass diff --git a/micropython/modules_py/interstate75.py b/micropython/modules_py/interstate75.py index 6792d865..55b99431 100644 --- a/micropython/modules_py/interstate75.py +++ b/micropython/modules_py/interstate75.py @@ -1,5 +1,5 @@ from pimoroni import RGBLED, Button -from picographics import PicoGraphics, DISPLAY_INTERSTATE75_32X32, DISPLAY_INTERSTATE75_64X32, DISPLAY_INTERSTATE75_96X32, DISPLAY_INTERSTATE75_96X48, DISPLAY_INTERSTATE75_128X32, DISPLAY_INTERSTATE75_64X64, DISPLAY_INTERSTATE75_128X64, DISPLAY_INTERSTATE75_192X64, DISPLAY_INTERSTATE75_256X64 +from picographics import PicoGraphics, DISPLAY_INTERSTATE75_32X32, DISPLAY_INTERSTATE75_64X32, DISPLAY_INTERSTATE75_96X32, DISPLAY_INTERSTATE75_96X48, DISPLAY_INTERSTATE75_128X32, DISPLAY_INTERSTATE75_64X64, DISPLAY_INTERSTATE75_128X64, DISPLAY_INTERSTATE75_192X64, DISPLAY_INTERSTATE75_256X64, DISPLAY_INTERSTATE75_128X128 from pimoroni_i2c import PimoroniI2C import hub75 import sys @@ -29,6 +29,7 @@ class Interstate75: DISPLAY_INTERSTATE75_128X64 = DISPLAY_INTERSTATE75_128X64 DISPLAY_INTERSTATE75_192X64 = DISPLAY_INTERSTATE75_192X64 DISPLAY_INTERSTATE75_256X64 = DISPLAY_INTERSTATE75_256X64 + DISPLAY_INTERSTATE75_128X128 = DISPLAY_INTERSTATE75_128X128 PANEL_GENERIC = hub75.PANEL_GENERIC PANEL_FM6126A = hub75.PANEL_FM6126A @@ -43,10 +44,18 @@ class Interstate75: NUM_SWITCHES = 2 def __init__(self, display, panel_type=hub75.PANEL_GENERIC, stb_invert=False, color_order=hub75.COLOR_ORDER_RGB): - self.interstate75w = "Pico W" in sys.implementation._machine + self.interstate75w = "Pico W" in sys.implementation._machine # noqa: SLF001 self.display = PicoGraphics(display=display) self.width, self.height = self.display.get_bounds() - self.hub75 = hub75.Hub75(self.width, self.height, panel_type=panel_type, stb_invert=stb_invert, color_order=color_order) + + out_width = self.width + out_height = self.height + + if display == DISPLAY_INTERSTATE75_128X128: + out_width = 256 + out_height = 64 + + self.hub75 = hub75.Hub75(out_width, out_height, panel_type=panel_type, stb_invert=stb_invert, color_order=color_order) self.hub75.start() if self.interstate75w: self._switch_pins = self.SWITCH_PINS_W diff --git a/micropython/modules_py/inventor.py b/micropython/modules_py/inventor.py index 23dc53cf..1e2d649c 100644 --- a/micropython/modules_py/inventor.py +++ b/micropython/modules_py/inventor.py @@ -116,9 +116,9 @@ class Inventor2040W(): def play_tone(self, frequency): try: self.audio_pwm.freq(frequency) - except ValueError: + except ValueError as e: self.play_silence() - raise ValueError("frequency of range. Expected greater than 0") + raise ValueError("frequency of range. Expected greater than 0") from e corrected_volume = (self.__volume ** 4) # Correct for RC Filter curve self.audio_pwm.duty_u16(int(32768 * corrected_volume)) @@ -143,6 +143,7 @@ class Inventor2040W(): raise ValueError("volume out of range. Expected 0.0 to 1.0") self.__volume = volume + return None def mute_audio(self): self.__amp_en.off() diff --git a/micropython/modules_py/lte.py b/micropython/modules_py/lte.py index c64abb7c..de8642fa 100644 --- a/micropython/modules_py/lte.py +++ b/micropython/modules_py/lte.py @@ -54,8 +54,7 @@ class LTE(): def ipconfig(self, *args, **kwargs): if len(args): return self._ppp.ipconfig(*args) - else: - return self._ppp.ipconfig(**kwargs) + return self._ppp.ipconfig(**kwargs) def iccid(self): try: @@ -73,8 +72,7 @@ class LTE(): response = self._send_at_command("AT+CSQ", 1) quality = int(response.split(":")[1].split(",")[0]) # Conversion as per AT command set datasheet - db = -113 + (2 * quality) - return db + return -113 + (2 * quality) except CellularError: pass return None @@ -125,7 +123,7 @@ class LTE(): self._wait_ready() self._send_at_command("ATE0") # Disable local echo - self._send_at_command(f"AT+CGDCONT=1,\"IP\",\"{self._apn}\"") # Set apn and activate pdp context + self._send_at_command(f'AT+CGDCONT=1,"IP","{self._apn}"') # Set apn and activate pdp context # Wait for roaming lte connection to be established giveup = time.time() + timeout @@ -137,8 +135,8 @@ class LTE(): raise CellularError("timed out getting network registration") # Disable server and client certification validation - self._send_at_command("AT+CSSLCFG=\"authmode\",0,0") - self._send_at_command("AT+CSSLCFG=\"enableSNI\",0,1") + self._send_at_command('AT+CSSLCFG="authmode",0,0') + self._send_at_command('AT+CSSLCFG="enableSNI",0,1') print(f" - SIM ICCID is {self.iccid()}") diff --git a/micropython/modules_py/pimoroni.py b/micropython/modules_py/pimoroni.py index d59bada5..852c9b05 100644 --- a/micropython/modules_py/pimoroni.py +++ b/micropython/modules_py/pimoroni.py @@ -29,8 +29,7 @@ class Analog: def read_current(self): if self.resistor > 0: return self.read_voltage() / self.resistor - else: - return self.read_voltage() + return self.read_voltage() class AnalogMux: @@ -50,46 +49,46 @@ class AnalogMux: def select(self, address): if address < 0: raise ValueError("address is less than zero") - elif address > self.max_address: + if address > self.max_address: raise ValueError("address is greater than number of available addresses") - else: - if self.muxed_pin and self.pulls[address] is None: - self.muxed_pin.init(Pin.IN, None) - self.addr0_pin.value(address & 0b001) + if self.muxed_pin and self.pulls[address] is None: + self.muxed_pin.init(Pin.IN, None) - if self.addr1_pin is not None: - self.addr1_pin.value(address & 0b010) + self.addr0_pin.value(address & 0b001) - if self.addr2_pin is not None: - self.addr2_pin.value(address & 0b100) + if self.addr1_pin is not None: + self.addr1_pin.value(address & 0b010) - if self.en_pin is not None: - self.en_pin.value(1) + if self.addr2_pin is not None: + self.addr2_pin.value(address & 0b100) - if self.muxed_pin and self.pulls[address] is not None: - self.muxed_pin.init(Pin.IN, self.pulls[address]) + if self.en_pin is not None: + self.en_pin.value(1) + + if self.muxed_pin and self.pulls[address] is not None: + self.muxed_pin.init(Pin.IN, self.pulls[address]) def disable(self): - if self.en_pin is not None: - self.en_pin.value(0) - else: + if self.en_pin is None: raise RuntimeError("there is no enable pin assigned to this mux") + self.en_pin.value(0) + def configure_pull(self, address, pull=None): if address < 0: raise ValueError("address is less than zero") - elif address > self.max_address: + if address > self.max_address: raise ValueError("address is greater than number of available addresses") - else: - self.pulls[address] = pull + + self.pulls[address] = pull def read(self): - if self.muxed_pin is not None: - return self.muxed_pin.value() - else: + if self.muxed_pin is None: raise RuntimeError("there is no muxed pin assigned to this mux") + return self.muxed_pin.value() + class Button: def __init__(self, button, invert=True, repeat_time=200, hold_time=1000): @@ -113,10 +112,9 @@ class Button: self.pressed = True self.last_time = current_time return True - else: - self.pressed_time = 0 - self.pressed = False - self.last_time = 0 + self.pressed_time = 0 + self.pressed = False + self.last_time = 0 if self.repeat_time == 0: return False @@ -132,10 +130,7 @@ class Button: return False def raw(self): - if self.invert: - return not self.pin.value() - else: - return self.pin.value() + return self.pin.value() ^ self.invert @property def is_pressed(self):