SensorChibi: Adding Hall Sensors to Chibikart with Hall Sensor Boards

They’ve made some appearances here and there on my website and others already, but if you haven’t seen them yet, now is the time that I’ll make them public. For a while, I’ve been sproadically making Hall Effect sensor “adapter boards” that can be mounted to R/C outrunners for sensored commutation uses, needed for most ground / vehicular applications. It’s about to get way less sporadic:

Yep, that’s a big cake of them to the left. I’ve also added sizes to the collection. Now, 80mm (“melon”) motors and 50mm outrunners are supported, also. I’m still a bit peeved that Hobbyking had to make their new SK3 “63” motors actually 59mm in diameter, necessitating a fourth board design. These boards were sent to my usual slow-and-easy PCB house, MyroPCB, and done up in black.

Why 50mm? My general belief is that 50mm outrunners are about the smallest you can really use for a vehicle before they start getting too fast (Kv rating too high) to easily gear down. I foresee the 50mm motors being useful  more in scooters than anything else, where a low profile helps compared to the chubbier 63mm motors, unless your scooter is the size of a small bus.

But the other reason is that the Democratic People’s Republic of Chibikart (Hereafter known as just “chibikart” because why did I pick such a name?) uses them, and on a go-kart where pushing off with your leg is just ruining the point, sensors are pretty critical. I’ve been at a loss to explain how to add sensors to the motors because there is so much customization involved, so Chibikart was published without sensors, but with the sensor boards and attendant plastic ring things and automagically calibrating controllers, I think I’m getting pretty close to an “official solution”.

I’m confident enough in these little widgets to pitch them up on my eventual web store, Big Chuck’s Robot Emporium (d.b.a e0designs.com). Check out these pretty product pictures:

This stuff is getting too legit. I should still make you place orders in the comment thread.

Anyways, here’s what a 50mm SK3 rig looks like installed on Chibikart:

The rings are held in place by pressure from the motor mounting surface – it has to be flat bulkhead mounted, or mounted using the X-shaped plate that comes with these motors generally, to work. So, a setup like Straight RazEr which directly uses standoffs on the motor would not work with this design.

I used a chunk of ribbon cable that conveniently had blue, yellow, and green wires next to each other to make the connection to the board. Because everyone’s going to have different wiring arrangements, I’ll leave it as an exercise to the user to make their own cable harness.

Chibikart has actually been experiencing some technical difficulties recently, and I took this installation as a chance to tear the whole electrical system down and check everything. The symptom was severe battery voltage drop (seen on the motor controller side, after the switch and fuse), usually leading to the controllers dropping out during acceleration. Some times, it just wouldn’t even accelerate. I noticed this getting worse and worse recently.

I started the teardown by injecting a wattmeter between every load point – at the battery (checked out great), behind the fuse (terrible), and in front of the fuse but behind the main switch (also terrible). So the problem was clearly related to the big key switch. When I took apart the joint, the switch was fine, but the wire had corroded in its somewhat poorly crimped terminal!

With the problem found, I restripped and securely soldered that joint. I don’t really trust regular crimp type terminals, and this episode just reinforced my disdain, but they are popular enough that I can’t just get away from them.

Especially not on the batteries. I noticed one of the K2 bricks had a terminal which was clearly darkened from heat. But only one, and not even the one I cracked open. The heating signs may have indicated a bad connection, but I could find no corresponding contact blemishes on any of my connectors. It may have been there for a long time, like since before I adopted them.

Out of some caution, I replaced the K2 bricks with matching A123 bricks (which, despite A123’s slightly indeterminate state at the moment, will be restocked again, I’m told. Also, the lead image of the linked article is Chibikart 1’s battery. I am an amused hamster.)

 

Well, there was a problem. I’d given the Jasontrollers a ‘haircut’ to minimize the wiring mess, but that also entailed cutting off the Hall sensor inputs on them. Oops!

I was able to pull them out just far enough to solder to the wires, so I spliced on a new connector:

Protip: A 4S (4 cell) Lithium battery balance connector is basically a keyed 5 pin connector with wire pigtails attached.  It’s much easier to splice wires than to try and crimp and install these tiny connectors, or solder pin headers, in my opinion, so they might be the Recommended Solution for these sensor boards as a product. It took under 10 minutes to splice both sides, ribbon cable and Jasontroller stubs.

The final setup. Chibikart now has a little fluffy bunny tail made of unused Jasontroller wiring connectors, but in case I ever find that they are useful for something else, I won’t cut them off for now.

The process of tuning the controllers was extremely easy:

  1. Line up one of the sensors with the dead center of a stator winding slot – this guarantees that the 120 electrical degree spacing square waves generated by the Halls have at least one edge that is the zero-radial-flux region  between 2 magnets.
  2. Run the Magical Autotune routine of the Jasontrollers for each side. I decided to do it explicitly using the “self train” wire, but it was clear to me that one side had already picked it up when I was done “training” the other.

I’ll have to write this up officially for the product pages, but if the controller did not have Magical Autotune, the process is much more involved and painful, and for a known working set of 3 sensors it might go:

  1. Line up one sensor with the dead center of a stator winding slot
  2. Fix the Hall Sensor cable combination (for instance, Hall sensor signals [A,B,C] get connected to controller inputs, [A,B,C] for the resulting connection [AA,BB,CC]).
  3. Label the controller phase wires (e.g. [u,v,w]) and the motor phase wires (e.g. [x,y,z])
  4. Start with connecting the motor and controller phases in any combination (e.g. [ux,vy,wz]) and see if the motor turns. If it does not continously rotate (e.g. just wobbles, or moves a small amount and locks up), swap two wires. For instance, the example hookup might become [uy,vx,wz].
  5. If the motor still does not turn, swap the two wires you didn’t swap before.  For instance, the example hookup might become [uy,vz,wx] after this point.
  6. Repeat step 5, continuing to swap the 2 wires you didn’t swap before. There are 6 total ways to arrange 3 unique things with 3 other unique things (3 nPr 3). The example connections list might be
    1. [ux,wy,vz]
    2. [uy,wx,vz]
    3. [uy,wz,vx]
    4. [ux,wz,vy]
    5. [uz,wx,vy]
    6. [uz,wy,vx]
  7. If none of the 6 combinations result in motor rotation, then you have to pick 2 Hall sensor wires to swap. For example. [AB,BA,CC]. Repeat step 5 through 6.
  8. If the motor spins with a combination, but in the wrong directions, then cyclically shift the entire connection. For example, [ux,vy,wz] becomes [uz,vx,wy].
  9. If the motor does not turn any more, cyclically shift one more time. At least one of the shifts will be rotation in the reverse direction. One more cyclic shift and you would arrive back at the first again.
  10. Once rotation has been established, you must time the sensors correctly. This involves an AC or DC ammeter, and the goal is to move the sensor board along its slotted mounts in very small amounts while monitoring the current draw at a reasonable motor speed. Move the sensor board to the point where the current draw is the lowest, for that speed.

In other words, Hall sensors actually suck. Incredibly so – which is why I am so glad the Jasontrollers get the hell out of sensored mode as soon as they can! The timing you establish using that procedure is only the minimum for that speed. For instance, if you time the sensors while the motor is spinning very slowly, then the timing will be too retarded for high speed operation, resulting in high current draw. If you time the sensors at wide open throttle, the timing will be too advanced for low speed running and the motor could have trouble starting since the phases will “fire” too early.

Maybe I’m opening a huge can of magnet wire shaped worms by introducing these things, but hey.

test video

Check out this sweet video of Chibikart totally not needing a punt to start from standstill, even on carpet, while turning! Still no reverse, though.

These sensor rigs will be available on e0designs.com as soon as I hammer out the shopping cart and payment details. If you’re really aching, feel free to email me, though!

 

2 thoughts on “SensorChibi: Adding Hall Sensors to Chibikart with Hall Sensor Boards”

  1. I’m also rather wary of crimped connections. For all the “all things being equal, a crimped connection is more reliable than a soldered one” propaganda (please don’t ask for a source, but I’ve seen this plenty times), I’ve yet to see a half-decent soldering fail while I’ve got a full factory-crimped control box of ever-so-slightly loose wiring driving our CNC spindle (yes, we redid the whole thing – still not sure if there aren’t any more of them buggers left in there). Tell you what, you haven’t lived on the edge until you’ve seen a CNC mill spindle start to c-c-c-cut out mid-operation…

  2. I did an intern at the Canadian Space Agency and crimping is the way to go. I always thought that crimping and soldering was good. But no. They crimp because they can easily do a visual inspection. The hole in most of the connectors are for inspection and not where solder goes in! :P You have to do it right with the proper 900$ crimping tool :)

    My comment was that Scorpion motors cage is too thick and you can not read any magnetic flux throught the cage. You have to align the hall effect sensor directly over the gap. I am glad to know that it works with the SK3.

Comments are closed.