1. Introduction

The LEGO Mindstorms EV3 platform brings significant enhancements in CPU power, programmability and connectivity over the previous generation, Mindstorms NXT. Actually, there are so many new features that some of them are not fully exploited out-of-the-box. In particular, the EV3 brick contains a generic Bluetooth protocol stack, but it only uses it to communicate with Mindstorms software over a dedicated protocol .

In this project we show that a small C program running on the EV3, brickhid, can handle Bluetooth communications with a PlayStation 3 controller and translate stick positions and button presses into motor commands.

Others have already demonstrated the use of Bluetooth and USB gamepads with Mindstorms EV3 and NXT, but usually with proxy software running on a third device (PC, laptop, tablet or single-board computer). Here we establish a direct Bluetooth connection between the gamepad and the EV3 brick.

More generally, this project suggests that the EV3 brick can interact with a variety of Bluetooth devices, even without replacing the stock firmware:

other gamepads, keyboards, mice, fitness trackers, health sensors, smart watches, home automation devices, GPS receivers

the standard Bluetooth functions of smartphones: file transfer, PIM data exchange, call control, mobile networking

possibly also audio headsets and other multimedia streaming devices.

Note . A better way to take advantage of all the features of the EV3 platform is to install an alternative operating system such as EV3DEV. See for example [BRICKFPV].