Today we are releasing our first draft of the new Android Oscilloscope called OsciPrime.
We added a bunch of new features such as:
- Trigger Offset
- Signal Offset
- Cursors for measurement
- Performance Improvements
- Running on Beagleboard with Rowboat Gingerbread
The Application is going to run on your phone as well. Although at the moment it requires you be able to record mono at 44100 [Hz] to use Audio.
You might also have to adjust measurement units in the source code.
We packed also libusb if you want to deploy the app on the Beagleboard directly into the APK.
Enjoy
(hint: You can open the menu using the menu button in the application, press once more to close again)


We have it now running in the Acer Iconia A500 Tablet; you will require root though…
Does this only work on tablets or ver 3.x? Or could I get it to work on my Droid X ver 2.2.1?
Thanks
Great work on this project. Your site has been a excellent resource and has saved me considerable amounts of time. Thanks for open-sourcing everything, it’s really beneficial for the community. I’m attempting to use DSPlink with the Android NDK, just wondering if you’ve gone down that path with success…
PS. The Osciprime app works well on the Galaxy Tab 10.1.
@John Myers
although it would be possible if you use the ADK with a high speed host …
We require USB Host mode
@Dan Lyden
Thank you so much! There is still a lot of work to do, especially the UI sometimes behaves not as wanted… We have not used DSPLink with the Osci, but played a bit around in our first project
Note: For the Tab we increased the NUM_POINTS_PER_PLOT constant in the OPC class… since we have more pixels compared to the phone
Cheers
Manuel
Pingback: OsciPrime Oscilloscope - Android Apps - Best Android Apps, News and Reviews | Android-Apps.com
Hello ,
I have android 3.1 acer iconia Host tab device. i have used OsciPrime application code for getting data from external USB device when i attached external usb device to my android tab device. here modify some code like vendor id and product id i have success in open connection of external USB device. here i paste some code of read data from queue ….
for(;;){
if(!mRunning || mPaused){
l(“Returning from Sampling Thread”);
return;
}
for(int i = 0; i < NUM_BUFFERS; i++){
for(int j = 0; j < NUM_SUBBUFFERS; j++){
UsbRequest r = mConnection.requestWait();
r.queue(mByteBuffers[i][j], MAX_BUFFERSIZE);
}
//START
t = System.currentTimeMillis();
mBigBuffer[i].position(0);
mChannelLeft.position(0);
mChannelRight.position(0);
split(mBigBuffer[i], NUM_SUBBUFFERS*MAX_BUFFERSIZE, mChannelLeft, mChannelRight);
callback(mChannelLeft, mChannelRight);
//DONE
if(dbgcnt % 256 == 0){
l("Processing took: "+(System.currentTimeMillis()-t)+" [ms]");
}
dbgcnt++;
}
}
in my case i will receive mByteBuffers every time zero value. only first and second position get value and another buffer all value is 0.
i have external device scanner in which FDTI FT232BM chip
and It is a USB device that emulates a RS232 interface it appears as a RS232 port to talk to the
Atmel AT90LS8535 processor.
Please suggest me any problem in my external USB device or any step missing me….
Hello there,
maybe you need to also send IN packets to the IN Endpoint after sending your OUT packets…
Better try the synchronous method to figure out how the protocol works
connection.bulkTransfer(endpoint, bytes, bytes.length, TIMEOUT);You should focus on finding information about how the FT232 Protocol works with those bulk Endpoints. I suggest that you browse the internet and if you can’t find good answers that you look at the kernel module of the ft232 driver…
I was wondering if we can use a bluetooth module to send in data via the audio channel. Well I am very new to Android and Electronics too. So even if you can give me some guidance I will put in all my efforts to make it work . What do you think ?
Hi Akshat
Should be no problem at all if you are using a Bluetooth microphone. Actually since we are taking Audio from the default mic it should work out of the box, yet I have never tested it.
On Line 117 of the AudioAdapter class you can adjust the audio source to your requirements:
Hope that helps
Regards
Manuel
Hi,
I am trying to compile your source code in Eclipse IDE.
I get errors when I try to compile. Error says “Unable to resolve target ‘android-9′”
I am trying to run this application on a Samsung Galaxy mini.
Another error in
src -> ch.serverbox.android.osciprime.ui -> VerticalSeekBarOverlay.java
line 35 – It says “The hierarchy of the type VerticalSeekBarOverlay is inconsistent”
Please help me to fix this error.
Thanks in advance,
Hasala
Hi Hasala
You should update your ADT tool and then download the Android Platform for API9. This should fix your problems.
Regards
Manuel
Does anyone actually have specs on the Android phone ADCs? Are they Sigma-Delta or what exactly? This is pretty important information for things like Oscope use when using the built in “mic” port. I cant seem to find any real datasheets that list this information from Google or any OEM.
“You might also have to adjust measurement units in the source code” Awesome! I’ll be looking into this soon. Gotta do some simple diagnostics in my car and this looks like the right tool for the job. On the other hand, xoscope with a laptop might be more extensive…
Hi,
when i import the project i get “No projects where found” error on eclipse and
in my app i want to show oscilloscope while recording How to solve it? please help me.
Hey Murali,
Try creating an a project from existing source.
All the best
Manuel
HI,
Sorry but i’m a newby
is it possible to get some informations how to mesure signal with the MIC?
Thank U
Thanks, i have tried long time to get Oscilloscope part from your code. actually my need is i need show Oscilloscope when record audio. i did the audio recording part with the help of Audio Recorder. Now i want to integrate oscilloscope part(code). How to get oscilloscope code part from your project please help me. thanks in advance.
Hi Murali,
To use the “oscilliscope part” I recommend, that you take our project as a starting point, it already has the audio source built in
Just hit the source code link in the post to get started.
all the best
Manuel
Hi Manuel,
I am also developing an application that connect to our custom USB CDC ACM device using the libusb API in Android. The communication did start using the provided functions. However, after about hundred bulk in transfer, the connection lost. And after checking with USB analyzer, it was found there exist many URB_FUNCTION_ABORT_PIPE request and status cancel error. Have you got this problem or how you solve it? It would be really thankful if any one can solve this as I have be sucked in this error for long time.