PestoLink: control your XRP robot wirelessly with Bluetooth!

I’m working on a web-app called “PestoLink” to control robots wirelessly with BLE. you can check it out at https://pestol.ink/

Your robot needs MicroPython v1.21.0 and it needs to be running code similar to what is in this repo: PestoLink-MicroPython

It is a work in progress. Right now the web app supports any gamepad (like xbox) and I am going to add keyboard support soon. Also my motors don’t work now, I think I’m having the same issue with FW v1.21.0 that another user posted about. I plan to keep working on it. Let me know what y’all think.

1 Like

I have been improving PestoLink gradually since I last posted, and it is in pretty good shape now

I wrote up better instructions on how to get the pestolink MicroPython module on any XRP robot in the github repo.

The web app is now confirmed to run on all major desktop and mobile operating systems at https://pestol.ink/. Browser support still varies.

1 Like

A tutorial for PestoLink is now live on the XRP website!

2 Likes

Thanks for developing this!

Any thoughts of incorporating Bluetooth support into Blockly?

Thank you!!!
This is going to be really useful. I really appreciate the work you’ve done!

I’ve done some experimenting and have some questions.

Using a Windows 11 desktop computer and an XBOX controller I have been able to drive the XRP using the joystick on the controller. But it only seems to work for less than 1 minute. And then it stops responding. It appears to be a strange timing problem. I.e. I push the stick to go forward and about 15 seconds later it moves. Same thing with button 0 (the A button on the controller). It takes about 15 seconds to respond.

The same thing happens when controlling it in “mobile mode” from the computer. It disconnects frequently or doesn’t respond for quite a long time.

When using mobile mode with my phone, the response is much better. So perhaps it’s a windows 11 issue? I do not have any other bluetooth devices connected to my computer.

I’ve tried 2 different XRPs and got the same results.

Any ideas on what I might do about this? I’ll do more tests using my win 10 laptop and see what happens there.

This is a new issue thank you for posting about it. It sounds like it is related to windows 11.

One thing is, changing between the two display styles will not effect the data being sent so that is no surprise.

The only thing I can think of is that right now pestolink is hard-coded to ask windows to send a BLE packet every 40ms which is 25 times a second. Maybe windows 11 can’t keep up? It sounds like some buffer is being filled faster than windows can chew through it, so the longer the connection is open, the bigger the delay is.

If you are familiar with JS, you could download my pestol.ink repo and try changing line 44:

window.setInterval(renderLoop, 40);

if you increase 40 to more like 50ms or 60ms you may see success. I’ll try to find a friend with a windows 11 machine soon and do my own testing.

Its on my list to get to this at some point, but it is hard to say when. If I do implement it I will post about it.

1 Like

I just tested this on my Win 10 laptop. It works fine. So it seems it’s definitely related to Win 11. I’m not sure how to do what you suggested (changing the setInterval) but if I figure it out, I’ll post back.
Thanks for responding.

I just lowered the packet rate from 25Hz to 10Hz for the public site, try it now if you can and let me know if the behavior changes.

Having no success with Bluefy on my iPhone, I quickly got the link working with Chrome on my iMac and using my mouse to drive the motors and click on button 0.

Thanks for your work on this.