Embedded systems and devices


Playvo has extensive programming experience in implementing the firmware for 32, 16 and 8 bit CPUs communicating with other embedded subsystems over both low-level protocols (SPI, I2C, I2S, USB, and UART) and hi-level protocols (such as Modbus, iAP2 and HID).


2019 - Present
PPOS - Sella Controls (C on embedded Linux)

The Physical Prevention of Over Speed system is a SIL rated product based around an EKE Trainnet rack. The connected Tracklink III Reader reads beacons installed on the tracks of Transport For London's tram network. These beacons identify high risk areas of the network. In the event of a tram over speeding in a speed restricted area, the PPOS controller interrupts the power to the PPOS safety relay resulting in full service brake application and will bring that vehicle to a controlled stand-still. This event will be alarmed at the London Tram control room via 3G/4G connection. Additional information is transferred to via depot Wi-Fi system as each tram enters the depot.

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.

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.

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.

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


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

Working with the Chinese manufacturer Ever Sparkle Technologies to produce a range of unique optical products using a high end embedded processor.

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.

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.

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.

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.