Skip to content
Benjamin Vernoux edited this page Oct 4, 2016 · 281 revisions

The first place to look for open tasks that you can help with is the Issues List.

The following list will be removed once everything is moved to the Issues List, completed, or obsolete. If you are interested in helping with any of these tasks, coordinate with the person in parentheses. Try IRC first (freenode channel #hydrabus), then email. ###HydraFW v0.8 Work In Progress:

Generic:
HydraBus specific:
HydraNFC specific:
  • Add command sd (sdcard commands)

  • Add Example bbio_hydranfc_init.py for HydraNFC init using Console mode + switch to bbIO mode for SPI2 Init & communication with TRF7970A (HydraNFC shield)

  • Read / Display / Save Mifare Ultra Light tag data (64bytes raw data of the Tag)

  • Emulate Mifare Ultra Light tag (Beta version does not work with phone) (7Bytes UID and 64bytes data support only READ command)

    • emul-mf-ul command add optional filename (same 64bytes raw file previously written to microsd by read-mf-ul)
    • See commit [d569fcd8] 27-May-2016 (https://github.com/bvernoux/hydrafw/commit/d569fcd853415d7d56e54ef773315abb45015285) (modified scan command)
    • This feature is a Beta version and will be rewritten using low level mode SDM TX/DM1 RX in order to be hard real-time & ISO compliant, which will also fix the emulation when using a Phone...
  • NFC sniffer improvements and NFC sniffer command cleanup

    • Modified NFC RX Gain Reduction from 10dB to 5dB & use ISO14443A mode
      • The sniffer now use native ISO14443A mode instead of previous hybrid mode ISO14443B/A, those modifications (with NFC RX Gain reduction set to 5dB) give better sniffing sensitivity and bigger range to sniff PICC(NFC Tag) and PCD(NFC Reader)
    • Added sub command trace-uart1 to trace in realtime sniffed data to UART1 PA9 @8.4Mbauds 8N1 (validated with FTDI C232HM-DDHSL-0)
    • Moved sniff-dbg and sniff-raw command to sniff sub command debug and raw

    Note: It is not recommended to use sniff dbg or sniff raw with option trace-uart1 as there is too much data and realtime NFC acquisition/decoding is broken (because uart driver is synchronous/blocking until all data are transmitted) in future update the trace-uart1 feature will use a new UART DMA/asynchronous driver which will solve this problem in addition with the fact that the data will be not in ascii but binary.

  • Clone Mifare Ultra Light tag (Work In Progress bvernoux)

    • clone-mf-ul command add optional filename (64bytes raw file written to microsd same as read-mf-ul)
      • Read Mifare Ultra Light card then Emulate it
      • Add optional filename to save Mifare Ultra Light tag data read (64bytes raw data of the Tag) to microSD

###HydraFW TODO/IDEA:

Generic:
  • Add new utilities:

    • SPI for non intrusive sniffer for MISO/MOSI line (with support of /CS) => Already supported by Binary SPI mode
    • I2C for non intrusive sniffer for SDA line (with support of /CS)
    • Multimeter up to 3.3V/7.2MSPS(12bits) with logging in µSD file in real-time.
  • Bootloader idea using official HydraBus (bootloader) OpenMoko USB ID:

    • USB DFU boot like implemented in actual firmware by keeping UBTN pressed during power ON.
    • Read a configuration file from SDcard(if present) and boot a custom firmware from SDcard(execution in SRAM).
    • other idea TBD.
  • Protection/Debug features(for developer):

    • Implement basic stack overflow/underflow check with canaries between each stack (probably need chibios patch)
    • Implement advanced stack overflow/underflow protection using M4F MPU

To be checked depending on latest ChibiOS v16.1.4 or v16.2.0 USB CDC driver performances.

  • Implement new USB stack(replace the one from chibios) based on STM32Cube USB Host/Device
    • Implement for USB1, USB Composite with:
      • USB CDC(for terminal)
      • Raw Bulk IN/OUT(used for binary mode)
    • Implement for USB2, USB Composite with:
      • USB CDC(for terminal)
      • Raw Bulk IN/OUT(used for binary mode)
      • Mass Storage (using microSD card)
    • Implement Ctrl-C Abort which work like UBTN press to stop waiting.
  • Implement new SD card driver(replace the one from chibios) based on STM32Cube HAL
    • Implement detection & setting of high-speed microSD, in order to set frequency to 48MHz (instead of default 24MHz).
    • Check possibility to avoid IRQ and use DMA for microSD access in order to use microSD to read/write during real-time task (SPI/UART/I2C sniffer, read ADC, read GPIO, NFC sniffer/log...)
  • Implemente Binary Mode (Raw Bulk IN/OUT):
    • In Host tools(Windows/Linux... using libusb) to communicate with binary mode SPI, I2C, UART.
HydraBus specific:
  • I2C binary mode
  • BBIO_1WIRE code
  • Use "SPI1", "UART2" etc instead of 1/2 when specifying device to use the same for "DAC1" & "DAC2"...
  • Generate DAC output advanced mode using waveform and DMA to generate Sin, Square ...
    • Add Offset and Frequency parameter for waveforms.
  • i2c:
    • Slave mode
    • Number of bits (7, 8, 10)
  • spi:
    • Number of bits (any number)
  • Waveform generator
  • Measure time between two pin states using hardware timer
  • New modes:
    • Parallel Bus (2 to 32bits) with mode sniffer, read and write (with option to log data in realtime to MicroSD) (depending on feedback)
    • 1 or 3 Wire with mode sniffer, read and write (depending on feedback)
    • Basic Scope up to 3.3V and up to 7.2MSPS/12bits
    • Nand Flash x8 and x16 support (see Nand support #12)
  • USB 1.x/2.0 LS/FS sniffer mode (using special passthrough mode with logging directly to MicroSD) (see USB sniffer capability #21)
HydraNFC specific:

###Hardware Extension/Shield

  • Extension using EEPROM:
    • Implement support of EEPROM extension detection with same hw & content as Beagle bone defined here

###Development Environment:

  • Tutorial for EmBitz to load project and debug it (Windows only)
  • Tutorial for Eclipse/ChibiStudio to load project and debug it (Windows only)
  • Tutorial for Eclipse to load project and debug it (Linux)

###DONE (please test with HydraFW v0.7):

  • CAN1 and CAN2 with HydraOBD Shield
  • JTAG (with different MCU/CPU and report what work what do not work ...)
  • 2-wire (I have tested mainly the write with different speed need to check the read ...)
  • Logic Analyzer mode (to do more tests)
  • Binary mode (to do more tests)

How to Flash/Use HydraFW

How to Build/Flash/Use HydraFW

Developer Getting-Started with HydraBus and STM32CubeIDE

Hardware

Firmware (hydrafw) performances

Firmware (hydrafw) Application guides

Firmware (hydrafw) guides

How to Help

Clone this wiki locally