Logo Banner

FEZ - Fez Remote Buzzer

Fez Remote Buzzer


This page is about my first complete FEZ project: An Network controlled buzzer. The FEZ Panda II acts as a little server application which is capable to receive frequency change requests.

The project contains two parts: a server and a client. Of course the server is the Panda II, running a C# code. The client can be any desktop/laptop computer, running a Visual Basic .NET application that will send the desired frequencies to the server.

Server Part

I have the basic FEZ Panda II board which is expanded with the 'Fez Touch' and the 'Fez Connect Shield'. These modules are providing an LCD and extra I/O features (i.e. Ethernet). Of course there is also a buzzer 'Piezo E-block' which is connected to port Di5 of the connect shield.

Picture of the FEZ board running an UDP server Picture of the touch screen

The images above will give you an impression on what the server looks like. It has an LCD with all information about the server: its IP address, its port and the current output frequency of the buzzer. Additionally you can see some information on the last user that changed the frequency of the buzzer.

During the boot sequence of the server it will try to obtain an IP address from a DHCP server. Once obtained - what should take no more than a few seconds - the LCD will start showing a blue screen indicating the current IP address of the server. These informations will have to be entered in the program that runs on the client computer.

Client Part

Screenshot of the UDP Client program

The client software is written in Visual Basic .NET. You can run it on any computer that has a version of Windows on it. There is only one requirement: the .NET framework has to be installed. You can download it for free from the Microsoft website.

To get started you first need to enter the details of the Panda II server: IP address and the current port. Once entered you can start using the client. It is very easy to send a frequency to the server: set the slider to the desired frequency and click the button 'Send To Server'.

Pressing this button will send the desired frequency to the server. To turn off the buzzer you can send a frequency of 0 Hz. You can read more about the used protocol under 'Technical Background'.

Technical Background

The system uses the UDP protocol to pass data between the client and the server. By default the server listens to the UDP port 2000.

The server is listening for incoming UDP datagrams. These datagrams must be encoded as UTF-8 and have to have the following format: "FREQ xxxxx". Here xxxxx represents the frequency that is to be set on the buzzer output. The datagrams are not encrypted as this is only a demonstration project.

The buzzer is connected to the Panda's Di5 port. This is a PWM (Pulse Width Modulation) output. The PWM is set to the desired frequency with a duty cycle of 50%.


Here you can download the source code (server + client) for this project. The projects are written in MS Visual C# Express 2010 and MS Visual Basic .NET Express 2010. You may use these projects without any restrictions.

Copyright ©1998-2017 Vanderhaegen Bart - last modified: August 24, 2013