Continuing Progress on the XYZZY Motor Controller


I think i’ve finished the design for the XYZZY Motor Controller, which for me is a big statement. I embarrassingly probably even said it before too. But anyway both the top board and the bottom board are done in Eagle Cad and i think i’m satisfied. The top board relatively stayed the same since it’s design was fairly sound. All that was needed was a few safety diodes for the mosfets, some led’s, and some minor resistors which were not critical. The bottom board was another story however.

It required a complete redesign except for the basic underlying parts. Many of the items i had on the board were just potential “goodies” that were extraneous and non-critical, so i removed them. Not only did it help remove extra unrouted wires, it helped clear up some much needed room. In the end i ended up with some extra room that i turned into a tiny proto board area that i’m quite pleased with. Along the way i fixed a few errors on the schematic and routed things nicer than they were before. I think all that it needs now is to order up some PCB’s and do some more testing and programming.

The only things i would like to change are the screw terminals. The ones that are on the schematic now are much too small for a large amp motor. The problem is i can’t seem to find an Eagle Cad footprint for one. I may have to end up creating my own part in eagle cad eventually. If you know of one please let me know in the comments below! I’m looking for something like these: photo1, photo2, photo3.

The XYZZY Motor Controller is a modular open source hardware mosfet speed controller h-bridge. It has been designed to be able to handle high current motors with the parallel mosfet design. It has been designed to be hackable and DIY accessible (hence the all through hole design). It has been designed for flexibility. Since it has been created with the hope in mind of a built-in arduino brain it can be easily programmed for many things. I’ve routed one PWM capable I/O port to function as a PWM directional input (modeled after the IFI Victor 884 servo input design). But one feature i’m happy to include is an easily accessible I2C port. This port gives the motor controller many potential abilities. One idea is to use the I2C port to expand it’s capabilities (such as a current sensor), or i think it would be cool to use I2C to daisy-chain several motor controllers together to help save wiring and to provide real-time feedback to a master microprocessor or computer. Another cool “feature” is that possible boards could be fixed with half the parts. If for example the mosfets died for some reason, but the bottom components were fine (or vice versa) you could use the good parts with other good parts. Since my old top board is basically the same i plan to test it with a new bottom board sometime in the near future. I expect it to work fine.

The schematics are somewhat rough. I’ve tried to clean them up as best i can. But don’t expect them to be pretty. The reason one schematic has floating wires going nowhere on one side is that at one point these were part of one schematic. To create the two board system with the pluggable pin headers i had to split them into “two projects” at one point in time.

bottom_sch_v1.0 top_sch_v1.0

If you would like a copy of the current Eagle Cad files please let me know. This is an Open Source Hardware Design. I would love to see these in the wild or even improved versions of it. Perhaps someone with surface mount experience can create one with smaller parts. More prototype testing to come soon, i hope! 🙂

Update (9-15-15): I’ve updated it again only slightly. I’ve changed the resistors to have bigger pads using the adafruit eagle cad library parts, and instead of screw terminals i’ve decided to use spade connectors or quick disconnects. These make it less cumbersome to disconnect motors and power and no loosing of screws, but also saves space (which was more critical). I couldn’t find a library that had a spade connector already, i had to make it myself. It actually wasn’t too hard.

top_board_v1.0 bottom_board_v1.0


Updating and perfecting the XYZZY Motor Controller


I’m working on finishing and perfecting an old project of mine (by a few years). The XYZZY Motor Controller (H-bridge). The old design was only somewhat functional. Enough to prove proof of concept (barely), but i want a sleek, finished version that people can actually use. So i’m working on perfecting this prototype design. I’ve just updated several things on the top board, and i think it’s done. The biggest issue was a pretty major design flaw which was that i forgot to add the safety diodes for motor kickback. In simple terms that meant that when the motor stopped turning or i switched it from forward to backward the electrical energy would destroy the Mosfets! …oh.. noo… Yup.

Not to worry, they are there now. I will be wiring them in manually to some of my old prototype boards to test soon. This design is progressed enough to update it to V1.0 instead of Rx.x number. Although the top board is finished, the bottom board needs quite a bit of work and possibly major redesigning. from the looks of my old design for the bottom board it looks like one feature i wanted to implement was an I2C bus. That would make it cool to connect them together and then to a microprocessor to monitor them in real-time. The only sensors to monitor at this point was the inclusion of a crude temp sensor and monitoring the RPM of the fan. Although i was hoping to build an arduino chip built in. When i eventually purchase new PCB’s i think this revision is finally deserving for the color red! Although purple or black would look pretty sick too. Any comments are welcome.

This is an Open Source Hardware Design.

DSCF7247 DSCF7248


more XYZZY motor controller pictures

In honor of the most popular post on my blog in 2010, I’ve decided to upload a few more pictures of the XYZZY motor controller prototype. This time they were taken in high resolution with my new digital camera.

I still haven’t done anything new with it. And technically it’s still unfinished. But, i consider it a partial success anyway. Well, Enjoy.

XYZZY Motor Controller Prototype

p.s. here is a nice short article that describes the basics about H-bridges. I especially like the part at the end when it talks about the brake mode. Very useful feature on large robots or even an electric tractor. Here.

Successful XYZZY motor controller prototype

I have good news today! I got my R9 prototype boards the other day, and today successfully assembled and tested it today. I used whatever random parts io could find, and it still works!! I had to test with external arduino. 3. the fan mounting holes were slightly off, but they were close enough that i could still mount the fan. 5. I had a half bad HIP4081A chip. But, fortunately i had 3 “extra”. 6. to get it to turn in one direction or the other each HIP4081A input must be grounded, so my arduino PWM code was “backwards”, so to speak…

BUT, IT WORKED!!!!!! I used general diodes for the charge pump circuit, random capacitors for the power regulation, 22N50 mosfets that i got (about 100) in an Electronic Goldmine surprise box. Those surprise boxes were well worth it just for the mosfets!!!! This revision works instead of shorting out, since i fixed the p-channel mixup earlier, which is a relief. It felt good to finally finish this project. get a somewhat working prototype. It’s technically not finished, but it’s oh so close. Just needs a little redesigning, an opamp, and someone to program code for it.

I hope this homemade speed controller can help cut costs for FIRST Robotics students (on personal robots), so they dont have to buy expensive speed controllers for summer projects, or other hobbyists in autonomous robot competitions. I estimate that you can buy the boards for about ~$60, and the parts for ~20 without scrounging. But, you usually get 2 copies from batchpcb, so the “real price” is about $50 which is at least half the price of the IFI/VEX controllers.

The design could use a few little improvements. I’m still annoyed at the tiny solder pads that eagle cad produces, it’s hard to solder on the boards.

Edit #2: /more-xyzzy-motor-controller-pictures/

XYZZY Motor Controller is born…

haha, okay. so I’m pretty confident that my open source speed controller design is pretty much finished. Maybe some minor tweaks in the future, but otherwise pretty good. Of course I could have made some huge electronics mistake when i was designing it, but i dont know for sure. I guess i will just have to test it out, and figure out how to program the arduino code for it.

Too bad i didn’t finish adding reverse voltage protection, or a current sensing. Although i did add an I2C port, so a current sensing circuit could be added on later i suppose….

XYZZY Motor Controller - Top Board
XYZZY Motor Controller - Bottom Board

anyway, yeah. Just a Eagle CAD design right now, but i hope soon i will actually have a real one in my hands to tinker with. It would be even cooler if someone like SparkFun Electronics used my design to make a commercial version. I think it would do well with the annual sparkfun autonomous vehicle competition’s they hold. here is the forum to follow any new progress…

EDIT: …The design is supposed to use N-channel mosfets… but…in eagle cad i thought i used an N-channel (it even it said it was), but it turns out it was a P-channel. So, my prototype v.0.1 or whatever doesn’t work at all. Anyway.. i fixed it now.

Edit #2: /successful-xyzzy-motor-controller-prototype/

Progress on my Robot Speed Controller

Speed Controller Prototype
Speed Controller Prototype

I’ve made some major progress on my open source robot motor speed controller. I never thought i would get around to finishing it. But, now im really close to having a finished and robust design. And even better, it’s an arduino based design that fits within 3″x3″ cubed designed with all through hole parts. This view is the top board. There is a bottom board to maximise part room, but minimise footprint on a hypothetical robot.

I ordered a prototype from BatchPCB, and should be receiving in about a month. Once i get that i can fix any schematic errors, and finish the arduino wiring and get a simple program going. I hope to eventually get a good design together, so that a lower cost alternative to the VEX and Jaguar and other speed controllers can be offered. Maybe even start my own online kit sales, or get a cool company like Sparkfun Electronics to offer them.

you can follow the progress being made at the following forum: