Ez Arduino 12 DOF Quadruped Robot - Spidey

by manic-3d-print May 26, 2018
Download All Files

Thing Apps Enabled

Please Login to Comment

Hello Friend. I already have everything armed but I have problems with the PLAYBLE application since it does not find any bluetooth device. Greetings ...

which bluetooth module you're using? playBLE only works on BLE module and make sure you have service UUID and character tics UUID set correctly. You may try virtual-Gamepad-BLE too.

As maniac-3d-print suggested I have ordered the huaduino board and the 18650 battery and am eagerly waiting for them to arrive. Meanwhile, I have tried increasing the external power supply (for testing purposes) to 7.5 volts on the nano expansion board. Lo and behold the spidey rises and walks. Interestingly, as maniac-3d-print pointed out the current usage is relatively high, the power supply shows it is using 1.5 A when it is walking. Then when it is resting on its belly the current drops to about 0.25 A. Since I do not have any remote control capability yet, the spidey moves by itself. An interesting observation is that after the walk the spidey rests on its belly forever slightly flipping its legs. Only when being lifted up and placed on the ground again it would then walk and rest again. Was this programmed in the firmware.ino ? What is the function longjmp() doing? Could someone explain ? Thank you.

it is same power issue, your board keeps resetting so you will see the repeating of the unusual movements, normally the robot will stand firmly when not moving; google 'longjmp' you will see the explanation it.

Thank you very much for your illuminating comments. Did not realize that the internal power regulator on the board would make such a difference on the performance. I shall try to see if I could get the huarduino board. Thanks again.

Hi, this is an awesome project. Since I was not able to find the huaduino board I used an arduino nano with the expansion board. However, when the 12 SG90 servos were connected, they do not seem to be able to lift the spidey off the ground. This is in addition to using an external 5V supply to the nano expansion board. Is the SG90s not powerful enough or the nano expansion board to be blamed. Any advice will be very much appreciated. Also, the auto motions (i.e. no remote control) of the spidey appear to be different when the usb-serial cable is connected compared to when it is not. Is this true ? Thank you very much in advance.

likely the nano shield not able to power them up; huaduino internal power regulator can deliver more than 3A current that's why we use it for robotic projects; autonomous mode will not be different if you have usb cable connected or not, but with usb connected you will get extra power from usb port; you can get huaduino from the ebay link we specified, highly recommend to use it as it will save you a lot troubles.

Could someone please send through a purchase link to the exact BT Module that they used. I have purchased two and extensively troubleshooted; however, neither seem to work. I can view the module on my device but it wont connect. Thank you.

can you show a picture of them? perhaps, you just have the setting wrong.

Thank you for the reply. Please see attached images.

this one looks like is a HM-10, it should work, what you have to do is to use the AT command to set the service UUID to 0xDFB0, characteristics UUID to 0xDFB1 and baud rate to 115200, see this guide http://www.martyncurrey.com/hm-10-bluetooth-4ble-modules/ how to use AT command for setting.

Can an arduino uno be used?

no, the design is not for uno, the 3D models will not fit.

I've been working on this bot for hours and I still can't get it right. I'm pretty sure I wired the servo's correctly and I have, I think, calibrated the exact same way you did in the video, but still not working properly as seen in the video: https://youtu.be/9xhYVHaK0qY

it's not right on servo installation, please watch the assemble videos again, don't skip any part.

Yeah, it was the right install. I just didn't calibrate good enough.

I'm almost done with the robot and then I will post a make! I just need to figure out the bluetooth module. I set the baud rate like this: +UART:115200,1,0

But I still can't control the bot. It keeps going autonomous even when the app connects succesfully to the HC-05

press the top middle virtual button will switch the robot to control mode; and press bottom middle virtual button will turn back to autonomous self walking mode

I could not find the bluetooth module you are using. Instead I have one like in the attached picture, which means that I cannot use the top cover since that module will be sticking out. Do I bend the pins on that board or maybe use female-female dupont cables? Advice is welcome

you can just bend the pins, actually we bend the pins too.

Fair enough. I'll try and do that without ruining the module. Just a quick battery question though. I got myself a few 3.7V 12800mah batteries and I was planning on soldering 2 of them together so I have double the battery life. I take it that I should solder them in series instead of parallel?

Must be in parallel for outputting 3.7V, if in serial it becomes 7.4V that will damage the board assuming you're using huaduino.

Edit: managed to get the firmware on to the board after downgrading to an older arduino version.

Now I just need to calibrate it properly because it currently will not move and makes a horrible sound haha. I have the female-female dupont cable in there and I turn it on but it doesn't really do anything so I might have to play with it to see whats going wrong.

Guys, do not connect the wires before programming the arduino, otherwise it will give avr dude () error.

The 'shopping list' isn't very clear, so just to be sure: is this all I need or have I overlooked something?

you don't need Nano, HuaDuino is the main board for the robot

Awesome design!

What is the size of the screws so I can order some?

see the Thing Details tab, full detail of BOM there.

Ah, "m2x6 tapping screws" I missed that somehow. Thanks!

at what infill percantage should this be printed? i could imagine that the weight of the bot will stress the servos if its 100% infill. whats your thoughts?
btw this thing is awesome

the demo you saw on the video were printed in 10%

Hi, thanks a lot for this great project.
I tried to contribute with a my personal mod. Because I had some regular servo (not micro) Futaba S3003 laying around I scaled up all he parts to fit with this bigger servo. Evreything is ok but after the wiring the spider acts weirdly. Do you think there is some software part to modify because of the different type of servo, or perhaps the larger servo has a current absorption that is not sustained by the huaduino board ? I connected 2 1860 lithium batteries to the board.

likely you have much bigger in size, the kinematic calculation is based on length of femur,tibia coax and some other parameters, for calculation gets it right you have to change them to match your robot; not sure huaduino will power up 12 of Futaba S3003 properly but we have experience using it with 12 MG996R servos which really consume quite a lot of power.

I'm trying to get my bluetooth working and I'm curious on how the robot is supposed to behave. When I turn it on it goes into autonomous mode and keeps doing a loop of movements. Is it supposed to stop doing that when bluetooth is successfully connected?

see the part 7 assembly video

Ok thanks you so much. I finally got it up and running, your design is awesome. To anyone having trouble getting an HM-10 bluetooth module working I had to manually send it AT commands to set the BAUD, UUID, and CHAR. Also for some reason it wouldn't let me change the UUID and CHAR after I changed the BAUD so make sure to do that one last.

So glad to see you did it! We have other robots specially the hexapod, perhaps you will be interested to make them too.

I have an AT-09 BLE module. I have had no luck getting it to connect. Does anyone know what the pin numbers are for TX RX and State on the Hua duino?

not have experience with AT-09, but for connection likely just do RX->RX, TX->TX ,VCC ->5V and Gnd -> Gnd, state pin is not useful. but most important is the service UUID and characteristic UUID, baud rate must set as we describe for working with the apps.

Made the spidey couple of days ago, all went great! The videos are excellent and instructions are spot on, got the spidey working first attempt also have the bluetooth working. Kids love the spidey, now I need to make another!

we published a hexapod robot, your kids may like it too.

Many thanks for the heads up, just downloaded files and prepairing to print.. Have parts on order for the cat but will be using the board for this project! I think I will have to order a few Hauduino boards this time!

so glad to see you did it, follows us as there will be more fun projects to come.

Hi there manic-3d-print. I have successfully constructed the build and got the robot working autonomously; however, I can't for the life of me get bluetooth working. I have followed the guide and sent the two separate sketches to the board. What happens is, I can see that the unit is establishing some sort of connection as the flashing red light goes solid in the app when I select mlt bt05; however, it does not go blue to indicate a working connection. I have tried two bluetooth modules, three android devices as well as an iphone. Is there something simple I am missing to get the connection to work? Finally, thank you very much for this build guide it has been fantastic inspiration for my design and technology students at a high school in Australia.

For the apps to connect the robot successfully, the service UUID of the BLE module must set to 0xDFB0, characteristic UUID must set to 0xDFB1, and baud rate to 115200. It seems they are different firmware version of BLE module, if the code we proposed does not works for you you, you may need to set them manually by issuing the AT commands using a USB to TTL converter . Well, there are different CC2541 BLE modules the one we use named BT05, other likes HM-10, they are basically the same but with different firmware thus the AT commands may be slight different.

you need special bt 4.0 module HM-10 check it on ali.
and check this if you buy "like hm-10" https://forum.arduino.cc/index.php?topic=393655

Hello sorry to bother you with what seems like such a dumb question, but I am very new to coding and would appreciate help. I have all the parts built together, but I am having trouble setting it to autonomous. If it is the code on the page that issues AT commands I cannot get it to work (this keeps showing up: avrdude: stk500_recv(): programmer is not responding). If it is one of the ones in the GitHub link could you tell me which one. Again sorry for my lack of knowledge on this subject

Guys, do not connect the wires before programming the arduino, otherwise it will give avr dude () error.

download the zip file from github, open firmware.ino in arduino ide software after unzip it

Thanks for sharing this project. I love it but robot never really worked for me.
I'd be super thankful if you can shine some light on what's going on.

I have an issue where after the robot is powered up it slightly moves and than stops, with power led off on the HuaDuino board

It get's a bit better when connected to usb

Also noticed that if I leave only four or five servos, it works perfectly. But whenever there are more than six of seven it just shuts itself off. Battery was charging the whole night, so I don't think its the battery. Looks like my HuaDuino board can't output enough current for all the servos. I also had major issues uploading code to the board. Succeeded after many many many attempts.

Please let me know if you have any rational explanation on what is going on. My opinion is that I got sold somewhat broken HuaDuino board.


Likely your battery has protection circuit which will limited output current normally not more than 2A. The robot will take more than 3A. Where you bought it? You have url link of it? Removing the protection circuit will solve the problem but be careful don't shorting the battery during the operation.

I think you are right, now that I read specs on my battery ( https://www.adafruit.com/product/354 ).
Max recommended discharge rate: 2.2A.

Thank you, thank you, thank you...

Do you have any recommendations on where to buy battery for this robot in US?

Just buy a single normal 18650 (e.g 3000mAh or higher) ,and use this battery clip https://www.thingiverse.com/thing:2943697 we design will be fairly enough to power up the robot. The huaduino board has two battery sockets, you can even uses two batteries.

Ez 18650 Battery Clip

I love this robot.
I have done it and it has gone very well. I only had one complication that I solved quickly.
The instructions are very well explained.

Glad to see you did it.

Can be used the conventional arduino uno or just the Huaduino ?

the models not fit

Comments deleted.

this project loook cool Arduino + 18650 battery i will buy all parts try it out help me later if i have problems

Hi I like this project very much -great job! But can't make it to work with BLE module. It don't want to change it's UUID and CHAR - it responds ERROR.
I can change name, baud but not UUID and CHAR. I have BT05 V5.3 see picture.

some firmware doesn't take the "0x" prefix as the hex number, you can try AT+UUIDDFB0

Looks like some modules sold "Like HM10" on Ali but doesn't support that commands for some reasons.
And I'm on the way to reflash it to original HM10 - https://forum.arduino.cc/index.php?topic=393655

P.S. And finally I can confirm that this method -works for me, only led doesn't blinking after reflashing is done

HELP<HELP<HELP I built the quadraped bought the HuaDuino board and cannot get the software to load . Can any one out there send me a COPY of the exact software and exact version of Adruino you are using so I can get this to run , HELP HELP HELP . e mail to jim@artisangiclee.com PLEASE my grandson will thank you .

you just download the zip from github link and open it with arduino Ide program with selection correct board and port and then click upload, it is not difficult, For the robot to work correctly, you must follow the videos to do correct calibration otherwise there is a chance you may break the servos if they are not no correct angle when power up.

manic-3d-print, thanks for this robot model. I plan on building it, but I do not own 9g servos. Instead, I do own 12 3.7g servos.
Can I still build the robot with these? What adjustments should be made?
Please, keep in mind that I have zero knowledge about 3D printing.

I have attached the dimensions of the 3.7g servos I own.

Yours will not fit. You can google "tower pro sg90 servo dimension" to see that. I guess you have to buy them. They are cheap anyway.

Thanks for your reply. I'll try buying the SG90 servos then. Have a nice day (:

Hey Manic-3d-print, this is a great great project, thank you for your efforts! I am happy to say that I followed your instructions and got the spider done and running off bluetooth just in time for christmas. No issues. Its awsome. I am a solidworks person and am adding the (obvious) kid friendly nerf dart launcher to the top side of your 3d models. See attached image of my in process add on. I am, however, kinda new at arduino, and it feels like studying your code is like getting a second masters in python. Buried in there between all the servo assignments and location settings are what I think is 17 different actions. I also see there are three authors credited,John Crombie (JC) seems to have added a few actions that are not used. I'm planning on re-purposing a two of the goble switches to the analog pins for my launcher/autofeeder. I'll happily post my 3d files once I have the physical dart launcher debugged and code modified. Thank you again.

Very glad to hear you like it and looking for to see you achieve your goal.

I'm really sorry to ask you again. I want you to watch the video. The robot has a problem in operation. I checked the wiring several times, but there was no abnormality. The coding is also great. How do I solve this?


Looks like the battery does not deliver enough power, your battery may have low C rate which means it has low current. Suggesting you can have it full charging first and try again. If still having same problem, you need to replace it or parallel another one to the board. HuaDuino has 2 battery connectors. On the other hand, you can check if you have bad contact of battery connection (don't connect to the usb port and turn the board on).

Hi. I'm sorry to ask again. Please take a look at the video again. It does not work. When the switch is turned on, the legs of the spider can not reach the spot. And the motor is loud too. I changed the line connection, and I disconnected the line connection. That is the same phenomenon. I do not know what is wrong. Robot does not work after taking a video. T.T.
For reference, video is the same phenomenon when connecting A5 and 3.3V pin.


From last part of your video, we believe you did not do correctly as the assembly video part 4 and video part 5 show, so that the servos do not on correct initial angles. That will overload the servos to reach and over the limit when you turn the board on. Unfortunately some of servos likely broke due to it. And also recommend you should replace the battery or parallel two 18650 batteries.

I am so grateful for the kind answers. I will buy and replace the parts again. Thank you very much.

I'm Korean.
Watching the video and making a spider robot.
Do not know anything about electricity and electrons.
I do not know how to do the coding. If you do not have an example, can you upload it so that you can follow the coding method on the video?

I know it is an unreasonable request, but I want to operate it completely. Thank you

you can google arduino programming, you will see a lot of examples.

I am French and I use a translator because I badly speak English. I have copy/to stick the program " fimware.ino and the arduino ide software indicates the error " *include "FlexiTimer2.h" // to set has timer to manage all servos " and I cannot install(settle) the program in the card(map). Other question, how to install(settle) the program in the WiFi module. I ended the mechanical assembly(editing) and j ' look forward to seeing working the robot. A warm congratulations for your magnificent work. Thank you for your answers.

Uploading the robot program is very easy but the board selection must be correct otherwise it will not do. Perhaps, you need to update the arduino IDE. In general, highly recommend you read the instructions and watch the assembly video on "Thing Details" tab again.

Greetings - Same issue here. No Flexitimer available in Arduino libraries. Not sure if it is due to the online arduino editor vs the desktop verison IDE. I assume Flexitimer is a missing library? Git hub has something....https://github.com/PaulStoffregen/FlexiTimer2 but cant seem to find the file it needs. Learning as I go a bit here, will post solution if/when I find it.

edit: for anyone new to the arduino world. the link posted in my text above downloads as a ZIP file. Do not unzip. Go to your Arduino Libraries tab and import the zip file directly.

it's included in the robot codes, doesn't need to be installed as library.

The Huadino board is no longer on Amazon. Where else is it located?

you can find it in ebay https://www.ebay.com/itm/312249230239 and it's cheaper

Hey, thank you for this design, i like it very much. I already printed and purchased all the parts and i am still waiting for the huaduino board shipping from china. What i don't understand is the position of the contacts of the BLE module. I ordered a HM-10 module. The contacts of my module are in the direction of the board. In the assembly video it seems that the contacts have a 90 degree angle to the BLE board.

Photo of my board:

Could you please tell me if i ordered the wrong board? Do i need an adapter? Should i just bend the contacts? Thank you!

the one we used is BT05 which seems to be a clone of HM-10. So you just bend the pins toward the right angle. Remember to configure the ble module as we describe in Thing Details.

Comments deleted.

Hi! I have other set of electronics. Arduino nano + expansion shield + HC-06 bluetooth module. my smartphone sees the hc 06 module and can be connected to him. but the PlayBLE doesn't see. I watched your video on connection, there is no module in the list of connection. In what can be a problem? I tried to change connection speeds (9600\115200), but it doesn't help. Thanks!

HC-06 is not BLE, can't use it.

it is possible to adjust other application? "arduino Bluetooth controller" perhaps? or the HC-6 won't manage to be used?
Will it work with Bluetooth HM-10 4.0BLE CC2541 ?

the one we use is BT-05 which looks like is a clone of HM-10, haven't tried but I guess it should work. We have an edition using Infrared for controlling the robot, you may like to check it out https://www.thingiverse.com/thing:3099712

Ez Arduino Spidey Infrared Control Edition - 12 DOF Quadruped Robot

Anyone know why I'd be getting the attached error?

not sure how would that happen, perhaps you re-install the arduino IDE as there is an error message of compiler segmentation fault.

I can't seem to generate supports for the mirrored images of the p-tibia and p-coxa in Simplify3d. Any help would be appreciated. Thanks!

The attached STL's worked perfectly. Thank you!

Hello, I was thinking about making this but I can not find a Hua Duino board. I was wondering if I could use a Arduino Nano instead?

It is available in ebay and amazon, see links in the hardware section of Thing Details tab. For nano, you can take a look the one we remixed from.

Sorry for bothering you but can your provide a link to the remixed nano?

that is /thing:2825097

Remix of wide body for MG90 servos and Nano expansion board

I am sorry to keep bothering you. It turns out the BLE I ordered is not a HM-10, it's a CC41-A which explains why it has not been responding to AT commands in the serial monitor. Hopefully, I can get it working once I change the AT commands. I am a bit worried though because there doesn't seem to be an AT command to UUID and characteristic. Do you think it will be able to do the same job or do I need to order a HM-10 http://img.banggood.com/file/products/20150104013200BLE-CC41-A_AT%20Command.pdf

The one we use is "BT-05". From your AT command document, it seems CC41-A does not have AT commands to change service uuid and characteristic uuid. Not sure about HM-10, i guess you should look for the document to see the AT command set they offers.

look likes cc41-a does have the AT commands to change service uuid and characteristic uuid

And google a bit more found that cc41-a and bt-05 are clones of hm-10.

playBLE finds the MLT-BT05 but it doesn't pair when you select it. What am I doing wrong?

You meant the connection symbol does not turn from red to blue? Suggesting if you can try another android to see. It might be due to the android version.

Yeah, when you select it just stays red. I have an old iPod I can use. Is there another android app I can use if it doesn't work?

This is only android app we found it is functionally matched to goBLE.

The iPod is too old to install goBLE and I don't have any other Android Phones. Do you think it won't work because the default baud rate of my buletooth chip was not 9600? I installed the robot program first to see it working, then uploaded a blank sketch to delete it, uploaded the BT setup program and then uploaded the robot program again. Also, how difficult would it be to make a Bluetooth Arduino remote control?

I meet the same problem now,have you solved it?how?

I have just assembled the robot with the Bluetooth module. It pairs with my phone fine however not with the playBLE app. Any idea what I need to do?

different to goBLE, playBLE needs manually initiating the connection, watch the video again you will see.

Hi, I have a quick question. How is it that you are powering 12 servos with just one 18650? I can't do it even with two. I am using arduino nano, and it resets because of the voltage drop, so I tried powering everything with an ATX source (The pc kind) but nothing. Im from Argentina and cant really access a Huaduino board. Any thoughts?

HuaDuino has very strong power chip, it can output 8A current. So it is very idea for robotic project.. In general, you need to shop similar power regulator. The ebay link will ship internationally. But is it prohibited/restricted to shop ebay in Argentina? How about Amazon?

Hey im using the setup and the power is dropping as mentioned by @gorositomartin.
Do you have any suggestions for a fix or what am i doing wrong ?

Did you try another band batteries? It's very likely the battery does not give enough power. Perhaps, you can try 2 batteries in parallel. Not all 18650 batteries are same. Some have low C rating, google '18650 c rating' you will learn more.

I think I'm having the same issue. The huaduino restarts when it reaches the attaching of the servos in the setup() function, right before calling calib_servo(). The servos move for a split second, all at the same time, and the board restarts. If I plug the usb, it seems I have enough power to pass that point, and then I can just unplug it and the robot keeps going without issues. I've tried modifying the code to make that initial attaching of the servos more "gradual", but if I introduce a delay inside the "for" loop, the robot just reboots over and over again, no matter if I plug the usb. I'm using two 18650 in parallel (this one, in fact: https://www.amazon.co.uk/gp/product/B0736M9D5P/ ), so it feels strange...

Any ideas?


As on the product description, it has the protective circuit which will limit the output current. The solution is to remove it or you solder another pair of wire directly to the battery terminals. Be caution and takes extremely care, not to cause battery in short circuit when doing the alternation .

Thank you so much for your answer. I will probably get another battery without protection circuit, and reserver this one for other projects. Again, thanks!

i`ll post the metrics of single and parallel when i get home from work, but the battery should be ok.
Could you tell me how much current does it need ?

didn't measure how much current of driving 12 servos, but a maker texted us about similar issue before, eventually he replaced the battery and solve the problem. So likely your problem is cased by the batteries too.

Its not that it is restricted, is that customs in Argentina is very messy and things tend to "get lost" in the way, so it is not very advisable to import, specially small things like a board. Do you have any Arduino related alternative?

I've followed all the instructions with getting the Bluetooth to work and I'm having no joy at all, is anyone able to help?

Everything works perfect with it in its automatic mode.

If I switch the robot to USB mode, upload the sketch to change the baud rate, switch it to Bluetooth mode and leave it a while, then switch back to USB mode and upload the normal firmware, after that it always works automatically regardless of the position of the S1 switch. It's driving me mad! I have no experience with arduino etc so I am just following instructions 100%.

The bluetooth module shows up and appears to be working in apps like LightBlue and BlueCap, but doesn't show up as a pairable device and it's seen by GoBLE on iPhone or PlayBLE on Android.

The Baud rate sketch uploads fine and doesn't give any errors, it just doesn't seem to have any effect.

when ever you turn on the robot it is always on autonomous mode, when it is connected by the App, tapping top middle virtual button on the App will change it to control mode, see the video of playing with IOS app you will get it, and the S1 must be on the BT side. BLE is not pair-able, connection is initiated by the App. For the app to find it, service UUID and charactisictic ID must be set correctly, this is what the BLE configure program does. There is nothing you will see of the BLE configure program because it just talk to the hardware. But you can use LightBlue to check if the service UUID and charactisictic ID are set correctly.

How do I tell if the UUID and the Characteristic ID are set correctly? I'm not sure what they should be - but they have no similarity to the ones in the code:

void setup() {
Serial.begin(9600); //change to fit your ble initial baud_rate
Serial.println("AT+UUID0xDFB0\r"); // uuid
Serial.println("AT+CHAR0xDFB1\r"); // characteristic
Serial.println("AT+BAUD8\r"); // set baud rate to 115200
void loop() {}

Thanks for helping by the way :)

service UUID is 0xDFB0, charactisictic UUID is 0xDFB1, LightBlue can be used to check that.

Can someone help me please, i plan to build this with nano & expansion shield, got all the parts, modified the frame design and everything. The servos i assume will be connected to the same pins of expansion shield just like the original board;
D2 to front right femur servo
D3 to front right tibia servo
D4 to front right coxa servo
D5 to back right femur servo
D6 to back right tibia servo
D7 to back right coxa servo
D8 to front left femur servo
D9 to front left tibia servo
D10 to front left coxa servo
D11 to back left femur servo
D12 to back left tibia servo
D13 to back left coxa servo

Where should i connect the BLE module? Where is it connected to in the original board? Thanks in advance

Hey, I'd love to build this, and I get the HuaDuino might be a good choice, but they're not available in the UK in Amazon or eBay anywhere. If someone more capable can do a remix it would be good.

the ebay link found here https://www.ebay.com/itm/292668763845 will ship internationally

I have built one using MG90s servos instead of the SG90's and using an adaptor to mount them. Alas the servos I got appear to be all fake's and at least 5 are failing catastrophically shorting the power and causing the main board to reset and/or fail. I'm also not convinced my huaduino isn't faulty as it won't even run it's routine on battery but works fine when battery and charging port are connected.

I think I'm getting tired of building kits based on parts that are over 50% faulty. :(

I will say the robot is a sweet design! Thanks for the STL's, THOSE work!

Why you bought mg90s? BOM we list is to use SG90. It is much cheaper. To bad to hear they turn out to be be fake. If you had fake servos connected to the board, likely they will damage the board. But huaduino has quite well of circuit protection, did you try uploading arduino sketch without connecting servos? If uploading successes, then the board should be fine.

I wanted it to be more robust, I've had a lot of SG90s fail on me in the past. Interestingly my change likely has caused my issues as the MG90S is highly counterfeited. I've tested the servos by themselves and the huaduino by itself, and the BT module by itself. All work fine. But, all together the huaduino can't power the servos without being plugged into the usb charger also. And sometimes even when it seems to be working the bluelight will just go out and it'll have to be power cycles to get it to come back on.

My next troubleshooting is going to involve testing each servo powered through a current meter and see if I can determine a set of them exceeding normal current thresholds during some movements.

Actually, I wrote code that just moves the servos one at a time and has zero issues running. It's got to be current based problems I think...

I have been able to upload the main robot sketch and the spider works great in automatic mode. Very cute routine! But now I am not able to upload the following setup sketch for the Bluetooth feature so I can control it from my Android phone.

void setup() {
Serial.begin(9600); //change to fit your ble initial baud_rate
Serial.println("AT+UUID0xDFB0\r"); // uuid
Serial.println("AT+CHAR0xDFB1\r"); // characteristic
Serial.println("AT+BAUD8\r"); // set baud rate to 115200
void loop() {}

When I try to upload this sketch I get the following error:

Arduino: 1.8.3 (Windows 10), Board: "Arduino Nano, ATmega328"

Sketch uses 1718 bytes (5%) of program storage space. Maximum is 30720 bytes.
Global variables use 226 bytes (11%) of dynamic memory, leaving 1822 bytes for local variables. Maximum is 2048 bytes.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x69
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x69
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x69
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x69
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x69
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x69
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x69
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x69
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x69
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x69
Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

I have the HuaDuino power switch turned on and the S1 switch set to Bluetooth and the BT-05 CC2540 Bluetooth BLE module plugged in but with no servos plugged in. My Arduino settings are as follows:

Board: "Arduino Nano"
Processor: "ATmega328"
Port: COM 3 (which is the proper USB port for my connection)

I am able to initially connect to the Bluetooth with my Android phone but the red Bluetooth symbol in the app does not turn blue and I have no control of the robot. Thank you ahead of time for any help you can give me for such a great project like this.

You were mistaken. They are two separated programs. The steps you should do as following

1) insert the BLE module, switch S1 to USB side, turn on huaduino,
2) uploading the ble configure program
3) turn off huaduino, switch S1 to BT side
4) turn on huaduino, let the ble configure program run in few seconds.

5) switch S1 to USB side
6) uploading the robot program
7) switch S1 back to BT side, the robot now can be controlled by BLE

If you have servos connected, make sure you have charged battery connected too as USB port will not have enough power up the board properly with servos.

Really do love your Arduino spider but I can’t seem to connect to the HuaDuino board and upload the sketch. Following are the settings I am using with Arduino 1.8.5 and I only have the USB cable connected to the board:

Board: “Arduino Nano”
Processor: “ATmega328P” - also tried: “ATmega328P (Old Bootloader”)
Programmer: “AVRISP mkll

Following is the error message I am getting and all that is showing on the board is the solid green light and the red light blinking about every half second. I have also tried 3 separate USB cables. Is there anything I have done wrong or could it be a bad board?

Sketch uses 26524 bytes (86%) of program storage space. Maximum is 30720 bytes.
Global variables use 906 bytes (44%) of dynamic memory, leaving 1142 bytes for local variables. Maximum is 2048 bytes.

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x48
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x48
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x48
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x48
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x48
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x48
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x48
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x48
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x48
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x48
Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

It may due to 1 - you didn't turn on the power switch, 2 - the S1 switch wasn't on the USB side, 3 - you had the servos connected that causing usb port failed to power up the board properly.

This is a great build, but can someone please upload a modified frame for arduino nano/expansion board?

Also, i notice that it's walking differently than the 8dof version, when moving forward the legs move by pairs at a time on each side instead of one leg each side diagonally. I think the 8dof has more realistic move like that

Also If I were to use an arduino board how different would the wiring be.

for arduino digital pins they will be same, but you have to figured out power regulator and battery charging electronics components, the wiring will be completely different among them and troublesome, and the 3d models will not fit, so not recommended unless you have very strong skill on both electronics and 3d modelling.

How would I add a turret on top to it?

perhaps, simply glue it.

Is there a way in the code that I can change one of the side buttons do do another action besides what it is already programmed to do?

Hi. Excellent work! I want to print one. I want to use https://vk.cc/8jHnPe with Arduino nano, or https://vk.cc/8jHoms
Whether it will be started on it? Thanks!

3d models of the body will not fit these electronics, software should run without problem, and you have to figured out power regulation and battery charging, it is troublesome, so not recommended unless you're a very experience DIYer.

I am not really good in programming. But with assembly problems won't be, I can model and print new base if it is necessary =)
Thanks for fast reply =)


If I design my own frame, will I have to change the code?


it depends on your design, if your frame dimension is similar I guess you don't need to change the code.


I want mine to look similar to the attached and have the servos at an angle to the body. I don't think I would make it any larger.

---From 8 DOF minikame---


Thanks for replying, i actually went and build your 12DOF Ez Arduino Spidey, i choose to use the arduino and servo controller PCA9685 is because i had them laying around instead to go and get a HUADUINO board.

to avoid confusion i will post this at your 12DOF Ez Arduino Spidey page as well.


Hi there,
there is something wrong i am not sure what, the code just wont run from my arduino, any idea why is that?
i used your arduino code from github,
on the serial monitor, baud 9600 show some strange code

and its random everytime.

when i choose baud 115200, it show
"Stored: {0 0 0 }{0 0 0 }{0 0 0 }{0 0 0 }
Robot starts initialization"

BTW, love your design on the spidey, way better support compare to the other design.


it will be very difficult. you have to modify the code a lot. The robot code set serial baud rate to 115200. If you set 9600 in you serial monitor it will show garbage characters.

By Difficult did you mean running pca4865 and arduino using your code and has to be modify alot?

If I were to modify the code, which part should I look for?

So when i choose baud 115200, it show below, it's normal?
"Stored: {0 0 0 }{0 0 0 }{0 0 0 }{0 0 0 }
Robot starts initialization''

Great project, I'm at the final hurdle now - the Bluetooth module is paired (I have the green symbol in Gobel) I have changed the code to activate the Bluetooth control but I don't get any control?

I have tried it with the A5 wire off and on as well as the with the void section with only blue tooth configuration and with the code as an addition to the existing code in that section (sorry I'm new to Arduino an this a big step from the rubix solver for me)

Any advice would be great, the wife thinks its creepy but my daughter loves it!

The baud rate of BLE module must be 115200. If the baud rate is wrong, the commands from the apps will not be sent correctly. If you're using HuaDuino, the S1 switch must set to BT position.

Thanks for the reply, Am I correct in saying that only the following code goes between the void setup() { and void loop() {} ?? and not the rest of the code that is actually there? (ive tried both btw) is there a way to verify the board rate using the serial monitor?

Thanks in advance.

iPhone IOS btw.

Serial.begin(9600); //change to fit your ble initial baud_rate
Serial.println("AT+UUID0xDFB0\r"); // uuid
Serial.println("AT+CHAR0xDFB1\r"); // characteristic
Serial.println("AT+BAUD8\r"); // set baud rate to 115200

these codes just go to "setup()", there is nothing in the "loop()", it is only needed to run once. To verify the baud rate, you need to use the AT commands. Below link will be helpful for how to use AT command although it is not exactly to address BT-05 CC2540 Bluetooth BLE module.


A reference of AT commands can be downloaded here https://cdn.instructables.com/ORIG/FKZ/KSLN/JGSG65N6/FKZKSLNJGSG65N6.pdf

Hi, still really struggling - I have no control however if I hook the BLE up to a Nano and run the below code, after it pairs with the BLE the inputs from the phone are displayed in the serial monitor ...

I really cant see what I'm doing wrong? please help ...

added a couple of files, may help you show me my school boy errors :-)

// Sketc: basicSerialWithNL_001
// Uses hardware serial to talk to the host computer and software serial
// for communication with the Bluetooth module
// Intended for Bluetooth devices that require line end characters "\r\n"
// Pins
// Arduino 5V out TO BT VCC
// Arduino GND to BT GND
// Arduino D9 to BT RX through a voltage divider
// Arduino D8 BT TX (no need voltage divider)
// When a command is entered in the serial monitor on the computer
// the Arduino will relay it to the bluetooth module and display the result.


SoftwareSerial BTserial(8, 9); // RX | TX

const long baudRate = 115200;
char c=' ';
boolean NL = true;

void setup()
Serial.print("Sketch: "); Serial.println(FILE);
Serial.print("Uploaded: "); Serial.println(DATE);
Serial.println(" ");

Serial.print("BTserial started at "); Serial.println(baudRate);
Serial.println(" ");


void loop()

// Read from the Bluetooth module and send to the Arduino Serial Monitor
if (BTserial.available())
    c = BTserial.read();

// Read from the Serial Monitor and send to the Bluetooth module
if (Serial.available())
    c = Serial.read();

    // Echo the user input to the main window. The ">" character indicates the user entered text.
    if (NL) { Serial.print(">");  NL = false; }
    if (c==10) { NL = true; }


I see you changed robot program setup() function with the code of configuring the BLE module. This is wrong. The code of configuring the BLE module is individual arduino program, it is not part of the robot code. You need to download and upload the robot code again.

HI - thanks for the prompt reply - the above code was just to prove the BLE and phone connectivity the robot has the original code provided by your self :-)

Am I correct in saying the wire from A5 to 3.3v has to be removed? the robot it just limp when its turned on and the Bluetooth switch option is selection.

is there any chance of you posting the correct code just incase im incorrectly changing it? Id really appreciate it!

Thanks in advance for your continued help.

Is there anyway I can troubleshoot

yes, A5 needed to be removed after you finished assembly of the robot. The purpose of A5 is to make the servos stopping at the initial angle for people to assemble the legs correctly. Limp issue perhaps is due to the battery is not charging up. Normally it will be strong standing then moving. Just go github link, you can download the robot code again, nothing has been changed so far.

May be you can post a picture of your robot with all part wired up here? Perhaps will see the clues.

Below is a picture after the amendment to code for BLE control - Bluetooth module has solid light and the iPhone shows connected but just a limp spidey (You can see the Terminal Outputs shows the ATA commands are executed.

the wiring is ok, and again don't change the robot code, get a new copy from github https://github.com/manic-3dprint/ez-arduino-spidey.git

AMAZING! It works fantastically - thanks for your help.

Is there any reason the code would not work if I printed the parts larger for standard servos? (just a thought as its so cool!)

Attached as some pictures of the original code uploaded and video of the demo (works great)

That's sounds like a great idea - ill reload the original code and take some pictures of various connections etc - the demo mode works wonderfully! Thanks again

Can you please post the Amazon Link from the HuaDino and the Lithium ion Batterie?

saw it once in amazon they named it differently, something likes ATmega developer board, but not longer can find it, we're afraid ebay is only the place to get it.

Is it available on Aliexpress?

not found in aliexpress!

Hey, can I also use an Arduino Uno and a 9V Battery instead of the HuaDino and the lithium ion battery?
Best regards

Ive printed and built one of these spiders and it works in auto mode but the control from my android phone doesnt work, I can see the bt module through the app and select it and the led on the bt module stays lit to suggest a link, but the little bt icon at the top of the app stays red and the spiders just continues to run in auto mode and ignores any button presses from the app, any idea how to fix this or what im doing wrong ?

only can suggest you to look again the setup instructions for BLE modules, assumes you're using right BT-05 CC2540 Bluetooth BLE, not HC-05 or similar.

Wow, this is a great one, thanks for the upload. I am wondering about one thing. I am planning on using the RomeoBLE board from DFrobot. (https://www.dfrobot.com/product-1367.html) I see you are using the GoBLE app from Shanghai Zhiwei Robotics, which supports/is the maker of the romeoBLE board. any thoughts from you on if the Romeo board drive this without any issues?

Not likely. It doesn't have enough pins for 12 servos.

sorry, i posted the link to the mini, i am thinking of the regular romeo...14 i/o ports...https://www.dfrobot.com/product-1176.html

not sure, obviously the 3d models will not fit, it is quite expensive, not recommend you take the risk!

Just a quick note the short link to the SG90 https://shorturl.at/hAUW7 doesn't work in the description. just dumps people in homepage.

thank you, fixed it.

Comments deleted.

Hi this is such a great project! I have already made your Ez Minikame crab robot using Nano and expansion shield. Would it be possible if you can also provide the remix for the body of this spider robot using the wider and bigger Nano expansion shield? I would love to also make this spider robot as part of my collection. Thanks :-)


do i have to configure the bluetooth module in any way?
I've only plugged it in. No configuration in before.
My phone can find it, the app finds it, too.

But i can't connect. At least the icon doesn't turn blue.

I've tested several Android devices now.
The red LED (on bluetooth module) starts blinking - i can find the BLE-Device - try to connect - the LED gets to static red - but the BLE-Icon doesn't switch to blue. So there is no connection.

Any more ideas?

Hi Doncore. If your Android phone can see the BLE module then try PAIRING with it first. After pairing, the app should be able to find it and connect.

I've tried that, too. Pin 123456.
Maybe my BLE is faulty. I've orderd another one.

Strangely enough:
when i pair my Android phone with the BLE, the app can't find the BLE anymore.

make sure you have the one "CC2540 Bluetooth BLE" module, CC2540 BLE does not need pairing, the apps will find it. And for ios, you need to configure its UUID and characteristic ID, see the hardware section about this, this is an example found it amazon https://www.amazon.com/SODIAL-Bluetooth-Wireless-Arduino-Android/dp/B071JTWP87/ref=sr_1_4?ie=UTF8&qid=1529303274&sr=8-4&keywords=CC2540+Bluetooth+BLE&dpID=41in2%252BgV2ZL&preST=_SY300_QL70_&dpSrc=srch

This beauty and compact design is based on the electronic we used, for Nano shield you can build the one we remixed from, our software should work with it, using nano shield you have to take care power regulator, without embedded battery charging and may be a bit difficult to use just one 18650 lithum battery

Ok thanks I will just use the same body remix I used for the Ez miniKame and then use the spidey legs in your design. For the Nano shield I am using a 7.4V 2S 1500mah battery with a step-down buck converter to bring the voltage down to 5V. The remixed cover I am using for the Ex minikame is large enough to accommodate the 7.4V 2S battery. I will post in the MADE section once I am completely done with Ez minikame. For the spidey I am still waiting for the heatbreak I ordered from Aliexpress so I can repair my 3D printer and start printing the spidey parts. Thanks again for the great design work!