I am fairly new(having less hands on experience) to Arduino and electronics in general. I have a project for which I know the features and required electromechanical parts. I need some advice in choosing the right Arduino. Here's my requirement :-

I need the board to handle the following Hardware/Software parts -

  1. 3 Geared motors,
  2. 1 BLDC 1000 kva
  3. 2 cameras ( one is also ok)
  4. TinyML for object detection
  5. Mic to receive audio commands
  6. Speaker to talk back.
  7. Wifi shield to send/receive information to internet or a laptop.
  8. 3 small servo motors.
  9. 2 Proximity sensor.
  10. 1 dc motor (6-9v)

Please advice which Arduino board will be perfect for the above requirements. I was thinking of Arduino Mega 2560, but after looking into various projects I couldn't decide if it was sufficient as I have many hardware parts.


To process incoming images, voice commands, produce sounds, and also do WiFi is almost certainly beyond the capabilities of any micro computer, like the Arduino (maybe some of the more recent models might). I strongly doubt that the Mega 2560 would. It doesn't have a heap of RAM for one thing (it has 8k of RAM). Look at the sizes of images produced by cameras these days, they are usually measured in megabytes, not kilobytes.

What might work for you would be a Raspberry Pi, which is basically a small Linux computer on a board, with a substantial amount of RAM.

  • Yeah, unless he either optimizes all of it to a tee I doubt that any arduino could do it. Unless he does all the heavy lifting off of an actual computer somewhere else (aka just use the arduino to gather the data and send signals back to the hardware – Hobbamok Oct 30 '20 at 17:17

Your main bottleneck here is the camera. If you want to do real time video, I would suggest getting a Raspberry Pi or the equivalent then using it as a master over something easier to code like an arduino.

The camera and wifi would be handled by the raspberry pi ( using Robot Operating software ) and the low level stuff like motor would be handled by the arduino ( any will do, since the main computing task will be left to the Pi ).

As for the machine learning, most microcontrollers can't handle it. If you want to do machine learning, I would suggest the NVIDIA range of single board computers instead of a Pi, since they have better GPU performance.

  • 1
    A Pi should be able to do rudimentary ML. It might not have a multi-core GPU, but it does have good native floating point performance. – Duncan C Oct 30 '20 at 23:59

If your project is more for fun and not mission-critical, and you have an older smartphone you're no longer using, you can repurpose it. For the motors (BLDC, DC, servos) and proximity sensors you can use any arduino (e.g. Nano) through either its USB port (if it has OTG) or bluetooth (e.g. Pro Micro). Your Arduino code in this case would be very simple, just a few lines to send proximity data, and set servo angles and motor PWMs.

If you choose this path (if you CAN choose it), you can get the most CPU power, memory, and in general doing this in Kotlin or Java is simpler than on any 8-bit microcontroller (or probably on a RPi which is a very good choice otherwise). You can use its camera (very good on most phones), wifi, microphone, speaker, etc. as well. There are libraries for object detection, and many other things. Using its accelerometer, gyro, GPS, mobile internet, NFC, light sensor, touchscreen could be a plus. And they come with batteries (UPS included).

Of course you need to have an old phone (most people replace theirs in around 2-3 years, just ask around in your family and friends), buying one for this costs more than an SBC. Also, Android can kill your app if you're not careful (just uninstall/disable everything else you can, and this probably won't happen), so don't use this to control a nuclear power plant or similar. If you need to build more units, getting old phones becomes harder. But for hobby projects this could work. If not, just choose a SBC (like Raspberry Pi, Orange Pi, BeagleBoard, etc.).


I would suggest you to go with esp32 as it already has a Wi-Fi module and also the specs are pretty good

  1. 2 CPU (one dual core and other one ultra low power)
  2. frequency 240 MHz
  3. flask size upto 16 megabytes
  4. also a inbuilt BLE module
  5. it has around 34 usable pins

Hope this helps.

  • The esp32 won't work except ypu extend it with a reasonable amount of external hardware. Take the esp-cam for example: you can take and process images (thanks to the external ram), but it doesn't have free pins left to do anything else. – Sim Son Oct 30 '20 at 18:35

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.