This is how you connect PS3 controller to Mac OSX, PC, etc. when previously connected to a PS3.You will need a Mini USB cable. Overcome your laziness, get up of your chair, and go get one!
Aug 30, 2016 You can add your device’s MAC address to your account so it doesn’t have to log in like laptops and mobile devices. Feel free to contact us for further help. Finding the Wireless MAC address of a gaming console or smart device.-This guide provides brief summaries on how to locate a Wireless MAC Address. Please note: devices that have both a wired connection port and wireless capability will have separate MAC addresses for each.
A big misconception is that keep holding PS button will reset the controller's pairing. It DOES NOT!From my testings, the controller keeps paring with the last machine it was CONNECTED VIA A USB CABLE.
Here are the steps:
- Turn OFF your PS3 controller by either...
- (on PS3) hold PS button -> Turn off Controller, OR
- (on Mac) open Apple menu System Preferences -> Bluetooth -> Click X button on the device list, OR
- (on the controller itself) insert paperclip into pinhole near L2 button.
- Use a USB cable, connect the controller to your new machine you want.
- Wait just a second until the red light on the controller flashes, unplug the USB cable. Now the controller's setting is reset.
- On your computer, go to System Preferences (OS X) or Control Panel (PC)
- Open Bluetooth settings page. Start Scanning.
- Turn ON the controller by pressing the PS button. Wait a few seconds.
- If it asks for Access Code, enter 0000.
- Now connected! (yey)
Tested on:
- PS3 Console
- MacBook Pro (Early 2011) with OS X Mavericks (10.9)
Note:
- If you have Steam opened, hitting PS button will switch Steam into full screen mode. Pretty sleek.
Control your ESP32 projects with a PS3 controller!
This library is meant to be used with Espressif's ESP-IDF IoT Development Framework.
When a PS3 controller is 'paired' to a PS3 console, it just means that it has stored the console's Bluetooth MAC address, which is the only device the controller will connect to. Usually, this pairing happens when you connect the controller to the PS3 console using a USB cable, and press the PS button. This initiates writing the console's MAC address to the controller.
Therefore, if you want to connect your PS3 controller to the ESP32, you either need to figure out what the Bluetooth MAC address of your PS3 console is and set the ESP32's address to it, or change the MAC address stored in the PS3 controller.
Whichever path you choose, you're going to need a tool to read and/or write the currently paired MAC address from the PS3 controller. I used SixaxisPairTool for this, but you can try using sixaxispairer as well, if open source is important to you.
If you opted to change the ESP32's MAC address, you'll need to include this snippet in your code before calling ps3Init()
, where the MAC address should match with the one stored on the PS3 controller:
Installing the library
There are two options to install this library: either install it globally in the ESP-IDF folder so all of your projects can make use of it, or install it locally in your project folder.
Go to the root of either, and clone this repository by running:
git clone https://github.com/jvpernis/esp32-ps3.git components/ps3
In case you are using git to manage your project, you can also add this library to your repository by running:
git submodule add https://github.com/jvpernis/esp32-ps3.git components/ps3
Configuring your project
Make sure you have configured your project correctly in order to use your PS3 controller.In your project folder, run make menuconfig
and configure your project with the following steps:
- Navigate to
Component config --->
and press Enter to open the component config menu. - Navigate to
Bluetooth --->
and press Enter to open the Bluetooth config menu. - Select
[] Bluetooth
and press Y to enable Bluetooth - Navigate to
Bluetooth controller --->
and press Enter to open its menu. - Navigate to
Bluetooth controller mode
and press Enter to show the controller mode options. - Select
BR/EDR Only
and press Enter to confirm the choice. - Press E to go back to the Bluetooth menu.
- If it exists, navigate to
Bluetooth Host
and press Enter to show the host options. - Select
Bluedroid - Dual-mode
and press Enter to confirm the choice. - Navigate to
[] Bluedroid Enable --->
and press Y to enable Bluedroid if it isn't already, then press Enter to open its menu. - Navigate to
Classic Bluetooth
and press Y to enable it - Navigate to
SPP
and press Y to enable it - Navigate to
Secure Simple Pairing
and press Y to enable it if it isn't already - Press S to save the configuration.
Ps3 Controller Buttons Guide
Using the library
In order to use this library, you just need to set an event callback, call the initialisation function, and, optionally, wait for the PS3 controller to be connected:
Your event callback will have to look like this:
Examples
The component gives compilation errors
This project uses ESP-IDF internal API's in order to implement the PS3 controller functionality. This has a drawback of being susceptible to being suddenly broken. To remedy this, a compatibility config menu has been added so you can select older ESP-IDF versions to work with.
Change Ps3 Controller Bluetooth Address Mac
In your project folder, run make menuconfig
and configure your project with the following steps:
Ps3 Controller Mac Bluetooth
- Navigate to
Component config --->
and press Enter to open the component config menu. - Navigate to
PS3 --->
and press Enter to open the Bluetooth config menu. - Navigate to
Framework compatibility
and press Enter to show the compatibility options. - Select the compatibility suitable to your ESP-IDF version
If you selected the Latest stable release
or Latest master revision
option and you are still getting compiler errors, please create an issue.
If you are unsure which master branch revision you should take, figure out what the commit date is of your ESP-IDF version (by running git show
), and look at the help text of each revision listed in the Framework compatibility
configuration option to know their revision date.
Ps3 Controller Not Working
I've had tremendous help developing this library by reading these sources: