I bought a Makeblock ME USB Host module, and a generic gamepad with USB wifi adpator. I’m trying to build https://www.instructables.com/id/Infrared-Fighting-Tank/ (I have also seen https://www.instructables.com/id/mBot-controlled-by-Wireless-Joystick-using-Me-USB-/)
I am having no luck getting the Arduino IDE Serial Monitor to show a response from the ME USB Host adaptor.
Test / Result:
- Tested two different wifi gamepads using online tester (https://html5gamepad.com/) / successful.
- Used Makeblock ME USB Host example sketch with two different gamepads from test 1 / failed, no output displayed
- Modified test 2 with different ports / failed
- Modified test 2 with mCore and Orion boards / failed
- Modified test 2 with different baud rates (4800, 9600, 57600) / failed
- Connected a set of paired zigbee devices to mCore and Orion boards using a ME RJ25 Port Adaptor (RX on Slot S1, TX on Slot S2)/ successful - can see output to serial monitor.
- Modified test 2 by specifying both port # and TX/RX pin number in setup() / failed
My current conclusions;
a - ME USB HOST only works with a specific type/brand of wifi gamepad controller, would like help in knowing what brands or devices are successful.
b - my hardware setup is incorrect (gamepad <> usb wifi adapter <> makeblock orion board <> usb cable <> laptop <> arduino IDE <> serial monitor)
c - my baud rate is incorrect(?)
d - the Makeblock MS USB HOST test sketch must be modified in some way(?)
Has anyone on this forum had success using a ME USB HOST?
There is very little documentation on this device, I’m not sure what the fault is, but it seems like there is limited support for different joysticks. Are you using the same ones shown in the tutorials?
That’s the big question. What gamepad are they using in the demo?
I don’t know, I would like someone to tell me.
However this demo…
Appears to have a completely different USB receiver plugged into the module.
Which makes me assume I’m missing something fundamental.
My guess is that the gamepads you are using send different codes for button/joystick presses. This is commonly encountered with a lot of input devices: joysticks keyboards mice remote controls and so on.
So check the codes your gamepad is sending and compare that to what they expect in their parse routines.
You may need to connect the USB adapter to a PC or similar to find out the codes sent.
That may be true, but I would have expected the ME USB Host adapter to just pass through anything it recieves with the result being something would appear in the Serial Monitor even if it was garbage, displaying nothing at all is puzzling.
On the flip side, I wonder if there is a way to perform an isolation test on the ME USB Host ie connect a non-gamepad input into the USB end and input exactly what it expects to receive and test whether it outputs as expected. Such a setup would separate the gamepad and the adapter.
The question is what data packet is the adapter expecting?
And what model of the gamepad does MakeBlock use in their demos?
I have 2x ME Host Adapters and 2x different gamepad models, and testing with mCore, Orion and Arduino UNO
MakeBlock’s official response to this on a forum on their website was that not all gamepad protocols work with their device. I don’t have any additional insight into the inner workings of this device unfortunately.
I asked MakeBlock to provide a sketch using the CH375 library since that is the chip used in the product so we could isolate the hardware and the MakeBlock software, but they did not wish to.
I don’t have the time to explore this further, so I’m going to shelve this for now.
I’ve switched to the DFRobot Gamepad as an alternate solution, but it has its own problems. Which I’ll post in a separate topic.
I isolated the problem with ME_USB Host, I’ve been testing with a CH375B interface board (which uses the same chip), and testing using the USB mouse sketch on this site…
Tonight I swapped out the Chinese Arduino UNO board clone I had been using with an official Arduino UNO board and was successful in replicating the output expected from the sketch.
I soldered header pins onto my ME_USB board then connected;
- 5V to UNO 5V
- GND to UNO GND
- RXD to UNO D9
- TXD to UNO D10
The problem is a hardware (or firmware) issue isolated to the board in the mBot. I’m guessing it has the same Chinese Arduino UNO clone bug which the official UNO board does not have.
The issue is not related to an incompatibility with the USB device connected the ME_USB Host module. It has been isolated to a fault with the mBot mainboard.
I’ve posted on their forum, but as an official reseller, maybe you can also pressure them to fix their faulty product.
Output when I moved the mouse was…