I have some experience with Arduino, but not (yet) with other AVRs or Raspberry/Orange.

I want to make a project with some slave devices (mostly Arduino Unos, one Arduino Mega). These all need to communicate with a controller.

This controller has about the following requirements: - It need to respond every 5 ms to some messages from the devices, within the next 5 ms. - It needs about 128 KB RAM space, but more would be more comfortable (although 1 GB is enough). - I need quite some 'programming' space (like FLASH) - The program that needs to run on it will be reasonable complex, so using a nice programming language would be convenient (Python/Java/C++) - SD or other nonvolatile storage is mandatory - nRF24LR01+ 2.4 GHz RF Transceiver - Like upto 8 LEDs for status showing - WIFI would be nice - Using an adapter (12V/2A?) would be good, no intention to run it on batteries

I think I can do it with a Teensy or Due, but those are reasonable expensive. Another option is an STM32 kind of AVR.

However, I an noticed Orange Pi Zero, which are very cheap. But I wonder if I get myself in trouble? I know Linux commands, never installed it on a computer though. Someone made a remark in another related question to go for a stronger AVR, but afaik an Orange should be suited very well for this (seeing the limited electronics involved).

Or would it be better to go for a Teensy or STM32?

  • first off, the due only has 96k RAM, you're not going to get much further on integrated chips. – tuskiomi Jul 17 '17 at 15:15
  • Initially my plan was to add a 128KB 23LC1024 SRAM IC, but it makes programming much less convenient (since I cannot store directly/use variables/lists/arrays). – Michel Keijzers Jul 17 '17 at 15:20

A Pi gives you lots of CPU power but I'm not sure how good it would to on the tight timing requirements.

It doesn't have everything you ask for but something like the NUCLEO-F746ZG may be an option. That gives you a 200+ MHz Arm M7 with floating point, 2 MB of flash and 512 kB of RAM. It has USB and Ethernet built in and has arduino compatible headers for connecting shields to give you things like an SD socket or a radio link.
Plus you get 8 UARTs, (no more software serial :-)) and 6 SPI busses (obviously not all on the arduino headers)
You can program it either natively or in c++ using the mBed framework & online compiler.
It is around $20. There are cheaper variants with less processing power / memory available for a little less.

  • 1
    A RPi will be fine if you work on the bare metal. Note that you won't get any help with any peripherals so don't walk in expecting to whip something up on a e.g. RPi Zero W in a few hours. – Ignacio Vazquez-Abrams Jul 17 '17 at 16:01
  • 1
    @IgnacioVazquez-Abrams True, I was assuming the Pi would be running linux and possibly programmed in python. The CPU is more than capable enough, it's accessing that power without adding latency that gets tricky. – Andrew Jul 17 '17 at 16:05
  • Can you give me a link where you can get it for $20 ... I mostly get my items from Aliexpress and there is is about $35-$40 ... in the Netherlands it's not for sale, only the discovery box for 50 euro (excl. shipping). – Michel Keijzers Jul 17 '17 at 16:26
  • 1
    nl.farnell.com have it for 22.5 euro. – Andrew Jul 17 '17 at 16:31
  • 1
    Personally I use the mbed library and build system rather than the STM32 one. Mainly because it makes it easy to switch between lots of different Arm based systems depending on what I need at the time. Unfortunately it's not the best documented thing out there and while there is a support community it's no where near as active as the arduino one. – Andrew Jul 18 '17 at 7:52

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.