0

I need your experience about the power of raspberry pi 3. I need to know Raspberry Pi is powerful enough for my problem or not.

I need to read stream data from Almost 200 sensors like (humidity, tachometer, temperature, voltage current, and axis) and do some pre processing on data, raspberry pi is it powerful enough for my problem? or I need to think about some thing else like FPGA? Edit: right now i am in theory state i am not sure what will be in future but please see that as complex one (different protocol for each sensor and use different port for read)

3 Axis Gyroscope Accelerator Sensor => SPI and I2C => x60

temperature and humidity => I2C => x30

Voltage current => it is analog need to convert to digital => x60-100

tachometer => SPI => at most 10

pr-processing like order analysis on values comes from tachometer or sprat actual current data and noises coming from 3 axis from model. some value need to save for short time and other need to send as stream to server

notice:

  1. estimate of sampling data from each sensor is about 200khz
  2. sensors are connected to multiplexer(as you know we have limitation in entry port so we need to control sensor by multiplexer)
2
  • 3
    Could you edit your question to include details of the estimated throughput on each of the communication channels you plan to use (e.g. SPI, I2C, GPIO, serial etc.).
    – joan
    Jul 21, 2017 at 17:46
  • Are your sure you need sampling at 200 kHz for all the sensors, or at all?
    – yglodt
    Feb 6, 2019 at 12:59

1 Answer 1

1

No chance .. 200 sensors at 200kHz each is 40 million samples per second.

With a 1.2GHz clock, that's 30 clock cycles per sample .. no way can the Pi 'input' anything in 30 clk cycles (which is just enough time for half a dozen instructions) :-)

Even if te Pi managed to actually read the data, what's it going to do with it ?

The SDHC port is limited to about 20Mb/s and last I checked, at 100% CPU loaidng, the Pi can manage about 30Mb/s through the USB port ... so even if the sensor data is only 1 byte per sample, there's nowhere for it to go (and no Pi CPU cycles left over to compress it in any way).

My 'best guess', is that using a mix of Assembler and optimised C coding and maybe some hardware between the sensors and the Pi (to pipe-line the samples when the Pi operating system is too busy responding to interrupts to check for new samples) you might manage something approaching 1 million samples / sec. without too many dropped samples ...

2
  • You've got 4 cores, so that will buy you a factor of a few on the processing. Still won't get to 40 million samples per second though, assuming that the rest of your argument is correct.
    – Brick
    Jul 26, 2017 at 19:52
  • Thanks for your replay do you have any suggestion for hardware?
    – hesam
    Jul 26, 2017 at 23:21

Your Answer

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

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