Embedded Linux or native microcontroller programming

Which stack is the more appropriate?

  • Native microcontroller programming

    Votes: 0 0.0%
  • Embedded Linux

    Votes: 0 0.0%

  • Total voters
    0

Thread Starter

zoltanb

Joined Feb 3, 2018
2
Hi there (from Hungary),

I'm about to finish my studies as an electrical engineer bsc at summer and looking forward to write my thesis related to implement some embedded application. The main idea behind it to learn some valid and sustainable technology. My interests are embedded linux and C++ and developing CI/CD systems with Docker for the scope of this project.

The exact application would be an access control system for my university to limit and monitor the entrances of teachers', students', other employees etc to different zones of the building. For the time being, the notion is not so clear how exactly it will be carried out but here are the main requirements:

  • Wireless communication when authenticating/authorizing with RFID or NFC, and on success opening/closing a door/gate etc.
  • Encryption. (I am not an expert on this one, really. I just know that a system like this is unimaginable without solutions against attacks. :) )
  • The node devices (hardware next to doors to open them) to be able to communicate in a peer-to-peer manner for the purpose of updating each others configuration/database containing user information and be able to function autonomously.
  • An application with a web UI running on a PC for administrators to arbitraily adding/modifying/removing users, grant custom permissions which user has access to which zone of the building. (I am planning on implementing this with Java as I have an experience of 1.5 years in building web apps with it.)
So as I said my main interest are Linux and getting some programming skills in C++ (and Docker) and I am trying to avoid native microcontroller programming, but I am afraid that the choosen tech stack is way too much determined by my own (selfish) intentions of learning the desired tools ingoring the facts like:

  • The cost of a system like this - with 30-40-50 devices - raises too high because of choosing strong enough hardwares being able to run an embedded linux OS with contenarized applications.
  • Ignoring real-time constraints needed by an application like this. (I too am not an expert on this one. :D)

So the overall question is: is it overkill or worth the effort? Maybe I should look for another application if I'm insisting on linux/C++ etc.?

Thx for the answers in advance!

Cheers!
 

Sensacell

Joined Jun 19, 2012
3,031
Obviously, the closer this is to "real-world" deployable the better, that's the whole point, right?

Build the locks around an MCU and hardware that is cost-effective for the real-deal, that's how you become employable.
 

miniwinwm

Joined Feb 2, 2018
68
I don't know what the job market is like in Hungary, but in the UK the requirement for embedded developers who can do low level stuff on small devices (eg small ARMs) is huge and growing, greater than it is for Linux developers. Where I work there are many central, eastern and southern European engineers because there are not enough UK nationals to fill the need. The rates for contractors with these skills in the areas of high demand (Cambridge area, going west from London) are now £2k a week and growing. Companies are getting desparate to find the right skills. As this is a university project maybe think of your future employability rather than what may be the easiest or technically best.
 

Thread Starter

zoltanb

Joined Feb 3, 2018
2
I don't know what the job market is like in Hungary, but in the UK the requirement for embedded developers who can do low level stuff on small devices (eg small ARMs) is huge and growing, greater than it is for Linux developers. Where I work there are many central, eastern and southern European engineers because there are not enough UK nationals to fill the need. The rates for contractors with these skills in the areas of high demand (Cambridge area, going west from London) are now £2k a week and growing. Companies are getting desparate to find the right skills. As this is a university project maybe think of your future employability rather than what may be the easiest or technically best.
Thanks for the answer!
Well, the reason why I would choose this stack is not because of the ease of the project but I am more of a "higher level" software engineer (Java, C#, Web applications etc.) or at least for the time being, these are my intentions, so I wouldn't neccesarly learn to develop applications for low level ARM-based microcontrollers.
Of course, as you said, it's also a prospering technological field to be worth spending time with it, and as it's "just" a thesis project, no harm would be caused If the end result is not a top-tier product as I have much less experience in embedded/low-level programming than in web application development with like Java or Python.
 

bogosort

Joined Sep 24, 2011
695
Generally speaking, microcontrollers are well-suited for handling a few dedicated tasks (like controlling a lock based on RFID data), while OS-driven microprocessors are the better option for systems running multiple applications. So why not use both for your project: inexpensive microcontrollers to handle the entry points, and a Linux system with a web frontend to control and report status of the microcontrollers.

For an undergraduate thesis project, I think the challenges you'll need to overcome will be more than sufficient that you won't have to worry about the really hard details such as encryption and fault tolerance.
 
Top