Struggling to get Proxmark3 Easy to work on MacOS [SOLVED]

Last summer I ordered a Proxmark3 Easy and set it up successfully on a Windows laptop. That laptop is no longer alive and I am trying to get it installed on a Mac laptop. This is a new (as of April) Mac laptop with M2 chip and Ventura installed.

Proxmark3 Easy is installed directly into a USB C port using a USB-C to USB OTG adapter, then a Micro USB - to USB A cable. I can see the device in /dev/tty.usbmodemiceman1

Here’s what I did so far:

  1. Confirmed Rosetta 2 is installed
  2. Xcode-select --install
  3. /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
  4. (echo; echo ‘eval “$(/opt/homebrew/bin/brew shellenv)”’) >> /Users/myusername/.zprofile
  5. eval “$(/opt/homebrew/bin/brew shellenv)”
  6. brew install xquartz
  7. brew tap RfidResearchGroup/proxmark3
  8. brew install proxmark3 --with-generic

All this works. Then I run “pm3” and I get this error:

[=] Session log /Users/myusername/.proxmark3/logs/log_20230619.txt

[=] Using UART port /dev/tty.usbmodemiceman1

[!!] :rotating_light: Capabilities structure version sent by Proxmark3 is not the same as the one used by the client!

[!!] :rotating_light: Please flash the Proxmark with the same version as the client.

[!!] :rotating_light: ERROR: cannot communicate with the Proxmark


Trying to figure out what the proper next step is. I thought by installing the brew with “–with-generic” parameter I’d solve this issue, but clearly not.

Thanks in advance for any help, really need to get this working on my Mac laptop.

So I kept poking at this and I think I figured it out. The firmware on my proxmark3 Easy must have been older than what was included in the pm3 client. It wasn’t that I had messed something up with the GENERIC parameters, the versions were just mismatched.

The following steps seems to have cleared this up:

  1. ran pm3-flash-bootloader this was successful
  2. unplugged the pm3 from USB, held down pm3 button, reconnected it still holding down button, all lights illuminated. Eventually let go of pm3 button
  3. ran pm3-flash-fullimage it did a bunch of stuff successfully
  4. now I can run pm3 successfully

I am able to read and write to devices now, so I’m up and running, very happy :slight_smile:

xquartz isn’t working, but I don’t think I care right now. If anyone has any links to how to fix that I’d appreciate it, but otherwise I’m up and running:

[usb] pm3 → hw tune

[=] ---------- Reminder ------------------------

[=] hw tune doesn’t actively tune your antennas,

[=] it’s only informative.

[=] Measuring antenna characteristics, please wait…

:clock12: 9

[=] ---------- LF Antenna ----------

[+] LF antenna: 7.50 V - 125.00 kHz

[+] LF antenna: 8.09 V - 134.83 kHz

[+] LF optimal: 13.60 V - 179.10 kHz

[+] Approx. Q factor (*): 2.9 by frequency bandwidth measurement

[+] Approx. Q factor (*): 4.0 by peak voltage measurement

[+] LF antenna is OK

[=] ---------- HF Antenna ----------

[+] HF antenna: 16.31 V - 13.56 MHz

[+] Approx. Q factor (*): 4.7 by peak voltage measurement

[+] HF antenna is OK

(*) Q factor must be measured without tag on the antenna

[+] Displaying LF tuning graph. Divisor 88 (blue) is 134.83 kHz, 95 (red) is 125.00 kHz.

[!] :warning: You appear to be on a MacOS device without XQuartz.

[!] :warning: You may need to install XQuartz (https://www.xquartz.org/) to make the plot work.

2 Likes

Hey,
I see you follow the homebrew tutorial of proxmark3/doc/md/Installation_Instructions/Mac-OS-X-Homebrew-Installation-Instructions.md at master · RfidResearchGroup/proxmark3 · GitHub

can you execute these two in a shell ?
brew list | grep -i xquartz
then
which xquartz

if xquartz is properly installed you should have output like this

~ % brew list | grep -i xquartz
xquartz

~ % which xquartz
/opt/X11/bin/xquartz

Also it is possible xquartz is not in your exec path(but if it’s not you wont be able to do which xquartz). To verify this execute
ENV | grep -i path

you should get something like

PATH=/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/MacGPG2/bin:/opt/X11/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin

Please share the output with us so we can help further.
Btw bare in mind I have intel amd64 arch cpu mac, and I see yours is arm64 M series cpu( I see you also have roseta2 ) Thanks

1 Like

username@my-laptop-name ~ % brew list | grep -i xquartz

xquartz

username@my-laptop-name ~ % which xquartz

/opt/X11/bin/xquartz

username@my-laptop-name ~ % ENV | grep -i path

PATH=/opt/homebrew/bin:/opt/homebrew/sbin:/opt/local/bin:/opt/local/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin

MANPATH=/opt/homebrew/share/man:/opt/local/share/man:/opt/homebrew/share/man:::

INFOPATH=/opt/homebrew/share/info:/opt/homebrew/share/info:

Okay so your install looks fine from what I can see. I also noticed this in the docu

In order to get the data plotting GUI working, you will need an X server installed on Mac OS. Download and install XQuartz from here: https://www.xquartz.org/, which should work out of the box after logging out & back in to your account.

May sounds stupid but did you tried loggin out and into your account after installing the xquartz ? I took a brief look at the code of proxmark iceman fork but it’s 2 am here so I may be missing something. Also my proxmark is arriving tomorrow so I can test myself and provide some more info. I will keep you posted

1 Like

Sure enough, just needed to reboot :man_facepalming:t2:

Thanks for the suggestion.

1 Like

You’re welcome :slight_smile: