Howerd Paul Oakford

Curriculum Vitae, 25th July 2001

 

Born : 28th October 1954

Married, two children.

1965 - 1972 Lowestoft Grammar School, Lowestoft, Suffolk. A-levels in Physics, Chemistry, Applied Maths, Pure Maths.

1973 - 1976 Trinity College, Oxford University, MA in Physics, specialising in Nuclear Physics and Electronics.

1976 - 1977 Test/Design Engineer for Computer Electronics Ltd., Saffron Walden, Essex. Repair/servicing of the CE6000 range, design of Prom Programmer board and 8 channel "intelligent" serial comms. board for Texas mini-computer.

1977 - 1981 Chief designer/programmer for Rofin/Sinar Technology on the Moisture Computer. The design won the British Microprocessor Award ( 1980 ) and is mentioned in "Starting Forth" (page 4). Programming in microForth on the CDP1802. Specialised hardware includes patented vibrating spring mass transducer and very low drift capacitance circuit.

From 1981 Self-employed consultant in software and hardware development and system design of specialist instrumentation. Trading as Inventio Software since 1985, Director of Inventio Software Ltd since 7th July 2000.

Participant and contributor to many EuroForth conferences.

Skills Summary

Protocol testing : HTTP, FTP, TFTP, TCP, UDP, IP, PPP, HDLC also GPRS ( GSM ) SNDCP and LLC/MAC layers using Anite scripts ( Racal 6103 ), Unix, Unix shell scripts, Linux and Windows based test software.

Programming Active Server Pages ( ASP ) using JavaScript and VB script, together with SQL database access.

Programming in Forth : ANS Forth, chipForth, polyForth, HolonForth. Embedded systems programming where performance and reliability are important.

Programming in C, C++ , perl, VB : Keil C51, MicroWare UltraC, MS VC++ Developer Studio, Borland C++ V5.02 + TASM , PLM, PVCS, Paradigm Locate, RT Debug + PDRemote, SMX V3.3.2 RTOS, EBS RTIP TCP/IP Embedded Network Software, Nucleus RTOS.

Programming in Assembler, Intel 80x86 and 8051 family, Motorola 68X0X0, 683XX, PIC series, Harris CDP1802, Yamaha YSS205B DSP. PC-based and embedded systems, chip-level programming.

Hardware design using Futurenet, PADS, Easy PC/Pro, Ranger2, especially microprocessor based instrumentation.

Special skills: Networking - TCP/IP, UDP, secure serial communications. Multi-tasking and multi-user programming . Virtual Machines. XML, WML, HTML. System design, including secure communications protocols and user interfaces. Multimedia / graphics systems in C and Forth. Smart Card Open Terminal Architecture including TLVs, cryptography, modem communications, and databases in C and Forth.

MSDOS, Windows, Linux, Unix and OS9 operating systems.

All current software is tested for Y2k compliance.
Forth, Inc. Advanced polyForth course, 11th January 1985.

View latest project

Contact details :

Howerd Oakford
Inventio Software Ltd
No. 1 New Villas
Crowthorne Road
Bracknell
Berkshire
RG12 7EG, UK.

Tel: 01344-457057
Fax: 01344-640546
Mobile: 07890 683371
Email: Howerd@inventio.co.uk
Web: www.inventio.co.uk


Key to data :

Each project has a description and contains a key as follows :

Date

Company name ( approximate length ( weeks ) , Agency ( Ag ) or Fixed Price (FP), Forth ( F ) ,C ( C ) and/or Assembler ( A ) ).

NC indicates projects Not Completed.

Projects in Forth will always use the Forth Assembler in part - A indicates a non-Forth assembler.

For example : LYNX project for CDI-players : ( 6 months, Ag, F&C ) indicates half a year, through an "agency" ( in this case MPE ) - that is paid daily or hourly, and written in Forth and C ). The project time is in weeks unless otherwise stated.

Please note that many of the projects took less than four weeks to complete - this is why there are so many of them! Of the twenty projects listed here, only one project was not completed successfully - due to the collapse of the Indonesian economy. I left two projects before they were completed ( by other members of the team ) with the full co-operation of the companies involved.

Almost all projects have resulted in extension of contracts and repeat orders.

 

Projects before October 1994

Atmel 89C2051 code compaction example

Projects from October 1994 to February 1996 :

Philips / MicroProcessor Engineering( 6 months, Ag, F&C ).

LYNX project for CDI-players C and Forth interface program for Philips CDi multimedia system. C programs written using UltraC/PC Bridge, PC hosted cross compiler for OS9/68000. Forth programs written using ForthMacs on OS9/68000 system. Multimedia/CD ROM graphics application with extensive 68000 assembly language programming in OS9 environment, some Unix. The system comprises a platform-dependent B-wrapper layer, a platform- dependent C-Wrapper layer ( both written in C ) and a Forth scripting language interpreter/compiler layer. The B-Wrapper made extensive use of the Balboa graphics library, with syscalls and callbacks connecting the Forth text interpreter and Balboa multitasking O/S.

Philips LYNX project for PC . PC / CDI compatible multimedia graphics scripting language. C and Forth interface program for Philips Video CD+ PC-based multimedia system. C programs written using MicroSoft Visual C++ and Developer Studio. Forth programs written using ForthMacs on PC. Multimedia/CD ROM graphics application with extensive 80x86 assembly language programming in a Windows95 environment.

August 1995

Computer Solutions Ltd ( 2, FP, F )

Implementation of chipForth ( Forth Incremental Cross Compiler ) for 68302 board. Drivers for Computer Solution's COMROM serial port, and other hardware in 68000 assembler and Forth. The COMROM and FASTROM ( EPROM emulator ) used together form a low-cost In-Circuit Emulator system when used in conjunction with chipForth drivers and program.

September 1995

Aquapal Ltd ( 6, FP, F ).

Processor board and drive electronics for the Aquapal Vapouriser. Programming using 8051 chipForth and assembler, including sample transport mechanism and heater control, thermocouple and air pressure sensors. The design included the ISL bus system, controlled by a separate task from the user interface "operator" task, so that complex mechanical handling procedures could be followed at the same time as responing to user input.

February 1996 to April 1997

EMV / MicroProcessor Engineering ( 11 months, Ag, F&C&A )

Forth implementation of V25/80186 version of Europay/Mastercard/Visa Open Terminal Architecture Virtual Machine for Smart Card terminals ( 13months, Ag, F&C&A). Development of 32 bit Forth cross-compiler and 32 bit operating system to run on 16 bit processor, including "umbilical Forth" environment. The OTA interpreter operates as a "virtual processor" consisting of approximately 300 instructions. The instruction set ranges from simple address/data access and computational instructions written in assembler, to support for Tag-Length-Value encoded data packets (including parsing of Data Object Lists of TLVs), volatile and non-volatile linked-list databases, cryptography (including RSA, SHA and Modulo Exponentiation) , modem communications ( X-Modem protocol ) and executable module support, written in high level Forth and assembler. Several system functions including a system heap, databases and TLV code were translated from C into Forth. OTA instructions are provided to support different programming languages, including Forth and "C" . The OTA concept allows a program written in OTA token code to be validated once for execution on many different platforms.

End of May 1997 to June 1997

JBC Systems Ltd. ( 4, FP, F )

Hardware/software development of two new products : the GermPro and Sieve Shaker. The units are based on the same main board, incorporating the low cost 89C2051 chip. The board has timing and control functions, including temperature measurement, mains voltage phase control switching using IGBTs (for low EMI), EEPROM for parameter storage, LED display and keypad. Other products in the range are planned, using the same main board, with different interfaces and software. The GermPro is designed to maintain a glass test tube at a constant presettable temperature, for a preset time period, and incorporates a vacuum pump. It is used to test the germinating viability of seeds. The Sieve Shaker uses a motor and rotating weight to vibrate a platform carrying sieves of different mesh size, and includes a timer and phase controlled mains switch.

July 1997 to October 1997

PT Sahid Jaya International, Jakarta, Indonesia ( 10, FP, F, NC )

Design, manufacture and programming of the control system for the Jakarta Clock Project. This includes mechanical design, PCB design , programming ( using five 8051based micro controllers ) and system integration. The clock is a 6.5 metre tall glass obelisk which is to be installed in a new shopping complex in Jakarta, Indonesia. The design utilises multiple processors for distributed intelligence, and the proprietry Inventio Software Remote and Local busses. The system comprises several parts : 1. A control panel and PSU. Based on an 80C32 processor, this has an LCD, keypad and Real Time Clock, and controls the rest of the system. 2. Mechanics and electronic interface for the "sphere", which travels up and down inside the obelisk, and indicates the time of day. This includes a motor driver and optical sensors. 3. An array of thirty-two 50W halogen lamps to illuminate the sphere, together with phase controlled mains switches to control the brightness, and produce a multicoloured rotating effect around the sphere. The lamps are controlled by the control panel processor using an RS485 serial link. 4. A phase controlled mains switch and RS485 link to control a fountain. 5. An audio CD controller board, to play pre-recorded chimes and/or music on each hour. 6. Programming of system network software and user interface using 8051 chipForth.

November 1997 to January 1998

Hi-Gain Electonic Designs Ltd. ( 3 months, Ag, C&A )

User interface and FLASH memory driver for a Portable Appliance Tester, programmed in Keil C51 embedded C.The user interface features a Finite State Machine architecture for maximum reliability in a safety-critical area, and handles storage of results, and reviewing, printing and downloading of stored data. The FLASH driver used a load-levelling scheme and sector buffering to prevent premature failure of the FLASH chip, again as the system is safety critical. The project also included a serial port and keypad interface, with LCD data redirected to the serial port during the development and testing phase.

Graphics LCD driver for T6963 controller chip. The software was programmed in Forth ( for interactive debugging) then translated to C ( Keil C51 ). A 16x16 pixel character font was created from the standard 8x8 font, and a pattern analysing program compacted the required patterns to fit in the 2K font RAM. In this way all ASCII characters except { | } and ~ are available in small characters and all except those and # & ' ( ) are available in big characters. This technique allows fast display of both font sizes simulaneously.

Prototype assembly and debugging of PIC based mains socket tester. Programming of PIC chip to perform hardware tests.

Assembler and C code for LCD driver for Toshiba TLCS870 series chip. Software included display drivers for numeric and bit-mapped output.

February 1998

Inventio Software JBC Systems Ltd. ( 4, FP, F )

Hardware/software development of the IS5 low-cost embedded non-PC PC.
This is a DS80C320 based microprocessor board, with FLASH disk, fast RS485 link , RTC, graphics LCD etc.
Features the
ISL and ISR busses for low cost connection to Local and Remote peripherals.
The design strikes a balance between a truly general purpose "bells and whistles" board and a rack mounted "pick and mix" approach. There are simple connections to application specific boards and devices.
It will form the basis of several products which require a simple graphical user interface, at low cost and with low current consumption.

March 1998 to mid July 1998

Robin Ltd ( 5 months, Ag, C )

Portable Appliance Tester Mains/analog PCB and printer PSU PCB layouts using Easy PC ProXM. High voltage and high current layout.

Portable Appliance Tester programming in Keil C51 embedded C. User interface and automatic function sequencer, FLASH memory interface. The program contols numerous mains voltage, high current and high voltage ( 3kV ) relays, and features a safety critical state machince design. The user interface includes context sensitive help screens, derived entirely from one text file, so that both the content and length of the help text can be changed by the customer ( i.e. without re-programming ). The program resides in FLASH, and is loaded from EPROM on an edge-connector based add-on module at manufacturing time. The program automatically detects the presence of the add-on module and downloads the program into FLASH memory. Results are also stored in the FLASH memory, and this is achieved by executing critical parts of the FLASH programming algorithms from RAM, as it is not possible to run a program from one area of FLASH while another part of the same chip is being programmed.

July 1998

Multi-Electronics Ltd ( 2, FP, F )

Originally a PIC based dual axis stepper control system, converted to an Atmel 89C2051 chip for more power and program space. The program emulates an Epson FX80 printer in both text and graphics modes, and "prints" using a solenoid controlled spray head to create a pattern of chemicals on any flat sheet of material. The program includes parallel port interface software and interrupt driven stepper motor control in a space limited ( 2K FLASH ) environment.The stepper motors are half-stepped in software, with ramp-up and down for maximum step speed. There is also a user interface which emulates the Line Feed, Online and Form Feed buttons of the Epson printer, including Paper Load, LEDs etc. The hardware includes a 512 byte FIFO for operation under Windows 95. The standard chipForth compiler was modified to optimise for program size, by creating a simpler 16 bit do...loop structure and changing INTERNAL variables to only produce target code when used in high level Forth.

July 1998

Sinar Technology Ltd ( 1, FP, F )

Language Conversion program for chipForth. Sinar have a wide range of software for their range of agricultural moisture meters, all written in 8051 chipForth. The Language Conversion program takes any of the chipForth programs and creates a text file containing all of the messages used, with each message copied onto two consecutive lines. The text file is then sent to the customer, in this case in Spain, and each message is translated into Spanish. When the file is returned, it is incorporated into the chipForth program, and an EPROM may then be created using either the original English messages, or the translated Spanish messages. The program source code in either case is the same. The principle may be extended to other languages ( German, Italian etc ) and the program may be used with any version of Forth.

This project formed the basis of the paper that I presented at the 1998 EuroForth conference.

August 1998

Quality Controls Technology Ltd ( 2, FP, - )

Hardware design and PCB layout using Ranger2 for BI1001 Conveyor Belt Computer analog board. This works in conjunction with the IS5 processor board and ISL bus. The design is based on the established CBC unit, and features lower cost, smaller size and improved performance over the original unit.

September - October 1998

RACAL Radio Ltd ( 8, Ag, - )

An eight week contract working with a RACAL team on an encrypted transceiver project. The work includes verifying the operation of hardware and software across the product range : Mobile (for use in vehicles), Personal (hand held). and Covert (compact size), testing using the Tariff UDP (subset of TCP/IP) protocol, and designing test rigs to assist in the programming of the units. Also loading of encryption keys, repair and design improvements to "key fill devices" (which load the keys), and testing the OTAC (Over The Air Control) system.

November 1998

Quality Control Technology Ltd ( 4, FP, F )

The Titrette - portable Carl Fischer titrator. An 8051 based project based around the IS5 processor board, with additonal analog hardware. The analog board was based on the MAX1241 12 bit ADC, and features scanning at 2400 Hz and averaging over 16 seconds to reduce noise. The hardware interfaces include a DC motor controller ( constant speed using back EMF monitoring ) , variable voltage PSU ( digitally controlled ), AC conductance meter, and two RS232 interfaces. The software incudes two tasks ( background ADC monitor and user interface ), print spooler, and extensive user interface and test facilities.

December 1998 / January 1999

MultiElectronics Ltd ( 2, FP, F )

Karaoke control board based on the Yamaha YSS205B DSP chip and the Atmel 80C2051. The program was written in 8051 chipForth and controlled the 180 or so DSP control registers in the YSS205B. Four buttons, two LEDs and one potentiometer set the required functions, which were then processed into the DSP parameters to give key-shift, voice cancel and echo effects.

January 1999

Computer Solutions Ltd ( 3, FP, C )

Programming, configuration and testing of TCP/IP networking software for the AMD Net186 single board computer. The Net186 is based on the AMD186ES chip, with an ethernet controller and two serial ports.

The project included compilation of html files into a virtual filing system which allows the Net186 to be a Web Server, with html pages embedded in the Flash memory, and configuring the IP addresses for the network.

The tools used were:

Borland C++ V5.02 + TASM + PVCS
Paradigm Locate, RT Debug + PDRemote
SMX V3.3.2 RTOS
EBS RTIP TCP/IP Embedded Network Software
All under Win95 / DOS

March 1999 to mid-September 1999

Chase Communications Ltd ( 6 months, Ag, C )

Programming of the Chase SMR receiver using 68332 GNU C PC based cross compiler and GNU assembler. This is a two 68332 processor system, with dual port RAM used to interface the sampling processor with the communications processor. Extensive use is made of the 68332's TPU ( Timer Processor Unit ) to provide interrrupts from a variety of distance and time sources, which are used to trigger programmable data capture events. The SMR also communicates over an EtherNet link using a subset of the TCP/IP protocol. The TCP/IP code is based on the NCSA public domain sources. The interrupt routines and much of the fast inner loops of the sampling processor are coded in assembler for maximum speed. The SMR unit interfaces to a PC program being written simultaneously by other members of the team, in Visual Basic. A PC based terminal emulator program ( written in Forth ) is used to test the serial protocols, using a very simple scripting language to send batches of commands and process the resultant data stream, until the VB program is completed.

October 1999

Sinar Technology Ltd ( 3, FP, F )

The DryPro Analog board. Design of circuit, PCB layout and programming of Atmel AT89C2051 processor. The DAN board has eight 4-20mA current outputs which are controlled by the Sinar DryPro unit, a moisture measuring system for use in grain dryers. Four of the channels are for the moisture content of the grain, and four for the temperature at each of four sensors fitted into a grain dryer. The data is sent to the DAN board using the same serial port as is used for the system printer, so the AT89C2051 program processess all incoming characters and responds only to packets intended for the current output, passing though any other packets to the printer. The Maxim MAX5250 8 channel DAC is used, together with high accuracy FET voltage to current convertors. The project also included the modification of the DryPro software ( 8051 based ) to output the relevant packets to control the DAN board, plus additional calibration menus.

November 1999 to March 2000

Hybaid UK Ltd  ( 5 months, Ag, C&PLM )

Programming of the MultiBlock System ( MBS ) in PIC C. The MBS is a programmable thermal cycler which can be networked on an RS485 line. It uses a PIC 16C77 to control the temperature of up to 384 samples, either to the same temperature or to a defined temperature gradient. The original program did not support the gradient mode of operation, and was extensively re-written to save program space ( 8K x 14 bit words ) and to make it easier to understand, as the original was written as a state machine. To assist in the programming, reference was made to Hybaid's Express unit, which supports gradient operation, but was written in PLM. The methods used to make the program more compact were to factor all functions as much as possible, and to redesign the structure of the program to isolate the three areas of functionality : The RS485 serial interface, the temperature control PID loops and the user defined program. The unit saves and restores its state in non-volatile RAM so that the thermal cycle continues unchanged after a short power failure.

 

April 2000

Sinar Technology Ltd ( 2, FP, F )

Design of new 8051 based processor board for the Sinar range of products, to allow upgrading of programs via email. A loader program in EPROM is used to load programs into NVRAM. This is an extension of the remote download of calibration data already implemented in the Sinar Moisture Meters, to allow new versions or extensions of the software to be downloaded from the Sinar WebSite.

 

April 2001

Running Communications ( 2, FP, ASP )

ALPS - Advanced Lecture Presentation System. An ASP, HTML, VBscript and JavaScript conference "chat room" application, based on a Windows Laptop and up to 36 Windows CE HP Jornada Palmtops. Messages entered at the Jornada are sent using a Proxim Wireless LAN to the Laptop where they may be reviewed, edited and printed. The VBscript was used on the Laptop to access an SQP database, and the JavaScript on the Jornadas, with an ASP ( Active Server Page ) file on the Laptop which constructed an HTML file to be sent to the Jornadas.

 

23 July 2000 - 29 June 2001

Matsushita Communication UK Ltd ( Panasonic ) ( 11 months, Ag, C, perl, Unix )

Design of software test scripts in C and Perl under Unix and Windows to test the USNet IP stack as used in the Panasonic GD35, GD36, GD93P and GD95 WAP mobile phones. This project involves an in-depth understanding of the Internet protocols used in the Wireless Application Protocol : PPP, LCP, IPCP, IP, UDP, TCP, ICMP, XML. The test environment is the proprietary Host Mobile Test Environment, which allows perl scripts to be run under Unix and the Nucleus RTOS.

Also testing of GPRS SNDCP protocol and LLC/MAC layers using the Anite scripting environment and customised Unix scripts, Unix and Linux based packet routing and modifying programs.

 

July 2001

Sinar Technology Ltd ( 0.3, FP, F )

Modifications to the DryPro V2.2 software to include a Real Time Clock, user interface to set the time, and additions to the printer output to display the time.

 

Comments to : Howerd Oakford

Email: web@inventio.co.uk

Tel. : (+44) 01344-457-057 Fax : (+44) 01344-640-546

Back to Inventio Software

This site designed with
a little help from:
Professional Web Design
HTML authoring tutorials