our company

Xor Systems is a creative design consultancy, specialising in embedded systems, providing both software design and development and electronic design and development.

Utilising our full range of design skills, from electronic hardware, software design and mechanical design, we work primarily with embedded systems, computers embedded in other devices to provide some useful role.

We have experience in real-time control, machine tool control and data analysis, educational games, vending machines and battery-powered systems. To discover more of our projects, see our projects page.

Working in the renewable energy sector, we created a wind turbine monitoring system, which reports back to a bespoke website, allowing customers to monitor the output of their own turbines, in real time. Data from this system has since been used by the MET Office to develop their own technologies.

In the Museums and Heritage sector, we have produced interesting and educational interactives, applying embedded systems design to an educational role. We feel this is still product design; every job is a prototype.

Our Skills

Software

We have considerable experience of developing system software for embedded hardware, systems development for applications to run on embedded systems and application software to run on Windows and Macintosh computers.

First and foremost we are software developers. We have met a number of different technical problems and provided good-value solutions; as well as working on most areas involving software. Whether it be websites, financial systems, vending machines or children's educational games we have successfully tackled everything we have met.

We have used major software languages, such as Delphi, Java, C# and C++. When we write software for embedded systems, we use assembler or C. We tend to use AVR devices for low power systems and ARM9 devices, with embedded Linux as the operating system, for more powerful systems. Our embedded systems knowledge is enhanced through the use of web technologies such as ASP, PHP, XML and HTML.

Hardware

Specialising in systems that are embedded, our emphasis is on small, battery powered systems with wireless connectivity. We have the people and the expertise to design a wide range of electronic and computer systems.

Hardware design covers both mechanical design (or product design) and electronics design. Covering both disciplines, our expert designers have proven experience in product design, 3D modelling, modelling in plastic, and use of CAD tools. We like to prototype using rapid prototyping techniques, as we've found that there is nothing quite like handling a product as early in the design process as possible.

On electronics design, we can offer a full design service, from prototyping to full PCB production, with up-to-date facilities. This includes PCB layout, prototype assembly and test, regulatory compliance testing, design transfer to volume manufacturing and production support.

Business card

Telephone

Email

Company Registration

Xor Systems is a trading name for Xor Software Ltd. Xor Software Ltd is a registered company in England and Wales. The address of the registered office is 17 Valley Road, Wotton under Edge, Gloucestershire, GL12 7NP. The registration number is 3566560.

Embedded Linux

We have used Embedded Linux as the Operating System on a number of development projects. Digi provide a version of Linux which they call 'Embedded Linux' and this we have used on their range of ConnectCore modules. These are attractive modules, as they provide significant processing power, but a simplified design process for us. We only need to provide a base board which maps the ports we want to support, along with any other additional electronic hardware. The module we use also provides Wifi, the ConnectCore 9P 9215.

In addition, we have used Linux on diverse computer devices such as the Owasys OWA311, the Garz+Friske Livius ARM-based system and our own design of processor board to which we have ported Linux.

Linux provides a complex operating system, with a complete filing system, TCP/IP for computer interconnection, a GUI if necessary (although we have rarely used this, we just use the kernel) and a whole host of commands to cover a great deal of functionality. Linux is open-source and is available on a host of computers, running on a multitude of processors. It is extremely flexible and can be tailored for virtually any task. We add to the system by writing our own applications and functions and occasionally, device drivers.

Wireless Technology

Wireless technology is essential for the kind of work we do. It might be Wifi, for TCP/IP networking. It might be Bluetooth for small autonomous networks. It might be one of the many other IEEE 802.15 systems, such as Zigbee.

We have worked with Wifi on various M2M projects, particularly the vending machine projects. Our machines are often in areas where public Wifi is available, such as airports and railway stations, so it makes sense to use these services. However, we have found practical difficulties in doing so, not least the fact that the services get swamped at rush hour. Our approach was to react to the fact that we lost connection reliably at certain parts of the day, but had good service at other parts of the day.

We have a particular interest here in mesh networks, the ability of a network to create itself, and to heal. This has great impact on battery life. The Live!Label project used standard Wifi networking when we trialled the system and this proved to be a limitation. We had the labels at different positions around a museum and we found that the Wifi signal was too weak, due to the internal walls. Also, the power consumption on the board was high due to the Wifi module, so we couldn't run on batteries as we had hoped.

We repeated the experiment at a later date, but revised the design to use Zigbee. We created a mesh network such that each label in the system was a node on the network. This had the affect of building a network room by room and greatly extending the range of the network. It also meant that the system consumed much less electrical power. Zigbee is low power anyway, but the devices only needed to communicate with the nearest nodes and thus worked at a lower RF power.

Internet of Things

It's trendy, the Internet of Things (or sometimes the Internet of Everything). But it's a bit like when you heard of the iPod and thought "but that's just an MP3 player". Or when you heard of the "Cloud" and you thought "but that's just servers". The Internet of Things is clever branding, designed to stimulate interest, but really it's what we've been doing for years. Smart boxes, talking over the Internet to a server. The IoT is subtly different, it's better and friendlier. But then, so is the iPod, compared to an MP3 player.

Clearly, there is more to the Internet of Things. The hype is significant mostly due to the volume of noise. And the potential, because we're talking about billions of devices. The IoT is happening because of the fall in costs of small smart computer systems, of sensors and wireless systems. One of the best examples of the IoT is Nest, with intelligent smoke alarm and their central heating control system. But, there is a difference when you look at Nest devices. They are smart. They react to you. You can wave at the smoke alarm to tell it that actually there isn't a problem. It lights up a night light if it senses movement.

But the Internet of Things is more than this. It's a simplification, if you like. The aim is to simplify the ability of a device or a sensor to connect to to the Internet and to send some data. The range of possible sensors and devices is unlimited, the purposes are unlimited. Some people claim that this is a similar stage in history as the start of the Industrial Revolution, that we're about to witness a similar revolution. Who knows. It's just fascinating.

The examples of IoT tend to start with the 'intelligent fridge' - your fridge contacts the local supermarket because you've run out of milk. It is much bigger than this, much bigger. The main difficulty with this example is that the responsibility is on the fridge manufacturer to add the sensor and the communication link. Much better is to have a system that allows you to add any sensor to any existing system, a sensor that is capable of communication and then link that sensor to a decision making system. That way, there's no difference between a system monitoring milk availability to the system controlling temperature in a house - it is all about simple, communicating sensors feeding into a decision making system.

Vending Machines

Vending machines are classic products for developers in the real-time world. They involve control of hardware covering items such as the control buttons and the motors that drive the product; they include simple user interfaces that are designed to be simple to use and readily understood with the general public; and they usually have some element of remoteness, in the sense of their location. These days, owners expect their machines to report back, in real-time, status information and alerts to report events such as sales or problems. To this mix, there is need for payment systems, such as Chip and PIN, accepting payment from credit cards, with direct access required to a bank.

The remoteness is of interest, because the vending machine is located in some public place like a railway station or an airport concourse, and they fulfil a public need. People do need their phones charged or their passport photo or a memory stick or a SIM card and it is easier and quicker to buy from a machine, especially at unusual hours of the day. The machine has to be simple to use, which is a challenge from a User Interface perspective. Most simple vending machines, such as chocolate or coffee machines, have a very pared down UI, because there is no need for anything complex, but on the sort of vending machines we have worked on, the needs are more sophisticated and therefore the UI has to cope with more complex needs. There are lessons to be learned from the simplicity of the coffee vending machine and it is also worth including behaviour from simple machines. The public know how a vending machine works, they've used them for years, so it is advisable to maintain that simplicity - the temptation is to make the UI complex because now we have a computer in the system. The computer has been added to cope with the complexity of the credit card transaction. The trick is to maintain the simplicity of operation.

Vending machines need connectivity now, which is a new thing. We've done the simple thing, initially, of adding a 3G modem. But this provides an incomplete solution, so we now provide a 3G router, which creates a mini network within the machine and allows a number of devices to connect to the Internet over the mobile phone network. This is important, because vending machines are an ideal way to provide advertising screens. We add displays of 48" and upwards on top of the machines, displays which show adverts like those seen on TV. They are timed to appear at certain times of the day, and they change throughout the day. We need remote access to be able to add and alter these adverts and the 3G router provides this.

Machine to Machine

It is all about communication. One machine in a system autonomously talking to another machine in order to perform real work. In our experience, it tends to be industrial applications running on a wired network, but in recent years it has progressed into using cellular networks. A good example of this is vehicle telematics; location, speed, direction from a black box fitted in a vehicle, providing the data regularly over the mobile phone network. An example of industrial applications would be SCADA systems, controlling a process control plant, such as sewage systems or a bottling plant. M2M specifically relates to the systems reporting back to some other location and it relies on the availability of the Internet.

C++ and Java

Embedded systems are traditionally coded in C or C++. We work on a variety of processor boards. Some systems are 8-bit, small processors, right up to 64-bit systems running embedded Linux. The programming language we chose will probably depend on the hardware. For small 8-bit micro-controllers, like the AVR range, which we use on boards we design ourselves, then we would probably use C, because C is a great language for that kind of system. It is also the language of which we have the most number of years experience.

For more sophisticated systems, we would use C++. The examples we give on this site of embedded systems using Embedded Linux were programmed in C++. There is a natural affinity between Linux and C++. For example, many utilities for Linux are written in C++ and we can take source code and adapt and alter to suit our own requirements.

Java is a great language. It has its problems, not least the fact that a decent JVM is required on the target hardware. But it is powerful and advanced and has a huge set of libraries that are rich in capability. Our Puppeteer board was designed as a Java computer. There is a minimal OS, with the main element being an optimised JVM. So it is simple to develop Java programs and load them on to Puppeteer. Java now tends to be run through web pages, because browsers have a JVM installed, but it can provide computer based software as shown by software like OpenOffice which is written in Java. With the takeover of Java by Oracle, there seems to be a lot of excitement in the traditional areas that Oracle focus on, with Java a key element of their business offerings. This particularly applies to the financial sector.

The speed of development is high when working in Java, because it is a high-level language and because of the depth of the libraries. Of great interest these days are a number of new languages, such as Clojure or Scada, which use the Java libraries, compile down to Java bytecode yet provide the capabilities of a functional language. We have yet to use such languages on an embedded system, but the day this happens can't be too far off.

Sound Monitoring

Xor Systems was recruited by ANV Measurement Systems of Milton Keynes, who are market leaders in sound measurement equipment, to develop an embedded system and web based platform, to allow remote control and data gathering from the sound instruments provided by ANV.

Prior to Xor's involvement, ANV provided a system which was capable of recording to a memory card physically contained within the sound instrument, this imposed a number of restrictions, such as the length of time which a device could record for, the need for the client to physically visit the instrument at its location as well as the inability to monitor sound levels in real time, all of which ANV wanted to eradicate.

Therefore it was vitally important that the device could be left in the most remote of locations and could be accessed, in real time, without the client needing to physically visit the site. We identified and provided a small computer system capable of meeting the requirements and a 3G router to allow interconnectivity. We then developed a C++ application which allowed the system to write data to cloud-based storage, be accessed remotely and cope with situations such as loss of signal.

Once in the cloud, complex algorithms are used to process the data sent from the sound instruments, which provides valuable information and detailed reports to ANV and its clients.

When logged in to the bespoke website, customers can manage their instruments, changing the measurement interval, frequency weighing and other settings on the device; view data from the instrument in real-time, examine historic data and set event-driven notifications and alerts.

Wind Turbine monitoring

Aeolus Power (Wind Energy) Ltd are specialist suppliers and installers of small wind turbines, under 100kW. They asked us to create a wind turbine monitoring system that linked to their website.

The system we created feeds live data (including wind speed and electricity produced) from individual turbines, using a small computer system and cloud-based storage, to provide individual pages where customers log in and can view the information on their own turbine.

An important aspect of the project was the presentation of data in an easily understood format. The biggest concern was to understand the state of the turbine, whether it was operating, what the power output was etc. but also to understand the historical data - how much energy had the turbine made over a period of time. In addition, Aeolus Power wanted to be able to collate data from a set of turbines. For example, how much energy the turbine fleet made over a windy weekend, as this was useful for promotional purposes in their marketing.

This unique system has enhanced Aeolus Power's relationship with their customers. It has led to a closer after sales relationship, helped with the maintenance of the turbines and ultimately led to increased sales of turbines. Aeolus's customers admire the fact that they have used technology in such an innovative way and given them something extra.

In addition, we provide some public pages as part of the marketing plan. One page shows a typical turbine in Cornwall, providing all the live data. This is perfect for prospective purchasers, who can directly see the capability of the turbine they are considering. For trade shows, we provide maps of the UK, showing installed turbines and highlighting the key parameters, such as the total energy generated. This is perfect for promoting Aeolus Power, because it shows the extent of their business, their professionalism and backs up their sales and marketing.

We use the Fastrack Xtend FXT009 from Sierra Wireless. This is a programmable modem, with an Ethernet module that we use to connect to the controller on the turbine. The FXT009 queries the turbine to gather the data and parcel it up into an email. Emails are sent on the hour, every hour. The emails are delivered to the website where they are parsed and the data entered into a database. In addition, we provide the Sierra Wireless LS300 3G router which is an excellent device for remote M2M applications.

Smart Router

One element of our work with vending machines was the realisation of how poor in general M2M communication is for remote equipment. Good communication is vital to be able to check stock, to handle credit card transactions, to monitor the health of the machine and to be able to provide updates of software, product images and prices. In addition, a lot of our machines contain a large 48" plasma screen which we use to display adverts; adverts for the stock in the machine or just general adverts. This set of adverts needed to be changed, updated and rotated, to keep interest alive, and also to keep the owner of the advert happy.

We use 3G modems to provide the communications link for the machine. The display system uses a Linux based PC and its own 3G modem. And we noticed that a lot of the places we site machines provide public Wifi - railway stations and airports increasingly provide free Wifi or perhaps subscription Wifi such as 'The Cloud'.

An ideal solution seems to be one that would provide a 3G router which would allow all of our supplied equipment to use a single 3G link. And indeed would allow us to group together a number of vending machines and use a single access point. The same unit should also be capable of using Wifi if that were available or Ethernet if that was available, although we've found that is rare.

We designed a complete system, based on Digi's ConnectCore modules, which run Embedded Linux. This was designed to remain connected at all times, using the best way to route to the Internet, preferring Wifi over 3G for example. It would use 3G as the last resort. We provided a number of Ethernet ports to allow switching between different vending machines. The board also includes a number of extra features specific to our vending machine design, allowing us to integrate a number of features into a single design.

In practise, this works extremely well. We have a fast, reliable link; we provide our own access channel using SSL, allowing us access at all times to the entire network within a machine or a group of machines. The major difficulty we've found, particularly at railway stations, is inadequate bandwidth. During the rush hour periods, the number of mobile phones arriving and departing causes congestion on the Wifi network but also overloads the 3G network. We find that we lose connectivity during these periods and it doesn't help to switch to 3G from Wifi because the 3G is as congested as Wifi.

The solution we are currently exploring is expensive but likely to be successful; we have 3G SIMs which guarantee us at all times a fixed part of the 3G network.