I purchased this board to build a hexapod. Are there any UART TX / RX pins to use when all of the servo pins are utilized? I want to use an HF-06 bluetooth module to remotely control it but I’m not sure where the TX/RX pins are on the board. Can someone help?
There is a link to the schematic on its shop page, if that helps.
servo2040.sch (shopify.com)
Might be tough? I think you would have to give up servo 1, and possibly have to stop it from trying to configure those pins for servo use.
That throws a wrench into having a hexapod with 18 servos and being able to control it via bluetooth.
So, since I won’t allow control of the board via bluetooth, is it possible to connect an NRF24L01 module to it via SPI and still have 18 servos connected?
If so, where are the MOSI, MISO, CSK, and CS pins located. For me, I’m not able to make any sense of that schematic.
I don’t see any way to use SPI. i2c is available, and ADC, but thats about it.
Are there any QWIC modules for bluetooth or NRF24L01? This is a nice board, but a robot also needs to be remotely controlled and there’s no way to do it…and still use 18 servos.
All I could find here is this Sparkfun offering, out of stock though.
You’ll need to read up on what it can do, to see if it will work for you.
SparkFun NanoBeacon Lite Board - IN100 (pimoroni.com)
Im having the same problem and im sure 90% of owners are disappointed. What good is a board that you can’t control with outside user input for robots? Unfortunately im not pleased at all with my purchase. Ill wont be recommending it to anyone until a straight answer is given my CS.
I sent a message to Pimoroni support about this, but I didn’t receive a response.
You could try to use the Stemma/Qt connector. These pins can be used as I2C or UART. And I would go for a cheap HC05 dongle (BT-classic). This dongle will transparently write all serial BT commands to the UART.
Added bonus: you will find many examples in the net, just search for Pico remote control HC05
@bablokb, I did manage to get a bluetooth module working using the QUIC connector, but I was never able to get all 18 servos working for a 3DOF hexapod. So, I gave up on this board
Hi, I am the dev for the product. I see you have a few forum posts about it, and have been in contact with our support team. What is it you are trying to communicate with?
The board has I2C and UART accessible by the QwST connector / SDA + SCL pins (GP20, GP21), with a second I2C accessible by A0 and A1 (GP26, GP27). SPI is also accessible via the ADC capable pins.
- A0 / GP26 : SPI1 SCK
- A1 / GP27 : SPI1 TX (MOSI)
- A2 / GP28 : SPI1 RX (MISO)
CS can be gained by using the pin labelled INT (GP19).
I’ve just checked this and your support emails from Sept 2023 and Oct 2023 were replied to. For some reason though, the reply to your Sept email “Pinout diagram for Servo2040” could not be delivered. Perhaps your email provider was having issues at the time? Seeing the message now, I remember providing the information to our support team.
I see the issue you reported at the time. Were you able to confirm (as support asked) if the single servo example worked? And did you try and other versions of MicroPython back then, in case one had introduced a bug into ServoCluster that was causing the hanging that you experienced?
Im setting my HC06 like you say and im getting this error. Im using the dorections above to connect A1 and A2
GP26 and GP27 are not UART capable (well they are but only CTS and RTS which aren’t that useful).
GP20 and GP21 are though. These are wired to the SDA and SCL pins on the board header, as well as the QwST connector.
So if you want to use UART, GP20 and GP21 is the way to go. Then to get I2C functionality again you would use GP26 and GP27.
Tables are from the RP2040 datasheet: https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf
It’s always useful to check this with any board that uses the chip as even the official Pico pinouts from Raspberry Pi do not list all pin functions.
So what pins are GP20 and GP21? I see nothing on the Servo2040 labled that. Also ZodiusInfuser said he was the developer and i followed his instruction and stll have no results. A board should not be this difficult to navigate, especially one at this cost. I feel bad for ragging on it but ive been trying different things for two months now and probably have 20 hours of sitting by this thing
I already provided that information in my previous messages, but to be explicit:
Indeed, I am the developer, but at no point in my original message did I say try GP26 and GP27 for UART.
I understand that trying to get projects working can be frustrating, but what you are trying to achieve (of comms to another device) is hardly a problem with this product specifically. You would have the same challenges with any Arduino / Pico/RP2040 / ESP based board.
Looking at the forum threads you posted to, all the users have tried their best to steer you in the right direction. How much of their suggestions did you try? What worked and what didn’t? Did you reply with your results? Also, it looks like you originally wanted to use an ESP but have now switched to an HC06?
Oh and just to say, Servo 2040 is practically cheap compared to other comparable servo controller options. I remember getting my first servo board over a decade ago and that cost over £100.
Im trying to be able to control my servo project remotely. The esp rout seemed like a tail chaser because setting it up in slave mode wouldnt work with me.
I switched to HC06 due to the simple functionality and it being able to check all my boxes.
I just need solid communication.
You will need to figure out what would be sending the communication (PC, phone etc) and what form the protocol will take, but that is entirely achievable.
In fact, for our Yukon product (bigger brother to Servo / Motor 2040) I wrote an RC rover example that let me drive the robot from my phone: yukon/examples/showcase at main · pimoroni/yukon · GitHub
Sadly the phone app is no longer on the Google Play store, but the principle is valid. Specifically how there is a class that handles the processing of serial bytes to convert them into meaningful commands yukon/examples/showcase/rover/lib/commander.py at main · pimoroni/yukon · GitHub
I appreciate all the hard work and explanation you’ve provided. Thank you for being patient with me even tho i was sour and exhausted. It works! I got it to do what i wanted! Thank you again for the schematics and the one on one assistance. I take back the negatives about the board and im truly sorry for the Ignorance.
I am glad to hear you got a solution that works! I would love for there to be a more canonical solution for this sort of thing, particularly using a Servo 2040 as an I2C device, so I can understand your frustrations.
If anything else comes up in the future that you hit a wall with, feel free to tag me. I do not visit the forum all that often.