Monday, August 26, 2024

Project Hercules (lifting shoulder harness)

This page describes a voice-controlled shoulder-harness lift to help with transfers to/from my wheelchair.  I have advanced MS with some remaining leg strength and use the lift for independent pivot transfers.  Besides featuring hands-free control, the design loops under the arms and pulls up with controlled force, much like a human assistant.

As of this writing, I built (with help of a good handyman) two of them at home (bed & bath).  The lifts have done their job over 200 times with only a few software glitches due to since-fixed bugs.  Why build your own?  Even the doctor told me not to:  Those things never work.  But they do and I'm unaware of  commercial options that allow hands-free voice control.  Further benefits are flexibility, precise trajectories, and wall-mounting.  In an earlier life I invented, designed, and built sophisticated equipment for others.  There is satisfaction in using the skill for a personal need.

I'll try to document the lifts better, but for now show a video, some pix, and notes/drawings/code.  Let me know if you have ideas for improvement or are interested in the design!


"Hercules Pegasus" activates the system. "Pegasus" by itself slowly lowers. "Ascend" slowly raises. In the video it's running in low speed mode for pre-positioning. For actual transfers I put one belt under each shoulder and say "Hercules" to activate torque which pulls harder (maybe 100 lb). That's enough help to stand and rotate onto the bed via hand hold and arm strength. "Release" lets go. Keyword detection is via Porcupine on a Raspberry Pi 4B. The high-torque motor is from GRIN, driven by a VESC 6 EDU.

The shelf brackets are attached to wood studs (our ceiling lacks joists that could support weight).

On the bench:


Design drawing of shelf (excluding rope guide):



Laser-cut plywood spacers, 0.472" thick:

Wednesday, October 13, 2021

⚡peed boost

 A mighty new 48 V battery (13S4P Super Shark from EM3ev) has been powering the Firefly for the past 150 800 km.  Voltage means speed, and this leaves the 36 V original in the dust.  It's worth mentioning that 13 series cells exceed the motor controller spec, but an internet post said it was ok.
😉

 

The hole-pattern gods must have been smiling on me, because the new battery mounting rail fits the existing bolt holes exactly.  I did add a pair of large c-washers behind the rail, to distribute load onto the plastic part.

Frame mounting holes and back of battery rail.
The small washers are unused.

One of two c-washers between frame and plastic.  Without them, the raised metal rectangles at the bolt holes (prev. picture) would probably crush the small overlapping areas of plastic (less than 1 mm wide).

Aside from a galloping speed and oodles of range (about 70 60 km), the battery broadcasts more status information than most people care to know.  In a nod toward reason, I spliced four series diodes into the charge cable, limiting the Voltage to 52 V (80 % charge).  The Super Shark's higher mass and speed cause extra mechanical stress - inspect regularly!  More weight on the front wheel does help traction.

BMS Monitor shows battery status and cell voltages (via Bluetooth).  The BMS circuit prevents unsafe voltage, current (?) and temperature, and shuffles charge between cells to equalize their voltage.


Tuesday, September 7, 2021

6437 km (4000 miles)

A quick update since it's been nearly a year: The last crash took some wind out of my sails, and the MS that put me in the chair keeps progressing, but the past 1400 km have been fairly uneventful with the rubber side staying down.

  • The Q-211 front tire finally gave out with a slow flat and cords showing.  Lifetime: 3629 km
  • The larger 36 V, 11.6 Ah battery started cutting out, perhaps due to unbalanced cells, so I reverted back to the original 6.6 Ah one.  Lifetime:  5050 km (about 250 cycles assuming 50% depletion)
Screenshot from the VESC phone app (Android).  The electronic FREEwheel is active to improve coasting and reduce torque chatter.  The throttle holder is keeping MAXimum forwards throttle until I press reverse.

Replacement Q-211 tire before mounting.

Saturday, October 3, 2020

5000 km (crash)


The past two km chiliads (since 3000 km) were notable for two accidents, keeping the rate at a stubborn one per 1000 km.  First, a minor low-speed tip-over that occurred while playing tag with a relative on roller skates.  Some people take pride in playing hard.  The second was more troubling:

Near the top speed (23 km/h), I lost steering control and crashed diagonally into a curb, causing the wheelchair to flip. I think the left Firefly attachment had separated from the wheelchair, and the right clamp by itself was too weak (picture below), causing the loss of steering. 

I don't know why the left connection let go.  Perhaps I forgot to flip the quick-release lever or the pins weren't fully seated or resonance caused the mechanism to disengage. Just before the crash, I rode over a rumble strip whose vibrations must have caused the final separation. It would be wise to check for any self-loosening in the future and maybe add latch retainers.

Fortunately, the bruising and road-rash are temporary.  I replaced the trashed right-side attachment clamp, but my wheelchair is crooked now, with the right frame leg bent back by about half an inch and downward by a quarter inch.  Considering my usual routes, the consequences of veering sideways uncontrollably could have been a lot more serious.





On a positive note, the QIND Q-211 tire continues to last beyond 2400 km with no visible cords. The front axle has stayed tight since switching to the VESC controller nearly 700 km ago, despite heavy use of regen-braking.


Saturday, August 29, 2020

VESC (motor controller)

In a new attempt at Field Oriented Control, a VESC (Vedder Electronic Speed Controller) drove the Firefly's motor wheel for the past 500 3000 or so km.  As before, wiring up the new controller took some effort, but this one is more satisfactory.

Positive:
  • Software and firmware are open source.  It was easy to add automatic "cruise control" that saves thumb strength.  After 7 seconds of holding the right throttle high, it stays high until brake is applied.  The system is experiment-friendly.
  • The right throttle drives forward.  The left throttle brakes and drives backward. [customized code from district9prawn].  Now there is a good balance between left and right thumbs.
  • Custom features can be programmed such as a limp-home mode in case of throttle / brake-sensor failure.  Safety checks (i.e. full engagement of the attachment clamps) can also be requested through the phone app before enabling higher speeds (some programming required).
  • Torque-control is sweet.  No more annoying braking due to minor unintentional throttle movements.
  • FOC is super smooth.
  • No violent synchronization jerk when reengaging the throttle after coasting.  This may stop has stopped self-loosening of the axle nuts.
  • The phone app logs data from the controller, inertial unit, and phone GPS (10 Hz rate).
Notable:
  • Parameter settings and speed display are through Bluetooth and a phone app (screenshot below).  This allows for nice graphics and on-the-fly adjustment, but sunlight readability is low. The controller also runs fine without the phone. 
  • The VESC 6 is spec'd for 60 V max, which doesn't allow for common 48 V (13S) e-bike batteries.
    Update: A 48 V (13S) battery does work.
  • No headlight connection.  I had already been using a Cateye AMPP800 that is brighter than the stock headlight (which I removed).
  • The VESC firmware code is complex and only sparsely documented.
Issues to be addressed:
  • Weatherproofing.  As is, the controller is unlikely to survive a rainstorm and needs a protective enclosure.
  • At above-normal speed (e.g. descending a hill), the motor brake can kick in very hard, possibly blowing the battery fuse and causing other damage.  I can probably avoid this by modifying the firmware.  For now I have to avoid the motor brake when coasting fast downhill.
  • No odometer.  This is important for periodic maintenance.  I keeping a spreadsheet that adds up individual trip distances added this feature to the code.  


The VESC (which has threaded mounting holes) attaches to the battery base via two M5 screws after drilling matching holes in the base's metal bottom plate.  After a bunch of wire splices, the motor connects to the Z910 cable and the Firefly signal harness to a hard-to-find 9-pin JULET connector (JL-F-Z911AT, Thanks Mr. Wen!).  By keeping the original JULET connectors, I can easily swap back the stock controller which sits in a different battery base.  For VESC, the battery connects through yellow anti-spark XT90 connectors (I still got occasional sparks).  On top is the Bluetooth comm unit with dangling gray antenna.

 


October 16, 2020 Update:

A sturdy clear lid with overhang now protects from rain and shows LED status.  The other main ingredients were an L-bracket that clamps to the VESC via the threaded M5 holes (lucky fit), and longer M6 screw for the fork.  Some cable junctions and the Bluetooth module can still get wet, but at least the main controller is shielded.  As they say, the perfect is the enemy of the good.







Wednesday, August 19, 2020

Disc brake

Alas, sometimes we must stop.  The disc brake has good strength, but often caused strong brake judder that seemed to get amplified by a resonance.  At times, it felt like riding a washing machine full of bricks during spin cycle.
😰
A long-ago attempt at improvement involved swapping the stock brake caliper with an Avid BB7 MTB, but that just made the brake noisier.  Women would turn because they thought someone was whistling at them, but it was just brake squeal. 
😗
More recently, I replaced the brake rotor (140 mm diameter) with a $10 "ZENO" part.  This rotor, together with new "Resin Organic Semi-Metal Brake Pads" make the brake smooth and quiet.  After installation, I bedded-in the new pads and disc.  Now there's no more judder or brake squeal!
😇
The original disc was a little warped, and I suspect it had periodic variations in braking friction that got amplified in a flexing resonance.  The resonance seemed to get worse with front tire deflation.

Thursday, June 4, 2020

Field weakening

The Firefly's wheel speed is limited by the voltage produced as the permanent magnets move across the motor coils (Faraday's law of induction).  The faster it spins, the larger is the induced voltage, which eventually equals what the battery can produce.  Then current and torque drop to zero, and the maximum speed has been reached.  For this reason, a fully charged battery with higher voltage can go faster than a depleted one.

I have been experimenting with Field-Oriented Control which, among other advantages, can use the motor coils to generate fields that counteract the fields of the spinning permanent magnets.  The technique is known as Field Weakening.


My tests with TI boards (LAUNCHXL-F28069M and BOOSTXL-8323RS) show a speed-up of up to 38 % compared to the original motor controller.



Original data where Kv0 = 10.46 rpm/V is the measured speed of the original controller:

VsupplyIsupply
(A)
Speed
(rpm)
Kv
(rpm/V)
Kv/Kv0Field
weakening
(A)
32.230.9135010.861.0380
32.230.97371.111.511.1002.5
32.231.24394.612.241.1705
32.231.67422.213.11.2527.5
32.231.75431.613.391.2808
32.231.944113.681.3088.5
32.232.3546614.461.3829.0
The data were taken on a stationary test stand, where the wheel just spins in air.  It's not ready for vehicle testing yet.