gyenesvi Posted August 26, 2025 Posted August 26, 2025 On 2/17/2025 at 4:10 PM, 2GodBDGlory said: So is the idea that you'd plug a Geekservo into this adapter, and it could then be controlled by PF power supplies as if it were a PF servo motor? That's exactly the idea! @tseary this just came into my mind again and thought I'd check in if there's any progress on this? Sorry to bug you, I know if a guy promises he'll do something, then he'll do it, there's no need to ask every 6 months.. Quote
tseary Posted September 5, 2025 Posted September 5, 2025 @gyenesvi So I did assemble a couple of prototypes of the servo adapter. It works as intended, but I'm not totally happy with it because there's no way to trim the center and limit angle of the servo. Adding that feature will probably mean going to a different microcontroller, which is not so bad, but it won't be as compact of course. Before I make another version of the adapter, I have to finish the test car I'm building. Like all hobbies it has to compete for time... Quote
gyenesvi Posted September 6, 2025 Posted September 6, 2025 On 9/5/2025 at 1:00 PM, tseary said: @gyenesvi So I did assemble a couple of prototypes of the servo adapter. It works as intended, but I'm not totally happy with it because there's no way to trim the center and limit angle of the servo. Adding that feature will probably mean going to a different microcontroller, which is not so bad, but it won't be as compact of course. Before I make another version of the adapter, I have to finish the test car I'm building. Like all hobbies it has to compete for time... Good to hear that there's progress and there are prototypes already! Curious about the prototype car! However, I am not sure it's so important to add trimming and end point adjustment, especially if it comes at the cost of getting bigger. For one, if used with the PF system alone, it's already much better than the PF servo (smaller, faster, stronger), which also does not have those adjustment possibilities. However, when used with a Buwizz + app control (or even with PU hub + PyBricks if there was a version with PU plug), then both end point adjustment and trimming can be done from the controls software. This is the same way as in case of RC transmitters, the trimming and end point adjustment is in the transmitter. So why complicate it unnecessarily? Quote
tseary Posted September 7, 2025 Posted September 7, 2025 You make a good point. I didn't know that Buwizz had that feature, I was mainly thinking of the default PF receiver. Quote
gyenesvi Posted September 7, 2025 Posted September 7, 2025 5 hours ago, tseary said: You make a good point. I didn't know that Buwizz had that feature, I was mainly thinking of the default PF receiver. Anything with proportional control and a customizable app can have such features; end point adjustment can simply be achieved by setting the max output percentage. The Buwizz app has customizable output curves, where the mid point can also be shifted, and even non-linear output response can be achieved (even though the interface is pretty cumbersome and hard to set accurately). However, I realized that there might be a small issue, if you want it to work both for PF receiver and with app control / adjustability. The PF receiver would require to have the end points to be at 90 degrees in both directions to work as expected, like a PF servo. However, to make it flexibly adjustable from an app, the default end points corresponding to 100% output should be more than 90 degrees, say 180 degrees in both directions, and then 50% would mean 90 degree rotation. This would be required to be able to set max angles to more than 90 degrees, and also when trimming is applied and the center point is shifted, then even with 90 degree rotation, one of the end points would need to fall out of the +/- 90 degree range. So, one option is to define the base range to be 180 degrees, then it will work adjustably with app control, but not as expected with PF receiver. It could be okay, because usage with the PF receiver and normal PF controller is actually pointless, you'd loose the proportional control anyway (unless used with a train remote?), which is the key advantage of using a precise servo anyway. So I'd actually say that this is not a bad option, not much is lost. The other option would be to make a two-way switch on the board to only be able to select between 90 and 180 degree max range, 90 degree to be used with PF receiver, and 180 degree to be used with app control. That sounds much simpler than full end point adjustment and trimming capability, no? Quote
LabManager Posted December 18, 2025 Author Posted December 18, 2025 Here are some updates on this topic. While still working on a production-grade version of my GeekShield project, I’ve had some experiments with Mould King modules. Thanks to @vicocz and his great open source brickcontroller2 app, I’ve finally got all the answers needed to make a better Arduino adapter for Mould King. So, this is the new concept: 1. An Arduino (ESP32) board is powered by the Mould King module’s PF port so they are turned on together 2. A gamepad connects to the ESP32 3. The ESP32 then processes the inputs from the gamepad and sends Bluetooth packets to the Mould King module – just like the smartphone app does (MK 4.0 and MK 6.0 modules are supported). 4. Additionally, a GeekServo is connected to one of the ESP32’s pins so it’s controlled with a PWM signal and powered by the MK module. 5. The code in Arduino sketch can control both the PF motors and the GeekServo by processing inputs from the sticks/triggers/buttons on the gamepad. I’ve used the M5Stack’s Atom Lite controller and the Atomic HDriver Base because they’re very small in size and have pin holes so it’s easy to attach these units to my car. But many other ESP32 boards can be used, providing they tolerate 7.4V power supply. In my setup, the voltage regulator inside the HDriver Base reduces 7.4V from the MK to 5V needed by Arduino. This approach still requires some coding, but I hope it will not be too hard if you have some experience with Arduino. The library and examples are on the GitHub (https://github.com/pink0D/M5Bluepad) and there’s also a wiki page with some instructions on wiring (https://github.com/pink0D/M5Bluepad/wiki/Controlling-Mould-King-modules-and-GeekServo-with-ESP32). Quote
2GodBDGlory Posted December 19, 2025 Posted December 19, 2025 Huh, cool! So that's gamepad support for the MouldKing hubs, as well as GeekServo compatibility? Do you know if this works on 6.0 hubs? Does it also work to use the GeekServo alongside the original controller? Quote
LabManager Posted December 20, 2025 Author Posted December 20, 2025 That also works with MK6.0 modules. The limitation is that only one MK 6.0 can be connected via Bluetooth, while 3x MK 4.0 can be controlled simultaneously. So you can control up to 12x PF motors with a gamepad. The original controller is not used at all, all the input is from the gamepad and it is processed by the ESP32, so you can connect even more GeekServos or other units to the ESP32 (IMU, distance sensors and so on). Quote
2GodBDGlory Posted December 21, 2025 Posted December 21, 2025 On 12/20/2025 at 4:40 AM, LabManager said: That also works with MK6.0 modules. The limitation is that only one MK 6.0 can be connected via Bluetooth, while 3x MK 4.0 can be controlled simultaneously. So you can control up to 12x PF motors with a gamepad. The original controller is not used at all, all the input is from the gamepad and it is processed by the ESP32, so you can connect even more GeekServos or other units to the ESP32 (IMU, distance sensors and so on). Impressive! I guess I was wondering if there was a way to just use the original controller for people who don't have a gamepad, but that's probably a niche situation that's not worth developing for. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.