


- Large number of different hardware interfaces. "Simple" interfaces (Ascii RS232) caused as many programming difficulties than more complex ones (due to timing problems)
- False anomalies due to transient hardware states during re-configure.
- Hardware not reporting current state of device.
- Inadequate real-time environments
- Programming languages which prevent completing sections of code (C++ at least at lowest levels)