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, 2013 at 20:23
  • Thanks Craig for the reply, good to know that they dont make something in a DIP package that will do that. Sep 25, 2013 at 0:57
  • 100kHz is much different. My comment only applied if you needed MHz
    – Craig
    Sep 25, 2013 at 19:46

3 Answers 3


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. Sep 26, 2013 at 12:44
  • Just note that the MCP3008 is 10 bit resolution and you said you needed a minimum of 12 bits. Sep 26, 2013 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. Sep 25, 2013 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. Sep 26, 2013 at 1:44
  • Sounds good, will do! Sep 26, 2013 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. Sep 25, 2013 at 1:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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