Git Product home page Git Product logo

hackrf_android's Introduction

HackRF Library for Android

This repository is a ported version of Michael Ossmann's libhackrf ([https://github.com/mossmann/hackrf/tree/master/host/libhackrf] (https://github.com/mossmann/hackrf/tree/master/host/libhackrf)) library to work with Android 3.1+.

hackrf_android

(photo by Dennis Mantz)

See http://tech.mantz-it.com and @dennismantz for updates.

Implemented Features

  • Open HackRF (including the USB permission request)
  • Reading Board ID from HackRF
  • Reading Version from HackRF
  • Reading Part ID and Serial Number from HackRF
  • Setting Sample Rate of HackRF
  • Setting Frequency of HackRF
  • Setting Baseband Filter Width of HackRF
  • Compute Baseband Filter Width for given Sample Rate
  • Setting VGA Gain (Rx/Tx) of HackRF
  • Setting LNA Gain of HackRF
  • Setting Amplifier of HackRF
  • Setting Antenna Port Power of HackRF
  • Setting Transceiver Mode of HackRF
  • Receiving from the HackRF using a BlockingQueue
  • Transmitting to the HackRF using a BlockingQueue
  • Get Transmission statistics
  • Example App that shows how to use the library

Tested Devices

Device Does it work? Comments Tester
Oneplus One yes KR0SIV
Nexus 7 2012 yes ~ 2 Msps, Filewriter is too slow. demantz
Nexus 7 2013 yes 15 Msps @kx3companion
Nexus 4 needs ROM... ...and Y cable. (http://goo.gl/rRyQVM) -
Nexus 5 yes 15 Msps demantz
Moto G yes ~ 2 Msps @kx3companion
Acer A500 yes ~ 5 Msps @digiital
Samsung S3 LTE yes 10 Msps, running CM 10.1.3 dc1rdb
Samsung S4 yes @digiital
Samsung S4 LTE yes 10 Msps Jonyweb
Samsung S4 Zoom yes Ace Rimmer
Samsung S5 yes @simonroses
Samsung Note 3 yes @M3atShi3ld
Galaxy Tab S 8.4 yes Christophe Morel
Galaxy Tab S 10.5 yes Harald Pedersen
HTC M8 yes dmaynor
Sony Xperia Pro no insufficient USB bus power anttivs
Sony Xperia Z2 yes Harald Pedersen
LG G2 yes @michaelossmann
LG G3 yes @HashHacks
Moto G 4G yes @paul2dart
Motorola Xoom M601 yes Reg Blank
Dragon Touch A1X yes John Wright
Moto X (1st gen) yes sabas1080

Known Issues

  • USB connection is too slow for Sample Rates >15 Msps (testet on Nexus 7)
  • FileWriter in example app is too slow. Only works for ~ 2 Msps on old devices.
  • It seems that the HackRF sometimes gets to less power if using a to long or low quality USB cable.

Installation / Usage

Build the library and the example app by using the Android Studio projects:

  • hackrf_android/
  • hackrf_android/examples/

If you want to use the library in your own app, just copy the hackrf_android/app/build/outputs/aar/app-debug.aar file into your project and include it as a library. See the example project to learn how to use the library.

The hackrf_android.aar and the HackRF_Test.apk files are also in this repository so that they can be used without building them. But they won't be synched to the latest code base all the time.

A short howto to get started can be found on this blog post: [http://tech.mantz-it.com/2014/10/hackrfandroid-using-hackrf-with-android.html] (http://tech.mantz-it.com/2014/10/hackrfandroid-using-hackrf-with-android.html)

Use the example application to test the library on your device and trouble shoot any problems. It has the option to show the logcat output!

License

This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. http://www.gnu.org/licenses/gpl.html GPL version 2 or higher

principal author: Dennis Mantz <dennis.mantzgooglemail.com>

principal author of libhackrf: Michael Ossmann <mikeossmann.com>

hackrf_android's People

Contributors

demantz avatar paul2d avatar seelmann 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  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  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  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  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

hackrf_android's Issues

release on f-droid

thanks for this small apk, it's awesome!
Please consider investing a small amount of time, to put this on fdroid. It's important/specialized software (even though it's just a test-app) and could get more attention on f-droid.

About iq file

i'm confused about iq file, i wanna do transmitter base on the fm modulation. i've done the voice recording, interpolation, fm modulation, write sin,cos,sin,cos to the iq file, then if i set the frequency with hackrf then transmit the iq file ?

please update

hy master ..
new hackrf firmware has been release. please update for android version / .apk

RX on Nexus 6 failed

Getting the message:
Saving samples to /storage/emulated/0/Test_HackRF/hackrf_android.iq
error (File IO)!

Tried to change the path, it doesn't work. Entering the path (/sdcard/hackrf_android.iq) in Filename field gives a result in log Saving samples to /storage/emulated/0/Test_HackRF/sdcard/hackrf_android.iq

Tested devices

Tested Ver. 1.06 on my Samsung S3 LTE (GT-I9305), running CM 10.1.3. Works perfect up to 10 Msps. Passive OTG-Adaptor.

.wav support

It would be really great, to have a direct sound.wav -support implemented in the .apk :)

TX fails

on samsung s3 and tab, tx fails. Although the file contains some 100 packets, only a small amount is sent. Log:
--------- beginning of /dev/log/main
D/dalvikvm(21452): Late-enabling CheckJNI
D/ActivityThread(21452): handleBindApplication:com.mantz_it.hackrf_test
D/ActivityThread(21452): setTargetHeapUtilization:0.75
D/ActivityThread(21452): setTargetHeapMinFree:2097152
I/MainActivity(21452): onCreate: log path: /storage/emulated/0/Test_HackRF/log.txt
D/libEGL (21452): loaded /system/lib/egl/libEGL_mali.so
D/libEGL (21452): loaded /system/lib/egl/libGLESv1_CM_mali.so
D/libEGL (21452): loaded /system/lib/egl/libGLESv2_mali.so
E/ (21452): Device driver API match
E/ (21452): Device driver API version: 23
E/ (21452): User space API version: 23
E/ (21452): mali: REVISION=Linux-r3p2-01rel3 BUILD_DATE=Fri Mar 21 13:52:50 KST 2014
D/OpenGLRenderer(21452): Enabling debug mode 0
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@4247d800 time:1072675547
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@4247d800 time:1072689799
W/InputEventReceiver(21452): Attempted to finish an input event but the input event receiver has already been disposed.
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@4247d800 time:1072805849
W/IInputConnectionWrapper(21452): showStatusIcon on inactive InputConnection
--------- beginning of /dev/log/main
I/MainActivity(21452): onCreate: log path: /storage/emulated/0/Test_HackRF/log.txt
D/dalvikvm(21452): Late-enabling CheckJNI
D/ActivityThread(21452): handleBindApplication:com.mantz_it.hackrf_test
D/ActivityThread(21452): setTargetHeapUtilization:0.75
D/ActivityThread(21452): setTargetHeapMinFree:2097152
I/MainActivity(21452): onCreate: log path: /storage/emulated/0/Test_HackRF/log.txt
D/libEGL (21452): loaded /system/lib/egl/libEGL_mali.so
D/libEGL (21452): loaded /system/lib/egl/libGLESv1_CM_mali.so
D/libEGL (21452): loaded /system/lib/egl/libGLESv2_mali.so
E/ (21452): Device driver API match
E/ (21452): Device driver API version: 23
E/ (21452): User space API version: 23
E/ (21452): mali: REVISION=Linux-r3p2-01rel3 BUILD_DATE=Fri Mar 21 13:52:50 KST 2014
D/OpenGLRenderer(21452): Enabling debug mode 0
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@4247d800 time:1072675547
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@4247d800 time:1072689799
W/InputEventReceiver(21452): Attempted to finish an input event but the input event receiver has already been disposed.
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@4247d800 time:1072805849
W/IInputConnectionWrapper(21452): showStatusIcon on inactive InputConnection
I/MainActivity(21452): onCreate: log path: /storage/emulated/0/Test_HackRF/log.txt
E/ (21452): Device driver API match
E/ (21452): Device driver API version: 23
E/ (21452): User space API version: 23
E/ (21452): Device driver API match
E/ (21452): Device driver API version: 23
E/ (21452): User space API version: 23
E/ (21452): mali: REVISION=Linux-r3p2-01rel3 BUILD_DATE=Fri Mar 21 13:52:50 KST 2014
E/ (21452): mali: REVISION=Linux-r3p2-01rel3 BUILD_DATE=Fri Mar 21 13:52:50 KST 2014
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@4254aee8 time:1075112768
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@4254aee8 time:1075112768
I/hackrf_android(21452): initHackrf: Found 2 USB devices.
I/hackrf_android(21452): initHackrf: Found 2 USB devices.
D/hackrf_android(21452): initHackrf: deviceList: vendor=7504 product=24713
D/hackrf_android(21452): initHackrf: deviceList: vendor=7504 product=24713
I/hackrf_android(21452): initHackrf: Found HackRF One at /dev/bus/usb/001/017
I/hackrf_android(21452): initHackrf: Found HackRF One at /dev/bus/usb/001/017
D/hackrf_android(21452): initHackrf: deviceList: vendor=5401 product=32
D/hackrf_android(21452): initHackrf: deviceList: vendor=5401 product=32
D/hackrf_android(21452): Permission request for device /dev/bus/usb/001/017 was send. waiting...
D/hackrf_android(21452): Permission request for device /dev/bus/usb/001/017 was send. waiting...
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@4254aee8 time:1075177136
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@4254aee8 time:1075177136
D/hackrf_android(21452): initHackrf: Permission granted for device /dev/bus/usb/001/017
I/hackrf_android(21452): constructor: create Hackrf instance from /dev/bus/usb/001/017. Vendor ID: 7504 Product ID: 24713
I/hackrf_android(21452): constructor: device protocol: 0
I/hackrf_android(21452): constructor: device class: 0 subclass: 0
I/hackrf_android(21452): constructor: interface count: 2
I/hackrf_android(21452): constructor: [interface 0] interface protocol: 255 subclass: 255
I/hackrf_android(21452): constructor: [interface 0] interface class: 255
I/hackrf_android(21452): constructor: [interface 0] endpoint count: 2
I/hackrf_android(21452): constructor: [endpoint 0 (IN)] address: 129 attributes: 2 direction: 128 max_packet_size: 512
D/hackrf_android(21452): initHackrf: Permission granted for device /dev/bus/usb/001/017
I/hackrf_android(21452): constructor: create Hackrf instance from /dev/bus/usb/001/017. Vendor ID: 7504 Product ID: 24713
I/hackrf_android(21452): constructor: device protocol: 0
I/hackrf_android(21452): constructor: device class: 0 subclass: 0
I/hackrf_android(21452): constructor: interface count: 2
I/hackrf_android(21452): constructor: [interface 0] interface protocol: 255 subclass: 255
I/hackrf_android(21452): constructor: [interface 0] interface class: 255
I/hackrf_android(21452): constructor: [interface 0] endpoint count: 2
I/hackrf_android(21452): constructor: [endpoint 0 (IN)] address: 129 attributes: 2 direction: 128 max_packet_size: 512
I/hackrf_android(21452): constructor: [endpoint 1 (OUT)] address: 2 attributes: 2 direction: 0 max_packet_size: 512
I/hackrf_android(21452): constructor: [endpoint 1 (OUT)] address: 2 attributes: 2 direction: 0 max_packet_size: 512
D/hackrf_android(21452): Tune HackRF to 4336.600000MHz...
D/hackrf_android(21452): Tune HackRF to 4336.600000MHz...
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/hackrf_android(21452): Tune HackRF to 4336.600000MHz...
D/hackrf_android(21452): Tune HackRF to 4336.600000MHz...
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@425b2898
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@425b2898
D/UsbRequestJNI(21452): close
D/UsbRequestJNI(21452): close
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@425b6938
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@425b6938
D/UsbRequestJNI(21452): close
D/UsbRequestJNI(21452): close
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@425baab0
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@425baab0
D/UsbRequestJNI(21452): close
D/UsbRequestJNI(21452): close
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@425bf170
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@425bf170
D/UsbRequestJNI(21452): close
D/UsbRequestJNI(21452): close
E/hackrf_android(21452): transmitLoop: Queue empty or wrong packet format. Stop transmitting.
E/hackrf_android(21452): transmitLoop: Queue empty or wrong packet format. Stop transmitting.
D/hackrf_android(21452): Tune HackRF to 4336.600000MHz...
D/hackrf_android(21452): Tune HackRF to 4336.600000MHz...
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@4262eb88
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@4262eb88
D/UsbRequestJNI(21452): close
D/UsbRequestJNI(21452): close
E/hackrf_android(21452): transmitLoop: Queue empty or wrong packet format. Stop transmitting.
E/hackrf_android(21452): transmitLoop: Queue empty or wrong packet format. Stop transmitting.
D/hackrf_android(21452): Tune HackRF to 4336.600000MHz...
D/hackrf_android(21452): Tune HackRF to 4336.600000MHz...
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/hackrf_android(21452): Tune HackRF to 4336.600000MHz...
D/hackrf_android(21452): Tune HackRF to 4336.600000MHz...
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@4247d800 time:1075231051
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@4247d800 time:1075231051
W/IInputConnectionWrapper(21452): showStatusIcon on inactive InputConnection
--------- beginning of /dev/log/main
D/dalvikvm(21452): Late-enabling CheckJNI
D/ActivityThread(21452): handleBindApplication:com.mantz_it.hackrf_test
D/ActivityThread(21452): setTargetHeapUtilization:0.75
D/ActivityThread(21452): setTargetHeapMinFree:2097152
I/MainActivity(21452): onCreate: log path: /storage/emulated/0/Test_HackRF/log.txt
D/libEGL (21452): loaded /system/lib/egl/libEGL_mali.so
D/libEGL (21452): loaded /system/lib/egl/libGLESv1_CM_mali.so
D/libEGL (21452): loaded /system/lib/egl/libGLESv2_mali.so
E/ (21452): Device driver API match
E/ (21452): Device driver API version: 23
E/ (21452): User space API version: 23
E/ (21452): mali: REVISION=Linux-r3p2-01rel3 BUILD_DATE=Fri Mar 21 13:52:50 KST 2014
D/OpenGLRenderer(21452): Enabling debug mode 0
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@4247d800 time:1072675547
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@4247d800 time:1072689799
W/InputEventReceiver(21452): Attempted to finish an input event but the input event receiver has already been disposed.
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@4247d800 time:1072805849
W/IInputConnectionWrapper(21452): showStatusIcon on inactive InputConnection
I/MainActivity(21452): onCreate: log path: /storage/emulated/0/Test_HackRF/log.txt
E/ (21452): Device driver API match
E/ (21452): Device driver API version: 23
E/ (21452): User space API version: 23
E/ (21452): mali: REVISION=Linux-r3p2-01rel3 BUILD_DATE=Fri Mar 21 13:52:50 KST 2014
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@4254aee8 time:1075112768
I/hackrf_android(21452): initHackrf: Found 2 USB devices.
D/hackrf_android(21452): initHackrf: deviceList: vendor=7504 product=24713
I/hackrf_android(21452): initHackrf: Found HackRF One at /dev/bus/usb/001/017
D/hackrf_android(21452): initHackrf: deviceList: vendor=5401 product=32
D/hackrf_android(21452): Permission request for device /dev/bus/usb/001/017 was send. waiting...
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@4254aee8 time:1075177136
D/hackrf_android(21452): initHackrf: Permission granted for device /dev/bus/usb/001/017
I/hackrf_android(21452): constructor: create Hackrf instance from /dev/bus/usb/001/017. Vendor ID: 7504 Product ID: 24713
I/hackrf_android(21452): constructor: device protocol: 0
I/hackrf_android(21452): constructor: device class: 0 subclass: 0
I/hackrf_android(21452): constructor: interface count: 2
I/hackrf_android(21452): constructor: [interface 0] interface protocol: 255 subclass: 255
I/hackrf_android(21452): constructor: [interface 0] interface class: 255
I/hackrf_android(21452): constructor: [interface 0] endpoint count: 2
I/hackrf_android(21452): constructor: [endpoint 0 (IN)] address: 129 attributes: 2 direction: 128 max_packet_size: 512
I/hackrf_android(21452): constructor: [endpoint 1 (OUT)] address: 2 attributes: 2 direction: 0 max_packet_size: 512
D/hackrf_android(21452): Tune HackRF to 4336.600000MHz...
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/hackrf_android(21452): Tune HackRF to 4336.600000MHz...
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@425b2898
D/UsbRequestJNI(21452): close
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@425b6938
D/UsbRequestJNI(21452): close
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@425baab0
D/UsbRequestJNI(21452): close
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@425bf170
D/UsbRequestJNI(21452): close
E/hackrf_android(21452): transmitLoop: Queue empty or wrong packet format. Stop transmitting.
D/hackrf_android(21452): Tune HackRF to 4336.600000MHz...
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@4262eb88
D/UsbRequestJNI(21452): close
E/hackrf_android(21452): transmitLoop: Queue empty or wrong packet format. Stop transmitting.
D/hackrf_android(21452): Tune HackRF to 4336.600000MHz...
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/hackrf_android(21452): Tune HackRF to 4336.600000MHz...
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@4247d800 time:1075231051
W/IInputConnectionWrapper(21452): showStatusIcon on inactive InputConnection
E/hackrf_android(21452): transmitLoop: Queue empty or wrong packet format. Stop transmitting.
E/hackrf_android(21452): transmitLoop: Queue empty or wrong packet format. Stop transmitting.
I/MainActivity(21452): onCreate: log path: /storage/emulated/0/Test_HackRF/log.txt
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@424e94a8 time:1075244449
W/IInputConnectionWrapper(21452): clearMetaKeyStates on inactive InputConnection
W/IInputConnectionWrapper(21452): showStatusIcon on inactive InputConnection
E/ (21452): Device driver API match
E/ (21452): Device driver API version: 23
E/ (21452): User space API version: 23
E/ (21452): mali: REVISION=Linux-r3p2-01rel3 BUILD_DATE=Fri Mar 21 13:52:50 KST 2014
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@424e94a8 time:1075537655
I/hackrf_android(21452): initHackrf: Found 2 USB devices.
D/hackrf_android(21452): initHackrf: deviceList: vendor=7504 product=24713
I/hackrf_android(21452): initHackrf: Found HackRF One at /dev/bus/usb/001/017
D/hackrf_android(21452): initHackrf: deviceList: vendor=5401 product=32
D/hackrf_android(21452): Permission request for device /dev/bus/usb/001/017 was send. waiting...
D/hackrf_android(21452): initHackrf: Permission granted for device /dev/bus/usb/001/017
I/hackrf_android(21452): constructor: create Hackrf instance from /dev/bus/usb/001/017. Vendor ID: 7504 Product ID: 24713
I/hackrf_android(21452): constructor: device protocol: 0
I/hackrf_android(21452): constructor: device class: 0 subclass: 0
I/hackrf_android(21452): constructor: interface count: 2
I/hackrf_android(21452): constructor: [interface 0] interface protocol: 255 subclass: 255
I/hackrf_android(21452): constructor: [interface 0] interface class: 255
I/hackrf_android(21452): constructor: [interface 0] endpoint count: 2
I/hackrf_android(21452): constructor: [endpoint 0 (IN)] address: 129 attributes: 2 direction: 128 max_packet_size: 512
I/hackrf_android(21452): constructor: [endpoint 1 (OUT)] address: 2 attributes: 2 direction: 0 max_packet_size: 512
D/hackrf_android(21452): Tune HackRF to 4336.600000MHz...
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/hackrf_android(21452): Tune HackRF to 4336.600000MHz...
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@42612908
D/UsbRequestJNI(21452): close
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@42494d80
D/UsbRequestJNI(21452): close
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@42494d40
D/UsbRequestJNI(21452): close
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@425967a8
D/UsbRequestJNI(21452): close
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@42596830
D/UsbRequestJNI(21452): close
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@425968b8
D/UsbRequestJNI(21452): close
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@42596940
D/UsbRequestJNI(21452): close
E/hackrf_android(21452): transmitLoop: Queue empty or wrong packet format. Stop transmitting.
W/IInputConnectionWrapper(21452): showStatusIcon on inactive InputConnection
I/Timeline(21452): Timeline: Activity_idle id: android.os.BinderProxy@424e94a8 time:1075666938
D/hackrf_android(21452): Tune HackRF to 433.660000MHz...
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/hackrf_android(21452): Tune HackRF to 433.660000MHz...
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@4309c450
D/UsbRequestJNI(21452): close
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@430a0510
D/UsbRequestJNI(21452): close
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@430a8d28
D/UsbRequestJNI(21452): close
V/UsbRequest(21452): endpoint still open in finalize(): android.hardware.usb.UsbRequest@430b0de0
D/UsbRequestJNI(21452): close
D/UsbRequestJNI(21452): init
D/hackrf_android(21452): Tune HackRF to 433.660000MHz...
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
D/UsbRequestJNI(21452): init
E/hackrf_android(21452): transmitLoop: Queue empty or wrong packet format. Stop transmitting.
E/hackrf_android(21452): transmitLoop: Queue empty or wrong packet format. Stop transmitting.
W/InputEventReceiver(21452): Attempted to finish an input event but the input event receiver has already been disposed.
W/IInputConnectionWrapper(21452): showStatusIcon on inactive InputConnection

Unable to stop capturing

The older releases had the ability to stop capturing it looks like the newest one has absolutely no way of doing so and it will just continue to capture until I run out of space or close the application.

Can you do a transmit based fm

I'v read the project about the receiver, and i'm interested in the fm,can you do a project about transmiting based on fm on android,thank you

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.