Replies: 2 comments 1 reply
|
Hi @ToBinio , Thanks for bringing this up! Your ESP32 project is a very interesting use case for Siderust, and I think it highlights an opportunity to improve support for resource-constrained devices. One of the properties I'd particularly like to preserve is that VSOP87 coefficients are embedded directly into the compiled binary. This allows Siderust to operate completely offline, without external datasets, filesystem access, or runtime initialization, while providing fast and predictable calculations. Rather than simply reducing the VSOP87 tables, I'd like to investigate a more general approach to compact, embedded ephemerides, balancing accuracy, binary size, and computational performance. A few possibilities seem worth exploring:
Importantly, all three approaches could preserve offline operation and compile-time embedded data. The trade-offs would need to be validated through actual binary-size, accuracy, and performance measurements. Before deciding which approach to pursue, I'd love to understand a few details about your project:
I'd also like to verify whether the linker is already removing unused coefficient tables before introducing a new representation. My preference would be to keep the existing high-precision VSOP87 implementation intact while exploring an optional compact backend, ideally compatible with "no_std" and requiring no runtime allocations. Once we get a clear idea we can create dedicated issues and prioritize them. Thanks again for opening the discussion! |
|
Thanks, answers below:
Edit: I have decided to implement the position calculation myself instead of using a library, so I get a better understanding of the math / logic behind it! Still, thanks a lot for the quick answer! |
Uh oh!
There was an error while loading. Please reload this page.
Hi,
I'm playing around with a hobby project: a small desk device that can point at various celestial bodies.
I found your library and it looks extremely promising. However, I'm running into one problem: my ESP32 only has 4 MB of DROM, and just two instances of vsop::vsop87e_data already fill it completely.
Would it be possible to get a smaller version of the data with reduced precision?
Please note that astronomical positioning is completely new to me and well outside my comfort zone, so if there's something I should be doing differently, please let me know!
Thanks a lot!
All reactions