I'm not sure if you are providing a running commentary or seeking help. If the latter then I have no idea where to start. Personally, I think your architecture is way too complex; you appear to be running a highly modified driver that seeks to amalgamate data from two sources. I imagine you will strike all sorts of corner cases depending on what arrives when. I would also question the utility of reading indoor obs every seven seconds, seems way too frequent to me. All told I doubt you are going to find too many folks here to help.
Why not run a standard sdr driver to feed WeeWX with loop packets from the Atlas with a simple, non-threaded data service bound to the new loop packet arrival to read the 'indoor data' (I assume this is pressure, temperature and humidity) and augment the loop packet. Far more modular and easier to test/develop (and get help), you will be running a standard sdr driver, and since you are already getting your hands dirty modifying the sdr driver, writing a small data service to handle the Arduino input should be a walk in the park. If the Arduino is serially connected to the RPi you should not have great latency in accessing data, so a suitably short timeout on the serial reads should provide you with you indoor data without blocking the main WeeWX thread. Once proved, the serial read could be moved to a thread if you really had the need. Gary -- You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/b9903bcd-d518-4967-bcdc-0e7c698202bcn%40googlegroups.com.