Gordon Electronics offers an extensive software design service for its customers.

We offer our software design skills in the following areas

  • Microprocessor-based software (firmware) -- we can offer embedded software (firmware) design services for a variety of microprocessors. The programming languages supported for this platform are: assembly and C. We currently support 8051, AVR and will be adding ARM in the near future. For new design the microprocessor selection is made to best suit the needs of the project, based upon computational, power, size or cost needs. Don't forget that Gordon Electronics also offers electronics design services that includes microprocessor-based designs. Please refer to the Electronics Design section for more details.
  • Windows-based software -- either stand-alone applications, or software used to interface to hardware designs, we can develop custom applications for the Windows operating system, as either console applications, DLLs or, more commonly, as a graphical application using the Windows Graphical User Interface (GUI). The programming languages supported for this platform are: C, C++ and LabVIEW.
  • PC-based software -- not all PCs run Windows software! The ubiquitious PC hardware is often used for real-time control applications running under the simple and reliable DOS operating system, or a real-time operating system. We can develop the custom application to run in these environments. The programming languages supported for this platform are: C and C++.
  • Efficient, reliable software -- whether its compact, efficient code for a resource-limited microprocessor, or large-scale software of over 100,000 lines of C++ code for Windows, we deliver quality software.
  • Documentation -- no design is complete without proper documentation.

The major steps involved in our software design work

  • Discuss requirements with the customer -- very important to ensure that the customer gets what they want!
  • Document the design -- well written technical documentation is an essential part of our design work.
  • Develop software -- written in high-level languages (C, C++ or LabVIEW), or assembly language where appropriate.
  • Perform extensive testing on the design -- tests that verify the design meets its performance specifications and also the customer's requirements.
  • Supply the software design to the customer -- the hand-over.
  • Provide on-going support for the customer -- the customer's needs may change or expand with time.

Design Tools

  • C (embedded and PC-based)
  • C++ (PC-based)
  • LabVIEW (Windows-based)
  • Assembly language (only where necessary!)
  • Borland C++ for Windows (GUI RAD tools)
  • Microsoft Office (Word, Excel, Powerpoint, etc)
  • Microsoft Project, Visual SourceSafe
  • Perforce, Revision Control Systems

We have been involved with a wide variety of software and electronics design projects
     over the years, including:

  • Mains timer with embedded microprocessors,
  • Microprocessor programming interfaces,
  • Defibrillation energy meters,
  • Smart battery charger (mains powered, or solar-panel powered)
  • Readers and access-controllers for both magnetic strip (swipe) and "smart-card" card-based systems,
  • Turnstile controllers for public transport systems,
  • Cash reloaders for stored-value card systems,
  • Custom marine security and automation solutions,
  • Data-mining and analysis software capable of processing 100's of megabytes of data scattered across tens of thousands of files,
  • Wafer test software,
  • Custom mixed-signal wafer, IC and sub-assembly testing software,
  • Data translation tools, converting data from one software tool into format needed by another,
  • and more ... (confidentiality agreements are honoured)
  • Please inspect our Electronic Design Examples page for details (and pictures) of some of our electronic design work, many using embedded software.



Copyright 2009-2010, Gordon Electronics. All rights reserved.
Contact us