Caren Electronic Consultants

CEC offers consultancy in Unix and Embedded Systems Design.


My first exposure to Unix was in 1983, since when I have administered several 68k based SysV machines and many PC based Unixes such as Venix, Microport, Interactive, and Linux. Despite the omni-presence of MS Windows these days, I continue to be of the opinion that Unix is by far the best platform for programme development. Most of my exposure to Unix has been as a user and administrator, the number of scripts in perl, python, sh, awk, etc. written over the years is legion. However, I have also used Linux in several product designs:-
  1. A product that accepted modem traffic from remote sites and passed the acquired data on to larger machines connected via Ethernet. Unix seemed the best solution for such a product which I wrote almost exclusively in a mixture of scripts (tcl/tk and perl) running on a Linux platform. This product was produced on time and within budget, and most significantly - worked!
  2. A laptop based logging system for Aviation use.

Embedded System Design

I have design experience of both hardware and software (primarily the later) on 6809, 68000, 68020, 683XX, z80, 8085, 8051, 1802. My most recent work has been using 683XX embedded controllers in a variety of products. This work included hardware design and software written in C. I used to use the Greenhills C compiler running on Interactive ISC Unix for 68k development, but now use the GNU GCC hosted on Linux. This is a very high quality compiler capable of being configured to act as a cross compiler for most 16/32 bit processors. Part of my efforts have been to perform this configuration for my particular combination and includes extension of the symbolic debugger gdb to support cross debugging via the 683XX BDM port.
  1. One project involved using multiple 683XX based nodes communicating with one another and a controlling PC via a CAN bus. This project used a multi-threaded state machine architecture designed using Jacobson diagrams, The product brought much (painful) expose to the idiosyncrasies of stepper motors.
  2. A family of PC104 based embedded display systems based on a small footprint Linux environment that I created for the purpose and with application code written in C++.