The bottom line is you probably don’t!
The more complex the system the more you have to research this question. Custom electronics in many ways is a more straightforward problem/decision than custom software as you will see below and many companies provide off the shelf computer software to run your business.
Buying off the shelf software has many advantages
- You pay a one off cost plus possibly a percentage per annum support.
- It’s generally well developed and free from bugs (I said generally!)
- Many other people are using the software so you may have a pool of people in the workplace who know the system already.
- The company generally has multiple developers and support people, you dont need to know the risks involved say if the main software developer leaves! (You really should ask these questions if the company is relatively small!)
Now you’ve read the above and before you close the browser, there are a few gotchas and sometimes the solution you have causes more problems than it solves. ie
- It could be too complicated. why do I have 10 switches when I only use 1, or why do I have 20 fields on my form when I only enter data in 3 of them.
- You could end up changing your business model to fit the software.
- You may end up doing most of your work in spreadsheets as your system “does not do that”
- You may end up spending more on office administrators than on your business.
- You are at the mercy of the company for upgrades and you may even end up with forced upgrade which means lots of cost for your business.
Custom systems generally solve all the above but also have their problems
- They are expensive up-front, (sometimes very expensive). Someone has to analyse your business requirement and build it.
- You are also the tester. While most bugs will be ironed out by the developer, you will need to ensure the system is fit for purpose, most scenarios will be untested by the developer until they are first encountered.
- You are at the mercy of the development company! Once all your eggs are in the proverbial developers basket, will they still play fair once they know you cannot go anywhere else for support.
- How many developers have they got, what if they only have one and they get run over by a bus!
Most auditors will tell you not to go the custom development route due to risk and in many cases they do have a point! Many auditors also spout that without realising the risk in third party software but thats another topic! Alleviating the risk can be difficult but it is possible. (Auditors note!)
- Insist on code/system/data ownership. You are paying for the development so you should own it or at least have full access to all the code and documentation. So do ensure/insist you have back ups of the latest working source code, data schemas, documentation and historical snapshots. Nothing should be hidden, if it is then you should seek further advice as your business could be at risk!
- Have a knowledgeable third party or a member of staff involved in the development to audit it and test the final product.
- Get recommendations on the person you are entrusting your business too. Do you trust them?
- Keep copies of all the documentation and correspondence in case of dispute
- Agree costs up front for development and support
- Be realistic with the system at the start, a new system will basically be a pile of bugs held together by logic (generally called Alpha-quality or beta quality software) bugs will occur it is how quickly these bugs are fixed that is the true measure of quality
- A new system may also not quite do what you want (due to assumptions or mis-communication). It is best to catch this one immediately and throw it back to the programmer before it goes into full production as it will be much slower to fix if production data needs to be taken into account.
- Importantly, ensure you can export any dataset or screen to a spreadsheet to allow for things the system does not do (yet) and to check calculations (it can also be a good reporting tool)
There are a lot of articles on the Internet and a lot of examples of successes and failures even when you use the biggest companies to do your system (Novapay.. cough! cough!) I would recommend reading them if your not sure.
Low-cost Custom Electronics Design
Lets start with the simplest custom development service we provide. A lot of companies would like to add ‘intelligence’ to their products, many people know exactly what they want but are put off by the feared potential costs of something they know nothing about or dread having to deal with unknown electronics engineers in another part of the Country or even the world.
Those that go down this road usually resort to shoe-horning some existing device into a role it was not intended to do or using a PLC which may be total overkill. Most of the time it results in the worst of both cost and support ability.
Custom electronics can add a lot of value to your existing products for a small outlay, below is a cost/benefit sketch I produced for a frost windmill and alarm. The initial customer idea was to make 50 controllers, the cost of development was around $3500 and so this would have equated to around $70 for each control board. After a realistic check of the market the customer cut that figure down to just 6 (I kid you not!) this worked out at $625 per board! Of course it worked out cheaper for them to use a simple PLC for $350 each and I recommended they do this if cost was the only option.
The motto’s from the above were:
- It pays to be realistic in your Qty estimates
- It pays to do the math (as sometimes a PLC is better)
- It pays to create custom electronics once you reach a certain threshold usually around 20 units or if you believe there is a realistic onward sales possibility.
- Factor in spares and support! While PLC’s are generally very reliable everything has the potential to fail, if the only PLC spare is in Auckland or the PLC goes end of life and your running a production system you wont be doing anyone a favour by not having a spare!
Examples where custom electronics may be an option.
- Temperature sensors to switch your systems on or off or reduce there power depending upon the temperature or the rate of change of temperature.
- Light sensors changes to do the same for when it is light or dark
- Interlocks to ensure mechanisms are in place, before allowing systems to operate.
- Capturing run data such as operational times for equipment or plant not connected to PLC’s or where PLC’s are un-affordable.
- Remotely controlling your equipment or having it report to you regularly using wire, radio, GSM/SMS or Internet links
- Spicing up your control panel with LCD display or enabling PC control of your systems (Many customers now expect to be able to control and monitor devices from SCADA or PC’s)
- Replacing unreliable mechanical controls
- Fault monitoring (combine data from multiple sensors and have the electronics make an intelligent decision or display the fault ‘in plain English’ to the user)
- Adding features to your product eg start widget A 10 seconds after valve B closes, every other Sunday!
- Etc, etc
16 Temperature Channel, 34 Relay Driver 4-layer control board (Hand-built Prototype below)
This was developed at the end of 2016 for Wine Technologies and I worked through the design with the company over 4 iterations of hardware and firmware until it met their exact requirement. The design and prototyping cost around $5000 and 100 boards were made at a cost of $50 each so the total cost of the project was $10000/100 or $100 per board. The company has all the design files and firmware and got several free lessons in C and electronics engineering included. The above is a quite complicated board (you cannot see the 12 analog multiplexers, op-amps and DAC circuitry on the back) a much simpler project prior to this for them was two layer and worked out at $45 each amortised over the project.
The advantage is they own the finished product, not just the hardware but all the design files and firmware and if they choose they can work direct with the manufacturers or other engineers and manufacture/licence as many as required. Further boards can be made to keep spares on customer sites at minimal costs to them and increased up time to their customers (not that any have failed of course!)
Creating your own custom electronics design would have been out of the reach of all but the largest companies several years ago. However the technology game is a fast moving one and you can now design, build and test these systems using electronic CAD systems without touching a soldering ironing giving the ability to create a working prototype in just a few hours. (The Arduino board is a great example of such a prototyping system) Once your happy with the prototype systems you can generate the schematic/pcb/CAM (Computer aided Manufacture) files to allow mass production at low cost (there are a sea of suppliers just waiting for these orders!). Reliability will be measured in years, power consumption in mA and you can have as many low cost spares as you want giving you years of peace of mind for support.
For a very small controller, say a HRV control box which sticks on your wall and controls a ventilation fan in the attic, it will have a few keys, an lcd display a temperature sensor, a few discrete components and a triac or relay to switch a motor, it would be easy to produce the finished electronics including enclosure for under US$20 for 500 qty, ($15 for parts and $5 per unit amortised development cost – Yes I have analysed one for a potential rival!) Also remember a PLC is nothing magic it is just a piece of custom electronics with very robust I/O. It is a black box, ie you have no idea of the insides or what makes it tick outside of its development system. With custom electronics you get everything so it can be repaired or modified as required and you can build as much or as little user programmability into the devices you want, from no controls at all to a full control panel or remote control via MODBUS, Bluetooth, WEB or even a custom PC program.
System Programming (Windows and Linux)
A Much more difficult question whether to create a customised software system, however, desktop and server programming can be undertaken to any level and size. we have experience writing code for multi-user networked windows systems storing millions of records all the way down to services (daemons), low level drivers, DLL’s and interfaces to external equipment hardware. Where possible all code is written to use standard calls and programming conventions as recommended by the Operating System (OS) manufacture at the time of the design to ensure compliance with future versions of that OS this means in practice that code we have written for Windows 95 still works on Windows 10
Most of our larger projects were done in Delphi and we still support some large systems which use it. Development is now moving to Free Pascal / Lazarus as it is both Open Source and can target every Operating System currently used. Lazarus is a Visual IDE which allows very rapid development of screens with little code it is an evolving language and has a very large developer community. Pascal is also easier to read than most C derived languages and like C compiles into a single executable program which can be run on the target system. Being very easy to read is important for support as we or others sometimes need to go back to ancient code and need to understand what it did or check out the suitability of an external program.
“A man who knows only the capabilities of a car will never recommend a truck to do a job.“
Database systems always use SQL and will be designed for multi-user access and are network friendly (ie they wont clog up your bandwidth like file based databases), they will scale up to the limitations of your chosen database (which you will never reach – believe me!) by using efficient queries your system won’t slow down as your data size grows. We have built systems targeted for Microsoft SQL server, IBM DB2, SQLite and MySQL (All versions including its more open source derivatives) It is also possible to extract data from other databases, excel tables or proprietary systems as required into the new system.
Systems analysis is examining you existing systems and databases, looking at how data is entered and retrieved from these systems, looking at where the data comes from before it comes into your system and where it goes to when it leaves. Once this is done, and after talking with the people who actually use the systems making recommendations to make it more efficient
Systems migration, database up-sizing and data conversion.
You may have already concluded your current database is too slow or won’t work properly with multiple users or over remote links, so you now need to move it from the old system to the new system. However your staff are now faced with manually changing or correcting thousands of records! We can write the conversion routines to do this mapping the old data from one database to the respective fields in another database with or without any modifications. Once the program is written it will run the same whether you have one hundred records or one hundred million!
Automatic Data capture
It is still common to see workers monitoring machines, packages, widgets moving through your business, writing them down on a sheet and inputting them into a database. If this sounds like your business we have experience in writing automatic data capture programs directly linking to your machines (PLC’s) or capturing movements via bar-codes or RFID so nothing is missed and monitoring costs effectively become zero.
If you have the time and the inclination we can train you on all aspects of your computer system, from creating simple SQL queries, web pages and reports through to designing, programming and maintaining your own database system.
- You have a great idea for some software but you don’t know where to start.
- Your staff fill in lots of paper forms which are then photocopied ten times signed by someone, lost, found, photocopied again for good measure and finally typed into other computer system probably with mistakes!
- A group of companies want to pool or share information, systems or procedures to improve efficiencies without compromising commercial information to rivals.
- You are manually entering data from your production systems into your job system.
- You need a piece of software to interface machine A to system B.
- You have repetitive task or situation where you just know a computer should be doing that!
- That inventory system your mates friend wrote 10 years ago now doesn’t do what you want, won’t work with your new PC’s, and you dare not change it because of that 10 years of historical data in it.
- You need temporary IT or IS cover for skill shortages.
- You just want that second opinion on a large IT job or when dealing with another IT company.
- You want to program these systems yourself and want training how to do it.
Many businesses think they already have an excellent way of putting data in and retrieving it from their databases or may simply be using the screen created by your Microsoft Access wizard but if it’s not doing the job properly, letting you input bad data or making you do extra steps/key-presses then it is already costing you money!
Specifying your requirement in plain English
Before you enter into a contract with any company, you should really know exactly what you want from the final system. If you have the specification already written, great, just send it to me (in any format) and we will return a quotation without fuss.
If you haven’t got a specification we can also work with just your good idea, and while I won’t be able to read your mind, we can rapidly create skeleton or prototype Windows or Internet/Web systems which can be refined until you’re happy it is doing what you want, or at least make you refine the way you think about your business! This prototype/refine option is not as expensive as it sounds as a skeleton program is exactly that, devoid of all the baggage of a full system, and in some cases this approach may ensure you don’t go too far the road in the wrong direction!