I'm in my final year of Electrical and Electronics Engineering. I'm taking up a major project(smart-grid),in a team of 4, through which I plan on learning about embedded systems. My experience:

  1. Embedded C and Assembly language programming on an 8 bit AVR.
  2. Made a working prototype for one aspect of this project on ESP8266.

My requirements are:

  1. I need the development board to run be able to run embedded Linux OS. I will be programming in C++.
  2. Wi-Fi is a must.
  3. I will also be using voice recognition for voice commands.(optional)
  4. I will need to connect a few sensors and actuators.
  5. Low power and long lasting on battery.
  6. An LCD or LED display.(willing to figure out how to integrate one)
  7. I need an additional custom circuit to implement a feature I'm not willing to disclose.
  8. The development board will be constantly communicating with a cloud, sending the data.(Too obvious, I know)
  9. I want to perform some real-time calculations on the development and locally implement one function.(Memory required for this operation:20,000 bytes. Time complexity: O(n^2)...don't know if that matters)

I do not want to pick up something that already exists and build on it. One of the reasons, I want to be able to take my product to market. And I would appreciate the opportunity the learn something now. My timeline: 9-10 months Where do I start? Do I stick with a readymade board like PIC-IoT WG Development Board or do I build one from scratch with a microcontroller?

  • 2
    \$\begingroup\$ Shopping questions are off-topic here, but take a look at the TI SimpleLink ARM core processors. BTW, you're not going to find a microcontroller with and LCD and LED display, you'll have to figure out how to interface to one of those. \$\endgroup\$ – John D Sep 17 '20 at 16:59
  • 5
    \$\begingroup\$ "Needs to run linux": You're not looking for a microcontroller, but for an application processor. The rest also sounds like you need something with more computational power than the average microcontroller. You will not be able to design a board for such a high-speed processor. So, this is really just about buying a single board computer, and as John said, shopping questions are off-topic. \$\endgroup\$ – Marcus Müller Sep 17 '20 at 17:08
  • 5
    \$\begingroup\$ In essence, you want to design a Raspberry Pi, from scratch, with no prior experience. That's not just the hardware, but also the board support package (BSP) so that Linux can actually drive the hardware. \$\endgroup\$ – Simon B Sep 17 '20 at 18:01
  • 3
    \$\begingroup\$ A custom development board running Linux is simply not an option for someone still inexperienced in board design enough to have posted a question with these evident unfamiliarities. Given the scope of what you want to do, you should be looking at a processor module, or drop the Linux aspect and build a simpler system, or refine your goal to learning about the memory interfaces and routing issues needed to get Linux to run on your custom board at all. Narrow your problem to something which you can actually achieve in the allowed time. \$\endgroup\$ – Chris Stratton Sep 17 '20 at 18:14
  • 3
    \$\begingroup\$ A warm welcome to the site. Your intentions for learning are admirable but designing your own board is far too big a task for a beginner. As others have said, use an existing development board, there are tons on the market. You'll have enough work and problems later getting the rest of it going. Try to research the workload your application will put on it and produce some estimates for CPU cores, clock speed, RAM size, Flash size and so on. Then you have an idea what to look for. Good luck with it and, again, welcome. \$\endgroup\$ – TonyM Sep 17 '20 at 18:31

Not really an answer but too long for a comment:

I want to build my own custom development board instead of using a pre-designed one.

Why on earth would you want do this ?

I understand the time and effort this will take

I'm not entirely sure you do. The effort required to spin a board that that can run a WIFI stack, has decent antenna performance and EMI, has enough CPU to do non-trivial voice processing and a clean audio interface and power structure is substantial. Together with board and driver bringup this can easily exceed the scope of a typical master thesis. That's not counting any application programming yet.

Take a look at a Raspberry Pi or a suitable alternative https://www.zdnet.com/article/best-raspberry-pi-alternatives/ If you want to do voice work: Amazon offers a full Alexa SDK on a Raspberry Pi. They chose that for a very good reason: it's cheap, well designed, performs well and scales well, i.e. many people can share the develpment work and environment.

It's enitrely possible that you have a very good reason to create your own board, but unless we understand what that reason is and why an existing board doesn't work, it's hard to point you in the righth direction.

  • \$\begingroup\$ The reason my team and I want to build a development board is simply to learn how to do it as per requirement for more complex applications. Besides, picking up a ready-made development board and making a project can be done by any one. It does not allow me to learn what makes it tick. \$\endgroup\$ – Rachit Raj Sep 18 '20 at 11:04
  • \$\begingroup\$ I guess I will change my question entirely... \$\endgroup\$ – Rachit Raj Sep 18 '20 at 11:18
  • \$\begingroup\$ How do i get this question to reopen? \$\endgroup\$ – Rachit Raj Sep 18 '20 at 11:38
  • 1
    \$\begingroup\$ @RachitRaj As it stands, this won't be reopened. In brief, products are not recommended - this should be the first part of your research! Your goals are unrealistic, as you've been told, and you should research why that's the case. You've linked some low complexity microcontrollers as your previous experience, the step to a full application processor is huge, even before you factor in software support. My suggestion: design for a RasPi Compute module. This will still be a huge challenge for you, but removes the really hard stuff. \$\endgroup\$ – awjlogan Sep 18 '20 at 12:56
  • \$\begingroup\$ @awjlogan I guess I'll have to do that. But honestly, raspberry pi or arduino is just too easy. \$\endgroup\$ – Rachit Raj Sep 20 '20 at 19:15

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