|
2019 - Present
|
|
I joined SELLA Controls as a Contract Software Engineer to lead the implementation of the PPOS system for Transport
for London (TfL). Following the successful delivery of the project, I was appointed Principal Software Engineer
within the Mobile Solutions department. In this role, I lead a specialized team in the development of SIL-2
safety-critical systems for tram and heavy rail. My work focuses on high-integrity C++ engineering, ensuring
strict adherence to BS EN 50128 and MISRA-C++ 2008 standards.
|
Transport for Greater Manchester
RESPOND (SIL-2 using C++ on embedded Linux)
I was responsible for designing and leading the implementation of a SIL-2 application that integrates a
detailed map of the tram network with RF-ID beacon data to establish precise physical reference points. This
allows the tram to calculate its real-world location and enforce over 750 distinct speed restrictions.
The software also incorporates a Driver Vigilance Monitor that tracks operator inputs to ensure active control of the tram.
In an event of a violation (overspeed or driver inactivity), the system initiates escalating responses: audible
warning alarms are triggered, and if unacknowledged, the emergency brake is automatically applied to ensure a controlled
and safe stop. All operational and enforcement data is simultaneously relayed to the control room via a cellular connection.
|
|
Siemens Class 350 1/3/4
SODA (SIL-2 using C++ on embedded Linux)
An ASDO and CSDE SIL-2 application combining WTB (Wired Train Bus) and communication with a Tracklink®-III beacon reader.
|
|
Alstom Class 378
AIRES (SIL-2 using C++ on embedded Linux)
Designed and developed an Automatic Power Change Over (APCO) system, certified to SIL-2. This project managed
the train's power source selection (either the overhead pantograph or the third rail) by communicating with a pair
of Tracklink®-III readers to process relevant trackside information.
|
|
Tyne & Wear Metro
TIGER (SIL-0 using C++ on embedded Linux)
Designed and developed a SIL-0 control system for critical communication. The application reads wayside beacon data
via redundant Tracklink®-III readers and transmits this information using the TCMS protocol over Ethernet. Its core
function is to automatically switch the tram's active radio frequency between TETRA and GSM-R based on pre-configured
geo-fenced network boundaries.
|
|
Citylink \ Transport for Wales \ Stadler
CACTUS (SIL-2 using C++ on embedded Linux)
An ASDO and CSDE SIL-2 application combining CANbus and communication with a Tracklink®-III beacon reader.
|
|
FLIRT \ Transport for Wales \ Stadler
FACTS (SIL-2 using C++ on embedded Linux)
An ASDO and CSDE SIL-2 application combining ethernet, CANbus and communication with Tracklink®-III RF-Id
beacon readers.
|
|
Transport for London
PPOS (SIL-2 using C on embedded Linux)
The Physical Prevention of Over Speed (PPOS) system is a SIL-2 rated solution built on the EKE
Trainnet platform. Utilizing a Tracklink III Reader, the system detects beacons positioned throughout
the Transport for London (TfL) tram network to identify high-risk zones.
The application software continuously monitors vehicle speed; if a tram exceeds the limit in a restricted area, the
system interrupts power to the PPOS safety relay. This triggers a full service brake application, bringing the vehicle
to a controlled standstill.
Incidents are reported in real-time to the London Tram control room via 3G/4G, with comprehensive data payloads
transferred via the depot Wi-Fi network upon the vehicle's return.
|
|
|
2018 - 2019
|
|
Floodline Hybrid Environmental Monitoring System (Qt C++ on embedded)
Developing a completely new standalone building management system.
The main application is written in Qt and interfaces to a range of Modbus, BACnet and analog sensors.
Each of the sensors (of which there could be hundreds) is polled every few seconds, its value logged
and checked against user configurable boundaries, and raising audible, visual and relay alarms if
out-of-bounds. Logged data and configuration items are stored in a PostgreSQL database allowing local
and remote configuration of the unit.
|
|
2015 - 2017
|
|
Electricity Meter Platform Project (C++ on Thread-X embedded)
Implementing device driver classes for internal
flash and external Quad-SPI flash RAM to be used
by the bootstrap firmware upgrade process and
for general storage. Both sets of drivers
required a common interface to allow higher
level code to operate without regard to the
hardware physically attached.
Enhanced and cleaned-up Python code which parsed
XML source files to generate C++ code which
provides a common interface to variables and
structures so that configuration data can be
stored in external flash (thus reducing overall
RAM usage) and which automatically saved and
restored global variables across power cycles.
Implemented an external flash filing system,
including wear levelling of flash sectors, to
provide general and long-term storage for the
system.
Adding AES encryption\decryption to the external
flash access for data security.
Implementing new COSEM classes to provide
electricity usage profiles, capturing and
logging of events and diagnostic information.
Peer reviewed, MISRA-C++2008, C-STAT code
running on RX65 and RX71 embedded.
SMR5 Phase 2 Gas Meter (C on RTOS
embedded)
Building on my experiences with the two
previous projects at L+G I worked as part of the
team producing a down costed solution of the
phase 1 meter.
SiLabs ARM-3 (Cortex-M). Peer reviewed,
MISRA-2012, C-STAT and LINT clean code.
Italy Metrology (C on bare-metal embedded)
Optimizing to improve speed and reduce power
usage of the existing code which measures the
gas flow so the product could achieve its
desired life span of 15 years of continuous
operation running from a single battery.
Renesas RL78. Peer reviewed, MISRA-2004 and LINT
clean code.
Additionally, providing user friendly PC tools
to configure and monitor the gas meter whilst in
operation.
SMR5 Gas Meter (C on RTOS embedded)
I joined an existing team at Landis+Gyr
initially to implement a device driver to allow
the existing application code to interface with
a new RF chipset (Analog Devices AD7023) and
additionally to provide special builds to allow
R&TTE (RED) compliance testing to be
undertaken. Following on from this I moved to
the main meter application code to implement new
functionality within the industry standard M-Bus
messaging framework.
Peer reviewed, LINT clean code running on embOS
on a Texas Instruments MSP-430.
|
|
2013
|
|
MOGA ACE POWER Controller Working closely
with the internal developers at Apple and under
the tightest non-disclosure arrangements,
Playvo developed the complete firmware for the
first MFi approved iPhone game controller released
to market. The final product used an Atmel UC3
processor scanning 14 analog controls at 60 Hz to
communicate with the iPhone using Apples
proprietary iAP2 protocol over a wired USB
connection (Lightning connector), handled high
definition audio over an I2S interface and
controlled various sub-systems using I2C and TWI
communications. Additionally the product allowed
firmware upgrades over the USB cable, utilizing
write-protected boot strap code which allowed for
fail safe error recovery in the event of upgrade
failure. |
|
2012
|
 |
An
ongoing development and support contract working
with a very well known US publisher\developer.
Working closely
with Diamond Apples own engineers, Playvo
produced a C and Java SDK with full examples,
FAQ and documentation to enable external
developers to unitize the new standard interface
for game controllers and haptics on the Android
platform. |
|
2011
|
 |
Dance Party (ARM-M7 Bare metal)
Working from the success of Motion-On-The-Move
Playvo produced an ARM-7 based controller-less dancing game that
mixed motion capture technology with streamed
video producing a plug-in TV console with a sub
$50 retail price.
Screen shots and artwork here
|
|
2010
|

 |
Motion-On-The-Move (ARM-M7 Bare metal)
A plug-in TV console aimed at the 2nd
world market. The console integrated
a 32-bit SunPlus GPL32 MCU, RF chipsets, 2
wireless controllers (with motion tracking
hardware, G-sensors, and analog buttons) and SD
slot. Motion-On-The-Move shipped with 10
built-in games which provided a mix of 3D and 2D
games covering all the main genres, with
additional games and level-packs being
downloaded from the internet and stored on the
SD card. In addition to providing input on the
hardware specification and design, Playvo
designed and developed a simple to use, but
comprehensive API which allowed the Chinese
software development team to quickly and
efficiently produce the games for the unit.
Playvo worked very
closely with the Chinese programmers providing
an on-site project management, technical support
and training together with the tool sets
required to complete the games. Additionally Playvo
programmed the 3D games for the system.
Screen shots and artwork here
|
|
2006
|
 |
Working
with the Chinese manufacturer Ever
Sparkle Technologies
to produce a range of unique optical products
using a high end embedded processor. |
|
2005
|
 |
An
ongoing project working closely with Ever
Sparkle Technologies
in China to produce a new and inexpensive
console incorporating LCD and plug-in TV output
options. |
| |
Working
with a high-end microprocessor to link together
an iPod with several discrete components to
provide a high quality video playing accessory.
|
|
2004
|
 |
MobiCam A project to create a
device that used 1Mbit digital RF to transfer
images from up to 4 separate remote cameras back
to a portable display unit. Playvo where
responsible for all programming on the SunPlus
CPU together and interfacing the cameras, RF
boards and LCD to the CPU. |
 |
An
AGB accessory which allowed Hasbro's Colour
Video Now CD
movies to be played and displayed on the AGBs
internal screen. Working with Hasbro's internal
hardware engineers Playvo created an FPGA to
enable the image bitstream to be decoded,
enhanced and transferred through the cartridge
port and be displayed on the AGB's screen.
Playvo designed the image enhancement routines
(implement in the FPGA) and programmed all the
AGB user interface code which included passing
back to the FPGA play, pause, etc. commands.
|
|
2003
|
 |
WormCAM 2 Enhancements to the
first version of the AGB-camera accessory,
including better image compression to allow more
images to be stored in memory, auto brightness
and improved PC software. |
 |
Infra
Red remote controller for PlayStation 2 which allowed any
infra-red TV remote controller to control the CD
and DVD functions of the PS2. |
|
2002
|
 |
WormCAM
A digital colour
camera for GameBoy Advance which saves pictures
to non-volatile RAM in the camera module.
Additionally WormCAM uses the AGB to
provide picture editing, slide show, Spy-Camera
and PC-Link functions. The project was
engineered to interface through the AGB serial
port to the camera and NVRAM. The mini-apps provided
a paint program which allowed true colour
editing of pictures, allowing users to draw
lines, filled/unfilled rectangles, and enter
text. All with multi-level undo/redo and then
save the edited image back to the NVRAM.
Spy-Camera uses
motion detection algorithms to only save the
picture when a significant change has occurred
over the last picture. PC-Link is a Windows
program linking WormCAM to a PC through the
serial port. It provides thumbnail and full
screen views of the pictures saved in the NVRAM;
scaling and saving the pictures as .BMP files.
|
|
2000 - 2001
|
 |
WAVE Link \ WAVE Back. A portable palm sized
device aimed at the teenager market. Using 18
MHz Sharp 16-bit SM6010 processor and black and
white LCD display. The device provides standard
calendar, notepad, calculator, etc. applications
together with email over a local network using
RF communication. The email application
also allows attachments created using the built
in camera and audio sampling facilities to be
transmitted wirelessly up to 500 ft. Playvo
where responsible for implementing the complete
operating system for the hardware writing low
level drivers for: Flash RAM; camera; audio
sampling/playback; filing system; graphics
primitives; interface to the RF hardware; stylus
reading; and downloadable game support.
Additionally Playvo
completed the Planner, Sketch Pad, Tape Deck,
Auto Cam and Calculator applications. |