For people without a usb keyboard. On any android you can use an app like ConnectBot to SSH into your pi using RNDIS USB ethernet.
Activate SSH on the Raspberry Pi
navigate to raspi-config >> Interfacing Options >> SSH or (untested)
create an empty file named ssh in the boot directory of the raspberry sdcard
Install the apps on your android ConnectBot (or preferred ssh client) LanDroid (optional) F-Droid (optional - Free Open Source Software for Android)
Activate the RNDIS USB ethernet
use your phone charger to connect the Android device to the raspberry pi USB.
android settings >> network & internet >> Mobile Hotspot/Tethering >> USB tethering or if you're phone provider has this service blocked for android 2.3 - 4.4
Use an app like Notification Bar will sometimes allow you to enable tether using the widget. Or install an unbranded rom like cyanogen-mod. for android ?5.0 - 8.0
android settings >> system >> about phone >> x7 build number (click on the build number 7 times) with "developer mode" enabled
android settings >> developer options >> "select usb configuration" - RNDIS (USB Ethernet)
(This is a good way to turn your phone into a wifi adapter if your router allows internet connection sharing)
Aquire the IP address of the Pi using arp
navigate to "show IP" on the raspberry pi or
using ConnectBot app; add a host; change protocol to "local"; or use local terminal emulator
type cat /proc/net/arp or ip neighbor into android terminal
look for the ip-address 192.168.42.* or
open the app LanDroid, and select the ARP & ND Cache or on windows
use commandline arp -a look for a dynamic address that is not listed in ipconfig
Android RNDIS creates IP addresses from the range 192.168.42.[1-255] these are generated randomly and will change when you reconnect the tether. When I figure out how to assign a static ip or save the dhcp or create some sort of order I will share. And if anyone know how to do this then please do.
Alternatively to setting up ethernet, import the wpa passkey (wifi passkey) create a wifikeyfile.txt with the contents
save it to the main folder of the microsd with retropie installed using a microsd reader.
Reinsert the micro sd with RetroPie installed and power on the Raspberry Pi.
Navigate Emulationstation using your controller to WiFi and Import wifi credentials from /boot/wifikeyfile.txt
So it is possible with any android phone with a usb charging cable to tether and access configurations. or if you have a ethernet cable for your computer.
I'm happy to help. Feel free to practice and take notes. It is difficult to find memories like this from while travelling. @trekdrop
With or without vibration isn't a big thing for me. If it works great if not no biggie im more interested in replaying some of the old classics.
We've seen reports where the controller would not start vibrating because it's not properly recognized by the OS, event if it works. I think you should consider another controller, but hey !, it's your money.
I know more than 2 years passed, but I wanted my phone to config retropie without using a Keyboard and tested your app. From your code on Github there are 2 problems in the main .py file.
1 - You're importing 2 times subprocess, which is redundant, no big problem whatsoever here
2- There's a Syntax error on line 114 that prevented the service to start on my PI3. There aren't () both at start and end from the print command.
So I changed it, copied the file to /usr/bin/ and it worked like a charm.