I was having a no start problem after upgrading RPi3B running DietPi. I tried Tom's suggestion and it fixed the problem.
Prior to the "fix" my log file showed:
-- Journal begins at Mon 2024-02-12 11:47:21 AEDT, ends at Mon 2024-02-12 12:40:34 AEDT. --
Feb 12 11:47:23 SystemName systemd[1]: Started WeeWX.
Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: Initializing weewxd version 5.0.1
Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: Command line: /usr/share/weewx/weewxd.py /etc/weewx/weewx.conf
Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: Using Python 3.9.2 (default, Feb 28 2021, 17:03:44)
[GCC 10.2.1 20210110]
Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: Located at /usr/bin/python3
Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: Platform Linux-6.1.21-v8+-aarch64-with-glibc2.31
Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: Locale: 'en_AU.UTF-8'
Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: Entry path: /usr/share/weewx/weewxd.py
Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: WEEWX_ROOT: /etc/weewx
Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: Configuration file: /etc/weewx/weewx.conf
Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: User module: /etc/weewx/bin/user
Feb 12 11:47:24 SystemName weewxd[309]: INFO __main__: Debug: 0
Feb 12 11:47:24 SystemName weewxd[309]: INFO weewx.engine: Loading station type FineOffsetUSB (weewx.drivers.fousb)
Feb 12 11:47:24 SystemName weewxd[309]: INFO weewx.drivers.fousb: driver version is 1.3
Feb 12 11:47:24 SystemName weewxd[309]: INFO weewx.drivers.fousb: polling mode is PERIODIC
Feb 12 11:47:24 SystemName weewxd[309]: INFO weewx.drivers.fousb: polling interval is 60
Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.drivers.fousb: found station on USB bus= device=
Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.engine: StdConvert target unit is 0x11
Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.wxservices: StdWXCalculate will use data binding wx_binding
Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.engine: Archive will use data binding wx_binding
Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.engine: Record generation will be attempted in 'software'
Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.engine: Using archive interval of 300 seconds (software record generation)
Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.restx: StationRegistry: Station will not be registered: no station_url specified.
Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.restx: Wunderground-PWS: Data for station ITEATR7 will be posted
Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.restx: PWSWeather: Data for station THISTLEWIND will be posted
Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.restx: CWOP: Posting not enabled.
Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.restx: WOW: Posting not enabled.
Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.restx: AWEKAS: Posting not enabled.
Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.engine: 'pyephem' detected, extended almanac data is available
Feb 12 11:47:25 SystemName weewxd[309]: INFO __main__: Starting up weewx version 5.0.1
Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.engine: Using binding 'wx_binding' to database 'weewx.sdb'
Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.manager: Starting backfill of daily summaries
Feb 12 11:47:25 SystemName weewxd[309]: INFO weewx.manager: Daily summaries up to date
Feb 12 11:47:26 SystemName weewxd[309]: INFO weewx.drivers.fousb: synchronising to the weather station (quality=0)
Feb 12 11:47:57 SystemName weewxd[309]: INFO weewx.drivers.fousb: unstable read: blocks differ for ptr 0x001380
Feb 12 11:49:44 SystemName weewxd[309]: ERROR weewx.drivers.fousb: invalid data in get_records at 0x09b0, 2024-02-08T18:19:29
Feb 12 11:49:47 SystemName weewxd[309]: /usr/lib/python3/dist-packages/gpiozero/devices.py:288: PinFactoryFallback: Falling back from rpigpio: No module named 'RPi'
Feb 12 11:49:47 SystemName weewxd[309]: warnings.warn(
Feb 12 11:49:47 SystemName weewxd[309]: /usr/lib/python3/dist-packages/gpiozero/devices.py:288: PinFactoryFallback: Falling back from lgpio: No module named 'lgpio'
Feb 12 11:49:47 SystemName weewxd[309]: warnings.warn(
Feb 12 11:49:47 SystemName weewxd[309]: /usr/lib/python3/dist-packages/gpiozero/devices.py:288: PinFactoryFallback: Falling back from rpio: No module named 'RPIO'
Feb 12 11:49:47 SystemName weewxd[309]: warnings.warn(
Feb 12 11:49:47 SystemName weewxd[309]: /usr/lib/python3/dist-packages/gpiozero/devices.py:288: PinFactoryFallback: Falling back from pigpio: No module named 'pigpio'
Feb 12 11:49:47 SystemName weewxd[309]: warnings.warn(
Feb 12 11:49:47 SystemName weewxd[309]: /usr/lib/python3/dist-packages/gpiozero/devices.py:288: PinFactoryFallback: Falling back from native: unable to open /dev/gpiomem or /dev/mem; upgrade your kernel or run as root
Feb 12 11:49:47 SystemName weewxd[309]: warnings.warn(
Feb 12 11:49:47 SystemName weewxd[309]: INFO weewx.engine: Main loop exiting. Shutting engine down.
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: Caught unrecoverable exception:
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** Unable to load any default pin factory!
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** Traceback (most recent call last):
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** File "/usr/share/weewx/weewxd.py", line 166, in main
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** engine.run()
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 174, in run
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** self.dispatchEvent(weewx.Event(weewx.STARTUP))
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** callback(event)
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 610, in startup
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** self._catchup(self.engine.console.genStartupRecords)
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 726, in _catchup
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** self.engine.dispatchEvent(weewx.Event(weewx.NEW_ARCHIVE_RECORD,
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** File "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** callback(event)
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** File "/etc/weewx/bin/user/cputemp.py", line 17, in new_archive_record
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** cpu = CPUTemperature()
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** File "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 108, in __call__
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** self = super(GPIOMeta, cls).__call__(*args, **kwargs)
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** File "/usr/lib/python3/dist-packages/gpiozero/internal_devices.py", line 277, in __init__
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** super(CPUTemperature, self).__init__(
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** File "/usr/lib/python3/dist-packages/gpiozero/internal_devices.py", line 69, in __init__
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** super(PolledInternalDevice, self).__init__(pin_factory=pin_factory)
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** File "/usr/lib/python3/dist-packages/gpiozero/internal_devices.py", line 42, in __init__
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** super(InternalDevice, self).__init__(pin_factory=pin_factory)
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** File "/usr/lib/python3/dist-packages/gpiozero/mixins.py", line 218, in __init__
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** super(EventsMixin, self).__init__(*args, **kwargs)
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** File "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 250, in __init__
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** Device.pin_factory = Device._default_pin_factory()
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** File "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 291, in _default_pin_factory
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** raise BadPinFactory('Unable to load any default pin factory!')
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** gpiozero.exc.BadPinFactory: Unable to load any default pin factory!
Feb 12 11:49:47 SystemName weewxd[309]: CRITICAL __main__: **** Exiting.
Feb 12 11:49:47 SystemName weewxd[309]: Traceback (most recent call last):
Feb 12 11:49:47 SystemName weewxd[309]: File "/usr/share/weewx/weewxd.py", line 265, in <module>
Feb 12 11:49:47 SystemName weewxd[309]: main()
Feb 12 11:49:47 SystemName weewxd[309]: File "/usr/share/weewx/weewxd.py", line 166, in main
Feb 12 11:49:47 SystemName weewxd[309]: engine.run()
Feb 12 11:49:47 SystemName weewxd[309]: File "/usr/share/weewx/weewx/engine.py", line 174, in run
Feb 12 11:49:47 SystemName weewxd[309]: self.dispatchEvent(weewx.Event(weewx.STARTUP))
Feb 12 11:49:47 SystemName weewxd[309]: File "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent
Feb 12 11:49:47 SystemName weewxd[309]: callback(event)
Feb 12 11:49:47 SystemName weewxd[309]: File "/usr/share/weewx/weewx/engine.py", line 610, in startup
Feb 12 11:49:47 SystemName weewxd[309]: self._catchup(self.engine.console.genStartupRecords)
Feb 12 11:49:47 SystemName weewxd[309]: File "/usr/share/weewx/weewx/engine.py", line 726, in _catchup
Feb 12 11:49:47 SystemName weewxd[309]: self.engine.dispatchEvent(weewx.Event(weewx.NEW_ARCHIVE_RECORD,
Feb 12 11:49:47 SystemName weewxd[309]: File "/usr/share/weewx/weewx/engine.py", line 241, in dispatchEvent
Feb 12 11:49:47 SystemName weewxd[309]: callback(event)
Feb 12 11:49:47 SystemName weewxd[309]: File "/etc/weewx/bin/user/cputemp.py", line 17, in new_archive_record
Feb 12 11:49:47 SystemName weewxd[309]: cpu = CPUTemperature()
Feb 12 11:49:47 SystemName weewxd[309]: File "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 108, in __call__
Feb 12 11:49:47 SystemName weewxd[309]: self = super(GPIOMeta, cls).__call__(*args, **kwargs)
Feb 12 11:49:47 SystemName weewxd[309]: File "/usr/lib/python3/dist-packages/gpiozero/internal_devices.py", line 277, in __init__
Feb 12 11:49:47 SystemName weewxd[309]: super(CPUTemperature, self).__init__(
Feb 12 11:49:47 SystemName weewxd[309]: File "/usr/lib/python3/dist-packages/gpiozero/internal_devices.py", line 69, in __init__
Feb 12 11:49:47 SystemName weewxd[309]: super(PolledInternalDevice, self).__init__(pin_factory=pin_factory)
Feb 12 11:49:47 SystemName weewxd[309]: File "/usr/lib/python3/dist-packages/gpiozero/internal_devices.py", line 42, in __init__
Feb 12 11:49:47 SystemName weewxd[309]: super(InternalDevice, self).__init__(pin_factory=pin_factory)
Feb 12 11:49:47 SystemName weewxd[309]: File "/usr/lib/python3/dist-packages/gpiozero/mixins.py", line 218, in __init__
Feb 12 11:49:47 SystemName weewxd[309]: super(EventsMixin, self).__init__(*args, **kwargs)
Feb 12 11:49:47 SystemName weewxd[309]: File "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 250, in __init__
Feb 12 11:49:47 SystemName weewxd[309]: Device.pin_factory = Device._default_pin_factory()
Feb 12 11:49:47 SystemName weewxd[309]: File "/usr/lib/python3/dist-packages/gpiozero/devices.py", line 291, in _default_pin_factory
Feb 12 11:49:47 SystemName weewxd[309]: raise BadPinFactory('Unable to load any default pin factory!')
Feb 12 11:49:47 SystemName weewxd[309]: gpiozero.exc.BadPinFactory: Unable to load any default pin factory!
Feb 12 11:49:47 SystemName systemd[1]: weewx.service: Main process exited, code=exited, status=1/FAILURE
Feb 12 11:49:47 SystemName systemd[1]: weewx.service: Failed with result 'exit-code'.
Feb 12 11:49:47 SystemName systemd[1]: weewx.service: Consumed 2.701s CPU time.