Welcome to Synthiam!

The easiest way to program the most powerful robots. Use technologies by leading industry experts. ARC is a free-to-use robot programming software that makes servo automation, computer vision, autonomous navigation, and artificial intelligence easy.

Get Started
Asked — Edited
Resolved Resolved by Dave Schulpius!

The Huaduino Debacle And Its Consequences

User-inserted image

Hello all, now before I waste all your time with my rambling, let me get to the point:
Huaduino no work.
Big sad.
Forum said it was possible, maybe I'm missing something.

Now I would be more than willing to let DJ borrow my huaduino (and 3.7v battery) if he wants to try and get this board supported. I could pay for shipping both ways.
Infact, I would do just about anything to get this board supported.

If you have the time and are interested in my ramblings about what I plan on building, see the bottom.
Now back to the point.

I cannot get the huaduino board to be accepted/connected to the ARC software.
I was able to connect my standard arduino uno (and get a servo to move) so I should be doing the process right,
but it has not worked for my huaduino.

I've previously used this board to build a quadruped (called a minikame) and really like it. I think this is the only board that has all the features I want, built in.
I read elsewhere on this forum that the huaduino should possibly work with ARC. I read on the forum that it should/may work with ARC as an uno (although, this sounded too good to be true because I knew that even the standard ide would never work if you selected it as an uno rather than a nano)

(incase anyone doesnt know what a huaduino is, I would call it a spin-off of an arduino nano.
It has a built in power regulator that allows you to power many more servos than a normal arduino without damaging the board, with no expansion board needed.
It also has the option of charging your required 3.7V lithium battery by simply plugging a micro-usb cable into the board, very swag, much drip)

Now I think I know whats wrong:
1. huaduino requires you to select arduino nano in the settings of the standard arduino ide (rather than the ARC supported uno)
2. huaduino requires you to select "atmega328p (oldbootloader)" in the settings of the standard arduino ide

So allow me to go through the steps I've tried, just to get these things out of the way-

I sucessfully uploaded ARC's arduino uno firmware onto my huaduino through the standard ide. (with the nano option selected in the ide)
I sucessfully found the comport and selected it in ARC. (tried other comports aswell, just incase that was the issue)
I changed it to the suggested 57600 baud rate (I tried other baudrates aswell, just incase that was the issue)
I tried with the DTR and RTS options enabled.
I tried with different micro-usb cables.
I tried different comports and usb ports (as previously mentioned)
I tried different buadrates (as previously mentioned)
I searched for options to change the bootloader in ARC, couldn't find anything
I tried re-uploading the firmware onto the board through the arduino ide with uno selected in the settings, rather than the boards suggested option of nano (failed to upload)

Again, I would be more than willing to let DJ borrow my huaduino (and 3.7v battery)  
If I should of filed a support ticket, delete this thread asap and I'll get the message.

Now here are my somewhat (more like completely) irrelevant, unnecessary ramblings:
I'm really excited to start using ARC/synthiam. ARC seems to be exactly what I've been looking for all these years.
But just like everything else I've done so far with arduino, getting the pc to connect the board has been the hardest part.
Usually its the com-port jumping around and selecting the incorrect bootloader in the arduino IDE that gives me trouble, but my comports have been playing nice with me lately.

I've been trying to build a quadruped for the Robogames convention, more specifically the mechwarfare competition, been struggling for about 10 years now. Spent probably $500 so far on hardware. Dynamixel servos, 9g servos, arduino uno's, arduino nano's, and now two huaduinos (my first huaduino got bricked, it shorted out on the uncovered screws inside the minikame, my fault, should of covered them up with double sided tape or changed the design)
Even if the mechwarfare competition goes defunct, even if robogames goes defunct, at this point, I'll never give up.

For those that may be interested or unaware, the mechwarfare competition is what I would describe as a 1v1 mock battle inside a scale city. The robots are armed with (relatively weak) airsoft guns. The hits are registered on pressure sensitive panels that you must incorporate into your design/code.
The robots must be quadrupedal (or bipedal). They must be controlled via a FPV camera.
The "pilots" are not allowed to view the arena except through their FPV camera(s).
I believe autonomy and auto tracking is allowed but rarely implemented.
Ofcourse, being the inexperienced roboticist that I am, I initially had grand plans that I quickly had to cut out of the equation.
I initially planned on using micro hydraulics for the legs,
a HPA airsoft engine (high pressure air, also known as a polar star engine) for the weapon (not to make it higher velocity, but to make it have faster trigger response. low velocity is possible with hpa aswell) (polar star engines can either be powered by an external hpa tank via a hose, or what I was planning on doing is buying the kit from polarstar so you can use a 12g c02 cartridge) (the 12g c02 cartridge would normally go into the "buffer tube" of your airsoft replica therefor I would need to design my own housing for the hpa engine and for the c02 cartridge to give it a smaller/lighter form factor)

I wanted to program gaits to climb the miniature buildings, gaits to leap from side-to-side to avoid bb's, a gait for narrow alleyways, a gait where you drag the front two legs across the floor so as to keep the robot as steady as possible for aiming, and once I realized I couldnt use micro hydraulics (anytime soon) I planned on using dynamixel servos.
Then I decided I wanted to use the heat sensors in the dynamixel servos to allow for a custom OSD (on screen display) to visually show how much heat is in the servos.
I wanted the OSD to display the location of where the "turret" is pointed, relative to where the main body is pointed.
I wanted to give myself an option to power down all servos temporarily during the match if they ever got too hot to prevent damage.

Maybe I'm barking up the wrong tree and I should move onto a different board ?
Maybe I'm even barking up the wrong tree by trying to use ARC for this application. I've yet to see how to convert ARC's "ROBOT SKILLS" into code that can be uploaded onto your board for use without being tethered to a pc. (apparently that is called imbedded programming)  I still have alot to learn about alot of things, and I'll say that robotics and programming in general have been extremely frustrating, but ARC looks like it has the potential to be the ultimate solution. Modular, expandable, easy to use (once you get the board connected), the self learning stuff, its basically exactly what I would make if I were a software developer, its scary to think about all the potential ARC has (ever see the 1999 movie "Virus"?) but I'm here for it. If robots ever do get out of hand, atleast I've already had some practice mucking them up everytime I accidently short something out lolol

Related Hardware Arduino Genuino Uno


Upgrade to ARC Pro

Experience early access to the latest features and updates. You'll have everything that is needed to unleash your robot's potential.

#1   — Edited
So I'm probably stating the obvious to most of you but I've figured a few things out

1. I should probably just buy a different board, one thats already supported.   
2. ARC indeed can be used for my application.  The robot doesn't need to be tethered or have its program embedded if I control it over wifi
3. Any board with the ARC firmware uploaded to it is now reffered to as an EZ-B

I'm thinking of getting an EZ-B v4 but I really don't know what The Best option would be.
I guess the huaduino isn't the best option, even if I can get it connected to ARC.  Huaduino doesn't have a wifi module built in.  I guess I was planning using 2.4ghz.  That could get pretty conveluded, trying to set up a 2.4ghz transmitter from the usb of a laptop running ARC.  I think that just might straight up not work with ARC.  I never had good luck with using the 2.4ghz transmitters for arduino anyways.

Probably also not the best idea to use 2.4ghz in an emf dense area like at Robogames
Wifi doesn't work well in emf dense areas either but better than 2.4ghz (I think)
If my servos can handle the weight, I'll try to add a router onto the robot for the best possible connection.  Getting that configured is going to be a mind bender. 

Ideally I'd like a board thats incredibly cost effective.
I also really like the built in battery charger of the hua but its not needed at all.  I just realized I wouldnt be able to use that feature for all my batteries anyways because my dynamixel servos require 11.1v lipo batterys, not the 3.7v lithium battery that the huaduino uses.  I think the dynamixels are meant to be wired directly to a 11.1v lipo battery. 

Hmm... so that means I'm going to have three maybe four batteries onboard the robot.
the 11.1v lipo wired directly to the dynamixels for the legs and "turret"
a 3.3v battery to power the board (and I guess the fpv camera and wifi module are going to be powered directly off the board)
and a 7.4v mini lipo battery to power the solinoid of the polarstar
Some unknown size and type of battery to power the router thats onboard the robot (If an onboard router ends up being required for steady connection at Robogames) 

If I don't use a polarstar and instead use a standard airsoft gearbox, I could run that directly off the 11.1v lipo together with the dynamixels, that would cut it down a battery 

Unless I set up some sort of power regulator/divider and run it all off a single 11.1v lipo.  I don't know diddily about that.  This is all not very K.I.S.S. principle
#2   — Edited
I checked your diagnostic log and you're connecting to the Hauruidudrudino without any issues. What makes you think it's not working?


2022/11/19 16:08:06 -05:00Attempting connection on COM3
2022/11/19 16:08:07 -05:00Connected to COM3 at 57600
2022/11/19 16:08:07 -05:00Reports CapabilityController
2022/11/19 16:08:07 -05:00Firmware 'DJ's Uno v1' on 'Arduino Genuino Uno' supports the following capabilities:
- ADC with 10 bit resolution
- Read/Write Digital I/O Ports
- PWM Duty on digital ports
- PWM servos on digital ports
- PWM servos on digital ports can release their position
- Transmit Uart TX on all digital ports
- Native USB Connectivity from ARC
- Ultrasonic Ping distance sensor support
Good luck with getting this robot operational. It sounds very cool. From what DJ quoted above it sounds like you are connecting just to your computer through the com port and things are talking to each other. You're almost there. I wish I could help somehow. Hopefully it's something simple you're overlooking. Maybe start by making a new project with only one simple command like one servo connected. If you haven't already just try to move that servo with a basic command in a stand alone script (ez script, Javascript or try each). Also make sure you're baud rates are set the same in both ARC and on the board you're using but they are talking so maybe that's not it. 

ARC is a wonderful platform and amazingly versatile. so easy to use. The only limit, or the most powerful asset depending how you look at it, is that you can't embed your ARC code into your control board like Arduino does. It sounds like you have already figured this out. 


I've yet to see how to convert ARC's "ROBOT SKILLS" into code that can be uploaded onto your board for use without being tethered to a pc.
Wifi connections are sketchy in a crowded place like conventions, shows or tournaments like you are going to be working in. An onboard router like you mentioned has proven the best way to maintain your connection as it gives you your own private network. However you still have to compete with channel saturation so you need to find the least used channel or you're still hosed. Another route would be to have a onboard SBC running Windows and connect headless into it and ARC using something like Tight VNC - Remote Terminal Connection. You can read about it here:
You would then directly connect your SBC running ARC to your control board (like EZB v4) through USB and connect over WIFI to your SBC. KISS lol. 

You also mention changing your control board. That's up to you and deepens on a lot of things. Manily ease of use and if you can get your choice to work. LOL. I've never used anything else other then EZ Robot EZB's and Iotiny. They are the gold standard in my opinion and are battle proven (at least to me;) ) . That's the fun though, trying and learning different things, pushing the limits and finding the best solution. 

Good luck and please keep us posted with your progress. I'd love to see more about your mechwarfare competition .
So when I click the button to connect, it tries to connect, (the button goes from saying "connect" to "connecting")
but then a window pops up that says:

"Port connection error
There was an error connecting to com4. Check the debug log for more information
would you like to view the diagnostic manual for connecting to USB EZB devices?"

Maybe its connected and it just doesn't know it for some reason.  I'll try moving a servo with it even while it says theres no connection----
Nope, I couldn't get anything to move.

The servo rotated a bit when I plugged it in but I'm pretty sure thats just normal behavior.  It does that every time I power the board on, even when its not connected to my pc.

Hey DJ, nice to meet you by the way.  I wish I could get to know you and your team alot more, and thank you personally with several pages worth of butt kissing, but I know it would just be a waste of time from your perspective.  I'll just say Thank you from the bottom of my heart for creating all of this, and if you ever need anything, don't hesitate to ask.  If you ever feel the urge to give any unsolicited input to me (like suggesting alternatives on hardware for example), you don't have to worry about offending me, I'm tough, I can handle it. 
Let's build amazing robots ! Wahoo !!!
Hello Dave Schulpius, nice to meet you too!   Another professional, that must mean that you either work for Synthiam or you are a professional in the field. Fantastic !!!

you said:
"If you haven't already just try to move that servo with a basic command in a stand alone script (ez script, Javascript or try each)"

hmmm..  never heard of this, currently investigating this.

So I'll probably use this thread to give updates on my progress for my mechwarfare build.
Once its up and walking, at that point I'll probably make a new thread and try to tag you in it or dm you to let you know. 
I'll check out your posts and see what other insight I can gleem from you without wasting too much of your time either.  
Thanks for the compliments and the insight.
I'll subscribe to your youtube channel asap.
#6   — Edited
In DJ's post his report said that you successfully connected on COM 3. However in your last post your error message said it was trying to connect on COM 4 but couldn't. Could it be that you have the wrong com port accidentally selected? Maybe check to see if you have com 3 entered in the connection tool.
By the way, that pro tag next to my avatar just indicates that I Have subscribed to Synthiam Pro level. That's something you may have to do if you want to get the most out of arc. Also, I'm not with Synthiam or any kind of robotics pro professional. I've just been using this product for a long time and think it's the best. In real life I'm just a retired construction worker. Anyway, I'm looking forward to seeing where you go with all this. I'm sure you'll get it up and running soon.
#7   — Edited
I'm in !!!

I don't know exactly what I was doing wrong before but its connected now. (still used comport 4) (comport 3 wasn't an option anymore for some reason)
(also tried comport 5 in the #1 connection box while the board was powered down, failed to connect) (then I tried comport 1 in the connection box #0, a window popped up that said "This device is not an EZ-B" or something like that)(then I realized the board was powered down, turned it on and tried comport 4 in the connection box #0 and it immediatly connected)
When I was trying yesterday, I had the board powered on the whole time.  Maybe my 3.7v lithium battery didnt have enough charge in it yesterday but now it does...  I'm thinking that was the issue.  I'm also using a new micro usb cable that I bought today.  That could of been it too.

yayyyyy:D this is so flippin awesome
really sorry I couldn't figure this out on my own... atleast this thread now exists for anyone else that tries to use a huaduino in the future.
Thanks guys!
#9   — Edited
Outstanding! This is great. Have fun and keep coming back. Can't wait to see how this turns out.
#10   — Edited
Question solved by the way, thanks for pushing me to keep trying.

Excellent, the next step(s) have been shown to me.  What a great community
Thanks for the credit. 

I've noticed at times that I have to use a different com port in ARC to connect. I don't know why. Probably a windows thing. I think It happens after I have worked on some parts of my ARC project. 

When I have this issue I click in the window of the offending connection (can't remember if it is left or right click) in the connection tool of ARC. A list of connection options pop up. I'll see a different com port listed other then the one I've been connecting to. When I click on that other com port that different com port will auto fill in and I can connect. After I connect I change back to the old com port listed and save. Weird but it works. After I've completed my project work I don't have this issue again until I go in to ARC and make changes to the project. Again, I don't know what changes I make that cause this to happen. Sometimes it doesn't happen. It seems completely random. probably a windows thing.:(

This may be what was happening to you. If you ever have this issue again try to remember to chick this out. It may work for you and save you some headaches.
Since the beginning of PNP/USB, Windows and all operating systems assign a number to a serial port based on the order of when they were detected. Before pnp and USB, serial ports were given a physical port and IRQ in the computer using jumpers on the i/o board. Those days are gone, so now you get what you get. The serial hardware driver cannot say what kind of device is connected to it. If you look at the device manager, you can see the type of USB/UART that is used but not the thing connected. You actually would need to "talk to the thing" for it to tell you what it is. But there is no standard for doing that, so it's impossible. 

And that is why all programs that use serial devices cannot show more than a port number.
#14   — Edited
No problem Dave ! Yes, I've experienced the same thing.  I hope it doesn't fail to connect completely on the day I finally make it to robogames.
I'll probably make two robots that are exactly the same, that way if something goes wrong on one, I'll still have the other .  And I'll be able to salvage parts from one to the other because inevitably, things will start to break when they are needed most. 
murphys law. 
two is one, and one is none.

Ah, thats pretty interesting insight DJ. 
I watched your video on your youtube channel where you're speaking at a conference and you show a slide of all the places you've worked at.  You must be quite the polymath. 

I had alittle scare today, some magic smoke got released.  
I was addressing all my servos via the AutoPosition window.
I was almost finished adressing them all when all of a sudden the servos started jittering and the board started smoking.
I quicky unplugged the battery (which was burning hot), flipped the switch off on the hua, and then unplugged the usb cable from my pc.
I think what happened was the exposed terminals on my 3.7v lithium battery touched the heatsink thats ontop of the huaduino. 
The terminals were exposed because I had to disassemble the battery and remove the voltage regulator (this is required for it to work with the huaduino for some reason)
I've since wrapped my battery with tape to prevent that from happening again.

As far as I can tell, everything is still functioning properly.  Maybe I bricked another hua like that last one (meaning it won't accept any new code) but thats okay, as long as it still works as an ezb (which it apparently does)
Thats One way to stop yourself from salvaging boards from your old projects

Right now I'm struggling at understanding how to properly adjust the steps, speed and delay on the AutoPosition window.
After I start messing with their values, then the transistion button doesn't seem to work right, just keeps jumping from one frame to the next rather than being smooth like before I messed with them (even when I set the values to what they were originally)
I'm going to start fresh and just start building my forward gait, and I'm not even going to touch the values for speed,steps, or delay. 
I'll figure it out, I'll get it eventually (after I finish procrastinating (watching synthiam youtube videos and reading the manual DJ linked to me))