Skip to content

dazwin/pulseview-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PulseView (native Apple Silicon build)

Builds PulseView and its sigrok libraries natively for arm64 macOS, and packages a self-contained /Applications/PulseView.app.

The old approach ran the 2018 x86_64 PulseView 0.4.2 .dmg under Rosetta. That is no longer necessary — libsigrok, libsigrokdecode and pulseview all build cleanly as native arm64 against Homebrew's Qt6.

Quick start

make            # full build + package /Applications/PulseView.app
open -a PulseView

Requires Homebrew. The build installs its own dependencies (Qt6, glib/glibmm, boost, libusb/hidapi/libftdi/libserialport, doxygen, swig, python@3.14) via brew.

Targets

Command What it does
make Full from-scratch build + package the app
make install Same as make (the app is the install)
make package Repackage /Applications/PulseView.app from an existing build (no recompile)
make run Launch the dev binary from the build tree
make clean Remove downloaded sources + build prefix
make distclean clean + remove the installed app

What gets built

make (via install.sh) clones three repos and builds them in order, all under this directory:

  1. libsigrok (git) → sigrok/ prefix — needs Doxygen for the C++ bindings.
  2. libsigrokdecode (git) → sigrok/ prefix — protocol decoders; linked against Homebrew's default python@3.14.
  3. pulseview (git, Qt6) → pulseview/build/pulseview.

Then it packages everything into /Applications/PulseView.app: the binary, the sigrok dylibs (rewritten to bundle-relative paths), the decoders, the fx2lafw firmware, and Qt frameworks via macdeployqt. The app is self-contained except for Homebrew's python@3.14, which the decoders link by absolute path.

The cloned sources (libsigrok/, libsigrokdecode/, pulseview/) and the build prefix (sigrok/) are git-ignored — they're downloaded artifacts and re-created by make.

Local patches

patches/*.patch are applied to the fresh PulseView checkout on every build (install.sh runs git apply after cloning). Currently:

  • pulseview-top-margin-clamp.patch — stops the first trace (D0) being clipped at, or pushed below, the top of the view when a stale saved v_offset is restored. Top-aligns the trace stack when it fits the window; otherwise honours the saved scroll position but clamps it so the first trace can never be clipped.
  • pulseview-default-samplerate-count.patch — sets the default acquisition parameters to 16 MHz sample rate and 1k sample limit when a device is selected (the driver clamps the rate to its nearest supported value).

Notes

  • Why build the sigrok libs from git rather than the Homebrew bottles? PulseView master uses decoder APIs (logic output channels, the Glib::DateTime header packet) that the released 0.5.x bottles predate. Building all three from git keeps the versions self-consistent.
  • The fx2lafw firmware (needed for Saleae Logic clones to capture, not just enumerate) has no Homebrew formula; install.sh downloads the official blobs.
  • First launch may hit Gatekeeper (the app is ad-hoc signed, not notarized): right-click → Open once.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors