![]()
Howerd Paul Oakford
Curriculum Vitae, 2008 Mar 28
![]()
Born
: 28th October 1954
Divorced,
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
Protocols
: 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. Proprietary PPP.com Internet Protocol test
program.
Programming
Active Server Pages ( ASP ) using JavaScript and VB script, together with SQL
database access.
Programming
in Forth : ANS Forth, chipForth, polyForth, HolonForth. HolonJ Forth-like Java
compiler. 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, SMX RTOS.
Programming
in Assembler, Intel 80x86, ARM and 8051 family, Motorola 68X0X0, 683XX, PIC
series, Harris CDP1802, Yamaha YSS205B DSP, Texas DSPs. PC-based and embedded
systems, chip-level programming. FFT implementation.
Hardware
design using Futurenet, PADS, Easy PC/Pro, Ranger2, especially microprocessor
based instrumentation.
Special
skills: Networking - TCP/IP, UDP, secure serial communications. Apache HTTP Web
Server configuration. Multi-tasking and multi-user programming. Virtual
Machines. XML, WML, HTML. System design, including secure communications
protocols and user interfaces. Multimedia / graphics systems. Smart Card Open
Terminal Architecture including TLVs, cryptography, modem communications, and
databases.
MSDOS,
Windows, Linux, Unix and OS9 operating systems.
Forth, Inc. Advanced polyForth course, 11th
January 1985.
Howerd
Oakford
Inventio Software Ltd
No. 1 New Villas
Crowthorne Road
Bracknell
Berks. RG12 7EG, UK.
Tel: 01344 220088
Mobile: 07954 580833
Email: howerd@inventio.co.uk
Web: www.inventio.co.uk
September
2007 – April 2008
Renesas (UK) Ltd ( C and Assembler, 6 months )
Debugging low level Flash
drivers for the Renesas SH7254x series of RISC processors, in particular for
the on-chip Flash, MCU, ICU, GPT and SPI peripherals, using the Renesas HEW
development environment with the E10A USB JTAG debug port interface. Creation
of a test harness and test scripts using SwiftForth, and the conversion of the
scripts into C.
Also writing Requirements
and Design Specifications and coding for a customer API using the AutoSar
interface layer.
June 2007 –
August 2007
Thales (UK) Ltd ( C and Assembler, 3 months )
Debugging low level drivers
for a Texas DSP.
April 2007
– 11th May 2007
Penlon Ltd ( Forth – 3 weeks )
Writing test software for
the Penlon AVS unit.
January
2007 – March 2007
Westweigh Ltd ( Forth and 8051 assembler,
3 months )
Development of the Conveyor
Belt Computer ( CBC ). Upgrade to the Q.C. Technology product to use a more
powerful processor, with added functionality such as RS485 multidrop, bigger
LCD etc. Translation to Russian, including embedded font support, using the
Forth Language Translation system ( please see http://www.inventio.co.uk/Multiple%20Language%20Programs%20Made%20Easy.htm
).
July 2006 –
December 2006
Reach Technology
Inc ( C and Forth )
Development of the “PI” ( Program Interpreter )
graphics library interface. Based on the Atlast dialect of Forth, written in C.
PI provides an extensible scripting language and
interpreter as an extension to the Reach Tech SLCD quarter VGA graphics
modules.
Graphics widgets such as bar graphics, dials, and
soft keypads can be defined and imported into user programs.
Also RTPC, the Reach Tech PC program, an interactive
test environment that allows files edited on a PC to be downloaded to the SLCD
unit.
October
2005 – June 2006
Metric Group
Ltd ( 9 months, C , Assembler and Forth )
Accent/S4 project, development of an LCD device
driver for an Atmel 89M55800 ARM based car park ticket vending machine.
Encryption algorithm for car park ticket time
extension code.
Font conversion programs, from vertical pixels per
byte to horizontal, output as a C file etc written in Forth
Hierarchical, extensible data file format, which can
be converted to/from XML. This allows backwards and forwards compatibility
between data files and embedded programs that read them. Nested “schema”
definitions allow record data formats to be specified in a compact way.
June 2005 –
September 2005
Oxford Semiconductor
Ltd ( 3.5 months, SwiftForth )
Specification and development of OST, a script-based
test environment to test device driver calls. ANS Forth was used because of its
rapid development time, ability to interface to hardware / OS API’s and its
availability on most platforms. The same environment that tests device driver
API calls can also be used to test the hardware directly.
SwiftForth was used initially as the ANS Forth
compiler for the Windows XP/2000 environment, with Gforth ( GNU ) available for
Linux, and dsForth available for WinCE for future ports.
A user-friendly GUI is provided, so that tests can be
run by opening files using the standard Windows interface.
The test scripts can be edited with a standard text
editor, and use a simple set of platform-independent function calls to test all
aspects of the device’s functionality. This project required internal knowledge
of Windows Device Drivers, using the DDK, especially relating to USB and serial
drivers for the Oxford Semiconductor USB950, USB954, PCI952 and PCI954 chips.
July 2004 –
May 2005
Marconi Selenia
Secure Systems / Selenia Communications Ltd ( 11 months, SwiftForth,
SwiftX ARM, PIC C and Assembler, polyForth 8086, 8085 )
Software and hardware development for a
secure ISDN telephone. Modifications to polyForth 8086 and 8085 ( Z80 )
programs. PIC12F683, 12F675 and16F684 program design, implementation and test
using PICClite C compiler and MPLAB PIC Assembler for a CRC-protected
non-volatile storage device. Test rig for the PIC device using an ARM EB40
evaluation board with SwiftX ARM compiler. CRC verification programs using
SwiftForth on a PC. Investigation of ISDN protocols. Use of Agilent Logic
Analyser. Integration of a new FPGA into the existing design. Use of Swiki to
log progress, and the Tortoise SVN version control system. Note : Marconi Selenia Secure Systems changed its name to Selenia
Communications in January 2005 and again to Selex Communications in August
2005.
February
2003- April 2004
Alaris Medical
( 14 months, ARM Assembler, C, C++, Rhapsody, UML )
Asena “Amigo” project. Port of the SMX RTOS to GNU
C/C++ and the Motorola Dragonball M9328 ARM9 microcontroller. Port of Rhapsody
IDF layer to GNU C/C++. Writing of device drivers for UARTs, timers, monochrome
and colour LCDs, keypad, EEPROM, I2C, PWM sound generator, FLASH programmer,
SDcard, boot protocol. The development environment included Lauterbach USB ICE,
Cygwin/Bash, GNU C/C++ ARM cross compiler, Rhapsody UML to C++ state machine
code generator, Rhapsody queue-based scheduler, UML documentation, PCVS (
initially ) and CVS ( currently ) version control systems, Object Oriented
design.
October
2002 - February 2003
Richmond EEI
Ltd ( ~16, F, A )
Abrasive Cutting Equipment ( ACE )
project. A four axis ( x , y , extension and rotation ) manipulator
used to position a high pressure abrasive/water jet remotely over an unexploded
bomb, to cut a hole and so remove the detonator and/or explosive. The system
comprises three modules, located up to 500 m apart ( for safety! ), using an
RS422 serial protocol based on HDLC for communication. The ACE protocol was
designed to be backwards compatible with a "dumb terminal", so that
each module can be tested without the other modules using a standard serial
terminal. The two modules ( Power and Service modules ) use the Sharp ARM
processor, programmed using the VFXForth ARM cross compiler and some assembler,
and the Graphical User interface on the Command and Control module is
programmed using VFXforth for the PC. The project is to create a fully
functioning prototype to be submitted to a major customer for approval.
July 2002 -
September 2002 ( ongoing, part time )
SME
Paramedics Ltd ( HTML, ASP, JavaScript, VBscript, SQL )
Modifications
to the Nikon Fotoshare Websites.
general technical support and upgrades. Conversion of &-encoded characters
to 8 bit ASCII and Unicode formats for the Russian site. Changes to ASP files
which access the SQL server. Use of Terminal Services Client ( Win NT ) to
upload modified ASP, HTML, FLASH and SQL database files to the server using
HTTP and FTP. Use of FrontPage to edit ASP and HTML files. System
documentation.
10 April
2002 - September 2002 ( part time )
Peak
Performance Training Ltd ( ~6 , FP, F VB A )
Programming
of PC sound card and parallel port in real time to give sound and light
display. User friendly MMI.
A
prototype program was written in Visual Basic 6, but this did not allow easy
access to real-time timer and I/O port DLL functions, so the code was converted
to Win32Forth. An exercise in getting around Window's limitations in real-time
programming.
8,9 April 2002
Running
Communications ( 2 days, FP, ASP )
Installation
and operation of a 45-seat ALPS system at the Hilton Hotel, Park Lane London
(see below for details).
Eleven
laptops and 34 HP Jornadas connected together in a wired/wireless EtherNet,
accessing the ALPS database manager running on a server laptop. More than 240
questions were received from the conference delegates. Two EtherNet hubs ( one
24 port , one 4 port ), 34 Proxim wireless EtherNet PCMCIA cards and one Proxim
Access Point were used. The whole system ran perfectly.
15 October
2001 - 29 March 2002
Matsushita
Mobile Communication Development of Europe Ltd ( Panasonic
) ( 6 months, Ag, C, perl, Unix )
Design
of the API for the Cursors used in the MMI section of the new GD67 mobile
phone.
Detailed
design and coding in C of the API and Cursor drawing using graphics primitives.
Cursors are used by many of the modules and applications in the phone. There
are a variety of different cursors, including "I-beam", left and
right line cursors and inverse video. Some of the cursors may flash, so the
Cursor API must work alongside the Timer API in the RTOS to ensure
synchronisation.
Writing
perl scripts to run under the Panasonic HMTE Host Mobile Test Environment, to
test both the Cursor and Font modules.
28 August 2001 - 12 October 2001
De La Rue Cash
Systems ( 3 months, Ag, C )
Porting
of Teller Deposit Unit C source from Whitesmiths C compiler to the Mentor
Graphics/Microtec C compiler.
Modification
of C source to interface to the new 2520 Note Counter. Involved four different
proprietary serial protocols - TDU to host computer, TDU to original counter,
TDU to new counter, TDU to escrow unit. Each unit uses a different protocol.
The job involved converting the old counter protocol to the new counter
protocol.
The Hitex 68000 ICE was used to speed up the
software development.
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.
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 laptops and up
to 36 Windows CE Hewlett Packard Jornada palmtops. Messages entered at the
Jornada are sent using a Proxim Wireless LAN to the master laptop where they
may be reviewed, edited and printed. The VBscript was used on the Laptop to
access an SQL 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. One installation at the ExCel centre in Docklands,
London, used eight Laptop PC's and one Proxim Wireless Ethernet LAN port
connected to a 16 port Ethernet hub, plus 36 HP Jornadas with Proxim Wireless
LAN cards, all running ASP files from one of the laptops which supported the
Microsoft Personal Web Server.
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, and 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.
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 dual 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 interrupts
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.
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
Windows / DOS
December
1998 / January 1999
MultiElectronics Ltd ( 2, FP, F
)
Audio
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.
Quality Controls Technology Ltd (
4, FP, F )
The
Titrette - portable Carl Fischer titrator. An 8051 based project based around
the IS5 processor board, with additional 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), PID feedback control, AC conductance meter, and two
RS232 interfaces. The software includes two tasks (background ADC monitor and
user interface ), print spooler, and extensive user interface and test
facilities.
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
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
project also included a serial port and keypad interface, and a graphics LCD
driver for T6963 controller chip, and assembler and C code for LCD driver for
Toshiba TLCS870 series chip.
February
1996 to April 1997
EMV / MicroProcessor Engineering ( 13
months, Ag, F&C&A )
Forth
implementation of V25/80186 version of Europay/MasterCard/Visa Open Terminal
Architecture Virtual Machine for Smart Card terminals. 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.
October
1994 to December 1995
Philips / MicroProcessor Engineering( 15
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.
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 ) ).
Projects
in Forth will always use the Forth Assembler in part - A indicates a non-Forth
assembler.
For
example : LYNX project for CDI-players : ( 15 months, Ag, F&C )
indicates 15 months, 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.