I have a bit of a specialized question for you. Recently I got my Pi up and running, and am amazed at what it can pull off. But I want more.

I want to be able to record the output from an accelerometer, which is recording aspects of an impact. To do so I will need a minimum of a 12 bit ADC sampling at 100 kHz. At that speed I figure I will need an external microcontroller to buffer the samples, and then have the Pi read in from the buffer to do all of its fun UI stuff. I am planning on using SPI to let them all chat, but am open to suggestions.

Now the kicker is I can only use DIP packages since I do not have PCB abilities. Could someone suggest a microcontroller and ADC that could handle this? I would prefer if there were no expensive programmers required, gotta love the open source theme with the Pi.

Thanks in advance for the suggestions!

  • If you need 100MHz sampling you are probably looking at something that costs a good bit more than the Raspberry Pi. And as soon as you add the requirement that it is a DIP I think you are searching for something that does not exist. – Craig Sep 24 '13 at 20:23
  • Thanks Craig for the reply, good to know that they dont make something in a DIP package that will do that. – user1003131 Sep 25 '13 at 0:57
  • 100kHz is much different. My comment only applied if you needed MHz – Craig Sep 25 '13 at 19:46

It looks like a MCP3008 may be exactly what you want. The datasheet claims up to 200 ksps at 5 Volts.

In fact there is a tutorial about using this with a Raspberry Pi.

  • Perfect! Thank you Craig. That is a great starting point. I'll be writing the code in Java or C, but it should be fairly analogous. – user1003131 Sep 26 '13 at 12:44
  • Just note that the MCP3008 is 10 bit resolution and you said you needed a minimum of 12 bits. – Frank Smith Sep 26 '13 at 18:57

100kHz is very much easier than 100MHz!

You could try an ADC121S021 or an ADS7822

  • Perfect! I suspect I'll need a microcontroller to buffer the output from the ADC as well? I dont think the Pi will be able to keep up if it is running a UI. – user1003131 Sep 25 '13 at 13:01
  • @user1003131, Not sure. If you are using spidev the kernel probably does some buffering for you. You should report back here with your findings. – John La Rooy Sep 26 '13 at 1:44
  • Sounds good, will do! – user1003131 Sep 26 '13 at 12:45

the lack of pcb abilities can be easily compensated with abundance of pcb fab houses on the internet, that not only manufacture, but also assemble your design for a small price.

other than that, you're out of luck. 12bit (16bit w/padding) @ 100Mhz is about 200MB/sec of data you have to process, the Raspberry Pi will NOT be able to do that no matter how many external microcontrollers you attach to it.

  • I factored in the padding into the 12 bit, but understand where your coming from. I did mean to say 100 kHz, but it is still quite a bit of data. I only need to capture for a 10 second interval if that makes any difference. – user1003131 Sep 25 '13 at 1:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.