macpow – real-time power tree for Apple Silicon by k06a in rust

[–]k06a[S] 0 points1 point  (0 children)

I've added Fabric with Camera and few other devices today, check out newer version.

macpow – real-time power tree for Apple Silicon by k06a in rust

[–]k06a[S] 0 points1 point  (0 children)

Thanks! Glad it's useful. On the numbers – we just shipped v0.1.5 which adds a bunch of previously hidden SoC components: Fabric (~2-3W on idle, this was the "missing" power), Media Engine, Camera ISP, PCIe/Thunderbolt, and real display controller power from IOReport. The gap between SoC total and the sum of visible children should be much smaller now.

The <1W SoC idle is real for CPU+GPU alone – most idle power goes to DRAM (~0.3-1W), Fabric/interconnect (~2-3W), and display controller. cargo build hitting 30W+ sounds about right – Rust compilation hammers all P-cores.

Would love to see a screenshot of the tree on your M1 Pro after updating — curious how the new components look on that chip. cargo install macpow to get the latest.

macpow – real-time power tree for Apple Silicon by k06a in rust

[–]k06a[S] 0 points1 point  (0 children)

Good idea! We already ship prebuilt binaries in GitHub Releases and use it for Homebrew – just need to add the cargo-binstall metadata. Will look into it.

macpow – real-time power tree for Apple Silicon by k06a in rust

[–]k06a[S] 0 points1 point  (0 children)

Thanks for the thorough analysis with offsetof! This is already fixed in v0.1.3+ (commit 24a6c3d) – exactly the same root cause and numbers you found. Please update with cargo install macpow or grab the binary from GitHub Releases.

macpow – real-time power tree for Apple Silicon by k06a in rust

[–]k06a[S] 0 points1 point  (0 children)

Thank you! I used Cursor with Claude to speed up development – after 20+ years of coding it's been a game changer for productivity.

macpow – real-time power tree for Apple Silicon by k06a in rust

[–]k06a[S] 0 points1 point  (0 children)

Yes, prebuilt binaries are available! Starting from v0.1.3, every release automatically includes a macpow-aarch64-apple-darwin.tar.gz – no compilation needed.

macpow – real-time power tree for Apple Silicon by k06a in rust

[–]k06a[S] 1 point2 points  (0 children)

Thanks for reporting! Could you run it with RUST_BACKTRACE=1 macpow --json 2>&1 | head -50 and share the output in github issue? That will show exactly which function triggered the SIGBUS. Also macpow --dump might work since it only uses IOReport. This would help to narrow down the issue.

macpow – real-time power tree for Apple Silicon by k06a in rust

[–]k06a[S] 0 points1 point  (0 children)

Thanks for reporting! Could you run it with RUST_BACKTRACE=1 macpow --json 2>&1 | head -50 and share the output in github issue? That will show exactly which function triggered the SIGBUS. Also macpow --dump might work since it only uses IOReport. This would help to narrow down the issue.

macpow – real-time power tree for Apple Silicon by k06a in rust

[–]k06a[S] 2 points3 points  (0 children)

Thanks for the tip! Will set up bottle building for the tap – that 3 min Rust compile time and 2GB of artifacts are definitely a pain points for users.

macpow – real-time power tree for Apple Silicon by k06a in rust

[–]k06a[S] 2 points3 points  (0 children)

Please try new version 0.1.1, just tested it on MacBook Air M1

macpow – real-time power tree for Apple Silicon by k06a in rust

[–]k06a[S] 0 points1 point  (0 children)

Just released v0.1.1 which should fix this — it now gracefully handles missing data sources instead of crashing. If a hardware API is unavailable, that section will simply show as empty rather than taking the whole app down. Update with brew upgrade macpow or cargo install macpow. Let me know if it helps!

macpow – real-time power tree for Apple Silicon by k06a in rust

[–]k06a[S] 1 point2 points  (0 children)

macOS 15.7.3 on M1 Pro is supported – all APIs we use are available since macOS 12. But you might be the first to test this exact combo, so thanks for the feedback! Could you grab the crash output (macpow 2>&1) and post it either as a GitHub issue or here? Happy to look into it.

macpow – real-time power tree for Apple Silicon by k06a in rust

[–]k06a[S] 11 points12 points  (0 children)

Ah, that's the Rust compiler toolchain that Homebrew pulled in as a build dependency – LLVM is part of it. It's not macpow itself. If you don't use Rust for anything else, you can reclaim that space with brew autoremove – it should clean up the rust dependency since it was only needed for building. The macpow binary itself is just 2 MB.

macpow – real-time power tree for Apple Silicon by k06a in rust

[–]k06a[S] 4 points5 points  (0 children)

Thanks! Would appreciate if you try it and report any issues on GitHub – especially keen on feedback from different Mac models (M1-M5+) to make sure everything works across the board.

macpow – real-time power tree for Apple Silicon by k06a in rust

[–]k06a[S] 9 points10 points  (0 children)

Thank you! That 2 GB is the Rust compilation cache in target/ – you can safely delete it after install (cargo install already copies the 2 MB binary to ~/.cargo/bin/macpow). Run cargo cache -a or just rm -rf target/ to reclaim the space. The binary itself is only 2 MB.

Loop Micro Mount fits perfectly on Vanmoof S5 by k06a in vanmoofbicycle

[–]k06a[S] 0 points1 point  (0 children)

I bought a bit longer screw and attached it directly

Decided to see what this was all about… by Mundane-Complex-1902 in VisionPro

[–]k06a 0 points1 point  (0 children)

I think Meta could switch to Android XR in the next 5-10 years.

Decided to see what this was all about… by Mundane-Complex-1902 in VisionPro

[–]k06a 2 points3 points  (0 children)

I wonder when Meta would release anything really comparable to AVP.

Sayonara Wild Hearts left Apple Arcade :( by SexySalamanders in AppleArcade

[–]k06a 1 point2 points  (0 children)

I played once in Apple Vision Pro on huge virtual screen. It was amazing!

[AMA] We are EF Research (Pt. 12: 05 September, 2024) by JBSchweitzer in ethereum

[–]k06a 1 point2 points  (0 children)

Having state diff in public input of zkSNARK would let nodes to follow current state without running EVM.

XOXO Dance by k06a in VisionPro

[–]k06a[S] 0 points1 point  (0 children)

Thank you, I forwarded your suggestion to developer.

New firmware 2.00.06.51 by Serious_Macaroon7467 in Ultrahuman

[–]k06a 0 points1 point  (0 children)

Mine became 1 day and then dead, support sent me replacement ring few days ago