This commit is contained in:
iceman1001 2021-12-31 11:11:29 +01:00
commit 7fb0856cdb
5 changed files with 110 additions and 9 deletions

View file

@ -1,10 +1,13 @@
# T5577 Introduction Guide # T5577 Introduction Guide
<a id="Top"></a>
### Based on RRG/Iceman Proxmark3 repo ### Based on RRG/Iceman Proxmark3 repo
### Ver.1 8 Sep 2019 ### Ver.1 8 Sep 2019
### Ver.2 7 March 2021 ### Ver.2 7 March 2021
# Table of Contents
| Contents | | Contents |
| ----------------------------------------------------------------------------------- | | ----------------------------------------------------------------------------------- |
| [Part 1](#part-1) | | [Part 1](#part-1) |
@ -21,8 +24,10 @@
| [The configuration Block Block 3 Page 1](#the-configuration-block-block-3-page-1) | | [The configuration Block Block 3 Page 1](#the-configuration-block-block-3-page-1) |
# Part 1 # Part 1
^[Top](#top)
## Introduction ## Introduction
^[Top](#top)
The T5577 is a generic LF (Low Frequency) RFID card that is used in the The T5577 is a generic LF (Low Frequency) RFID card that is used in the
125 Khz frequency space. It is a good card to use to learn about RFID and 125 Khz frequency space. It is a good card to use to learn about RFID and
@ -49,6 +54,7 @@ try these as we go. To do so, have a blank T5577 card that you can use
for this purpose. for this purpose.
## T5577 Overview ## T5577 Overview
^[Top](#top)
The T5577 is a chip that can hold data and a configuration (Section The T5577 is a chip that can hold data and a configuration (Section
4.12). 4.12).
@ -63,6 +69,7 @@ the chip how to behave.
## What data is on my T5577 ## What data is on my T5577
^[Top](#top)
Lets have a look and see what a card might look like in the proxmark3 Lets have a look and see what a card might look like in the proxmark3
software. Since we can change the configuration of how the T5577 will software. Since we can change the configuration of how the T5577 will
@ -121,6 +128,7 @@ I will cover the meaning of this data as we go, but for now, lets keep
it simple. it simple.
## Read and Write Blocks of Data ## Read and Write Blocks of Data
^[Top](#top)
The basic function of using the proxmark3 with rfid cards is to read and The basic function of using the proxmark3 with rfid cards is to read and
write data. This reading and writing must be done in the correct way write data. This reading and writing must be done in the correct way
@ -224,6 +232,7 @@ can see the card)
``` ```
### Exercise 1 ### Exercise 1
^[Top](#top)
Using the read and write commands you have learnt see if you can make Using the read and write commands you have learnt see if you can make
the lf t55 dump command show the following data for blocks 1-7 (Page 0). the lf t55 dump command show the following data for blocks 1-7 (Page 0).
@ -261,6 +270,7 @@ If you forget this data/password, you won't be able to read or write
to the card. to the card.
## How do I use a password ## How do I use a password
^[Top](#top)
This can be a little tricky for beginners. This can be a little tricky for beginners.
***If you forget your password you will lose access to your card***. ***If you forget your password you will lose access to your card***.
@ -521,6 +531,7 @@ required, please do not proceed.
Yes we can! We can see Block 0 is the correct config 00088040 Yes we can! We can see Block 0 is the correct config 00088040
# Part 2 Configuration Blocks # Part 2 Configuration Blocks
^[Top](#top)
One of the things a lot of people have trouble with or miss, is that the One of the things a lot of people have trouble with or miss, is that the
T5577 has two different and separate communications protocols, each with T5577 has two different and separate communications protocols, each with
@ -539,6 +550,7 @@ from Block 3 Page 1. If the command is not encoded correctly it will
ignore the command and revert back to default read mode. ignore the command and revert back to default read mode.
## The configuration Block Block 0 Page 0 ## The configuration Block Block 0 Page 0
^[Top](#top)
For this configuration the settings chosen will be for the purpose of For this configuration the settings chosen will be for the purpose of
the card when used in production. E.G. If you want the card to act like the card when used in production. E.G. If you want the card to act like
@ -685,6 +697,7 @@ password set (if not, review and get you card back to this state).
(Max Block = 2). On the T5577 these will be Blocks 1 and 2. (Max Block = 2). On the T5577 these will be Blocks 1 and 2.
## Exercise 2 ## Exercise 2
^[Top](#top)
Using the skills form part 1, see if you can view the data in blocks 1 and 2. Using the skills form part 1, see if you can view the data in blocks 1 and 2.
@ -699,3 +712,6 @@ it, we can follow the password section and update the config from
***Important : Dont forget to set a valid password in block 7 and remember it.*** ***Important : Dont forget to set a valid password in block 7 and remember it.***
## The configuration Block Block 3 Page 1 ## The configuration Block Block 3 Page 1
^[Top](#top)
_to be written_

View file

@ -1,4 +1,28 @@
# Notes on paths. # Notes on path
<a id="Top"></a>
# Table of Contents
- [Notes on path](#notes-on-path)
- [Table of Contents](#table-of-contents)
- [Installed elements](#installed-elements)
- [Binaries](#binaries)
- [Firmwares](#firmwares)
- [Traces](#traces)
- [JTAG-related stuff](#jtag-related-stuff)
- [Proxmark3 client files: dictionaries](#proxmark3-client-files-dictionaries)
- [Proxmark3 client files: cmd scripts](#proxmark3-client-files-cmd-scripts)
- [Proxmark3 client files: Lua libraries and scripts](#proxmark3-client-files-lua-libraries-and-scripts)
- [Proxmark3 client files: various resources](#proxmark3-client-files-various-resources)
- [Documentation](#documentation)
- [User files](#user-files)
- [.history / log files](#history--log-files)
- [Proxmark3 client files and traces](#proxmark3-client-files-and-traces)
- [Searching files](#searching-files)
- [TL;DR](#tldr)
- [Gory details](#gory-details)
- [Scripts](#scripts)
- [Proxmark command script (.cmd)](#proxmark-command-script-cmd)
- [Shebangs (on *nix)](#shebangs-on-nix)
With the recent (2019-09-01) changes and creation of `make install` command it is easy to get lost. With the recent (2019-09-01) changes and creation of `make install` command it is easy to get lost.
@ -6,8 +30,10 @@ With the recent (2019-09-01) changes and creation of `make install` command it
If you install the Proxmark tools with `make install`, they will go under the prefix `/usr/local/` but if you install the tools from your distro, there are chances the path is `/usr` so you'll have to adapt the paths presented here. If you install the Proxmark tools with `make install`, they will go under the prefix `/usr/local/` but if you install the tools from your distro, there are chances the path is `/usr` so you'll have to adapt the paths presented here.
# Installed elements # Installed elements
^[Top](#top)
## Binaries ## Binaries
^[Top](#top)
The main Proxmark3 executables / shellscripts will be copied to The main Proxmark3 executables / shellscripts will be copied to
@ -29,6 +55,7 @@ Some more executable / scripts will be copied to
## Firmwares ## Firmwares
^[Top](#top)
The recovery / firmware files will be copied to The recovery / firmware files will be copied to
@ -41,6 +68,7 @@ The recovery / firmware files will be copied to
## Traces ## Traces
^[Top](#top)
Proxmark3 client has a lot of sample trace files for many different low frequency tags. They will be copied to Proxmark3 client has a lot of sample trace files for many different low frequency tags. They will be copied to
@ -50,6 +78,7 @@ Proxmark3 client has a lot of sample trace files for many different low frequenc
## JTAG-related stuff ## JTAG-related stuff
^[Top](#top)
JTAG configurations and helper scripts for OpenOCD will be copied to JTAG configurations and helper scripts for OpenOCD will be copied to
@ -57,6 +86,7 @@ JTAG configurations and helper scripts for OpenOCD will be copied to
## Proxmark3 client files: dictionaries ## Proxmark3 client files: dictionaries
^[Top](#top)
Dictionaries used by the client will be copied to Dictionaries used by the client will be copied to
@ -76,6 +106,7 @@ if key isn't a hex number, the key is ignored.
See [here](#proxmark3-client-files-and-traces) how to add your own dictionaries. See [here](#proxmark3-client-files-and-traces) how to add your own dictionaries.
## Proxmark3 client files: cmd scripts ## Proxmark3 client files: cmd scripts
^[Top](#top)
Cmd scripts used by the client will be copied to Cmd scripts used by the client will be copied to
@ -86,6 +117,7 @@ Cmd scripts used by the client will be copied to
See [here](#proxmark3-client-files-and-traces) how to add your own cmd scripts. See [here](#proxmark3-client-files-and-traces) how to add your own cmd scripts.
## Proxmark3 client files: Lua libraries and scripts ## Proxmark3 client files: Lua libraries and scripts
^[Top](#top)
Lua libraries and scripts used by the client will be copied to Lua libraries and scripts used by the client will be copied to
@ -99,6 +131,7 @@ Lua libraries and scripts used by the client will be copied to
See [here](#proxmark3-client-files-and-traces) how to add your own Lua scripts. See [here](#proxmark3-client-files-and-traces) how to add your own Lua scripts.
## Proxmark3 client files: various resources ## Proxmark3 client files: various resources
^[Top](#top)
Various resources used by the client will be copied to Various resources used by the client will be copied to
@ -111,6 +144,7 @@ It comprises the needed files for commands like hardnested, fido, EMV, iClass.
See [here](#proxmark3-client-files-and-traces) how to add your own resources. See [here](#proxmark3-client-files-and-traces) how to add your own resources.
## Documentation ## Documentation
^[Top](#top)
Documentation will be copied to Documentation will be copied to
@ -119,10 +153,12 @@ Documentation will be copied to
``` ```
# User files # User files
^[Top](#top)
The client will make use of a personal directory `~/.proxmark3` (or more precisely `$HOME/.proxmark3`) The client will make use of a personal directory `~/.proxmark3` (or more precisely `$HOME/.proxmark3`)
## .history / log files ## .history / log files
^[Top](#top)
We have now a rolling log file, created new per day. All these logfiles and the history file are now located at We have now a rolling log file, created new per day. All these logfiles and the history file are now located at
@ -132,6 +168,7 @@ We have now a rolling log file, created new per day. All these logfiles and the
``` ```
## Proxmark3 client files and traces ## Proxmark3 client files and traces
^[Top](#top)
If you wants to add scripts, dictionaries or other resources, you can use the same structure as the installed directory structure and add your own files there, e.g. If you wants to add scripts, dictionaries or other resources, you can use the same structure as the installed directory structure and add your own files there, e.g.
@ -148,10 +185,12 @@ If you add a file with the same name as the file provided with the Proxmark3 ins
See also [Scripts](#scripts) on how to write your own scripts. See also [Scripts](#scripts) on how to write your own scripts.
# Searching files # Searching files
^[Top](#top)
With the directory structure explained above, the client applies some heuristics to find its files or the files you specified in command line. With the directory structure explained above, the client applies some heuristics to find its files or the files you specified in command line.
## TL;DR ## TL;DR
^[Top](#top)
It adds the expected suffix if you didn't provide it yet, then it looks (by order of precedence): It adds the expected suffix if you didn't provide it yet, then it looks (by order of precedence):
@ -161,6 +200,7 @@ It adds the expected suffix if you didn't provide it yet, then it looks (by orde
4. in the installed directory structure, so it works when installed 4. in the installed directory structure, so it works when installed
## Gory details ## Gory details
^[Top](#top)
The client is using _searchFile_ (in _client/fileutils.c_) when calling a Proxmark3 command with a filename or when the client needs to find its files. The client is using _searchFile_ (in _client/fileutils.c_) when calling a Proxmark3 command with a filename or when the client needs to find its files.
_searchFile_ takes as argument a relative path *pm3dir*, a file to search and possibly a *suffix*. _searchFile_ takes as argument a relative path *pm3dir*, a file to search and possibly a *suffix*.
@ -177,11 +217,14 @@ When a user provides a filename (including possibly a path), _searchFile_ will s
* Try to find the filename in the *pm3dir* relative to where the client binary is when in the installed configuration (*foo.dic* -> *$(path_to_dir_of_proxmark3_bin)/../share/proxmark3/dictionaries/foo.dic* which resolves to e.g. */usr/share/proxmark3/dictionaries/foo.dic* or */usr/local/share/proxmark3/dictionaries/foo.dic*), so when the client is executed from a repo workdir, filenames are searched in the expected location. * Try to find the filename in the *pm3dir* relative to where the client binary is when in the installed configuration (*foo.dic* -> *$(path_to_dir_of_proxmark3_bin)/../share/proxmark3/dictionaries/foo.dic* which resolves to e.g. */usr/share/proxmark3/dictionaries/foo.dic* or */usr/local/share/proxmark3/dictionaries/foo.dic*), so when the client is executed from a repo workdir, filenames are searched in the expected location.
# Scripts # Scripts
^[Top](#top)
You can provide your own lua or cmd scripts. You can provide your own lua or cmd scripts.
Look at existing scripts for ideas how to create your own scripts. Look at existing scripts for ideas how to create your own scripts.
### Proxmark command script (.cmd) ### Proxmark command script (.cmd)
^[Top](#top)
For cmd scripts, the command line scripts, the client can run a text file containing Proxmark3 commands. For cmd scripts, the command line scripts, the client can run a text file containing Proxmark3 commands.
A samplefile could be like this. A samplefile could be like this.
@ -210,6 +253,7 @@ You can skip the script file extension, it works equally well with.
### Shebangs (on *nix) ### Shebangs (on *nix)
^[Top](#top)
You can also use the magic of shebangs to make an executable script, e.g. taking the example above, we can write: You can also use the magic of shebangs to make an executable script, e.g. taking the example above, we can write:

View file

@ -1,5 +1,6 @@
<a id="top"></a>
# Proxmark 3 on Android # Proxmark 3 on Android
<a id="top"></a>
## Table of Contents ## Table of Contents
* [ Requirements ](#requirements) * [ Requirements ](#requirements)
* [ Notes ](#notes) * [ Notes ](#notes)
@ -209,6 +210,7 @@ Alternatively, if you have made the client in the git repo:
^[Top](#top) ^[Top](#top)
#### BTADDON Missing in Firmware of PM3 #### BTADDON Missing in Firmware of PM3
^[Top](#top)
1. Phone and pm3 are connected, blue led is on and *not* blinking 1. Phone and pm3 are connected, blue led is on and *not* blinking
2. BTUART Tool TCP Server at Port 4321 2. BTUART Tool TCP Server at Port 4321
@ -231,4 +233,3 @@ Solution:
Make sure you have installed a firmware with BTADDON compiled. Make sure you have installed a firmware with BTADDON compiled.
See: https://github.com/RfidResearchGroup/proxmark3/blob/master/doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md#platform_extras See: https://github.com/RfidResearchGroup/proxmark3/blob/master/doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md#platform_extras
ENJOY !

View file

@ -1,10 +1,18 @@
<a id="top"></a>
# Notes about the tracelog # Notes about the tracelog
<a id="top"></a>
## Table of Contents
* [Command](#trace-command) # Table of Contents
* [File format](#tracelog-format) - [Notes about the tracelog](#notes-about-the-tracelog)
* [Wireshark dissector interoperability](#trace-and-wireshark) - [Table of Contents](#table-of-contents)
- [Trace command](#trace-command)
- [Timing](#timing)
- [Sources](#sources)
- [Data](#data)
- [CRC](#crc)
- [Annotation](#annotation)
- [Tracelog format](#tracelog-format)
- [Trace and Wireshark](#trace-and-wireshark)
## Trace command ## Trace command

View file

@ -1,9 +1,29 @@
# Various notes about UART and baudrates # Notes about UART and baudrates
<a id="top"></a>
Proxmark3 RDV4 can interact with the client program running on a host via several means, let's go through each of them and study the notion of baudrate. Proxmark3 RDV4 can interact with the client program running on a host via several means, let's go through each of them and study the notion of baudrate.
# Table of Contents
- [Notes about UART and baudrates](#notes-about-uart-and-baudrates)
- [Table of Contents](#table-of-contents)
- [USB-CDC ACM](#usb-cdc-acm)
- [Proxmark3 FPC USART](#proxmark3-fpc-usart)
- [Proxmark3 FPC USART + BT add-on (blue shark)](#proxmark3-fpc-usart--bt-add-on-blue-shark)
- [BT add-on AT configuration mode](#bt-add-on-at-configuration-mode)
- [BT add-on connected mode](#bt-add-on-connected-mode)
- [RFCOMM](#rfcomm)
- [BT add-on baudrate](#bt-add-on-baudrate)
- [BT on host side: internal BT](#bt-on-host-side-internal-bt)
- [BT on host side: HC-06 dongle](#bt-on-host-side-hc-06-dongle)
- [HC-06 dongle AT configuration mode](#hc-06-dongle-at-configuration-mode)
- [Proxmark3 FPC USART + FTDI](#proxmark3-fpc-usart--ftdi)
- [BT add-on + FTDI](#bt-add-on--ftdi)
- [HC-06 AT Commands](#hc-06-at-commands)
## USB-CDC ACM ## USB-CDC ACM
^[Top](#top)
USB CDC (Communications Device Class) ACM (Abstract Control Model) is a way to emulate serial ports over USB. USB CDC (Communications Device Class) ACM (Abstract Control Model) is a way to emulate serial ports over USB.
On the host, it appears as a virtual serial port, e.g. `/dev/ttyACM0`. On the host, it appears as a virtual serial port, e.g. `/dev/ttyACM0`.
@ -16,6 +36,7 @@ The real communication speed relates only to the USB link and is roughly about 7
In USB CDC ACM the host could "set" other baudrates and the USB CDC device would be informed of the changes (see `SET_LINE_CODING` and `GET_LINE_CODING`), which is potentially interesting if, behind, it has to configure a real UART, but we're not in this type of setup so baudrate notion on USB CDC (visible e.g. with `stty -F /dev/ttyACM0`) can simply be totally ignored. In USB CDC ACM the host could "set" other baudrates and the USB CDC device would be informed of the changes (see `SET_LINE_CODING` and `GET_LINE_CODING`), which is potentially interesting if, behind, it has to configure a real UART, but we're not in this type of setup so baudrate notion on USB CDC (visible e.g. with `stty -F /dev/ttyACM0`) can simply be totally ignored.
## Proxmark3 FPC USART ## Proxmark3 FPC USART
^[Top](#top)
Proxmark3 RDV4 has a FPC connector outputting on 2 pins a USART from the ARM: Proxmark3 RDV4 has a FPC connector outputting on 2 pins a USART from the ARM:
@ -40,8 +61,10 @@ And for things to work fine, both sets have to match!
Internally, the desired baudrate is converted to UART settings: a BRGR and a FP. The resulting baudrate will be close to but not always equal to the desired baudrate. Serial ports typically have some error tolerance in the actual baudrates. Theoretically < 2.5% on each side (so 5% in total), < 2% to be on the safe side. In the current firmware configuration, the Proxmark3 can provide any baudrate up to 2Mbauds with an error of max 2%, and selected baudrates up to 6Mbauds (tested with a FTDI C232HM DDHSL-0 cable). Internally, the desired baudrate is converted to UART settings: a BRGR and a FP. The resulting baudrate will be close to but not always equal to the desired baudrate. Serial ports typically have some error tolerance in the actual baudrates. Theoretically < 2.5% on each side (so 5% in total), < 2% to be on the safe side. In the current firmware configuration, the Proxmark3 can provide any baudrate up to 2Mbauds with an error of max 2%, and selected baudrates up to 6Mbauds (tested with a FTDI C232HM DDHSL-0 cable).
## Proxmark3 FPC USART + BT add-on (blue shark) ## Proxmark3 FPC USART + BT add-on (blue shark)
^[Top](#top)
### BT add-on AT configuration mode ### BT add-on AT configuration mode
^[Top](#top)
When the BT add-on is turned on but no actively connected to a host, it's in a configuration mode where it accepts "AT" commands and its blue LED is blinking at about 1Hz. When the BT add-on is turned on but no actively connected to a host, it's in a configuration mode where it accepts "AT" commands and its blue LED is blinking at about 1Hz.
@ -54,18 +77,21 @@ Some specific commands are available when you add `BTADDON` to `PLATFORM_EXTRAS`
Manual configuration is also possible with `usart txrx -d "AT+Px"` and `usart txrx -d "AT+BAUDx"`. Manual configuration is also possible with `usart txrx -d "AT+Px"` and `usart txrx -d "AT+BAUDx"`.
### BT add-on connected mode ### BT add-on connected mode
^[Top](#top)
When the BT add-on is paired with a host and the host establishes an active connection, the blue LED turns on steadily. When the BT add-on is paired with a host and the host establishes an active connection, the blue LED turns on steadily.
The add-on acts as a bridge, between its UART and the BT communication channel, here a RFCOMM channel. The add-on acts as a bridge, between its UART and the BT communication channel, here a RFCOMM channel.
### RFCOMM ### RFCOMM
^[Top](#top)
The Bluetooth RFCOMM protocol provides an emulation of serial ports over the L2CAP protocol ([ref](https://www.amd.e-technik.uni-rostock.de/ma/gol/lectures/wirlec/bluetooth_info/rfcomm.html)). The Bluetooth RFCOMM protocol provides an emulation of serial ports over the L2CAP protocol ([ref](https://www.amd.e-technik.uni-rostock.de/ma/gol/lectures/wirlec/bluetooth_info/rfcomm.html)).
As for USB-CDC, the real speed of the link is unrelated to serial baudrate notion. Literature mentions a maximal value of 360kbps for some implementations, but the HC-06 Bluetooth module within the BT add-on is limited as the vast majority of similar devices to 128kbps. As for USB-CDC, the real speed of the link is unrelated to serial baudrate notion. Literature mentions a maximal value of 360kbps for some implementations, but the HC-06 Bluetooth module within the BT add-on is limited as the vast majority of similar devices to 128kbps.
### BT add-on baudrate ### BT add-on baudrate
^[Top](#top)
Which baudrate will make sense? Which baudrate will make sense?
@ -78,6 +104,7 @@ Using 115200 is safe and within the 128kbps limit.
Using 230400 allows to maximize the BT channel capacity, but the gain is limited, about 10-15% faster than 115200. There is also a risk to take into account: you're delivering data too fast to the HC-06 than what it's capable to send over RFCOMM. So you're filling the internal buffer faster than it can be emptied. If you're doing it for too many data, you'll reach a point where data will be lost (once the internal buffer is full), which is observable with `hw status` for higher baudrates at the time of writing (`b17da830edadb8462e02a95a00b4a58302cce71b`). Using 230400 allows to maximize the BT channel capacity, but the gain is limited, about 10-15% faster than 115200. There is also a risk to take into account: you're delivering data too fast to the HC-06 than what it's capable to send over RFCOMM. So you're filling the internal buffer faster than it can be emptied. If you're doing it for too many data, you'll reach a point where data will be lost (once the internal buffer is full), which is observable with `hw status` for higher baudrates at the time of writing (`b17da830edadb8462e02a95a00b4a58302cce71b`).
### BT on host side: internal BT ### BT on host side: internal BT
^[Top](#top)
On the other side of the BT link is the host. If it has built-in Bluetooth, the host can present a virtual serial port to the Proxmark3 client. On the other side of the BT link is the host. If it has built-in Bluetooth, the host can present a virtual serial port to the Proxmark3 client.
E.g. on Linux, `rfcomm` allows to create such bindings of a BT device and a virtual port: `rfcomm bind rfcomm0 20:19:04:20:04:08` will create the virtual port `/dev/rfcomm0`. E.g. on Linux, `rfcomm` allows to create such bindings of a BT device and a virtual port: `rfcomm bind rfcomm0 20:19:04:20:04:08` will create the virtual port `/dev/rfcomm0`.
@ -89,6 +116,7 @@ Note that the rfcomm implementation separates pairing from actual connection:
* when the program closes, the link will be closed and the BT add-on blue LED will blink again, showing that the BT ad-on is in AT configuration mode. * when the program closes, the link will be closed and the BT add-on blue LED will blink again, showing that the BT ad-on is in AT configuration mode.
### BT on host side: HC-06 dongle ### BT on host side: HC-06 dongle
^[Top](#top)
On the other side of the BT link is the host. If it does not have a built-in Bluetooth, the host can use On the other side of the BT link is the host. If it does not have a built-in Bluetooth, the host can use
* a generic BT add-on, and we're back in the previous case * a generic BT add-on, and we're back in the previous case
@ -111,12 +139,14 @@ The USB-UART speed is selected when a program opens the port. E.g.
* the Python script meant to configure HC-06 dongle. The baudrate is given as option to `serial.Serial()` when opening `/dev/ttyUSB0`. * the Python script meant to configure HC-06 dongle. The baudrate is given as option to `serial.Serial()` when opening `/dev/ttyUSB0`.
### HC-06 dongle AT configuration mode ### HC-06 dongle AT configuration mode
^[Top](#top)
When the BT add-on is turned off, the HC-06 dongle will not be connected and will fall back into its AT configuration mode (its LED is blinking). When the BT add-on is turned off, the HC-06 dongle will not be connected and will fall back into its AT configuration mode (its LED is blinking).
`tools/btaddon/hc06_factory.py` changes several times the USB-UART baudrate and parity till it matches the HC-06 dongle settings, then changes the baudrate and parity of the dongle to a default value. (`hc06_factory.py` does more but we're only interested in baudrate in this discussion) `tools/btaddon/hc06_factory.py` changes several times the USB-UART baudrate and parity till it matches the HC-06 dongle settings, then changes the baudrate and parity of the dongle to a default value. (`hc06_factory.py` does more but we're only interested in baudrate in this discussion)
## Proxmark3 FPC USART + FTDI ## Proxmark3 FPC USART + FTDI
^[Top](#top)
Just for completeness, let's mention the possibility to connect the Proxmark3 to the host via FPC and a USB-UART bridge such as a FTDI cable (or CP2102, ch341, PL2303...). Just for completeness, let's mention the possibility to connect the Proxmark3 to the host via FPC and a USB-UART bridge such as a FTDI cable (or CP2102, ch341, PL2303...).
It's not very interesting because USB-CDC is faster anyway. It's not very interesting because USB-CDC is faster anyway.
@ -124,6 +154,7 @@ It's not very interesting because USB-CDC is faster anyway.
In that case, Proxmark3 USART settings (configured e.g. via `usart config` while connected by USB-CDC) have to match FTDI cable settings, selected by the program opening the serial port (`/dev/ttyUSB0`). In that case, Proxmark3 USART settings (configured e.g. via `usart config` while connected by USB-CDC) have to match FTDI cable settings, selected by the program opening the serial port (`/dev/ttyUSB0`).
## BT add-on + FTDI ## BT add-on + FTDI
^[Top](#top)
Just for completeness, let's mention the possibility to connect the BT add-on to the host via FPC and a USB-UART bridge such as a FTDI cable (or CP2102, ch341, PL2303...). Just for completeness, let's mention the possibility to connect the BT add-on to the host via FPC and a USB-UART bridge such as a FTDI cable (or CP2102, ch341, PL2303...).
The only interest is for debug purposes, e.g. to reconfigure an add-on from the host rather than from the Proxmark3 itself. The only interest is for debug purposes, e.g. to reconfigure an add-on from the host rather than from the Proxmark3 itself.
@ -148,6 +179,7 @@ Turn BTpower switch ON, leave Battery switch OFF
Use e.g. `tools/btaddon/hc06_factory.py` with `role = b'S'` Use e.g. `tools/btaddon/hc06_factory.py` with `role = b'S'`
## HC-06 AT Commands ## HC-06 AT Commands
^[Top](#top)
The HC-06 supports a subset of the AT commands and they are listed below. The commands are limited and vary in how to give parameters. A pure informative command like AT+VERSION just returns a string with current firmware the HC-06 has installed. The HC-06 supports a subset of the AT commands and they are listed below. The commands are limited and vary in how to give parameters. A pure informative command like AT+VERSION just returns a string with current firmware the HC-06 has installed.