More Throttle Tweaking in Firmware

For anyone who's driven the Office Chairiot Mark II, you know that the throttle response was a bit nutty. The throttle control firmware was translating stick input to motor commands using a weird (but cool and efficient) bezier curve thing. Problem with that was that the stick-to-motor commands were instantaneous making the response jerky (maybe dangerous).

I wrote a replacement C++ class to handle transitioning the throttle smoothly over time to the latest stick inputs. This smoothed out the response immensely. The drawback was that it also slowed the transition from higher speed down to slower speeds. That was dumb. I almost drove the thing off a stairwell and our CTO almost drove it into a wall. Seems it's not intuitive to plan ahead for slow throttle back. Oops.

Here's video of the indoor test drive on Tuesday, October 14, 2014 at meltmedia in Tempe:

Today was the first real trial run of the Office Chairiot Mark II with its new throttle control firmware and it went swimmingly! Only two of the planned four modes were active: Kiddie and Advanced. Kiddie slows the transition of the throttle commands down, so if you gun the throttle, it takes its time getting to the power you input to the stick. The Advanced mode takes half the time to advance the power to what you input. Overall, it went well. However, I missed one little feature that I'll be adding tonight: When the driver let's off the throttle, the program needs to let the motors drift by not sending a command. This has two benefits: 1) The motor controller actually recharges the batteries a tiny but when the motors coast (because they become generators at that point), and 2) the Chairiot was taking its sweet old time slowing down, which meant I almost drove it down a flight of stairs and our CTO almost drove it into a wall. Seems like a bug.

Here's another angle of some high-speed passes by the camera:

This was the first official in-office speed test of the Office Chairiot Mark II with the new time-based throttle control firmware. The "Advanced" throttle setting was great, but still needed some tweaks. The "Kiddie" mode setting was just plain dumb: It slowed over time which meant the driver had to anticipate when the thing would come to a stop.

So, patched the throttle control class to gradually increase speed, but to more quickly drop it. Will be testing that concept today. I'll post results tonight or tomorrow.

Andy Frey

My name is Andy and I am a maker. Enough about me. How are you? What did you have for lunch yesterday? Have you made anything cool lately? OK, back to me: I like to make things, with or without purpose. Clocks, shelves, machines that turn themselves off, homemade circuit boards, IKEA chairs with motors, etc. I love to learn how to manufacture stuff myself. I also love to take things apart to see how real-world products are engineered.