This is a build log of Stargaze. An Automatic Portable Observatory project. The goal is to build an automatic sky tracking telescope with features such as automatic alignment, an in-built list of targets, and it will automatically stack and process images. Follow along on the build journey!
It’s maker day again! I took the entire telescope along to help iterate on a properly sized lens hood. The first iteration of the new design didn’t have quite enough tolerance. Needed about an extra 1mm I think.
I also wanted to test just how well the new async camera server was avoiding blocking the main thread. I whipped up a quick little function that I could just run as frequently as possible in the async loop and measure how often it was blocked. I can run this regardless of running AsyncIO in debug mode.
async def stall_detector() -> None:
import time
while True:
start_time = time.time()
await asyncio.sleep(0.05)
end_time = time.time()
task_time = end_time - start_time
if task_time > 0.11:
print(f"Stall detected: {task_time}")
This was pretty promising. I noticed a 1-2 blocks of 20-30ms during the capture process. Considering this involves:
1-2 blocking periods of up to 30ms is more than acceptable.
During the initial few seconds of the server running if I changed live view settings it could see stalls for up to around 150ms. This isn’t too bad either, especially if it’s only the first time it happens. I’ll keep an eye on it though to make sure it doesn’t happen too frequently and make sure it doesn’t grow too much.
We iterated the lens hoods and covers. We eventually found a size that fits perfectly with just the right tightness to be easy to get on and off, without being too loose.