Hi,
We are doing the power supply for a customer who is making monitoring equipment
to monitor fluid levels in tanks in various places over Europe. It monitors, then sends
back the levels to a central depot via wireless link. It also needs to be bi-directional
comms as they need to update the software in the monitoring sites sometimes.
They have asked us to do a start-over system and do all the software aswell. Do you think we would easily
be able to do the whole system with Arduino? We know basic C programming. (even managed to do a LED dimmer
once where a user twiddled a pot and I got the PIC micro to read the pot via its ADC then output a reference
voltage via a step-mode digital pot.)
So do you think we could do all the comms, including RF comms , with Arduino and Arduino code?
Does Arduino make this sort of monitoring/comms system thing "easy for anyone"?
I did some Arduino software once....it seemed like C but more logical and understandable than C.
We obviously wouldn't put the Arduino board in the product....but just the relevant chip of the Arduino.
Shouldn't all companies be transferring all of their software systems over to Arduino so that "anybody"
can maintain and modify it?
After all, Arduino is the easiest software platform(?). Even to write a simple PIC micro program, you have to
know all that setup and config code.
So why hasnt Arduino taken over the world of software yet?...or has it?....is it in the process of doing so?
Thanks, Their software engineer just left and didnt yet write the code to include the bidirectional comms......is it true that software engineers sometimes write code in a more complicated way than needed , in order to "protect their job/territory"? Do Software engineers sometimes use a more complicated software system than necessary in order to say theyve used a complicated system so their CV looks better? How can you tell if a software engineer has done this?
IMHO it often is the devils triangle. (time, quality, functionality).
The employer may define 2 of these 3 and then the engineer will define the 3rd.
if you want quality and functionality, it will take serious time.
If you want time and functionality, quality will be low.
If you want time and quality, you get less functionality.
If the employer wants all three, you get a failed project (and stressed people etc)
Other words
time = deadlines
functionality = functional requirements
quality = non-functional requirements
Often deadlines in combination with incomplete, changing and even incorrect requirements causes project trouble. Of course there is also the social interactions in a project as mentioned before
It already strikes me as odd that the customer would ask the company who does the power supply to also provide a monitoring system for the customer's product. Kinda like going to a hardware store to buy bricks and then saying "oh, and can you build a house for me?".
The problem I typically see is that small companies who have traditionally sold simple hardware are pushed to build "smart systems" but don't really know how. They don't have the in-house expertise to even manage such an engineering project. They could contract out the project but find the cost eye-watering. Then they try to find someone with a bit of knowledge who is willing to do the project "on the cheap".
Many users program the Arduino using nothing but the C part or subset or whatever you wanna call it of C++.
Anything that made it seem "more logical and understandable" was all the stuff that comes out of the box when you sign up, the largest parts of which are the process Arduino code is out through before it hits the compiler, and the broad availability of libraries of various quality that make some things easier to use.
But the structure and function of anything in the Arduino is no different to coding anything at this low level:
Hard until it is easy, and even then. For anything beyond toy programs.