printed circuit board

Embedded Systems

We create embedded systems for devices with web interfaces that store data, allow data download, issue control commands, send email alerts, and much more.

  • Develop a web layer for the tiny dedicated Linux server running on the unit.
    • Create several software components including a PHP web application, a binary executable (the "poller") written in C, and various support shell scripts.
  • Create a web application handling the user interface and generation of alert emails.
    • Enable end users to interact with the web application as they would any web site.
    • Utilize a compact interface and software compression to minimize the size of data transmissions over GSM transmitters, which are priced by bandwidth usage.
  • Write a poller in C, instead of PHP, to support consistent running and millisecond-accurate timing in communications between the Linux server and unit.
    • Cross-compile the C code for the dedicated server's ARM architecture.
    • Use the industry-standard MODBUS protocol for the poller’s communication with the unit over a serial connection.
  • Write data into a MySQL database which it shares with the web application.
    • Compare values it reads from the unit against alarm thresholds, and inform the web application of alarm conditions.
    • Accept control and configuration commands from the web application over a custom Berkeley socket interface that maintains its internal scheduling.
  • Create a collection of shell scripts to provide watchdog verification for the running of the poller and monitoring of disk utilization.
  • Design flexibility into all of the components.
    • Make polling frequencies and most system configuration parameters changeable on the fly via the web interface.

To learn more, please read about one of our embedded systems deployments.