Code Monkey home page Code Monkey logo

hydrafw_hydranfc_shield_v2's Introduction

HydraFW official firmware for HydraBus v1/HydraNFC Shield v2

HydraFW is a native C (and asm) open source firmware for HydraBus board with support of HydraNFC Shield v2. This specific firmware for HydraBus v1/HydraNFC Shield v2 is a fork of https://github.com/hydrabus/hydrafw commit 1cce35acc76758828e4d3a16139fb7899804acbb

You can Buy HydraBus v1/HydraNFC Shield v2 Online: http://hydrabus.com/buy-online

HydraBus+HydraNFC Shield V2 boards

HydraNFC Shield v2 is shield for HydraBus v1 and it is based on STMicroelectronics ST25R3916 NFC chipset which is today the most powerful and versatile NFC chipset available on the market.

HydraNFC Shield v2 shall be plugged on top of HydraBus v1 with a dedicated open source firmware (but it can also be used with any other MCU).

HydraNFC Shield v2 is for anyone interested in Learning/Developping/Debugging/Hacking/Penetration Testing for basic or advanced NFC communications.

Summary of HydraNFC Shield v2 hardware features:

  • NFC Reader/writer, NFC Card emulation, NFC Active and passive peer to peer
  • Support NFC-A / ISO14443A up to 848 kbit/s, NFC-B / ISO14443B up to 848 kbit/s, NFC-F / FeliCa up to 424 kbit/s, NFC-V / ISO15693 up to 53 kb/s, NFC-A / ISO14443A and NFC-F / FeliCa card emulation
  • 1.6W output power at 5V with Differential Antenna and Variable capacitors for NFC Automatic antenna tuning (AAT)
  • Low level mode to implement MIFARE Classic compliant or other custom protocols, Automatic gain control and squelch feature to maximize SNR
  • Measurement of antenna voltage amplitude and phase, RSSI, on-chip supply and regulated voltages

This firmware is fully open source and based on HydraFW and is specific to HydraBus v1 with HydraNFC Shield v2 it use STMicroelectronics RFAL for ST25R3916

For more details on key features of HydraNFC Shield v2 hardware & firmware see https://hydrabus.com/hydranfc-shield-v2-specifications

See also Wiki https://github.com/hydrabus/hydrafw_hydranfc_shield_v2/wiki

Documentation

How to Help

hydrafw_hydranfc_shield_v2's People

Contributors

0x8008135 avatar aasyunkin-se avatar baldanos avatar biot avatar bvernoux avatar doegox avatar ghecko avatar gvinet avatar nicohub avatar rdollet avatar sylvainpelissier avatar zoruk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hydrafw_hydranfc_shield_v2's Issues

Remove Python dependency to Build/Flash the Firmware

Remove the usage of Python to build the version (from GitHub Tag) and build DFU for STM32F405
=> https://github.com/hydrabus/hydrafw_hydranfc_shield_v2/tree/master/src/build-scripts

  1. Remove hydrafw-revision.py / hydrafw-version.py
  1. Remove dfu-convert.py
  1. Modification of Makefile (to remove anything related to Python script)

Incorrect management of nfc_mode/nfc_mode_tx_bitrate/nfc_mode_rx_bitrate value with set-nfc-mode in dnfc menu

I want to use a vicinity card in dfnc menu, so I want to configure it like in rfalNfcvPollerInitialize:

    EXIT_ON_ERR( ret, rfalSetMode( RFAL_MODE_POLL_NFCV, RFAL_BR_26p48, RFAL_BR_26p48 ) );

I go in dnfc mode to set NFCV

dnfc2> set-nfc-mode nfc-mode 7
nfc-mode = 7
nfc-mode-tx_br = 0
nfc-mode-rx_br = 0
rfalSetMode Error 7

But, the error 7 is raised. Why? We go in hydranfc_v2_dnfc_mode.c file, in exec function. First, the mode is copied

memcpy(&nfc_mode, p->buf + p->tokens[t], sizeof(int));

Then, it is set

		case T_SET_NFC_MODE:
		{
			ReturnCode err;
			cprintf(con, "nfc-mode = %d\r\n", nfc_mode);
			cprintf(con, "nfc-mode-tx_br = %d\r\n", nfc_mode_tx_bitrate);
			cprintf(con, "nfc-mode-rx_br = %d\r\n", nfc_mode_rx_bitrate);
			err = rfalSetMode(nfc_mode, nfc_mode_tx_bitrate, nfc_mode_rx_bitrate);

but the default value for nfc_mode_tx_bitrate/nfc_mode_rx_bitrate are not compatible, so an error is raised.

Ok, but if I want to update the rx mode for instance, the mode modification is not taken into account:

dnfc2> set-nfc-mode nfc-mode-tx_br 236
nfc-mode = 0
nfc-mode-tx_br = 236
nfc-mode-rx_br = 0
rfalSetMode Error 15

It comes from the previous modification was not recorded: default value are retrieved at the beginning of exec function:

	action = nfc_mode =  nfc_mode_tx_bitrate = nfc_mode_rx_bitrate = 0;

nfc_mode, nfc_mode_tx_bitrate, nfc_mode_rx_bitrate could be move out the function and be defined as global to resolve this problem.

BBIO READER MODE features to be modified / added

See commit 7ddfa04

  1. Modify BBIO_NFC_CMD_SEND_BITS to use a generic command to send bits as rfalNfcaPollerCheckPresence() is specific to NFC-A
  2. Modify BBIO_NFC_CMD_SEND_BYTES to do not use hard coded value for fwt (Frame Waiting Time in 1/fc) parameter
  3. Add BBIO READER mode for NFC-V (see code BBIO_NFC_SET_MODE_ISO_15693 TODO)
  4. Add BBIO READER mode for NFC-B (BBIO_NFC_SET_MODE_ISO_14443B to be created)
  5. Cleanup code remove comments ...

Scan nfc-all improvement

Improve the scan with option nfc-all as some specific tags are not read when nfc-all is used
To check: Different norm/standard on the subject to be more compliant to scan different technology with fastest possible speed.

Idea1:
Switch NFC field off/on between each technology drawback it will slow down the scan (can be done with a special option to be defined (Phone with NFC does not use this as NFC field is always ON during scan of different technology)

Refactor code

  • Refactor code for nfc/dnfc/nfc bbio mode before to release the v0.3

    • nfc/dnfc/nfc bbio mode refactoring / cleanup
    • nfc/dnfc/nfc bbio modes refactoring cleanup (removed some headers)
  • RAM optimization

  • caf1bd1

  • f586147

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.