260 likes | 388 Vues
Delve into the complexities of hacking the Phantom 2.0 by Team Reaper, where Jacob, Kyle, and Scott present a comprehensive recap of their hacking plans, issues encountered, and innovative solutions for SPI data sniffing. Discover how they interpreted the data using custom hardware with an FPGA and solved key challenges related to transceiver uncertainties, antenna issues, and Raspberry Pi limitations. Explore future work possibilities, including fully autonomous flight and the ability to control multiple drones with innovative wireless communications, while considering constraints and legal implications.
E N D
Hacking the Phantom 2.0 by Team Reaper Jacob, Kyle, and Scott
Agenda • Hacking plans recap • Problems with hacking plans • New plan and sniffing SPI data • Interpreting the data • What we discovered • Future work • Questions
Original Plan Prototyping system End goal
Problems With Prototyping • Custom transceiver uncertainties • Used a transceiver module from DJI • Solved likely antenna and RF problems • Provided 100% accurate configuration information • Raspberry Pi Problems • No silicon for SPI slave mode • Master only • Use GPIO to read SPI signals • I/O clock too slow, miss and alias data • Operating system interferes with timing, miss more data
New Plan • Use a FPGA to build a SPI bus sniffer • Custom hardware • Extremely fine-grained control • Very fast • Very complicated (VHDL) • Output snooped SPI data to FTDI chip on FPGA • Read FTDI chip into a C program on a computer
Interpreting the Data (configuration) • Write register 0x1d value 0x19 MODE_OVERRIDE • Write register 0x32 value 0x3c AUTO_CAL_TIME • Write register 0x35 value 0x14 AUTO_CAL_OFFSET • Write register 0x1b value 0x55 TX_OFFSET_LSB • Write register 0x1c value 0x05 TX_OFFSET_MSB • Write register 0x06 value 0x4a RX_CFG * • Write register 0x10 value 0xe8 FRAMING_CFG • Write register 0x03 value 0x09 TX_CFG * • Write register 0x0c value 0xc4 XTAL_CTRL • Write register 0x0d value 0x04 IO_CFG • Write register 0x0e value 0x80 GPIO_CTRL • Write register 0x1e value 0x08 RX_OVERRIDE • Write register 0x15 value 0xbc CRC_SEED_LSB • Write register 0x16 value 0x8e CRC_SEED_MSB • Write register 0x0f value 0x21 XACT_CTRL • Write register 0x0e value 0x80 GPIO_CTRL • Write register 0x22 value 0x82c79036219eff17 * • Write register 0x1e value 0x08 RX_OVERRIDE • Write register 0x15 value 0xbc CRC_SEED_LSB * • Write register 0x16 value 0x8e CRC_SEED_MSB * • Write register 0x00 value 0x18 CHANNEL • Write register 0x05 value 0x83 RX_CTRL * *Configuration unique to Phantom
Interpreting the Data cont. • Write register 0x1d value 0x19 MODE_OVERRIDE • 0x19h is 00011001 in binary
Interpreting the Data cont. • Write register 0x32 value 0x3C AUTO_CAL_TIME • 0x3Ch is 00111100 in binary
Interpreting the Data cont. • Write register 0x1b value 0x55 TX_OFFSET_LSB • 0x55h is 01010101 in binary
Pairing • Receiver (on the drone) picks an arbitrary channel for communication • Monitor the receive signal strength indication (RSSI) and receive data interrupt • If no data within timeout, increase channel and repeat step 2. Otherwise, write channel value to non-volatile memory
Possible Future Work • Hacking the current wireless communications opens many doors • The following slides explain only a few options
Completely Autonomous Flight • Use Single Board Computer (SBC) to script flights • Use timers to send a wireless command to the drone for a specific amount of time
Attach a SBC to the Drone • Spoof wireless transmitter using SBC • No more wireless communications • Unable to remotely JAM or take control of drone • Local image processing • Fly around using local landmarks • Follow specific people • Integrate to Phantom’s GPS • Move around by GPS coordinates
Google Maps App • Click and go
Control Multiple Drones • SPI communications can be fast enough to switch between channels to control multiple drones (up to the channel limit of 36) independently from one custom controller • Pair each drone to a specific channel
Swarm • Autonomous swarming • Drones know where each other are using proximity sensing • Kyle’s Bluetooth pedestrian guidance • Sonar • Local cameras • No need for outside computation • No need for wireless communications for control if drones have a preprogrammed objective
Replace Wireless Module • Use custom wireless module on wireless side • Spoof current wireless module on SPI side • Requires no change to NAZA controller • $40 Digi-RF radio modules are capable of line of sight range of 28 miles with a high gain antenna • Completely customize wireless packet • Can be low power on the drone side if they only receive • Mesh networks • Use other drones as repeaters
Constraints • 2.2lb payload • Battery life • Law • Doesn’t matter if you intend to do something illegal
References • http://www.dronefly.com • http://www.dji.com • http://www.cdc.gov/niosh/ershdb/EmergencyResponseCard_29750002.html • https://sites.google.com/site/mrdunk/interfacing-cypress-cyrf6936-to-avr-microcontrollers • http://www.cypress.com/?docID=30520 • https://sites.google.com/site/mrdunk/interfacing-cypress-cyrf6936-to-avr-microcontrollers • http://www.cypress.com/?docID=28606