Git repository: make a wireless steer, buttonbox or shifter with esp32 for little money

During my christmas holiday I have made software for a wireless wheel with paddles and buttons using a (cheap) esp32. If you made a wired solution with an arduino, maybe this software and the esp32 can replace this.

Features:
-batterywarning (i use 3 AAA batteries)
-standby mode
-bluetooth ble
-range: 30 meter (i dont know why you should need it but its a feature ;-) )
-40 hrs with the 3 aaa batteries (in standby mode this is of course a lot longer)

it's on: https://github.com/beastdjw/bluetoothGameControllerESP32
If you got any questions/remarks let me know.

Its work in progress...
 
What really a power saver is, is:
esp_deep_sleep_start();
This pushes the esp32 to sleep... I do this after 5 minutes.
And after I push a button it wakes up.

Furter the esp32 is not the right processor for batteries. Because it uses too much power of your batteries. I am now developing a new solution for the nRF52840. You can use it for a year without recharging your batteries.
 
Last edited:
Upvote 0
What really a power saver is, is:
esp_deep_sleep_start();
This pushes the esp32 to sleep... I do this after 5 minutes.
And after I push a button it wakes up.

Furter the esp32 is not the right processor for batteries. Because it uses too much power of your batteries. I am now developing a new solution for the nRF52840. You can use it for a year without recharging your batteries.
hi ,
your project sounds really exciting. so i wanted to try it but it gives an error when installing the software. can you help me with this. I am using esp32 and when installing the software it gives the following message;


C:\Users\hak\Downloads\WirelessGameHub\WirelessGameHub.ino: In function 'void setup()':
C:\Users\hak\Downloads\WirelessGameHub\WirelessGameHub.ino:170:123: error: no matching function for call to 'BleGamepad::begin(int, int, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool)'
In file included from C:\Users\hak\Downloads\WirelessGameHub\WirelessGameHub.ino:1:
c:\Users\hak\Documents\Arduino\libraries\ESP32-BLE-Gamepad/BleGamepad.h:50:10: note: candidate: 'void BleGamepad::begin(BleGamepadConfiguration*)'
void begin(BleGamepadConfiguration *config = new BleGamepadConfiguration());
^~~~~
c:\Users\hak\Documents\Arduino\libraries\ESP32-BLE-Gamepad/BleGamepad.h:50:10: note: candidate expects 1 argument, 15 provided

exit status 1

Compilation error: no matching function for call to 'BleGamepad::begin(int, int, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool)'
 
Last edited:
Upvote 0
During my christmas holiday I have made software for a wireless wheel with paddles and buttons using a (cheap) esp32. If you made a wired solution with an arduino, maybe this software and the esp32 can replace this.

Features:
-batterywarning (i use 3 AAA batteries)
-standby mode
-bluetooth ble
-range: 30 meter (i dont know why you should need it but its a feature ;-) )
-40 hrs with the 3 aaa batteries (in standby mode this is of course a lot longer)

it's on: https://github.com/beastdjw/bluetoothGameControllerESP32
If you got any questions/remarks let me know.

Its work in progress...
hi,

I'm having this error with the code, I don't know what the (begin) means, I think that's the error.


ERROR:
C:\Users\GJabr\AppData\Local\Temp\.arduinoIDE-unsaved2023627-16948-ps8muo.yn0a\SteerBlueTootButtonsEncoders\SteerBlueTootButtonsEncoders.ino: In function 'void setup()':
C:\Users\GJabr\AppData\Local\Temp\.arduinoIDE-unsaved2023627-16948-ps8muo.yn0a\SteerBlueTootButtonsEncoders\SteerBlueTootButtonsEncoders.ino:170:116: error: no matching function for call to 'BleGamepad::begin(int, int, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool)'
bleGamepad.begin(25, 0, false, false, false, false, false, false, false, false, false, false, false, false, false);
^
In file included from C:\Users\GJabr\AppData\Local\Temp\.arduinoIDE-unsaved2023627-16948-ps8muo.yn0a\SteerBlueTootButtonsEncoders\SteerBlueTootButtonsEncoders.ino:1:
c:\Users\GJabr\OneDrive\Documentos\Arduino\libraries\ESP32-BLE-Gamepad/BleGamepad.h:50:10: note: candidate: 'void BleGamepad::begin(BleGamepadConfiguration*)'
void begin(BleGamepadConfiguration *config = new BleGamepadConfiguration());
^~~~~
c:\Users\GJabr\OneDrive\Documentos\Arduino\libraries\ESP32-BLE-Gamepad/BleGamepad.h:50:10: note: candidate expects 1 argument, 15 provided

exit status 1

Compilation error: no matching function for call to 'BleGamepad::begin(int, int, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool)'
 
Upvote 0
hi ,
your project sounds really exciting. so i wanted to try it but it gives an error when installing the software. can you help me with this. I am using esp32 and when installing the software it gives the following message;


C:\Users\hak\Downloads\WirelessGameHub\WirelessGameHub.ino: In function 'void setup()':
C:\Users\hak\Downloads\WirelessGameHub\WirelessGameHub.ino:170:123: error: no matching function for call to 'BleGamepad::begin(int, int, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool)'
In file included from C:\Users\hak\Downloads\WirelessGameHub\WirelessGameHub.ino:1:
c:\Users\hak\Documents\Arduino\libraries\ESP32-BLE-Gamepad/BleGamepad.h:50:10: note: candidate: 'void BleGamepad::begin(BleGamepadConfiguration*)'
void begin(BleGamepadConfiguration *config = new BleGamepadConfiguration());
^~~~~
c:\Users\hak\Documents\Arduino\libraries\ESP32-BLE-Gamepad/BleGamepad.h:50:10: note: candidate expects 1 argument, 15 provided

exit status 1

Compilation error: no matching function for call to 'BleGamepad::begin(int, int, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool)'

Hello, wow, by chance I commented on this same error, what a coincidence that it was in the same month of this year, hehe, with only 10 days difference, because the thing is that I hope you have found the problem, since to reach a solution I have I have read all the comments and the most recent one answered by the developer is from 2 years ago hehe woow a long time, I hope you can help me if you have achieved something good.
 
Upvote 0
That error is when compiling against the BleGamepad library. From looking at the BleGamepad repo, it seems they decided to make a breaking change to the API for v5.0:


Specifically, I can see they changed the signature of the `begin` method to accept just one `BleGamepadConfiguration` object instead of the large number of individual parameters.

I think you have a couple of options:
1. try installing v4.4 instead
2. edit the begin to match the new API e.g. `begin()` and cross your fingers that this project was using the default config :)
 
Upvote 0
That error is when compiling against the BleGamepad library. From looking at the BleGamepad repo, it seems they decided to make a breaking change to the API for v5.0:


Specifically, I can see they changed the signature of the `begin` method to accept just one `BleGamepadConfiguration` object instead of the large number of individual parameters.

I think you have a couple of options:
1. try installing v4.4 instead
2. edit the begin to match the new API e.g. `begin()` and cross your fingers that this project was using the default config :)

Thanks, I have already corrected the error, at least I think so, so far the compilation is OK! Someone in the comments helped another person to correct the same with this code, replacing the line with the error:

Code:
BleGamepadConfiguration bleGamepadConfig;
bleGamepadConfig.setButtonCount(25);

bleGamepad.begin(&bleGamepadConfig);
 
Upvote 0
Back
Top