# Windows

## Getting started

It is assumed that the reader of this document is the local administrator of a machine running Windows 7 (anyway proxmark3 can be also used under XP, Vista, Windows 8 or later). This document is intended as a guide only. Group policies and custom configurations are outside the scope of this document. This guide has not been tested against the "Home" or "Starter" editions of Windows 7.

## Requirements

• A computer running Windows 7 with an available USB port.
• An USB Mini-B cable.
• A Proxmark 3.
• HF and / or LF antenna for the Proxmark.
• A technical understanding of the Proxmark III is not required for the installation process.

## Development environment installation

4. "ProxSpace-master.zip" should be extracted wherever you want to keep the Proxmark project. Additionally, the location should not include spaces. For instance - "C:\Projects\Proxmark" would be acceptable whereas "C:\Users\Administrator\My Projects\Proxmark" would not.
5. Assuming you installed 7-ZIP using all of the default options, you should have 7-ZIP context menu items.
6. Right-click "ProxSpace-master.zip" and select 7-Zip > Extract Here.
7. Assuming you installed GitHub for Windows using all of the default options, you should open it and drag&drop https://github.com/Proxmark/proxmark3 link into "drag a repository here to add" button.
8. Click on the right arrow next to "Proxmark/proxmark3" name and let it sync with the repository; source code will be downloaded here: "C:\Users\USERNAME\Documents\GitHub\proxmark3".
9. Rename the "C:\Users\USERNAME\Documents\GitHub\proxmark3" folder to "C:\Users\USERNAME\Documents\GitHub\pm3" and copy it in the ProxSpace folder overwriting the existing one.
10. Test the configuration by running "runme.bat". You should see a Minimalist GNU terminal window.
11. Build the proxmark executable and firmware files by typing "make clean && make all"
12. Type "exit" to close the window.

## Proxmark Driver Installation

1. Find the driver file in the "ProxSpace\pm3\driver" folder you created in the Development environment setup
2. Attach the Proxmark to the computer. A notification in the tray should appear indicating the ProxMark has been detected:
3. For windows 8 and above you are done, the auto installed Microsoft driver should be fine.
4. For windows 7 Open the Device Manager:
Start > Control Panel > System > Hardware > Device Manager
or
Win + Pause / Break > Hardware > Device Manager.
1. Expand out the "Human Interface Devices" and right-click the "USB Serial Device (COMx)" in the tree and click Update Driver... > Browse my computer for driver software > Let me pick from a list of device drivers on my computer > Have Disk... > Browse.
2. In the Locate File window, navigate to the Proxmark Driver folder found at step 1. Select "proxmark3.inf" then click Open > Ok > Next > Close.
1. Installing this driver may require a restart.

## Flashing your Proxmark3 to the latest firmware

1. Follow Development environment installation through step 11 (don't do step 12)
2. if you get any errors on step 11 post on the forum to get this resolved before going forward.
3. Flash the bootrom by typing ./client/flasher comx -b ./bootrom/obj/bootrom.elf (replace comx with your device's com port number i.e. com3)
4. Flash the firmware by typing ./client/flasher comx ./armsrc/obj/fullimage.elf (replace comx with your device's com port number i.e. com3)
5. if successful you are done, if not try unplugging your pm3 hold the button on the pm3 down and reconnect the pm3 (let it get detected) then re-run the flasher command all while holding the button down until it is done.
6. if that still doesn't work check that the driver is properly installed and your device is detected in device manager.

## Update Proxmark to the new CDC Serial Interface

Since r655 (included) proxmark uses the new CDC/Serial interface; it is very fast if compared to old libusb one. Usually proxmark boards bought online have newer firmware so you will probably NOT need to update your device to the CDC interface as it will already be on it! But if your PM3 has been in a drawer for the last 5 years you might...

REQUIREMENTS:

-          A PROXMARK3 with OLD bootrom (previous to r655 version, excluded r655)

-          Batch Files provided in the pm3-bin-756 (cdc+lua).rar:

FLASH - Bootrom.bat

FLASH - FPGA fullimage.bat

FLASH - OS.bat

FLASH - NEW Bootrom (uses old flasher exe with -b option).bat

PROCEDURE:

1 –  Disconnect PM3 from USB

2 – Launch FLASH NEW Bootrom (uses old flasher exe with -b option).bat that you will find in \win32 folder and you will see this screen:

3 - Read the disclaimer and press any keyboard button

4 – You will now see this instruction page:

So, WHILE HOLDING the PM3 BUTTON, CONNECT the PM3 to a USB port, wait that PM3 is recognized by Windows (few seconds – you will hear the classic “usb-connected-windows-sound”) and, ALWAYS HOLDING DOWN the PM3 button (never release it!), press any button to continue flashing.

5 – When you will read the “flashing successful” message (after very few seconds) hit any button to continue

6 – You can now release the PM3 button

Now, connecting PM3 to USB port, it will be recognized as a COM port; you need to know the COM port number in order to execute proxmark3.exe because now it requires the com port parameter as the following example:

Proxmark3.exe com5

To know the port number assigned to it, right-click on “Computer” icon and select “Properties”:

:

You will see the “System” panel; form here click on “Device Manager”:

When “Device Manager” opens up expand the “Ports” settings and read the COM port assigned to the Proxmark3; here is an example (COM5):

After doing that you will need to edit (righ-click -> ”Edit”) the following batch you can find under “win32” folder:

FLASH - Bootrom.bat

FLASH - FPGA fullimage.bat

FLASH - OS.bat

In those files you need to change the com port number after the “flasher.exe” according to YOUR Proxmark3 current port number !

You will now be able to flash bootloader, OS image and FPGA without holding down the Proxmark3 button !

WINDOWS PROBLEMS IN RECOGNIZING COM PORT

If you still see something like that in “Device Manager” (PM3 still under libusb-win32 devices):

You need to update PM3 drivers as follow:

A – Unplug Proxmark3

B – Plug-in Proxmark3 WHILE HOLDING the PM3 button (keep it pressed!); now PM3 will show up under “Device Manager”

C – while STILL HOLDING the button, right-click on it

D – click on “Properties” (keep the button pressed)

E – click on “Driver” tab and select “Update Driver…” (keep the button pressed)

F – Select “Browse my computer for driver software” (keep the button pressed):

G – Browse to your ProxSpace folder and select pm3\driver\proxmark3.inf (keep the button pressed)

H – You can now finally release the button

Now you will be able to flash the OS Image and FPGA with the COM-port number found under “Device Manager”

## Testing the Proxmark

You are now at the stage where you should be able to communicate with your Proxmark.

Go in to your Proxmark project folder and run the "runme.bat" file. If for whatever reason "runme.bat" does not open a Minimalist GNU terminal window, open a command prompt and run "runme.bat" from there. By doing so you should see any errors and diagnose the problem.

If you have the old libusb firmware run the Proxmark software - "./client/proxmark3.exe". You should see something like this:

Connected units:
SN: ChangeMe [bus-0/\.\libusb0-0001--0x9ac4-0x4b8f]
proxmark3>

If you have the new cdc/serial interface run the Proxmark software - "./client/proxmark3.exe comX" where "X" is the com port number assigned to proxmark3 under Windows. You should see something like this:

proxmark3>

Once connected, check what firmware you are running - "hw version". You should see something like this if your firmware is older than r798:

db# Prox/RFID mark3 RFID instrument
db# bootrom: svn 486-suspect 2011-07-18 12:48:52
db# os: svn 486-suspect 2011-07-18 12:48:57
db# FPGA image built on 2009/12/ 8 at 8: 3:54

db# Prox/RFID mark3 RFID instrument
db# bootrom: svn 698 2013-04-17 10:19:38
db# os: svn 0 2014-03-21 08:15:55
db# FPGA image built on 2014/02/25 at 07:43:59
uC: AT91SAM7S256 Rev B
Embedded Processor: ARM7TDMI
Nonvolatile Program Memory Size: 256K bytes
Second Nonvolatile Program Memory Size: None
Internal SRAM Size: 64K bytes
Architecture Identifier: AT91SAM7Sxx Series
Nonvolatile Program Memory Type: Embedded Flash Memory

Connect your antenna(s) to the Proxmark and type in "hw tune";
you should see something like this:

db# Measuring antenna characteristics, please wait. LF antenna: 33.17 V @ 125.00 kHz
LF antenna: 41.89 V @ 134.00 kHz
LF optimal: 41.76 V @ 127.66 kHz
HF antenna: 7.28 V @ 13.56 MHz

Type "quit" to exit out of the program.

## Compiled firmware with Windows Client

If you have problems setting up the compiling environment you can find some ready-to-use compiled packages HERE. Each package contains the compiled firmware (.elf, .s19 and .bin files for bootrom, ARM and FPGA), Windows Drivers (libusb and cdc/serial) and Windows Client including a not-always-up-to-date version of the useful Graphical User Interface (see below). Read the included README.TXT for more information.

## Notes

There are many commands available within the Proxmark client. Type "help" to list the commands available to you. You get a list of following subcommands by typing in the command you're interested followed by help (Eg. "hf help"). For detailed help please read the Proxmark User Manual.

There is also the -h parameter you can use to see which client commands are available with or without a connected proxmark; USAGE: proxmark -h

Command shortcutting is permitted. For instance typing "hf mf re" will achieve the same results as typing "hf mf restore1k" because it is the only "hf mf" command available that begins with "re".

You might have noticed when you executed the command "hw version" there was a "-unclean" or "-suspect" in the "bootrom" or "os" version information. This information indicates that the code may have changes in the local code versus the subversion revision.

• A clean build is a build that has no local changes versus the subversion revision.
• Unclean builds have local changes versus the subversion revision.
• Suspect builds cannot be compared against the subversion revision.

Newer GitHub updates will be named using Semanthic Versioning; to sum it up if you have, for example, version 3.1.7:
3 = MAJOR version when you make incompatible API changes,
1 = MINOR version when you add functionality in a backwards-compatible manner, and
7 = PATCH version when you make backwards-compatible bug fixes.

Older Google Code updates were named with the letter r followed by a progressive number (ex. r786).

## Next steps

From here on in the rest is up to you. You might want to confirm that the firmware you're running is the latest. In addition to this you might want to begin reading through the Proxmark source code and making changes of your own.

We suggest you read the following documentation: