<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Home on Robot Daycare</title><link>https://robot-daycare.com/</link><description>Engineering contraptions</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 01 Mar 2026 20:08:35 -0800</lastBuildDate><atom:link href="https://robot-daycare.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Machining new endcaps for a DT Swiss hub</title><link>https://robot-daycare.com/posts/making_dt_hub_endcaps/</link><pubDate>Sun, 01 Mar 2026 20:08:35 -0800</pubDate><guid>https://robot-daycare.com/posts/making_dt_hub_endcaps/</guid><description>I needed to convert a DT Swiss hub from using a 15mm thru-axle down to a 12mm thru axle to fit on my commuter bike. You can buy the parts to do this, but instead of spending $50 on the parts, I spent some quality time with the lathe and a log of 7075 to make a new set.</description></item><item><title>Machining a saddle clamp for the Zipp</title><link>https://robot-daycare.com/posts/zipp_saddle_clamp/</link><pubDate>Mon, 16 Feb 2026 20:39:09 -0800</pubDate><guid>https://robot-daycare.com/posts/zipp_saddle_clamp/</guid><description>The original saddle clamps on the Zipp 2001&amp;amp;rsquo;s were not very well designed, and the clamp that came with my frame (like many) was broken. The originals have 2 major problems: 1) The screws that clamp the rails on the saddle are tightened counterclockwise, not clockwise - I&amp;amp;rsquo;ve seen stripped out screws because of this on a couple clamps. You think you&amp;amp;rsquo;re loosening the saddle clamps, but you&amp;amp;rsquo;re actually tightening them. 2) The saddle pitch adjustment relies on a pinch bolt clamping a cylinder. These would slip, so people would over-tighten the pinch bolt and crack the clamp.</description></item><item><title>Zipp 2001 Restoration, Part 1</title><link>https://robot-daycare.com/posts/zipp-2001-restoration-part-1/</link><pubDate>Tue, 10 Feb 2026 22:39:50 -0800</pubDate><guid>https://robot-daycare.com/posts/zipp-2001-restoration-part-1/</guid><description>I think the Zipp 2001 is one of the coolest bicycles ever made. These were only produced from 1992-1997, until the UCI banned bikes that weren&amp;amp;rsquo;t the traditional &amp;amp;ldquo;double-diamond&amp;amp;rdquo; shape from professional racing. Probably because they were too fast.
Image taken from this 1993 Zipp Catalog
The early 90&amp;amp;rsquo;s was when frame builders started seriously using carbon fiber for its aerodynamic advantages. Some of the wacky 90&amp;amp;rsquo;s aero bikes include the Lotus 108 and Lotus 110 (another looker), the Zipp 2001 and 3001 (the update to the 2001, with added boron fibers to increase stiffness), the Trek Y-Foil 77 (kind of ugly I think), and the Giant MCR</description></item><item><title>A new toolpost spindle, part 1</title><link>https://robot-daycare.com/posts/2026-01-16-a-new-toolpost-spindle-part-1/</link><pubDate>Fri, 16 Jan 2026 06:55:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2026-01-16-a-new-toolpost-spindle-part-1/</guid><description>
&amp;amp;nbsp;
&amp;amp;nbsp;
&amp;amp;nbsp;
3D printed expanding fixture for op 2&amp;amp;nbsp;
&amp;amp;nbsp;</description></item><item><title>Kart Rear Brake Mounting</title><link>https://robot-daycare.com/posts/2025-10-05-kart-rear-brake-mounting/</link><pubDate>Sun, 05 Oct 2025 04:43:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2025-10-05-kart-rear-brake-mounting/</guid><description>&amp;amp;nbsp;Split rear axle means 2 rear brakes
Laser cut stainless steel bracket from Send Cut Send
Using the lathe as a drill press to countersink the holesRe-using the old brake rotor
Time for some plumbing</description></item><item><title>And We're Back</title><link>https://robot-daycare.com/posts/2025-09-01-and-we-re-back/</link><pubDate>Mon, 01 Sep 2025 04:32:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2025-09-01-and-we-re-back/</guid><description>It has been an eventful year.&amp;amp;nbsp; I&amp;#39;m finally back to working on projects.
After some firmware fiddling, the new drive units are finally spinning, driven by the kart&amp;#39;s original gen 2 Prius-based inverter:
Comments from Blogger
Anonymous &amp;amp;mdash; September 02, 2025 at 04:16 PM
Yay, glad your back! Best of luck with the project!
Anonymous &amp;amp;mdash; September 03, 2025 at 12:19 AM
glad you&amp;amp;#39;re back ben, hope the new job is treating you well.</description></item><item><title>A year of adventures</title><link>https://robot-daycare.com/posts/2025-07-16-a-year-of-adventures/</link><pubDate>Wed, 16 Jul 2025 05:40:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2025-07-16-a-year-of-adventures/</guid><description>This isn&amp;#39;t one of my usual project blog posts, but I owe my dear readers some context for the lack of project content.
The last year did not go like I expected.
Part 1: I ride my bike a lot
In mid May last year my friend Sam and I decided to ride the Great Divide Mountain Bike Route, a mostly off-road route from Banff, AB to the Mexico border in Antelope Wells, NM.&amp;amp;nbsp; We&amp;#39;d been talking about it for years (I first learned about the route in 2014 from&amp;amp;nbsp;Shane Wighton, who had raced the Tour Divide, when Sam and I were interns at Formlabs), and the opportunity finally arose, between Sam switching jobs and me having accumulated a boat load of PTO over the last 5 years.</description></item><item><title>Drive Units Mounted</title><link>https://robot-daycare.com/posts/2024-12-09-drive-units-mounted/</link><pubDate>Mon, 09 Dec 2024 13:01:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2024-12-09-drive-units-mounted/</guid><description>
Comments from Blogger
Anonymous &amp;amp;mdash; December 10, 2024 at 06:15 AM
Cool, give it some juice ;)
Anonymous &amp;amp;mdash; April 22, 2025 at 10:35 AM
Hey, how is it going? Long time no read. Hopefully you are well!</description></item><item><title>Drive unit mounting parts</title><link>https://robot-daycare.com/posts/2024-11-17-drive-unit-mounting-parts/</link><pubDate>Sun, 17 Nov 2024 23:22:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2024-11-17-drive-unit-mounting-parts/</guid><description>
All bonded together
A torsion-less bar, if you will</description></item><item><title>Kart Steering Yoke</title><link>https://robot-daycare.com/posts/2024-11-10-kart-steering-yoke/</link><pubDate>Sun, 10 Nov 2024 16:56:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2024-11-10-kart-steering-yoke/</guid><description>A fun afternoon design project:
Grip geometry still&amp;amp;nbsp; needs some fine-tuning</description></item><item><title>Go Kart Revival Part 1: Drive Units</title><link>https://robot-daycare.com/posts/2024-10-31-go-kart-revival-part-1-drive-units/</link><pubDate>Thu, 31 Oct 2024 01:23:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2024-10-31-go-kart-revival-part-1-drive-units/</guid><description>&amp;amp;nbsp;As I&amp;#39;ve mentioned in previous posts, robot land has an annual car-and-other-vehicle show.&amp;amp;nbsp; Last year I brought the trike, but the year before that I brought the electric kart I worked on with Bayley.
Picture from Bayley
Before the event, the kart hadn&amp;#39;t been touched since the pre-Covid days.&amp;amp;nbsp; Bringing it back to life and ripping around the parking lot was a great reminder of two things:</description></item><item><title>Working on the kart again</title><link>https://robot-daycare.com/posts/2024-10-19-working-on-the-kart-again/</link><pubDate>Sat, 19 Oct 2024 22:46:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2024-10-19-working-on-the-kart-again/</guid><description>&amp;amp;nbsp;Finally retrieved it from MITERS, where it&amp;#39;s been hanging from the ceiling for the last six years or so
Prius inverter based motor drive will be the next thing to be redone after it drives again:</description></item><item><title>Off on an adventure</title><link>https://robot-daycare.com/posts/2024-09-24-off-on-an-adventure/</link><pubDate>Tue, 24 Sep 2024 23:16:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2024-09-24-off-on-an-adventure/</guid><description>Why haven&amp;#39;t I been building anything?&amp;amp;nbsp; I was off on an Adventure.
Comments from Blogger
Anonymous &amp;amp;mdash; September 29, 2024 at 01:09 PM
Happy to see that you are also exploring other fields than engineering. That bering said, what is the nominal torque to weight ratio of your new actuators? Joking! Enjoy your time, it looks great, wishing i had still more vacation time left. Thanks for sharing :)
Anonymous &amp;amp;mdash; February 24, 2025 at 11:13 PM
Any chance we&amp;amp;#39;ll see a dedicated blog post about the trip and your rig?</description></item><item><title>Spinning Drive Unit</title><link>https://robot-daycare.com/posts/2024-05-22-spinning-drive-unit/</link><pubDate>Wed, 22 May 2024 01:30:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2024-05-22-spinning-drive-unit/</guid><description>&amp;amp;nbsp;
Slapped a mini cheetah motor drive on there to make it go
Comments from Blogger
Anonymous &amp;amp;mdash; May 22, 2024 at 09:14 AM
Really like the design of the back part. Beautiful :)
Tim Blakely &amp;amp;mdash; May 23, 2024 at 04:29 PM
Looks great! Where&amp;amp;#39;d you end up getting the internal ring gears, KHK?
Any updates to your controller since your last thermal deep dive post a few years ago? I&amp;amp;#39;ve been kicking the tires on the H7 series for my next rev. 520MHz (550 if you want to risk turning off ECC) is a lot of compute power to mess with. Ben Katz &amp;amp;mdash; May 23, 2024 at 10:59 PM
No motor drive updates, I&amp;amp;#39;m still working through my supply of mini cheetah drives I ordered in 2019. Would probably switch to an STM32G4 if I did a refresh. Smaller packages, cheaper, some nice motor control features like a CORDIC unit.
Tim Blakely &amp;amp;mdash; May 24, 2024 at 02:01 AM
Hah, yup, it makes a good controller for sure! My current controller is (rather heavily :) based on your original PCB layout, but updated with FD CAN, Rust, and the G4 [1]. It&amp;amp;#39;s a solid little chip; you can wire up a frankly staggering amount of hardware triggers, to the point where you&amp;amp;#39;re pretty much just reading memory for values to feed into your control loop.
[1] https://github.com/timblakely/pino-rs
Ben Katz &amp;amp;mdash; May 25, 2024 at 01:05 AM
Ring gear (and all the other gears) are from an off-the-shelf industrial servo planetary. There are some pics of post machining them a few posts back. Once I&amp;amp;#39;ve got both drive units fully buttoned up I&amp;amp;#39;ll do a detailed blog post.
Fox &amp;amp;mdash; June 04, 2024 at 05:21 AM
Really cool stuff. I look forward to seeing how you put this thing to work. How did you decide to lay out the internal cooling passages? Ben Katz &amp;amp;mdash; June 04, 2024 at 01:43 PM
Stay tuned, working on a detailed writeup of the design/build.</description></item><item><title>Assembled Rotors</title><link>https://robot-daycare.com/posts/2024-04-20-assembled-rotors/</link><pubDate>Sat, 20 Apr 2024 20:30:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2024-04-20-assembled-rotors/</guid><description>
Comments from Blogger
Anonymous &amp;amp;mdash; April 21, 2024 at 02:47 PM
How is the gear fixed to the shaft? Looks tight and tidy!
Ben Katz &amp;amp;mdash; April 22, 2024 at 10:13 PM
Heavy press fit + retaining compound. Amount of interference copied from the original gearbox shaft I pressed the gear out of.
Anonymous &amp;amp;mdash; April 24, 2024 at 11:47 AM
💪🗿</description></item><item><title>That's looking like a drive unit</title><link>https://robot-daycare.com/posts/2024-04-15-that-s-looking-like-a-drive-unit/</link><pubDate>Mon, 15 Apr 2024 23:23:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2024-04-15-that-s-looking-like-a-drive-unit/</guid><description>&amp;amp;nbsp;Missing a rotorMachining a new shaft for the rotor:
Improvised chip deflector for roughing
nice
Other side done
bearing and lock ring test fit
Next to the stock shaft.&amp;amp;nbsp; Going for a normal press vs the straight knurl on the stock shaft.
I don&amp;#39;t own a 2d printer and didn&amp;#39;t plan far enough ahead to print the drawing at work, so this happened</description></item><item><title>Making More Kart Parts</title><link>https://robot-daycare.com/posts/2024-04-05-making-more-kart-parts/</link><pubDate>Fri, 05 Apr 2024 20:12:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2024-04-05-making-more-kart-parts/</guid><description>&amp;amp;nbsp;
Single-point keyway broaching
Comments from Blogger
Anonymous &amp;amp;mdash; April 06, 2024 at 04:51 AM
This is properly noice</description></item><item><title>Ring Gear Machining</title><link>https://robot-daycare.com/posts/2024-03-07-ring-gear-machining/</link><pubDate>Thu, 07 Mar 2024 23:13:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2024-03-07-ring-gear-machining/</guid><description>
Comments from Blogger
Anonymous &amp;amp;mdash; March 08, 2024 at 05:12 AM
Daaaaamn that looks beasty! (Very curious to see that spin!)
Anonymous &amp;amp;mdash; March 11, 2024 at 08:34 PM
Titanium screws? Pushing it to the limit :D
Ben Katz &amp;amp;mdash; March 11, 2024 at 10:22 PM
no, just blue zinc plated steel
Anonymous &amp;amp;mdash; March 12, 2024 at 05:02 AM
Ah i see (the shadow tricked me ;) it looks so good!
Anonymous &amp;amp;mdash; March 15, 2024 at 12:57 PM
Do you ever experience high spots from post-machining OTS gears? KHK warns against this for warping reasons, I was curious for your experience!
Ben Katz &amp;amp;mdash; March 15, 2024 at 02:37 PM
I saw that a little on the mini cheetah ring gears. There I located the rings with a fixture that was a very close fit to the ID for machining. Some of the rings took a litle prying to remove from the fixture after machining most of the OD away, suggesting they ovalized slightly. But in that case, the rings were pressed into a housing that forced them back to round.</description></item><item><title>Ice Trike</title><link>https://robot-daycare.com/posts/2024-02-29-ice-trike/</link><pubDate>Thu, 29 Feb 2024 23:24:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2024-02-29-ice-trike/</guid><description>&amp;amp;nbsp;Dane tricked me into building something dumb
ice skate in a garbage pile at mitersbridgeporting out a skate holder</description></item><item><title>Stator Assembly</title><link>https://robot-daycare.com/posts/2024-02-19-stator-assembly/</link><pubDate>Mon, 19 Feb 2024 16:49:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2024-02-19-stator-assembly/</guid><description>&amp;amp;nbsp;Stators shrink-fit into the housings:
Machining fixture turned into a guide fixture for the shrink-fit operation
Band heater wrapped around the housing to keep it hot while installing the stator:
Borrowed the pneumatic powered hydraulic press at work to make sure the stators didn&amp;#39;t get stuck half way down:</description></item><item><title>Lathe Spindle Motor Upgrade</title><link>https://robot-daycare.com/posts/2024-02-05-lathe-spindle-motor-upgrade/</link><pubDate>Mon, 05 Feb 2024 01:31:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2024-02-05-lathe-spindle-motor-upgrade/</guid><description>Motor bracket laser cut and bent from .188&amp;#34; steel by SendCutSend:
Crufted NEMA-56-size Clearpath servo motor - integrated motor drive, plugs straight into single or 3-phase mains.
1:1 belt to the spindle:&amp;amp;nbsp;&amp;amp;nbsp;
Pile of junk being replaced:</description></item><item><title>More motor housing machining</title><link>https://robot-daycare.com/posts/2024-01-20-more-motor-housing-machining/</link><pubDate>Sat, 20 Jan 2024 21:51:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2024-01-20-more-motor-housing-machining/</guid><description>&amp;amp;nbsp;
Comments from Blogger
Anonymous &amp;amp;mdash; January 25, 2024 at 06:35 PM
Very cool to see, thanks. Very strange to see that the tire has such a strong effect. Would have never guessed. Such light weight on the outside can’t change the resonant frequencies?
Ben Katz &amp;amp;mdash; January 25, 2024 at 11:22 PM
It doesn&amp;amp;#39;t add much mass or change the stiffness, but it does add significant damping. Bicycle inner tubes are butyl rubber, which has a very high loss factor (high hysteresis losses) - see this Ansys chart: https://www.ansys.com/academic/educators/education-resources/chart-loss-coefficient-vs-youngs-modulus1
Relatedly, this why latex inner tubes for bike racing exist - they have lower rolling resistance than butyl (since latex has less damping than butyl), at the cost of losing pressure over time from the latex permeability.
Anonymous &amp;amp;mdash; January 26, 2024 at 05:01 AM
Ok i see, the rubber gets streched and contracted in a cyclic manner on the outside of the motor somehow. This turns the vibration energy of the motor into heat and it stops vibrating. (Please correct me if wrong.) 😊
Anonymous &amp;amp;mdash; February 03, 2024 at 02:54 AM
Hey Ben, this may be a dumb question, but could you please tell me why would you machine a 3D printed object? Is it for greater precision and lesser wastage of material? (won&amp;amp;#39;t that increase the cost though?) Or is it because it&amp;amp;#39;s easier to print just the basic structure?
Ben Katz &amp;amp;mdash; February 03, 2024 at 04:23 AM
For precision features (e.g. bearing bores, locating features), features that are too small to print directly (e.g. threads), or for a better surface finish (e.g. sealing surfaces). Aluminum printing tolerances are not great, in the +/.1 or .2mm range for small feature, worse for bigger stuff.
In this particular case, printing the basic structure allowed me to combine what would have been several machined parts into a singe part (there are enclosed water channels around the diameter), and worked out cheaper than sending out to get them machined (ignoring my own time machining on the printed parts)</description></item><item><title>Printed Motor Housing First Post-Machining Operation</title><link>https://robot-daycare.com/posts/2024-01-08-printed-motor-housing-first-post-machining-operati/</link><pubDate>Mon, 08 Jan 2024 04:07:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2024-01-08-printed-motor-housing-first-post-machining-operati/</guid><description>Printed plastic expanding mandrel to hold the part from the inside:
Around .005&amp;#34; TIR on the as-printed surface after clamping from the ID.&amp;amp;nbsp; Not too bad.&amp;amp;nbsp; This all gest machined away anyways.
Checking the lock ring fit after machining the threads:</description></item><item><title>Machining some lock rings</title><link>https://robot-daycare.com/posts/2023-12-19-machining-some-lock-rings/</link><pubDate>Tue, 19 Dec 2023 03:09:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2023-12-19-machining-some-lock-rings/</guid><description>
&amp;amp;nbsp;
Comments from Blogger
Anonymous &amp;amp;mdash; December 23, 2023 at 08:22 PM
never seen this. Interesting. looking forward to see how this is used? clean work!</description></item><item><title>Big Kart New Beginnings</title><link>https://robot-daycare.com/posts/2023-12-09-big-kart-new-beginnings/</link><pubDate>Sat, 09 Dec 2023 22:33:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2023-12-09-big-kart-new-beginnings/</guid><description>After brining it to the BD car show in 2022 and remembering what a blast it was to drive, I got interested in working on the Big Kart again.&amp;amp;nbsp; It&amp;#39;s getting new everything, starting with drive units based on the newer Ioniq hybrid HSG.&amp;amp;nbsp; Real blog post when I&amp;#39;ve made more hardware progress, but for now enjoy this picture of some 3d-printed aluminum motor housings with internal water cooling channels. All the way on the left is the stock housing.</description></item><item><title>Press Tool Trick</title><link>https://robot-daycare.com/posts/2023-11-28-press-tool-trick/</link><pubDate>Tue, 28 Nov 2023 01:15:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2023-11-28-press-tool-trick/</guid><description>Picked up from a technician at work who&amp;#39;d pressed many a bearing:&amp;amp;nbsp; Put a magnet in the back side of the press tool so it sticks to the bottom of the arbor press ram
Tool sticks to the ram and automatically squares itself!&amp;amp;nbsp; No need for 3 hands to hold the part, the press tool, and the arbor press lever:</description></item><item><title>Finally some lathe tool organization</title><link>https://robot-daycare.com/posts/2023-11-06-finally-some-lathe-tool-organization/</link><pubDate>Mon, 06 Nov 2023 01:46:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2023-11-06-finally-some-lathe-tool-organization/</guid><description>
3d printed dovetails - the AXA sized holders are just big enough to fit two screws into a 20x40mm aluminm t-slot extrusion:
&amp;amp;nbsp;
Comments from Blogger
Anonymous &amp;amp;mdash; November 07, 2023 at 03:29 PM
Finally a new post ;)
Neat and clever :)</description></item><item><title>Hopper Stabilization Hardware Progress</title><link>https://robot-daycare.com/posts/2023-10-13-hopper-stabilization-hardware-progress/</link><pubDate>Fri, 13 Oct 2023 01:21:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2023-10-13-hopper-stabilization-hardware-progress/</guid><description>&amp;amp;nbsp;More little drone motors, flywheels, and motor drive mounting brackets:
New MJF printed structure to hold everything:
This is almost everything, shooting for 1kg total when it&amp;#39;s done, not much left for the protective shells, foot, and control PCB.
Comments from Blogger
Anonymous &amp;amp;mdash; October 17, 2023 at 03:41 PM
Looks awesome, really coming together!
Anonymous &amp;amp;mdash; October 19, 2023 at 01:04 PM
Hop hop!</description></item><item><title>Trike Revival for the BD Car Show</title><link>https://robot-daycare.com/posts/2023-10-06-trike-revival-for-the-bd-car-show/</link><pubDate>Fri, 06 Oct 2023 13:51:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2023-10-06-trike-revival-for-the-bd-car-show/</guid><description>Robot land has an annual car-and-other-vehicles show.&amp;amp;nbsp; Last year I brought the hybrid car powertrain go kart, but this year the kart&amp;#39;s geting some upgrades (stay tuned), so I brought the&amp;amp;nbsp;electric tricycle&amp;amp;nbsp;instead.
The trike has been hanging from a miters wall unused since&amp;amp;nbsp; 2019.&amp;amp;nbsp; The last time it was ridden, someone&amp;amp;nbsp;crashed it into a curb and bent the head tube inwards, so it needed some work to get back into a rideable state.</description></item><item><title>A hilarious situation</title><link>https://robot-daycare.com/posts/2023-09-29-a-hilarious-situation/</link><pubDate>Fri, 29 Sep 2023 22:12:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2023-09-29-a-hilarious-situation/</guid><description>There will be a proper blog post
&amp;amp;nbsp;
Comments from Blogger
Anonymous &amp;amp;mdash; October 02, 2023 at 07:51 PM
Brooks saddle on the trike, love it.
Anonymous &amp;amp;mdash; October 06, 2023 at 01:17 PM
Lol out there stealing the show ;)</description></item><item><title>Balancing Leg</title><link>https://robot-daycare.com/posts/2023-07-18-balancing-leg/</link><pubDate>Tue, 18 Jul 2023 04:12:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2023-07-18-balancing-leg/</guid><description>It balances!
The inertia changes significantly as the &amp;#34;body&amp;#34; moves up and down the leg - for the controller, I got feedback gains with LQR for the maximum and minimum extension cases, and linearly interpolate between those gains as the leg extends.
Comments from Blogger
Felipe Depine &amp;amp;mdash; July 18, 2023 at 03:08 PM
Very impressive! This is a difficult plant to control. Not sure if it&amp;amp;#39;s in the plans for future posts, but more info on the controller design would be awesome. Ben Katz &amp;amp;mdash; July 18, 2023 at 03:48 PM
Thanks! More detailed reaction wheel post in the works.
Anonymous &amp;amp;mdash; July 19, 2023 at 04:45 AM
Beautiful :))</description></item><item><title>Leg + reaction wheel doing stuff</title><link>https://robot-daycare.com/posts/2023-07-04-leg-reaction-wheel-doing-stuff/</link><pubDate>Tue, 04 Jul 2023 23:55:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2023-07-04-leg-reaction-wheel-doing-stuff/</guid><description>Running off a bench supply and offboard micro, controlling with a joystick.&amp;amp;nbsp; There&amp;#39;s an IMU attached too, so hopefully soon it&amp;#39;ll be doing some 1-DOF balancing:
Comments from Blogger
Anonymous &amp;amp;mdash; July 06, 2023 at 03:41 PM
Yay a new post 😃! So fast and smooth.
Anonymous &amp;amp;mdash; July 10, 2023 at 02:10 PM
Will it self balancing 1 leg robot?</description></item><item><title>New capacitor for Yottacoil</title><link>https://robot-daycare.com/posts/2023-04-19-new-capacitor-for-yottacoil/</link><pubDate>Wed, 19 Apr 2023 00:54:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2023-04-19-new-capacitor-for-yottacoil/</guid><description>Another CPW, another round of tesla coiling.&amp;amp;nbsp; Last time the primary capacitor caught on fire, so I helped Michael and Austin&amp;amp;nbsp;cobble together a new one out of the Eurofarad caps the coil originally used.&amp;amp;nbsp; I designed some bus bars and MITERS&amp;amp;nbsp;undergrads got them waterjet cut for us.
216 M6 socket head cap screws and 36 crimps later:
Successfully ran 2 evenings with 0 capacitor fires and 1 boost converter fire:</description></item><item><title>Reaction wheel motor assembly</title><link>https://robot-daycare.com/posts/2023-02-26-reaction-wheel-motor-assembly/</link><pubDate>Sun, 26 Feb 2023 17:47:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2023-02-26-reaction-wheel-motor-assembly/</guid><description>
Comments from Blogger
Anonymous &amp;amp;mdash; February 27, 2023 at 03:33 PM
Really coming together! Excited to see the first functional tests!
Anonymous &amp;amp;mdash; March 05, 2023 at 08:13 AM
Nice :)</description></item><item><title>Dovetail Vise Fixtures</title><link>https://robot-daycare.com/posts/2023-02-17-dovetail-vise-fixtures/</link><pubDate>Fri, 17 Feb 2023 22:54:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2023-02-17-dovetail-vise-fixtures/</guid><description/></item><item><title>Reaction wheel assembly</title><link>https://robot-daycare.com/posts/2023-02-12-reaction-wheel-assembly/</link><pubDate>Sun, 12 Feb 2023 01:40:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2023-02-12-reaction-wheel-assembly/</guid><description>Still needs a motor, of course, but it&amp;#39;s taking shape
Someone asked what the step on the inside of the reaction wheel was for:</description></item><item><title>Reaction Wheel Mount Op 1, Pulley Weight Reduction</title><link>https://robot-daycare.com/posts/2023-02-07-reaction-wheel-mount-op-1-pulley-weight-reduction/</link><pubDate>Tue, 07 Feb 2023 03:54:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2023-02-07-reaction-wheel-mount-op-1-pulley-weight-reduction/</guid><description>
&amp;amp;nbsp;
Comments from Blogger
Anonymous &amp;amp;mdash; February 11, 2023 at 11:17 PM
Dont get it completly yet. Where is the belt going through? Is the pully fixed to the reaction wheel? How? What is the green stuff around the inner ring of the pully? Why is the material not removed on both sides of the pully, will it not defelect to one side when pretension is applied (like a harmonic drive)? Why are there no side guards on the pully? Looking nice and shiny!
Looking forward to your coming posts :)
Ben Katz &amp;amp;mdash; February 12, 2023 at 01:43 AM
Pulley is held to the reaction wheel with retaining compound (Loctite 648), the green stuff is retaining compound that squeezed out during assembly. Not worried about pulley deflection, belt tension isn&amp;amp;#39;t enough to appreciably squeeze the pulley. Just posted some new pictures that show more of the assembly.
Anonymous &amp;amp;mdash; February 12, 2023 at 09:55 AM
I see now :). Also interesting bit for me, to constrain the belt the side guards are in the pretensioning wheels. Looking very nice. All the best!</description></item><item><title>Reaction Wheel</title><link>https://robot-daycare.com/posts/2023-01-19-reaction-wheel/</link><pubDate>Thu, 19 Jan 2023 01:58:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2023-01-19-reaction-wheel/</guid><description>
Comments from Blogger
Anonymous &amp;amp;mdash; January 20, 2023 at 09:26 AM
Sweet
Tim Blakely &amp;amp;mdash; January 20, 2023 at 08:05 PM
Woah, is that an upgraded+watercooled spindle? That doesn&amp;amp;#39;t seem like it&amp;amp;#39;d be stock...?
Still liking that mini 5 after a few years?
Ben Katz &amp;amp;mdash; January 21, 2023 at 01:39 AM
not quite, it&amp;amp;#39;s one of the mechatron iso10 tool change adapters. the mill&amp;amp;#39;s still pretty solid for the size/price, control software is still crap but other than that it&amp;amp;#39;s been working.
Samuel S &amp;amp;mdash; January 22, 2023 at 07:41 AM
What is the function of the step feature on the &amp;amp;quot;spokes&amp;amp;quot; of the wheel? I have a hard time seeing how it might give the spokes more strength, but perhaps I&amp;amp;#39;m missing something. Ben Katz &amp;amp;mdash; January 22, 2023 at 03:42 PM
Mostly for clearing other parts of the assembly this goes in.</description></item><item><title>Back to making shiny things</title><link>https://robot-daycare.com/posts/2023-01-10-back-to-making-shiny-things/</link><pubDate>Tue, 10 Jan 2023 04:08:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2023-01-10-back-to-making-shiny-things/</guid><description>
Comments from Blogger
Tim Blakely &amp;amp;mdash; January 11, 2023 at 08:49 PM
Solid surface finish! That all by hand, or did you upgrade the Clausing to CNC?
Ben Katz &amp;amp;mdash; January 11, 2023 at 11:09 PM
Manual. The large radii are done with a large button insert</description></item><item><title>Lathe DRO Installation</title><link>https://robot-daycare.com/posts/2022-11-26-lathe-dro-installation/</link><pubDate>Sat, 26 Nov 2022 01:42:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-11-26-lathe-dro-installation/</guid><description>I installed a DRO on the&amp;amp;nbsp;Clausing.&amp;amp;nbsp; I got Aikron scales and console - the LCD console, a 1 micron slim magnetic scale for the cross slide, and 5 micron standard width scale for the carriage.&amp;amp;nbsp; So far I&amp;#39;m very happy with it - the user interface is better than some US-made, much more expensive DRO&amp;#39;s I&amp;#39;ve used, and being able to store a library of tool offsets is a real game changer - all the lathes I&amp;#39;ve used until now have been communal (and thoroughly abused...), so even though some of them had DRO&amp;#39;s none of them had proper tool libraries.&amp;amp;nbsp; Tool libraries make turning so much more efficient, and for tolerances over 50um or so I don&amp;#39;t even need to measure anything.&amp;amp;nbsp;</description></item><item><title>Mini Cheetah Clone Teardown</title><link>https://robot-daycare.com/posts/2022-11-02-mini-cheetah-clone-teardown/</link><pubDate>Wed, 02 Nov 2022 12:11:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-11-02-mini-cheetah-clone-teardown/</guid><description>Not long after my masters thesis went online, clones of the mini cheetah actuators started showing up on AliExpress/Alibaba.&amp;amp;nbsp; Within another six months, there were clones of the whole robot.&amp;amp;nbsp; A dream outcome for the project - early on in the project I joked that it would be great if I could buy the stuff I designed from China cheaper than I could make it for (hence the original name, HobbyKing Cheetah), but it really happened.&amp;amp;nbsp; Now, a few years later, I have one of the clones.&amp;amp;nbsp;&amp;amp;nbsp;
Bayley&amp;amp;nbsp;(who also has one of these robots)&amp;amp;nbsp; put me in touch with someone from Dogotix (or as the manual calls it, Shenzhen Dogo Robot Technology Co., Ltd.).&amp;amp;nbsp; He said something to the effect of &amp;#34;I&amp;#39;m not making them any more but my friend still is, we&amp;#39;ll put one together for you&amp;#34;.&amp;amp;nbsp; And a month or so later a robot appeared.&amp;amp;nbsp; Robots identical to the one I got seem to be available from a variety of places (AliExpress from multiple sellers, RobotDigg), so I&amp;#39;m still not sure if there&amp;#39;s just one manufacture behind the scenes, or several building the exact same thing.
And here it is:</description></item><item><title>Mini Cheetah Clone First Test Drive</title><link>https://robot-daycare.com/posts/2022-09-25-mini-cheetah-clone-first-test-drive/</link><pubDate>Sun, 25 Sep 2022 23:26:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-09-25-mini-cheetah-clone-first-test-drive/</guid><description>&amp;amp;nbsp;One of the Chinese mini cheetah clone manufacturers was nice enough to send me one.&amp;amp;nbsp; Stay tuned for a&amp;amp;nbsp; detailed (non-destructive) teardown.
Comments from Blogger
Anonymous &amp;amp;mdash; September 28, 2022 at 07:49 PM
looking forward to it :). Even though your work was brilliant, maybe the chinese where able to simplify it even more and make it even better to manufacture and assemble?</description></item><item><title>More Coiling</title><link>https://robot-daycare.com/posts/2022-08-30-more-coiling/</link><pubDate>Tue, 30 Aug 2022 03:45:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-08-30-more-coiling/</guid><description>Once again Mike&amp;#39;s tesla coil worked flawlessly - at least until someone tripped over the extension cord powering a fan cooling the primary capacitor bank.&amp;amp;nbsp; We didn&amp;#39;t notice until the capacitor bank burst into flames.
&amp;amp;nbsp;</description></item><item><title>Varying Pitch Screw Robot: Finishing the Mechanism and First Tests</title><link>https://robot-daycare.com/posts/2022-07-10-varying-pitch-screw-robot-finishing-the-mechanism-/</link><pubDate>Sun, 10 Jul 2022 19:47:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-07-10-varying-pitch-screw-robot-finishing-the-mechanism-/</guid><description>Here&amp;#39;s the detailed post to go with the pictures and videos I&amp;#39;ve been dribbling out over the last few months.
Last episode the mechanism was mostly finished, and was just missing the guide rollers that constrain the screw to linear motion and react the motor torque on the screw.
Looking at the CAD cross section, there are 3 sets of 3 rollers ride in shallow axial grooves on the screw.&amp;amp;nbsp; The roller are spaced so that the screw is always supported, even as the rollers pass over the spiral grooves in the screw.&amp;amp;nbsp; In the cross-section below, the red things are pairs of flanged bearings supporting the rollers.</description></item><item><title>First outdoor tests of the screw mechanism!</title><link>https://robot-daycare.com/posts/2022-06-27-first-outdoor-tests-of-the-screw-mechanism/</link><pubDate>Mon, 27 Jun 2022 04:16:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-06-27-first-outdoor-tests-of-the-screw-mechanism/</guid><description>&amp;amp;nbsp;Gremlins eradicated - USB hubs are&amp;amp;nbsp; bad, don&amp;#39;t use them:
&amp;#34;Only&amp;#34; ~3.3 meters in this test - not maxing out the motor/mechanism yet, there&amp;#39;s still some motor control tuning to do.&amp;amp;nbsp; And probably another round of transmission ratio optimization once the actual robot mass and inertia get finalized.
Comments from Blogger
Felipe Depine &amp;amp;mdash; June 27, 2022 at 02:11 PM
Amazing work, thanks for posting Ben!
Tim Blakely &amp;amp;mdash; June 28, 2022 at 02:43 AM
Hah, yeah, hubs - especially unpowered ones - have caused many a headache. Though on the flip side, on occasion have saved my bacon by letting out the magic smoke before the computer they were connected to did...
And wow, 9m? Is that a _scale_ 9m, where the actual robot would weigh much more and the peak height much less? If not, that&amp;amp;#39;s... a lot of potential energy coming down on, say, a foot/toe... :)
Ben Katz &amp;amp;mdash; June 28, 2022 at 03:20 AM
This USB hub is particularly bad, it&amp;amp;#39;s one of those USB-C to many USB A + HDMI ones, everything acts kind of weird plugged into it. Like my logitech mouse only works with 2 of the 4 usb ports. Took me way too long to realize that was the problem given how many other issues I&amp;amp;#39;ve had with this hub, but everything almost worked with it...
Actually 9m seems achievable if I can hit ~750g total robot weight.
Tim Blakely &amp;amp;mdash; June 28, 2022 at 05:38 AM
Oh man that&amp;amp;#39;s the most frustrating debug scenario: when things *kind* of work, but only sometimes, and never repeatedly, but only under certain bizarre conditions. Reminds me of the RPi2 Xenon Death Flash craziness...
If the goal is to hit 9m all the better! If anyone can do it you can ;) Are you designing the control system around the assumption you&amp;amp;#39;ve got 9m of jump space, or will the reaction wheels have the bandwidth to handle lower jumps as well?
Tim Blakely &amp;amp;mdash; June 28, 2022 at 05:41 AM
Oh, one thought: add a 2x4 or something to distribute the foot load. I&amp;amp;#39;ll bet you&amp;amp;#39;re losing a non insignificant it of energy to elastic dirt reaction forces/compressibility.
Ben Katz &amp;amp;mdash; June 29, 2022 at 01:02 AM
Yeah, I certainly want to be able to stabilize standing and small hops. Reaction wheels are a little tricky to package though, I might have to choose one &amp;amp;quot;good&amp;amp;quot; axis with a larger diameter reaction and smaller reaction wheels on the other axes.
Enginethrust &amp;amp;mdash; June 30, 2022 at 05:02 PM
Wooooooohhhha. Really glad to see such a pleasant outcome after all the work you put in over the last years. It can only get better. This is going to be very awesome! Thank you for taking us along the way!</description></item><item><title>Finished Test Fixture</title><link>https://robot-daycare.com/posts/2022-06-22-finished-test-fixture/</link><pubDate>Wed, 22 Jun 2022 02:25:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-06-22-finished-test-fixture/</guid><description>
A robot-weight steel puck:
Test setup outside, before being beset by electrical gremlins:
Comments from Blogger
Anonymous &amp;amp;mdash; June 22, 2022 at 10:35 PM
Love it, eagerly awaiting updates and resolution of gremlins
Anonymous &amp;amp;mdash; June 25, 2022 at 01:44 PM
Lel shooting steel disks into the sky 🌌. Cool and nice rail! McMaster?
Ben Katz &amp;amp;mdash; June 25, 2022 at 11:15 PM
Generic 20mm 80-20 knock-off, same profile as used in the creality ender 3d printers.</description></item><item><title>Hopper test fixture</title><link>https://robot-daycare.com/posts/2022-06-01-hopper-test-fixture/</link><pubDate>Wed, 01 Jun 2022 02:30:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-06-01-hopper-test-fixture/</guid><description>Not done yet, but almost ready for some high-power testing.
&amp;amp;nbsp;
Comments from Blogger
Anonymous &amp;amp;mdash; June 04, 2022 at 11:28 AM
Why do you make the pockets for the profiles like that? Thin aluminum out where the force of the profiles would go through? Fit is very large, profile seems to have 1mm space on all sides in the pocket. Maybe its because i only see part of the mechanism.
Anonymous &amp;amp;mdash; June 04, 2022 at 11:32 AM
ah is it for easier assembly so that you dont have to hold the profile when screwing in the screw from behind?
Ben Katz &amp;amp;mdash; June 04, 2022 at 01:49 PM
It only looks like there&amp;amp;#39;s a large clearance between the pocket and the profile because of the chamfer around the pocket. It&amp;amp;#39;s actually a very close fit. It&amp;amp;#39;s just for alignment, there&amp;amp;#39;s going to be a similar part on the other end of the assembly Anonymous &amp;amp;mdash; June 04, 2022 at 02:21 PM
Ah i see, top work as always :)
Felipe Depine &amp;amp;mdash; June 06, 2022 at 01:15 AM
Is that the original spindle? ATC?
Ben Katz &amp;amp;mdash; June 06, 2022 at 01:27 AM
I added a Mechatron ISO 10 ATC spindle adapter so I can quickly do manual tool changes and keep tool offsets.</description></item><item><title>More Screw Mechanism Testing</title><link>https://robot-daycare.com/posts/2022-05-10-more-screw-mechanism-testing/</link><pubDate>Tue, 10 May 2022 03:16:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-05-10-more-screw-mechanism-testing/</guid><description>&amp;amp;nbsp;Now controlled over CAN and USB, using a gui based on the&amp;amp;nbsp;espresso machine&amp;amp;nbsp;software
The the USB communication plus Python GUI gives me nice live-plots and logs.&amp;amp;nbsp; Here&amp;#39;s a plot of the fast position steps:
Comments from Blogger
Tim Blakely &amp;amp;mdash; May 10, 2022 at 06:32 AM
Huh. PSU showed up to 4.8xA for “unloaded&amp;amp;quot; movement. What kind of power do you think you&amp;amp;#39;ll need, instantaneous and/or continuous?
Ben Katz &amp;amp;mdash; May 10, 2022 at 12:02 PM
I wouldn&amp;amp;#39;t call it &amp;amp;quot;unloaded&amp;amp;quot;, most of the energy goes into the rotor at the beginning of the stroke.
The transmission ratio was optimized around a ~1kw motor output power constraint. The duty cycle will be very low though.
Anonymous &amp;amp;mdash; May 11, 2022 at 05:31 PM
Yooooooo. This is starting to look very interesting!</description></item><item><title>Screw moving under power</title><link>https://robot-daycare.com/posts/2022-04-29-screw-moving-under-power/</link><pubDate>Fri, 29 Apr 2022 04:18:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-04-29-screw-moving-under-power/</guid><description>&amp;amp;nbsp;
Comments from Blogger
Anonymous &amp;amp;mdash; April 29, 2022 at 08:12 PM
Where are you going to put the E-stop? :)
Anonymous &amp;amp;mdash; May 01, 2022 at 09:16 PM
Cool! It&amp;amp;#39;s great that the steep pitch at full extension also helps with landing.
Anonymous &amp;amp;mdash; May 03, 2022 at 03:24 PM
Very cool :))</description></item><item><title>Guide Rollers</title><link>https://robot-daycare.com/posts/2022-04-27-guide-rollers/</link><pubDate>Wed, 27 Apr 2022 04:08:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-04-27-guide-rollers/</guid><description>Putting the lathe to work:</description></item><item><title>CPW Coiling</title><link>https://robot-daycare.com/posts/2022-04-20-cpw-coiling/</link><pubDate>Wed, 20 Apr 2022 04:10:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-04-20-cpw-coiling/</guid><description>&amp;amp;nbsp;Austin and I turned on Mike&amp;#39;s tesla coil in the parking lot outside MITERS, for MIT&amp;#39;s Campus Preview Weekend.&amp;amp;nbsp; One precharge switch and resistor got toasted, but otherwise it ran flawlessly for two nights in a row:</description></item><item><title>Clausing 4901 Moving and Restoration</title><link>https://robot-daycare.com/posts/2022-04-19-clausing-4901-moving-and-restoration/</link><pubDate>Tue, 19 Apr 2022 04:56:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-04-19-clausing-4901-moving-and-restoration/</guid><description>&amp;amp;nbsp;I&amp;#39;ve been keeping my eye out on craiglist and machinery auctions for a small (but not that&amp;amp;nbsp;small) lathe for a while now, but small lathes (other than import mini-lathes) are pretty uncommon.&amp;amp;nbsp; Someone&amp;amp;nbsp;Austin&amp;amp;nbsp;knows just bought a house just a few miles away from me with this Clausing 4900-series lathe in the basement, so we visited to take a look:
The scale of this lathe really didn&amp;#39;t come across in photographs - it&amp;#39;s way smaller than I originally thought from the pictures.&amp;amp;nbsp; MITERS has a Clausing lathe of the same era, a 6918, which looks almost exactly the same but scaled up around 50% in every direction - from the original pictures I saw, I was expecting something more like the MITERS-lathe.&amp;amp;nbsp;</description></item><item><title>Chips</title><link>https://robot-daycare.com/posts/2022-04-15-chips/</link><pubDate>Fri, 15 Apr 2022 03:17:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-04-15-chips/</guid><description>Lathe restoration has gone much more smoothly than anticipated:
Comments from Blogger
Anonymous &amp;amp;mdash; April 15, 2022 at 05:48 AM
Congrats on your new tool :)</description></item><item><title>Lathe Preview</title><link>https://robot-daycare.com/posts/2022-04-12-lathe-preview/</link><pubDate>Tue, 12 Apr 2022 02:49:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-04-12-lathe-preview/</guid><description>Lathe backstory and move post to come, but here&amp;#39;s a sneak-peak.&amp;amp;nbsp; Lots to do still to get it up and running, but so far I&amp;#39;ve been amazed by how little wear there is under all the gunk.
Comments from Blogger
Anonymous &amp;amp;mdash; April 15, 2022 at 05:46 AM
Looooool i love how you just have this in what appears to be a living room.
Felipe Depine &amp;amp;mdash; April 15, 2022 at 02:56 PM
Beautiful machine! Tool Shed in Waltham might have accessories and tooling for a lathe like this. Ben Katz &amp;amp;mdash; April 15, 2022 at 02:59 PM
Thanks! Yeah, tool shed is great. Fortunately the lathe came with a ot of accessories - tool post, a bunch of holders, steady rest, and a metric threading change gear set
Anonymous &amp;amp;mdash; April 18, 2022 at 05:44 AM
Nice wok you got there. Food in there looks like my kind of stuff, delicious 😋</description></item><item><title>Tool Holder Tightening Fixture</title><link>https://robot-daycare.com/posts/2022-03-30-tool-holder-tightening-fixture/</link><pubDate>Wed, 30 Mar 2022 00:17:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-03-30-tool-holder-tightening-fixture/</guid><description>&amp;amp;nbsp;
Needs a cam handle, but it works.&amp;amp;nbsp; 3 different brands of tool holders with 3 different torqueing features, so I made this fixture that clamps a cylindrical section of the tool holder, which is the same on all of them
Comments from Blogger
Anonymous &amp;amp;mdash; April 02, 2022 at 09:16 AM
Nice elegant one piece design :))</description></item><item><title>Varying pitch screw robot build progress</title><link>https://robot-daycare.com/posts/2022-02-28-varying-pitch-screw-robot-build-progress/</link><pubDate>Mon, 28 Feb 2022 00:39:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-02-28-varying-pitch-screw-robot-build-progress/</guid><description>Lots of progress on the jumping robot based on this mechanism.
To start off, here&amp;#39;s a cross section of the core mechanism.&amp;amp;nbsp;&amp;amp;nbsp;
At the center of the mechanism is the varying pitch screw (or barrel cam).&amp;amp;nbsp; The screw passes through a &amp;#34;nut&amp;#34; with two cam followers, which drives the screw axially as it turns.&amp;amp;nbsp; The nut directly supports the rotor of an electric motor (specifically a T-motor RI50).&amp;amp;nbsp; The screw passes through the center of the motor&amp;#39;s stator, and is constrained by a guide bushing at the top, and 3 sets of guide rollers at the bottom, which roll in axial grooves on the screw and react the motor torque.</description></item><item><title>Another weird part</title><link>https://robot-daycare.com/posts/2022-02-27-another-weird-part/</link><pubDate>Sun, 27 Feb 2022 18:26:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-02-27-another-weird-part/</guid><description>
Turning off the fixturing boss from milling:
Undercut boss machining:
Comments from Blogger
Tim Blakely &amp;amp;mdash; March 02, 2022 at 08:10 PM
Not only that, the inner mount offsets (filleted holes next to the tool in 2nd to last pic) ended up coming out really well! Was there much chatter on the thin walls?
Ben Katz &amp;amp;mdash; March 02, 2022 at 11:35 PM
There was chatter in the internal corners from the long tool and full corner engagement, but the profiled parts of those faces worked well.</description></item><item><title>Ioniq HSG</title><link>https://robot-daycare.com/posts/2022-02-20-ioniq-hsg/</link><pubDate>Sun, 20 Feb 2022 21:16:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-02-20-ioniq-hsg/</guid><description>
Comments from Blogger
Vish &amp;amp;mdash; February 23, 2022 at 12:30 AM
Is this a special type of motor. The windings looks different and are there any documents that I could look into Ben Katz &amp;amp;mdash; February 23, 2022 at 12:34 AM
It&amp;amp;#39;s an internal permanent magnet motor (IPM) with a distributed winding. Nearly every induction motor has this kind of winding, as do many hybrid car/EV motors.
grz &amp;amp;mdash; February 23, 2022 at 03:39 PM
Want to strip it for the weight or use it watercooled for full power?
How much torque you want from it?
Ben Katz &amp;amp;mdash; February 23, 2022 at 04:22 PM
Thinking about re-housing it with a transmission, like a mini drive unit.
I tested the original Sonata HSG up to 60 N-m, this one is probably similar.</description></item><item><title>Foot Mechanism Prototype</title><link>https://robot-daycare.com/posts/2022-02-11-foot-mechanism-prototype/</link><pubDate>Fri, 11 Feb 2022 00:28:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-02-11-foot-mechanism-prototype/</guid><description>&amp;amp;nbsp;Quick and dirty prototype of a passive foot pitch mechanism:
CAD cross section:
To make a return spring I flattened the end of a 1mm spring steel rod and drilled a 1mm hole through the end for a dowel pin axle:
A drilled out screw acts as a guide bushing for the spring:</description></item><item><title>Motor housing</title><link>https://robot-daycare.com/posts/2022-01-30-motor-housing/</link><pubDate>Sun, 30 Jan 2022 19:22:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-01-30-motor-housing/</guid><description>
Comments from Blogger
Tim Blakely &amp;amp;mdash; January 30, 2022 at 11:52 PM
Very nice 3d machining! How did you fixture the 2nd op to deck off the remaining stock for both pieces?
Ben Katz &amp;amp;mdash; January 31, 2022 at 03:46 AM
The larger half was bolted down from the underside through the four tapped holes.
The smaller half was done in two steps - first I put an m6 bolt through the center and machined the outside of the part. Then I put fasteners in the 4 spotfaced holes, into tapped holes in the fixture plate, removed the center m6, and machined away the slug left in the middle.
Anonymous &amp;amp;mdash; February 02, 2022 at 07:59 PM
Sexy AF!</description></item><item><title>Organization</title><link>https://robot-daycare.com/posts/2022-01-26-organization/</link><pubDate>Wed, 26 Jan 2022 03:49:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-01-26-organization/</guid><description>I was inspired by my friend Ethan to finally start organizing my fasteners and other little bits of hardware:
Ethan designed these 3d-printable stacking sub-bins - I have a lot of small fasteners, so these were really helpful:
Beginning of the stack:</description></item><item><title>Spinning things!</title><link>https://robot-daycare.com/posts/2022-01-15-spinning-things/</link><pubDate>Sat, 15 Jan 2022 03:31:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-01-15-spinning-things/</guid><description>It spins!&amp;amp;nbsp; A good end to the most productive week I&amp;#39;ve had in quite a while (on personal projects, at least):
More spinning things: turning the 3mm cam followers:
Tiny cam follower shafts done.&amp;amp;nbsp; Thumb for scale:
Assembled cam follower &amp;#34;spindles&amp;#34; with a bearings:</description></item><item><title>Undercutting tool</title><link>https://robot-daycare.com/posts/2022-01-12-undercutting-tool/</link><pubDate>Wed, 12 Jan 2022 04:45:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-01-12-undercutting-tool/</guid><description>I needed an undercutting tool for the part in the last post, so I made one from an old HSS end mill.
ER32 chuck loosely held in an ER40 collet, serving as a manual rotary/linear axis.&amp;amp;nbsp; Grinding wheel in the mill spindle:</description></item><item><title>Screw mechanism progress</title><link>https://robot-daycare.com/posts/2022-01-09-screw-mechanism-progress/</link><pubDate>Sun, 09 Jan 2022 05:01:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2022-01-09-screw-mechanism-progress/</guid><description>&amp;amp;nbsp;Machining the rotor/cam nut for the screw mechanism:
Turned on a manual lathe to this point, then milled on the 5-axis:
Mid-finishing passes:
Comments from Blogger
Anonymous &amp;amp;mdash; January 09, 2022 at 05:26 PM
Ohh you will make a custom integrated actuator for this? Exiting! The gif is very satisfying!
Ben Katz &amp;amp;mdash; January 09, 2022 at 07:48 PM
Yep, the screw will pass through the center of the motor, and the rotor will be directly mounted to the part in this post.
Anonymous &amp;amp;mdash; January 10, 2022 at 11:27 AM
So advanced! If someone can pull it off, it is you!</description></item><item><title>Today's contraption</title><link>https://robot-daycare.com/posts/2021-11-14-today-s-contraption/</link><pubDate>Sun, 14 Nov 2021 04:14:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-11-14-today-s-contraption/</guid><description>The astute reader can probably figure out what this is and what it&amp;#39;s a test setup for:
Oh how I missed you, MITERS Hardinge
Comments from Blogger
klonyyy &amp;amp;mdash; November 14, 2021 at 12:25 PM
Balancing mechanism for the variable pitch lead screw pogo-stick robot? :D Tim Blakely &amp;amp;mdash; November 16, 2021 at 07:15 PM
Hah, yup, RWs :) Interesting housing... looks like it was sintered? Metal or some kind of impregnated epoxy?
Ben Katz &amp;amp;mdash; November 16, 2021 at 07:22 PM
It&amp;amp;#39;s nylon. We have an HP MJF printer at work we can use for personal projects. It&amp;amp;#39;s awesome
Anonymous &amp;amp;mdash; November 20, 2021 at 11:03 AM
Beat me to it haha :D
Nathan Kim &amp;amp;mdash; November 30, 2021 at 07:11 AM
Do those controllers have electrolytic bulk capacitors on the back sides of the boards or are you using that 2x4 array of ceramics?
Ben Katz &amp;amp;mdash; December 06, 2021 at 02:09 AM
No electrolytics, just ceramics. Depends on your battery + wiring impedance, but for most circumstances I haven&amp;amp;#39;t found electrolytics to be helpful.</description></item><item><title>It exists!</title><link>https://robot-daycare.com/posts/2021-11-11-it-exists/</link><pubDate>Thu, 11 Nov 2021 16:25:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-11-11-it-exists/</guid><description>
Comments from Blogger
Joe Fahey &amp;amp;mdash; November 11, 2021 at 06:08 PM
Wow, now that&amp;amp;#39;s some candy cane. Is it some sort of variable pitch lead screw?
Joe Fahey &amp;amp;mdash; November 12, 2021 at 01:10 PM
Just read through some of your previous posts relating to this (apologies, I&amp;amp;#39;m new to the blog). Excellent concept and excellent machining!
Enginethrust &amp;amp;mdash; November 13, 2021 at 10:59 AM
Exciting! Really looking forward to the test!
Tim Blakely &amp;amp;mdash; November 13, 2021 at 07:07 PM
Really curious to see the assembled actuator, since I&amp;amp;#39;m finding it hard to imagine it being anything but unwieldy in it&amp;amp;#39;s stored/ready state on a legged platform. Looks too long to be on lower/upper segment of MC, and too weak to support a larger platform. Pogo stick style perhaps?
Ben L &amp;amp;mdash; December 04, 2021 at 06:04 PM
Can’t wait for the action shots.</description></item><item><title>*gloop*</title><link>https://robot-daycare.com/posts/2021-10-11-gloop/</link><pubDate>Mon, 11 Oct 2021 23:47:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-10-11-gloop/</guid><description>&amp;amp;nbsp;</description></item><item><title>Closed Loop Espresso Part 2: Firmware Estimation and Control</title><link>https://robot-daycare.com/posts/2021-09-09-closed-loop-espresso-part-2-firmware-estimation-an/</link><pubDate>Thu, 09 Sep 2021 03:57:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-09-09-closed-loop-espresso-part-2-firmware-estimation-an/</guid><description>I&amp;#39;ve made a lot of progress on the software and control side of the espresso machine, and learned some good lessons about designing the real version of the machine.
This is the first post in a series about the firmware/software, more to come soon.
To &amp;#34;spill the beans&amp;#34;, as people at work say, here&amp;#39;s a demo of the current state of the machine:
Here&amp;#39;s what&amp;#39;s going on while making the espresso in the video:After the &amp;#34;Start&amp;#34; button is pressed, water is pumped through the heater and back into the tank at a constant flow rate, and the water/group heaters start heating.Once both temperatures have converged to their setpoint, flow is switched from from the tank to the group.&amp;amp;nbsp; At first, the water is flushed through the group to the drip tray, to purge air from the group.Once the air is purged, the valve to the drip tray closes and &amp;#34;preinfusion&amp;#34; starts.&amp;amp;nbsp; The group is filled up at a constant flow rate.Once the desired shot pressure is reached (indicating the group is full and puck is saturated with water), the machine switches over to pressure control, and holds a constant pressure for the remainder of the shot.Once the desired output weight is reached (for now estimated by integrating a pump displacement/leak model), flow to the group is controlled to zero and excess pressure is vented to the drip tray, so the drips through the puck stop quickly.On to the subject of this post, firmware-level estimation and control
Flow Estimation</description></item><item><title>Espresso machine software testing</title><link>https://robot-daycare.com/posts/2021-08-13-espresso-machine-software-testing/</link><pubDate>Fri, 13 Aug 2021 02:56:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-08-13-espresso-machine-software-testing/</guid><description>&amp;amp;nbsp;Testing a mostly-functional espresso machine gui.&amp;amp;nbsp; Somewhat Decent inspired.&amp;amp;nbsp; While I don&amp;#39;t have an interface for creating espresso profiles from within the gui, I can write arbitrary espresso profiles/state machines in python which is pretty powerful.&amp;amp;nbsp; Testing with the Puck Simulator.
The profile in the video does the following:Cycle water through the tank at 2 mL/s until the water and the group head get up to temperature (I cheated this in the video and turned off heater power)Flow water through the group head to the drip tray at 2 mL/s for 2 seconds to purge the air from the group.Block off the drip tray, flow to the group at 2 mL/s until the pressure reaches 6 bars.Run at a flat 6 bars until the shot weight (estimated from the pump speed/pressure/flow curve since I don&amp;#39;t have a built-in scale yet) reaches 32 grams.Open the valve between the drip tray and group head to rapidly purge pressure (so it doesn&amp;#39;t keep dripping)Reset to the beginning and wait for input.
Comments from Blogger
Zach T. &amp;amp;mdash; August 13, 2021 at 12:10 PM
What are your next steps for this? :) Ben Katz &amp;amp;mdash; August 14, 2021 at 01:46 AM
There&amp;amp;#39;s a whole lot of packaging and integration to do. Basically everything is going to get remade. I want to get the software fast enough to run on a raspberry pi or similar SBC that could be intergrated into a machine. And in the mean time, actually make espresso with it :)</description></item><item><title>Adjustable Puck Simulator</title><link>https://robot-daycare.com/posts/2021-08-04-adjustable-puck-simulator/</link><pubDate>Wed, 04 Aug 2021 00:33:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-08-04-adjustable-puck-simulator/</guid><description>Needle valve + basket with the bottom cut out + aluminum &amp;#34;puck&amp;#34; with an o-ring = adjustable coffee puck simulator.</description></item><item><title>Mill enclosure is almost done</title><link>https://robot-daycare.com/posts/2021-07-12-mill-enclosure-is-almost-done/</link><pubDate>Mon, 12 Jul 2021 01:01:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-07-12-mill-enclosure-is-almost-done/</guid><description>
&amp;amp;nbsp;
Comments from Blogger
Tim Blakely &amp;amp;mdash; July 14, 2021 at 07:23 PM
Very nice! I assume taking as small bites as you do, the rigidity loss from the wheeled cart isn&amp;amp;#39;t an issue, ya? Not sure how it&amp;amp;#39;d affect the finish quality, but an upgrade to consider is changing the base to a grated surface and add a shallow removable chip drawer underneath the enclosure. Makes cleanup _so_ much easier :)
Ben Katz &amp;amp;mdash; July 15, 2021 at 02:37 AM
No rigidity issues with the wheeled cart, the machine already sits on feet that aren&amp;amp;#39;t bolted down anyway.
A chip drawer is a great idea! That would actually be super easy to add in - there are already aluminum extrusion spans directly under the machine&amp;amp;#39;s legs - the floor isn&amp;amp;#39;t structural. So I&amp;amp;#39;d just need to remove the floor and add a drawer beneath.
Anonymous &amp;amp;mdash; November 08, 2022 at 11:04 PM
Cool! What thinkpad is it? Im thinking of buying an older thinkpad for the same usage</description></item><item><title>Mill Enclosure</title><link>https://robot-daycare.com/posts/2021-07-06-mill-enclosure/</link><pubDate>Tue, 06 Jul 2021 03:08:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-07-06-mill-enclosure/</guid><description>&amp;amp;nbsp;Last Sunday I whipped up an enclosure design for the mill to replace the shipping crate.&amp;amp;nbsp; It&amp;#39;s entirely made from 2d laser cut panels (I used SendCutSend, introduced to me by Alex.&amp;amp;nbsp; A+ would use again) standard lengths of 3d-printer aluminum extrusion, and off the shelf hardware.&amp;amp;nbsp; I&amp;#39;ll post CAD in case it&amp;#39;s useful to anyone else with this mill once I&amp;#39;ve made any tweaks I need to:</description></item><item><title>Half way done</title><link>https://robot-daycare.com/posts/2021-06-29-half-way-done/</link><pubDate>Tue, 29 Jun 2021 03:56:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-06-29-half-way-done/</guid><description>
One section done, one section half machined.&amp;amp;nbsp; Now that I have working toolpaths, I can mostly copy/pasted between parts/sides and just re-select the appropriate geometry.&amp;amp;nbsp;&amp;amp;nbsp;
The first finished section of the part:
Here&amp;#39;s a quick look at all the toolpaths.&amp;amp;nbsp; Once it&amp;#39;s done I&amp;#39;ll do a real blog post with machining details:</description></item><item><title>The scrap pile grows....</title><link>https://robot-daycare.com/posts/2021-06-04-the-scrap-pile-grows/</link><pubDate>Fri, 04 Jun 2021 04:53:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-06-04-the-scrap-pile-grows/</guid><description>
The most recent attempt was so close.&amp;amp;nbsp; As usual, got wrecked by the final tool change.&amp;amp;nbsp; Not sure what happened (maybe I just forgot to touch off?), but the final tool, which finished the linear guide grooves, was about 1mm too deep.&amp;amp;nbsp;&amp;amp;nbsp;
This op is 1/6 of the whole part.&amp;amp;nbsp; Eventually 3 of these, machined on both sides, will get joined by a tie rod.</description></item><item><title>Gratuitous simultaneous 5-axis</title><link>https://robot-daycare.com/posts/2021-05-20-gratuitous-simultaneous-5-axis/</link><pubDate>Thu, 20 May 2021 03:57:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-05-20-gratuitous-simultaneous-5-axis/</guid><description>I&amp;#39;ve just done 3+2 machining up until now, and haven&amp;#39;t tried any simultaneous 5-axis toolpaths.&amp;amp;nbsp; Not an exciting part or feature - just a few countersinks - but the real accomplishment here is that zero endmills were sacrificed making this gif:
&amp;amp;nbsp;
Comments from Blogger
Jon &amp;amp;mdash; May 20, 2021 at 01:21 PM
Wow, that tool path is insane for such a simple operation. Very cool to watch.
Tim Blakely &amp;amp;mdash; May 25, 2021 at 04:38 PM
Still liking the machine so far? Entertaining getting one to complement my larger 3 axis, but feels kind of odd going from a larger envelope with fewer axes to a smaller one with more...
Ben Katz &amp;amp;mdash; May 26, 2021 at 02:22 AM
If I had a beefier 3-axis (especially with a removable 4th axis) I&amp;amp;#39;m not sure I&amp;amp;#39;d ever use this machine. Most of the time, the more powerful machine + multiple setups would end up faster, unless you&amp;amp;#39;re doing very small parts with ops on all sides.
It has some weird quirks/sketchy bits, but overall I&amp;amp;#39;m still liking it.</description></item><item><title>Stainless Shaft</title><link>https://robot-daycare.com/posts/2021-05-19-stainless-shaft/</link><pubDate>Wed, 19 May 2021 01:18:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-05-19-stainless-shaft/</guid><description>&amp;amp;nbsp;Making a stainless shaft.&amp;amp;nbsp; Nothing super fancy, but it turned out pretty nice so here are some photos.&amp;amp;nbsp; Turned on the tiny lathe, threads/hex/keyway done on the mill
Thread milling makes it super easy to thread right up to a shoulder:</description></item><item><title>Varying pitch screw machining</title><link>https://robot-daycare.com/posts/2021-05-02-varying-pitch-screw-machining/</link><pubDate>Sun, 02 May 2021 14:56:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-05-02-varying-pitch-screw-machining/</guid><description>I didn&amp;#39;t forget about this!
Precision anti-chatter stick:
Comments from Blogger
Eric McGraw &amp;amp;mdash; May 04, 2021 at 12:49 PM
Hi Ben,
For the past few years I have been working on a very similar concept of kinetic energy transfer via a variable pitch cylindrical cam, so I was pleasantly surprised to have come across your project. I also derived my transmission ratio curve in a similar way by enforcing conservation of energy across discrete steps of the solution then minimizing my objective function, so it was quite satisfying and validating to see that you followed a similar route.
What I&amp;amp;#39;m struggling with, which you hinted at in your previous post, is the exact shape of the rolling cam followers. Since my implementation will be on a much larger scale, I am trying to figure out how to optimize the efficiency by choosing a rolling follower shape and conjugate cam surface geometry which will operate across the varying pitch range with no or minimal slipping (like a car wheel steering at a slip angle) and without &amp;amp;quot;scrubbing&amp;amp;quot; (like trying to roll a cone in a straight line across a flat plane).
So far, I&amp;amp;#39;ve managed to work out that a hyperboloid can roll without slipping on a constant-pitch helicoid, but its axis must be offset and this offset distance changes along with pitch, which will not work since we need pitch to vary. In the end I may have to set up another generalized free-form shape and somehow optimize it in a similar way by minimizing the relative velocities along the contact line.
Have you given any thought to this aspect? I imagine at the scale of your mechanism such details aren&amp;amp;#39;t worth the effort, but I&amp;amp;#39;m nonetheless curious what ideas you might have for approaching it.
Props on the impressive engineering, I&amp;amp;#39;m really looking forward to seeing your prototype in action!
Eric
Ben Katz &amp;amp;mdash; May 04, 2021 at 02:24 PM
Hi Eric,
I&amp;amp;#39;ve thought about it a little bit, but haven&amp;amp;#39;t done any detailed analysis. Having a cylindrical cam follower (like I&amp;amp;#39;ve shown) is about as bad as it gets, although as the ratio of cam diameter to cam follower length goes up, it gets better - rolling a cylinder along a flat surface in an arc, there&amp;amp;#39;s less scrubbing as the arc diameter goes up or the cylinder length goes down.
The &amp;amp;quot;easy&amp;amp;quot; improvement I see is making the cam follower tapered. If the point of the cone that defines the tapered cam follower intersects the screw axis, then at least for shallow helix angles there should be much less scrubbing - at zero helix angle, it&amp;amp;#39;s a tapered roller bearing so there&amp;amp;#39;s no scrubbing. I haven&amp;amp;#39;t worked through what happens as helix angle increases, though.
Enginethrust &amp;amp;mdash; May 05, 2021 at 05:44 PM
o.O lets gooooo
Anonymous &amp;amp;mdash; May 10, 2021 at 02:40 AM
Hi Ben,
Sorry for the possibly stupid question; I&amp;amp;#39;m in high school, so still an engineering novice. Could you elaborate on what exactly the inefficiencies are with a circular cam follower? I understand the concept of the follower scrubbing - the walls on either side of the cam aren&amp;amp;#39;t perfectly parallel- and why a noncircular follower might fix this. But I don&amp;amp;#39;t get what the issue is with slipping (if all you want is the follower to travel with minimal friction, why do you care if it slips?), and how a non cylindrical cam follower remedies it. Ben Katz &amp;amp;mdash; May 10, 2021 at 03:22 AM
Hi Jeffrey,
What I&amp;amp;#39;m calling &amp;amp;quot;scrubbing&amp;amp;quot; doesn&amp;amp;#39;t have to do with the cam walls not being parallel. It has to do with the radius increasing as you go radially outward on the cam surface. Since the radius increases, the linear velocity of the points on the cam surface also increase. With a cylindrical cam follower, all the points contacting the cam move at the same velocity as each other, since the cam follower radius is constant. So there must be a velocity difference between some points on the cam follower and some points on the cam. This relative velocity is what I&amp;amp;#39;m calling &amp;amp;quot;scrubbing&amp;amp;quot;, and it results in a friction torque on the cam. It&amp;amp;#39;s equivalent to forcing a cylinder to roll around an arc on a flat surface - naturally it &amp;amp;quot;wants&amp;amp;quot; to roll in a line - you have to apply a torque to the cylinder to get it to roll in an arc. A cone, on the other hand, naturally rolls in an arc on a flat surface (or on another cone of the right angle). This is how tapered roller bearings work without the rollers scrubbing. I&amp;amp;#39;m not sure if this works perfectly for the cam/cam follower, however, the varying helix angle probably complicates things.
Hopefully that explanation makes some sense...</description></item><item><title>New motor drive firmware</title><link>https://robot-daycare.com/posts/2021-04-16-new-motor-drive-firmware/</link><pubDate>Fri, 16 Apr 2021 01:35:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-04-16-new-motor-drive-firmware/</guid><description>&amp;amp;nbsp;Over a year ago I started porting my motor control firmware away from mbed.&amp;amp;nbsp; I&amp;#39;ve been working on it in spurts every few months and and ended up re-doing a lot of things from scratch, so it took much longer than I originally planned.&amp;amp;nbsp; Find it here:
https://github.com/bgkatz/motorcontrol
The core motor control math hasn&amp;#39;t changed (foc.c is nearly identical to the old version).&amp;amp;nbsp; Lots of features have been improved though:</description></item><item><title>Pressure control, 1 kHz USB data logging</title><link>https://robot-daycare.com/posts/2021-04-07-pressure-control-1-khz-usb-data-logging/</link><pubDate>Wed, 07 Apr 2021 03:28:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-04-07-pressure-control-1-khz-usb-data-logging/</guid><description>PI+Lead pressure control with ~30 hz bandwidth (probably will get it&amp;#39;s own thorough post soon), native USB data transfer either way (logging at a little over 1 kHz, sending commands at ~15 hz from the GUI), python/QT gui running the show.&amp;amp;nbsp; Orange = pressure command, blue = measured pressure:
Comments from Blogger
Enginethrust &amp;amp;mdash; April 08, 2021 at 09:10 AM
Nice!
Zach T. &amp;amp;mdash; April 09, 2021 at 06:22 PM
That&amp;amp;#39;s a beautiful control loop :)</description></item><item><title>STM32 USB CDC + PyUSB Data Transfer</title><link>https://robot-daycare.com/posts/2021-04-05-stm32-usb-cdc-pyusb-data-transfer/</link><pubDate>Mon, 05 Apr 2021 00:03:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-04-05-stm32-usb-cdc-pyusb-data-transfer/</guid><description>&amp;amp;nbsp;First experiments using native USB CDC (communications device class) on STM32&amp;#39;s, using the CubeMX libraries:
It&amp;#39;s been surprisingly straightforward to get working.&amp;amp;nbsp; I basically just followed this video from ST, with a few minor changes.&amp;amp;nbsp; I&amp;#39;ve been able to hit up to 650 kilobytes/s transfer (micro to computer) which seems to be the limit for the ST libraries.&amp;amp;nbsp; Put another way, I can log ~160 floats at 1 kHz.&amp;amp;nbsp; Although not nearly as fast as USB Full Speed can be, it&amp;#39;s way faster than serial,&amp;amp;nbsp; it&amp;#39;s non-blocking, has&amp;amp;nbsp; CRC error checking with auto-retry, variable packet size, and so on.&amp;amp;nbsp; Overall a very nice data transfer experience.&amp;amp;nbsp; It&amp;#39;s great to not have to think about packet structure, accidentally being off by one byte, error checking, and all the other headaches that usually go along with serial.</description></item><item><title>Frequency response measurement</title><link>https://robot-daycare.com/posts/2021-03-23-frequency-response-measurement/</link><pubDate>Tue, 23 Mar 2021 23:35:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-03-23-frequency-response-measurement/</guid><description>It&amp;#39;s been a while since I did any system id for fun:
Pretty darn 2nd order (as expected from motor inertia and magnetic coupling stiffness).&amp;amp;nbsp; Handy way to get generate a bode plot from timeseries data is&amp;amp;nbsp; \(\frac{FFT(output)}{FFT(input)}\)
&amp;amp;nbsp;</description></item><item><title>Closed Loop Espresso Intro</title><link>https://robot-daycare.com/posts/2021-02-26-closed-loop-espresso-intro/</link><pubDate>Fri, 26 Feb 2021 04:34:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-02-26-closed-loop-espresso-intro/</guid><description>Even before getting a lever espresso machine, I&amp;#39;ve been thinking about how I might design one if I were to do it from scratch.
This is the layout I&amp;#39;ve converged to:
The basic summary is:
- Electric motor driven pump pumps water through a heater.
- If the water at the output of the heater isn&amp;#39;t up to temperature, the 3-way valve after the heater will cycle the water back through the tank.</description></item><item><title>First Shot</title><link>https://robot-daycare.com/posts/2021-02-22-first-shot/</link><pubDate>Mon, 22 Feb 2021 04:37:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-02-22-first-shot/</guid><description>&amp;amp;nbsp;It works!&amp;amp;nbsp; Super janky right now but all the pieces work:
Comments from Blogger
Anonymous &amp;amp;mdash; February 24, 2021 at 12:39 AM
Closed loop pressure control with the gear pump?
Ben Katz &amp;amp;mdash; February 24, 2021 at 12:45 AM
Yep. Detailed blog post on the way
Mick &amp;amp;mdash; March 06, 2021 at 11:38 AM
Very cool stuff! Does this system allow temperature control? Ben Katz &amp;amp;mdash; March 06, 2021 at 04:22 PM
Yes, see:
/posts/2021-02-26-closed-loop-espresso-intro/&amp;#34;blogger-comment&amp;#34;&amp;gt;
Erik Cornelsen &amp;amp;mdash; March 08, 2021 at 01:42 PM
Very nice, well done!
Which algorithm did you use for the PIDs control loops?</description></item><item><title>Espresso Machine Group Head Machining</title><link>https://robot-daycare.com/posts/2021-02-17-espresso-machine-group-head-machining/</link><pubDate>Wed, 17 Feb 2021 04:13:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-02-17-espresso-machine-group-head-machining/</guid><description>&amp;amp;nbsp;
&amp;amp;nbsp;The click at 0:41 is very satisfying
Questionable workholding stack:
Fancy &amp;#34;morphed spiral&amp;#34; profiling toolpath came out well:
Inlet and outlet visible
With fittings, shower screen and seal installed, and portafilter locked in.</description></item><item><title>Reassembling the "shop"</title><link>https://robot-daycare.com/posts/2021-02-03-reassembling-the-shop/</link><pubDate>Wed, 03 Feb 2021 13:28:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-02-03-reassembling-the-shop/</guid><description>&amp;amp;nbsp;More like &amp;#34;heap&amp;#34; at the moment, but it&amp;#39;s getting there.
Comments from Blogger
Jon &amp;amp;mdash; February 03, 2021 at 06:56 PM
The PSU your scope is sitting on looks like a monster of a supply!
Enginethrust &amp;amp;mdash; February 06, 2021 at 10:23 AM
Ye this looks like it will be a nice habitat</description></item><item><title>First attempt at shrink fit tool holders</title><link>https://robot-daycare.com/posts/2021-01-18-first-attempt-at-shrink-fit-tool-holders/</link><pubDate>Mon, 18 Jan 2021 20:35:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-01-18-first-attempt-at-shrink-fit-tool-holders/</guid><description>The eventual goal is to have these for all my tools so I can preset tool lengths and never swap ER collets.&amp;amp;nbsp; This one was machined on a kind of sketchy lathe at work, so that&amp;#39;s my excuse for the .0005&amp;#34; runout.&amp;amp;nbsp; In the future I&amp;#39;ll bore them out in the mill spindle.
Technically the tool length depends on how tightly you fasten the collet nut, so I did some &amp;#34;blind&amp;#34; testing, tightening the nut without looking at the dial indicator.&amp;amp;nbsp; Seems pretty repeatable:</description></item><item><title>Pretending the mill is a lathe</title><link>https://robot-daycare.com/posts/2021-01-10-pretending-the-mill-is-a-lathe/</link><pubDate>Sun, 10 Jan 2021 22:26:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-01-10-pretending-the-mill-is-a-lathe/</guid><description>&amp;amp;nbsp;A quick experiment in doing some turning on the mill.&amp;amp;nbsp; The mill is in &amp;#34;TCP&amp;#34; mode, so I can jog it in work coordinate system rather than machine coordinate system, and turn a taper by jogging in the WCS Z axis.&amp;amp;nbsp; Material is 17-4 PH stainless, 5000 RPM, .3mm DOC.
This clip shows how the mill is moving in both the Z and Y axis to make an 8 degree taper (indicating against an ER collet), but I only have to jog in Z on the pendant:
Comments from Blogger
Tim Blakely &amp;amp;mdash; January 11, 2021 at 08:09 PM
Slick. Been too nervous to try this on my 770M. Was it just manual gcode + pendant, or did you get a CAM software to somehow do the pathing?
Ben Katz &amp;amp;mdash; January 12, 2021 at 12:52 AM
This was just using the pendant. For simple turning, I think it would be straightforward to write by hand, or trick HSMworks by doing drilling operations at different points. I could imagine holding a &amp;amp;quot;gang&amp;amp;quot; of tools on a block on the mill table. Not sure how profiling would work though. Maybe it&amp;amp;#39;s possible to get real lathe cam working? I probably won&amp;amp;#39;t need to to any fancy parts like this though. My immediate plan with this is to finish machine some shrink fit tool extensions so they run true with the spindle.</description></item><item><title>Thin Part Fixturing</title><link>https://robot-daycare.com/posts/2021-01-08-thin-part-fixturing/</link><pubDate>Fri, 08 Jan 2021 02:49:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-01-08-thin-part-fixturing/</guid><description>Using the super glue and blue tape trick to fixture some large (relative to the mill), thin parts.&amp;amp;nbsp; I normally used double-sided tape for stuff like this, but didn&amp;#39;t have any on hand.
Tape applied to stock and fixture:
Clamped while the super glue is curing:
Lots of Y-axis exercise profiling some semi-circular grooves:</description></item><item><title>Gourd Ukulele Modifications</title><link>https://robot-daycare.com/posts/2021-01-02-gourd-ukulele-modifications/</link><pubDate>Sat, 02 Jan 2021 17:24:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2021-01-02-gourd-ukulele-modifications/</guid><description>Finished making some long overdue fixes to the gourd ukulele.&amp;amp;nbsp; Originally the neck was too thick and it had too much string action.</description></item><item><title>Gear Pump Closed Loop Pressure Control</title><link>https://robot-daycare.com/posts/2020-12-29-gear-pump-closed-loop-pressure-control/</link><pubDate>Tue, 29 Dec 2020 22:01:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2020-12-29-gear-pump-closed-loop-pressure-control/</guid><description>&amp;amp;nbsp;
Using a leftover pendulum&amp;amp;nbsp;motor controller, Moog brushless motor scavenged from the Media Lab years ago, and gear pump from ebay to play with closed-loop pressure control.&amp;amp;nbsp; Pressure plotted on the computer screen (and shown on the gauge), pressure setpoint stepped up and down, and a needle valve used as a variable load.
Internals of the gear pump:&amp;amp;nbsp; Food-grade, stainless body with PEEK/CF gears and bushings:</description></item><item><title>Inaugural Photo Dump: 5 Axis Mill At Work</title><link>https://robot-daycare.com/posts/2020-12-28-inaugural-photo-dump-5-axis-mill-at-work/</link><pubDate>Mon, 28 Dec 2020 22:55:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2020-12-28-inaugural-photo-dump-5-axis-mill-at-work/</guid><description>2 parts in one operation, for a dial thermometer holder on the espresso machine grouphead.</description></item><item><title>New Photo and Video Feed</title><link>https://robot-daycare.com/posts/2020-12-28-new-photo-and-video-feed/</link><pubDate>Mon, 28 Dec 2020 21:45:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2020-12-28-new-photo-and-video-feed/</guid><description>&amp;amp;nbsp;You&amp;#39;ll now notice that I added a Feed tab to the top of the page.
When I started the blog, I would wait until I completely finished a project, then do one gigantic writeup at the end.&amp;amp;nbsp; This habit was left over from when I used Instructables&amp;amp;nbsp;to document things.&amp;amp;nbsp; As my projects got more complicated, that blogging style stopped working.&amp;amp;nbsp; &amp;amp;nbsp;So I started the In-Progress section for shorter technical updates. When I (on occasion) finish something, I now throw a summary on the main page, and links to the relevant posts from the in-progress section.&amp;amp;nbsp; I think this has been working fine, but I still tend to hold onto stuff until I&amp;#39;ve made enough progress for a proper technical blog post.&amp;amp;nbsp;&amp;amp;nbsp;</description></item><item><title>La Pavoni Europiccola Lever Espresso Machine Restoration</title><link>https://robot-daycare.com/posts/2020-12-09-la-pavoni-europiccola-lever-espresso-machine-resto/</link><pubDate>Wed, 09 Dec 2020 13:24:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2020-12-09-la-pavoni-europiccola-lever-espresso-machine-resto/</guid><description>I&amp;#39;ve had a La Pavoni Professional lever espresso machine for a couple years now, which I got on ebay and fixed up.&amp;amp;nbsp; Getting it working turned out to be completely uneventful, so I never wrote up anything about it.&amp;amp;nbsp; I recently restored a Europiccola for my sister, and this time around the restoration was much&amp;amp;nbsp;more involved.&amp;amp;nbsp; It was in pretty rough shape when I got it - all the seals were shot, the sightglass was smashed, and the copper/brass plating was&amp;amp;nbsp; peeling horribly.&amp;amp;nbsp; But the heating element and electronics were in good shape, and core mechanical pieces worked.</description></item><item><title>Transmission Ratio Trajectory Optimization</title><link>https://robot-daycare.com/posts/2020-11-18-transmission-ratio-trajectory-optimization/</link><pubDate>Wed, 18 Nov 2020 04:16:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2020-11-18-transmission-ratio-trajectory-optimization/</guid><description>&amp;amp;nbsp;Getting back to this mechanism.&amp;amp;nbsp; In the post about the dynamics with varying transmission ratio, I came up with the design for the transmission profile by a combination of hand-calculations, intuition, and guesswork.&amp;amp;nbsp; But we can do better.&amp;amp;nbsp;&amp;amp;nbsp;
This problem fits nicely into a trajectory optimization.&amp;amp;nbsp; For an intro to trajectory optimization, I&amp;#39;d highly recommend this MIT Underactuated Robotics chapter.&amp;amp;nbsp;
I not-so-subtly hinted that the point of this mechanism was for jumping or launching things with an electric motor.&amp;amp;nbsp; The simple English explanation of what I&amp;#39;m trying to do with a trajectory optimization here is answer this question:&amp;amp;nbsp; What transmission ratio vs time maximizes jump height without breaking the mechanism?&amp;amp;nbsp;</description></item><item><title>Music Server</title><link>https://robot-daycare.com/posts/2020-11-16-music-server/</link><pubDate>Mon, 16 Nov 2020 01:26:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2020-11-16-music-server/</guid><description>Until Google axe-murdered it recently, I used Google Play Music to store my music collection and stream it to my various devices.&amp;amp;nbsp; I didn&amp;#39;t pay for a subscription, just uploaded all my music files to Play, and treated it as free storage, organization, and streaming.&amp;amp;nbsp; Rather than switch over to YouTube Music (I tried, it was utter garbage) or some other streaming service, I took this opportunity to set up a personal music server.</description></item><item><title>Another batch of furuta pendulums</title><link>https://robot-daycare.com/posts/2020-10-28-another-batch-of-furuta-pendulums/</link><pubDate>Wed, 28 Oct 2020 04:10:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2020-10-28-another-batch-of-furuta-pendulums/</guid><description>&amp;amp;nbsp;I did another batch of Furuta pendulums and took a timelapse of the assembly:
These were done in a bit of a hurry, and nothing was changed from last time.&amp;amp;nbsp; At some point I&amp;#39;ll probably do a refresh of the design, though.&amp;amp;nbsp; After building 16 of these, I have a bunch of ideas about things I&amp;#39;d like to do differently, and I&amp;#39;ve gotten a few feature requests from the recipient as well.&amp;amp;nbsp;&amp;amp;nbsp;</description></item><item><title>Benchtop 5-Axis Mill</title><link>https://robot-daycare.com/posts/2020-10-06-benchtop-5-axis-mill/</link><pubDate>Tue, 06 Oct 2020 04:23:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2020-10-06-benchtop-5-axis-mill/</guid><description>This was inevitable, but the pandemic has accelerated my home-shop setup.&amp;amp;nbsp; What with leaving the lab&amp;amp;nbsp;almost a year ago (I miss you Lab Haas) and no MITERS&amp;amp;nbsp;for the foreseeable future, I haven&amp;#39;t had access to any machine tools other than the tiny lathe for a while.&amp;amp;nbsp; Time to fix that.
I&amp;#39;ve been following Pocket NC&amp;amp;nbsp;since 2012, after seeing them at the NY Maker Faire - they make a tiny but surprisingly capable 5-axis CNC mill.&amp;amp;nbsp; It has basically the same layout as the big&amp;amp;nbsp;GROB&amp;amp;nbsp;machines, with a horizontal milling spindle moving in Z and X, and a cantilevered trunnion on the Y axis.&amp;amp;nbsp; &amp;amp;nbsp;I was tempted to get one of their machines, but I think they&amp;#39;re just too&amp;amp;nbsp;small and underpowered (and pretty expensive) for the sort of parts I make.&amp;amp;nbsp; In my search for a small-enough-to-carry-upstairs-into-my-living-room-but-not-too-small CNC mill, I ran across a scaled-up Pocket NC clone made by a Chinese company, Xinshan Tech.&amp;amp;nbsp; I couldn&amp;#39;t find any examples of real people outside of China owning the machine, but after some emails back and forth with the company, including a bunch of videos, I was convinced that the machine was real and not a scam.&amp;amp;nbsp; This machine was appealing, since it&amp;#39;s a fair bit bigger than the Pocket NC, with ~50% more travel in each axis, all steel, servo (rather than stepper) driven, and much heavier (~70 kg).&amp;amp;nbsp; I&amp;#39;ve gotten along just fine with 3-axis machines up until now, but I couldn&amp;#39;t actually find any 3-axis mills that fit what I was looking for any better, and 5-axis opens up some interesting opportunities.</description></item><item><title>Varying pitch screw mechanism</title><link>https://robot-daycare.com/posts/2020-08-31-varying-pitch-screw-mechanism/</link><pubDate>Mon, 31 Aug 2020 02:45:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2020-08-31-varying-pitch-screw-mechanism/</guid><description>I put together a mostly-3D-printed prototype of the variable-pitch screw idea.&amp;amp;nbsp; Although it looked like it would work in CAD, I wanted to get a feel for the mechanism in real-life before designing anything around it:
The mechanism combines a cylindrical cam&amp;amp;nbsp;with linear motion constraint all on the same cylinder.
The main pieces besides the screw are shown below.&amp;amp;nbsp; On the left is the linear constraint mechanism, which has 6 rollers in it.&amp;amp;nbsp; In the center is the &amp;#34;nut&amp;#34; which has two cam followers pointing radially inwards.&amp;amp;nbsp; The cam followers engage with the spiral slot around the screw.&amp;amp;nbsp; On the right and left of the nut are bearings which take the thrust load from the screw, and constrain the nut.&amp;amp;nbsp; On the right is a cap, which just supports one of the nut bearings.&amp;amp;nbsp; It threads on to the linear mechanism, sandwiching the nut.</description></item><item><title>A decade of project blogging</title><link>https://robot-daycare.com/posts/2020-07-23-a-decade-of-project-blogging/</link><pubDate>Thu, 23 Jul 2020 03:35:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2020-07-23-a-decade-of-project-blogging/</guid><description>I just noticed that as of this month, I&amp;#39;ve had build-its.blogspot.com for 10 years.&amp;amp;nbsp; It&amp;#39;s hard to believe how long it&amp;#39;s been and how short it&amp;#39;s felt.&amp;amp;nbsp; Hopefully Blogger is still around in another 10.
For nostalgia&amp;#39;s sake,&amp;amp;nbsp; here&amp;#39;s the oldest project-thing I&amp;#39;ve documented- strapping model rocket engines to a pinewood derby car:&amp;amp;nbsp; This video predates the blog - I think it was filmed in 2007.
2nd place goes to this shot of me planing a railing on The Boat from 2009.&amp;amp;nbsp;</description></item><item><title>Simple Dynamics With Varying Transmission Ratios</title><link>https://robot-daycare.com/posts/2020-06-07-simple-dynamics-with-varying-transmission-ratios/</link><pubDate>Sun, 07 Jun 2020 02:19:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2020-06-07-simple-dynamics-with-varying-transmission-ratios/</guid><description>
An idea I&amp;#39;ve had in the back of my head for a while now is using varying transmission ratios to transfer kinetic energy between bodies.&amp;amp;nbsp; That sounds really abstract, but I&amp;#39;ll explain.
Here&amp;#39;s a simple example that frames the problem.
There&amp;#39;s a mass, \(m\), which can translate in \(x\).&amp;amp;nbsp; Driving the mass is an actuator with inertia \(j\) and angle \(\theta\).&amp;amp;nbsp; There&amp;#39;s a transmission between the rotation of the actuator and the translation of the mass.&amp;amp;nbsp; The transmission ratio, \(k\), is the ratio between angular velocity of the actuator and linear velocity of the mass, i.e. a radius.&amp;amp;nbsp; This radius varies as the angle of the actuator changes.
Below is a sketch of how a varying transmission ratio might look, with a pulley that changes radius as it winds up:</description></item><item><title>Titanium anodizing experiment</title><link>https://robot-daycare.com/posts/2020-04-18-titanium-anodizing-experiment/</link><pubDate>Sat, 18 Apr 2020 21:33:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2020-04-18-titanium-anodizing-experiment/</guid><description>
A month or two back I tried out anodizing a titanium bicycle fork.&amp;amp;nbsp; Eventually I want to anodize, mask, and bead blast a frame along the same lines as&amp;amp;nbsp;Firefly , so the fork was a test-run to get a feel for the anodizing and masking process.
I did the anodizing by soaking a foam brush in a water and baking soda mixture, clipping one power supply lead to the brush, and one to the part, and brushing the part.&amp;amp;nbsp;
If you&amp;#39;re good at this, you can get nice gradients by adjusting the power supply voltage as you move along the part, but I definitely need more practice.&amp;amp;nbsp; I love the purple and dark blue parts:&amp;amp;nbsp;</description></item><item><title>New High Power Motor Drive</title><link>https://robot-daycare.com/posts/2020-01-21-new-high-power-motor-drive/</link><pubDate>Tue, 21 Jan 2020 00:58:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2020-01-21-new-high-power-motor-drive/</guid><description>
I&amp;#39;ve been working on a large robot-size motor drive, with a design target of 75V, &amp;amp;gt;70A (peak phase) continuous with heatsinking, and &amp;amp;gt;150A peak.&amp;amp;nbsp; In order to make the drive as compact as possible, it&amp;#39;s split into three separate boards stacked on top of each other.&amp;amp;nbsp; The bottom layer is the power layer with MOSFETs, ceramic DC link capacitors, and current shunts.&amp;amp;nbsp; To minimize the thermal resistance between all the heat generating components to the world, the power layer is built on a 2-layer aluminum substrate board.&amp;amp;nbsp; Above the power board is the logic board with microcontroller and gate-drive, built on a normal 4-layer 1 oz board.&amp;amp;nbsp; &amp;amp;nbsp;On the very top is a breakout board with connectors for DC power input, the 3 phases, and communication/encoder</description></item><item><title>Planar Magnetic Headphones</title><link>https://robot-daycare.com/posts/2019-12-16-planar-magnetic-headphones/</link><pubDate>Mon, 16 Dec 2019 02:36:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2019-12-16-planar-magnetic-headphones/</guid><description>I built a pair of planar magnetic headphones - basically just because I though the operating principle was interesting.&amp;amp;nbsp; After several catastrophically bad-sounding attempts, I eventually built a version that sounded decent and looks pretty good:
The drivers are meticulously hand-etched from the thinnest flex-pcb material I could find.&amp;amp;nbsp; The driver membrane is sandwiched between an arrangement of magnets embedded in the aluminum grill that makes up most of the structure of the headphones.
See the build-log here for details</description></item><item><title>The Mini Cheetah Robot</title><link>https://robot-daycare.com/posts/2019-12-16-the-mini-cheetah-robot/</link><pubDate>Mon, 16 Dec 2019 02:36:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2019-12-16-the-mini-cheetah-robot/</guid><description>Back during my second year of undergrad I started scheming about building legged robots out of cheap hobby brushless motors.&amp;amp;nbsp; Two years later as a senior, I finally made a first-pass at building some of the hardware -&amp;amp;nbsp;motor controllers,&amp;amp;nbsp;gearboxes, and a two-degree of freedom&amp;amp;nbsp;leg.&amp;amp;nbsp; Things look promising, so I stayed at MIT to do a masters in&amp;amp;nbsp;Sangbae&amp;#39;s lab&amp;amp;nbsp;continuing the project.&amp;amp;nbsp; The Mini Cheetah robot is the result of that work:
Photo: Bryce Vickmark
First quadruped robot to do a backflip!
The first version of the robot was put together in March 2018.&amp;amp;nbsp; I spent the summer after finishing my Masters helping get the robot fully up and running (literally).&amp;amp;nbsp; When we saw how well everything worked, we decided to build a&amp;amp;nbsp;handful&amp;amp;nbsp;more of the robots, both for our lab and to loan out to other research groups to experiment on.&amp;amp;nbsp; I spent about a year doing some design revisions and building&amp;amp;nbsp;10 more of the robots.</description></item><item><title>The Rubik's Contraption</title><link>https://robot-daycare.com/posts/2019-12-16-the-rubik-s-contraption/</link><pubDate>Mon, 16 Dec 2019 02:36:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2019-12-16-the-rubik-s-contraption/</guid><description>Jared Di Carlo and I built a machine that can solve a Rubik&amp;#39;s cube really fast, and it became kind of internet-famous:
See my hardware and low-level control build-log here
and Jared&amp;#39;s software blog here</description></item><item><title>Furuta Pendulums</title><link>https://robot-daycare.com/posts/2019-12-16-furuta-pendulums/</link><pubDate>Mon, 16 Dec 2019 02:35:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2019-12-16-furuta-pendulums/</guid><description>In the summer of 2016 I built a desktop furuta pendulum out of random parts I had lying around:
Recently, I redesigned it to not&amp;amp;nbsp;be built out of scraps, sent out for all the machined parts, and assembled a handful more:
See the build logs here
Comments from Blogger
Hassium108277 &amp;amp;mdash; February 08, 2021 at 12:43 AM
Awesome! Would I be right in saying the there is an encoder attached to the pendulum pivot point and the lid?
Ben Katz &amp;amp;mdash; February 11, 2021 at 02:25 AM
Yes, there&amp;amp;#39;s an encoder for the pendulum and the base, and a direct drive motor actuating the base.
Jorge Porcel &amp;amp;mdash; November 21, 2022 at 01:10 PM
Hello! I am very interested on your project since I have a Gimbal motor GB54-2 and I want to control it in a similar approach. Which Motor Controller are you using?
Ben Katz &amp;amp;mdash; November 21, 2022 at 01:18 PM
It&amp;amp;#39;s custom, based off the drive I designed for the Mini Cheetah robot. See the build log for more details.</description></item><item><title>Machined Electric Travel Ukulele</title><link>https://robot-daycare.com/posts/2019-12-16-machined-electric-travel-ukulele/</link><pubDate>Mon, 16 Dec 2019 02:35:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2019-12-16-machined-electric-travel-ukulele/</guid><description>In December 2015 (4 whole years ago!)&amp;amp;nbsp; I machined an electric ukulele out of some aluminum, stainless steel, and brass.&amp;amp;nbsp; The whole thing was built over the course of less than a week, with no computer aided design save for the fret-board.
It&amp;#39;s a headless design with the tuners built into the body.&amp;amp;nbsp; Under the carbon fiber cover at the center is a home-made low profile pickup.&amp;amp;nbsp; The body was hand-shaped using a combination of a bandsaw, manual milling machine, and hand-filing.
See here for the build-log</description></item><item><title>Motor Dynamometer</title><link>https://robot-daycare.com/posts/2019-12-16-motor-dynamometer/</link><pubDate>Mon, 16 Dec 2019 02:35:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2019-12-16-motor-dynamometer/</guid><description>In 2016 I built an electric motor dynamometer - a device for characterizing the performance of electric motors and motor controllers
The dynamometer is controlled by a Python and QT-based interface which provides manual control of the torque, speed, voltage, and current, simulates loads, or runs through sequences of test points.
The dyno lets me characterize electric motors to generate useful data like efficiency maps:
See the build log here:</description></item><item><title>Furuta Pendulum(s): Building some more</title><link>https://robot-daycare.com/posts/2019-12-16-furuta-pendulum-s-building-some-more/</link><pubDate>Mon, 16 Dec 2019 02:27:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2019-12-16-furuta-pendulum-s-building-some-more/</guid><description>I built 6 furuta pendulums for a university controls class:
Since the original furuta pendulum was all built out of scrap I had lying around, I had to redesign pretty much everything from scratch.
Instead of using a hand-skewed motor like the original, I used a custom-wind of a T-motor gimbal motor.&amp;amp;nbsp; These have low enough cogging torque to work pretty well:</description></item><item><title>Building All The Robots</title><link>https://robot-daycare.com/posts/2019-11-29-building-all-the-robots/</link><pubDate>Fri, 29 Nov 2019 23:47:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2019-11-29-building-all-the-robots/</guid><description>
Here&amp;#39;s a photo-dump of some pictures from assembling the&amp;amp;nbsp;herd of Mini Cheetahs.
150 Stators:
150 Front actuator housings with output bearing installed:
50 upper legs.&amp;amp;nbsp; The upper link was consolidated from 3 parts to 2 for the new robots:
For assembly I got these fancy Wera adjustable torque screwdrivers, so I (and people helping assemble) could repeatably torque all the screws:</description></item><item><title>So Many Robots</title><link>https://robot-daycare.com/posts/2019-11-07-so-many-robots/</link><pubDate>Thu, 07 Nov 2019 15:00:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2019-11-07-so-many-robots/</guid><description>The last few months have been very busy.&amp;amp;nbsp;
Comments from Blogger
Tim Blakely &amp;amp;mdash; November 07, 2019 at 11:19 PM
Good looking flock of robots ya got there :) A few observations:
1) Actuators entirely enclosed now? That affect stator/controller temps? 2) Knee pulleys casted out of resin or fiberglass now? 3) Black shoulder plates: my first thought was collision pads, but I could be convinced that the back right plate on the leftmost robot at 0:38 had a white wire coming out from it. Any function beyond protection? 4) That&amp;amp;#39;s quite a few radios in a tiny area. Any issues with communication interference? Love it! Thanks for sharing
Ben Katz &amp;amp;mdash; November 07, 2019 at 11:28 PM
1) The actuators are enclosed. Thermals had nothing to do with why the original ones were open, that was entirely for weight reduction. They are enclosed now because these robots are going to other research groups and I don&amp;amp;#39;t want to have to worry about crap getting in the gearboxes. I&amp;amp;#39;m sure it makes the motors a little bit hotter, but it hasn&amp;amp;#39;t been enough to cause problems.
2) No, the knee pulleys are still post-machined misumi GT2 pulleys. There are UHMW belt protectors that snap onto the knee around them to protect the belt against knee-ground collisions. I&amp;amp;#39;ve had a set of those on the original mini cheetah for the last year + and they&amp;amp;#39;ve been super durable.
3) They&amp;amp;#39;re just shoulder protectors. They have a layer of hard nylon on the outside with an inner layer of poron foam to spread out impacts
4) Didn&amp;amp;#39;t notice any radio problems. They&amp;amp;#39;re all Frsky receivers/transmitters, they&amp;amp;#39;ve been really solid.
RudiSoft &amp;amp;mdash; November 12, 2019 at 09:38 PM
Hi Ben,
I&amp;amp;#39;ve been following your progress for some time now and I wanted to thank you for sharing your content. It turns out that https://www.youtube.com/watch?v=LQD9JmwfG2A oh well ... just wanted to mention
How was Macao?
Anonymous &amp;amp;mdash; November 15, 2019 at 07:16 PM
Hello Ben,
Great work as always! I just published the first motion test video of a quadruped I built recently. It&amp;amp;#39;s a bit bigger than the Mini Cheetah. You can find it here: https://www.instagram.com/778labs/
Would love to hear your thoughts.
Also - are there any publications as to the control algorithms on the Mini Cheetah? I have read somewhere that you are using some MPC approach, but haven&amp;amp;#39;t seen any specifics anywhere. Is everyone solving this problem independently, or is there some material out there I can learn from?</description></item><item><title>Motor Temperature Estimation Without a Sensor</title><link>https://robot-daycare.com/posts/2019-11-01-motor-temperature-estimation-without-a-sensor/</link><pubDate>Fri, 01 Nov 2019 03:00:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2019-11-01-motor-temperature-estimation-without-a-sensor/</guid><description>I just finished building a bunch of Mini Cheetahs which the lab&amp;amp;nbsp; is loaning out to other research groups.&amp;amp;nbsp; Since we&amp;#39;re giving these to people who for the most part aren&amp;#39;t hardware oriented, these robots need to be even more robust than the original one.
One piece of that is preventing the motors from burning out.&amp;amp;nbsp; During normal operation with a good locomotion controller, the motors barely even get above ambient (even going 3.7 m/s, the motors weren&amp;#39;t warm to the touch afterwards).&amp;amp;nbsp; However, it&amp;#39;s really easy to write a controller that rapidly heats up the motors without actually doing&amp;amp;nbsp;anything - railing torque commands back-and-forth due to instability, joints mechanically stuck against something, machine-learning algorithm flailing around wildly, etc.&amp;amp;nbsp; We haven&amp;#39;t burned out any motors on the original Mini Cheetah yet, but I think our lab members all have a pretty good sense of what&amp;#39;s good/bad for the robot, and know to shut it down quickly if something bad is happening.&amp;amp;nbsp; But when the robot is in the hands of a bunch of software and machine learning engineers.....&amp;amp;nbsp; So to protect the robots, I&amp;#39;m adding in winding temperature sensing and over-temperature protection, to (hopefully) make it impossible to burn out the motors.
Now, the smart way to do this would have probably been to just add a thermistor in the windings, and call it done.&amp;amp;nbsp; Obviously, I didn&amp;#39;t do that, so here&amp;#39;s my observer-based workaround.
Overview
The temperature estimate uses an observer to combine two sources of information:&amp;amp;nbsp; A thermal model of the motor, and a temperature &amp;#34;measurement&amp;#34; based on the resistance temperature coefficient of the copper in the windings.&amp;amp;nbsp;The resistance of the motor is estimated based on applied voltage, measured current, measured speed and known motor parameters, and compared against the resistance at a known temperature.&amp;amp;nbsp; Sounds pretty simple, right?
Of course not.&amp;amp;nbsp; If it was, it wouldn&amp;#39;t be worth a blog post.&amp;amp;nbsp; It&amp;#39;s not terribly complicated either, but it took a bunch of little hacks to make it actually work.
Thermal Modeling:
I&amp;#39;m using a 1st order thermal model with just thermal mass&amp;amp;nbsp; \(C_{th}\)&amp;amp;nbsp;and thermal resistance to ambient&amp;amp;nbsp; \(R_{th}\).&amp;amp;nbsp; With temperature rise over ambient \(\Delta T\), thermal power going in \(\dot{Q_{in}}\), and thermal power going out \(\dot{Q_{out}}R_{th} =&amp;amp;nbsp; \Delta T\), the dynamics are
$$
\Delta \dot{T} = \frac{\dot{Q}_{in} - \dot{Q}_{out}}{C_{th}}
$$
To get \(\dot{Q}_{in}\), I just use \(i^{2} R\), but accounting for the variation from nominal resistance\(R_{0}\) due to \(\Delta T\), i.e. it&amp;#39;s temperature coefficient of resistance \(\alpha\) (.00393 for copper):
$$
\dot{Q}_{in} = (1 + \alpha\Delta T)R_{0}i^{2}
$$
In (slightly simplified) code, the model part of the observer is updated as follows, by Euler-integrating the thermal model.
delta_t = observer.temperature - T_AMBIENT;
observer.qd_in = R_NOMINAL**(1.0f + .00393f*delta_t)*controller.i*controller.i;
observer.qd_out = delta_t*R_TH;
observer.temperature += DT*(observer.qd_in-observer.qd_out)/C_TH;
An important implementation detail, in the actual firmware I&amp;#39;m doing the last line of math as doubles, rather than floats like everything else.&amp;amp;nbsp; My sample period DT is very small (since my loops run at 20-40 kHz depending on the motor I&amp;#39;m driving), and&amp;amp;nbsp; \( \frac{\dot{Q_{in}} - \dot{Q_{out}}}{C_{th}}\) is also pretty small since the thermal dynamics are very slow.&amp;amp;nbsp; As a result, the change in temperature over one loop-cycle gets rounded down to zero when you use floats.&amp;amp;nbsp; Since STM32F4&amp;#39;s are crap-tastic at double math, this single line takes a substantial fraction of my 25 microsecond loop period when I&amp;#39;m running at 40 kHz.&amp;amp;nbsp; I&amp;#39;m sure there&amp;#39;s a way to do this avoiding doubles, but I have just enough computational headroom that I don&amp;#39;t care.
Measuring Temperature and Resistance
Assuming we can measure the resistance of the motor perfectly and we know nominal resistance \(R_{0}\)&amp;amp;nbsp; at some temperature \(T_{0}\), and the temperature coefficient&amp;amp;nbsp; \(\alpha\)&amp;amp;nbsp;, we can calculate temperature:
$$
T = T_{0} + \left(\frac{R}{R_{0}} -1 \right)\frac{1}{\alpha}
$$
To measure \(R\), use one of the synchronous motor voltage equations.&amp;amp;nbsp; I use the Q-axis one, because for my surface PM robot motors there&amp;#39;s usually not much current on the D axis.
$$
V_{q} = Ri_{q} + L_{q}\frac{di_{q}}{dt} + \omega L_{d}i_{d} + \omega\lambda
$$
We&amp;#39;ll assume \( \frac{di_{q}}{dt} \) is zero, since the temperature observer is going to be very low-bandwidth compared to the current control dynamics.&amp;amp;nbsp; Conveniently if you use the Q-axis voltage equation rather than the D-axis one, the \( \omega L_{d}i_{d} \) term is usually zero, since \(i_{d} \) is only non-zero at high-speeds during field weakening, and in that region you can&amp;#39;t get enough q-current into the motor to burn it out anyways.
Since we know \(V_{q}\), \(i_{q}\), \(i_{d}\), \(\omega\), \(l_{d}\), and \(\lambda\), we can just solve the voltage equation for \(R\).&amp;amp;nbsp; In reality I had to add a trick to get this to work, but I&amp;#39;ll get into that later.
Implementing the Observer
The basic steps in the observer are:
Integrate forward the dynamics of the quantity you are estimating
Take a sensor reading and calculate the error between the estimate and the sensor reading
Use a proportional controller to drive the estimate towards the sensor reading
In code the whole observer looks like this:
// Integrate the thermal model //
delta_t = observer.temperature - T_AMBIENT;
observer.qd_in = R_NOMINAL**(1.0f + .00393f*delta_t)*controller.i*controller.i;
observer.qd_out = delta_t*R_TH;
observer.temperature += DT*(observer.qd_in-observer.qd_out)/C_TH;
// Estimate Resistance //
observer.resistance = (controller.v_q - controller.omega*(L_D*controller.i_d + WB))/(controller.i_q);
// Estimate Temperature from temp-co //
observer.t_measured = ((T_AMBIENT + ((observer.resistance/R_NOMINAL) - 1.0f)*254.5f));
// Update Observer with measured temperature //
e = (float)observer.temperature - observer.temp_measured;
observer.temperature -= .0001f*e;
Naively implemented, the above didn&amp;#39;t really work - the resistance measurements are terrible , so either you have a very low observer gain and basically run open-loop with just the thermal model, or the temperature estimate varies wildly depending on the speed and torque the motor is operating at.&amp;amp;nbsp; It took a couple more additions to get it to work reliably.
Voltage Linearization
The first problem I notice was that the measured resistance changed dramatically as the current varied.&amp;amp;nbsp; At low currents, the estimated resistance was much higher.&amp;amp;nbsp; This problem was caused by nonlinearity in the voltage output of the motor drive due to deadtime.&amp;amp;nbsp; I tried a few methods for compensating the dead time, but I got the best result by scaling my d and q axis voltages based on modulation depth.&amp;amp;nbsp; I measured the nonlinearity by logging measured current vs commanded modulation depth over a range of currents, putting all the current on the d-axis so the rotor didn&amp;#39;t move.</description></item><item><title>Mini Cheetah at ICRA</title><link>https://robot-daycare.com/posts/2019-06-01-mini-cheetah-at-icra/</link><pubDate>Sat, 01 Jun 2019 20:42:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2019-06-01-mini-cheetah-at-icra/</guid><description>I was just at&amp;amp;nbsp;ICRA&amp;amp;nbsp;2019 with the&amp;amp;nbsp;robot, to present a&amp;amp;nbsp;paper&amp;amp;nbsp;and demo the robot:
Not my picture.&amp;amp;nbsp; Pulled from google images.
Here are a few other peoples&amp;#39; videos from the conference and the&amp;amp;nbsp;legged robot workshop.&amp;amp;nbsp; Despite being half the size of all the other robots, Mini Cheetah was running circles around them.
At one point, we had Mini Cheetah,&amp;amp;nbsp;Spot Mini,&amp;amp;nbsp;ANYmal,&amp;amp;nbsp;Laikago,&amp;amp;nbsp;Vision 60, and&amp;amp;nbsp;Salto&amp;amp;nbsp;all up and running:
Comments from Blogger
Path &amp;amp;mdash; June 09, 2019 at 07:55 AM
Thanks for sharing this great post.This is so nice.
Jakub &amp;amp;mdash; June 18, 2019 at 12:14 PM
Hi Ben!
Could you give us a little insight into what software is running on the Mini Cheetah? Are you using some kind of simplified version of Model-Predictive Control, or is this brand new algorithm?
Ben Katz &amp;amp;mdash; June 18, 2019 at 01:34 PM
See here for the locomotion control paper:
https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=8594448
Relatedly, we&amp;amp;#39;re open-sourcing all our software in the next few days, so I&amp;amp;#39;ll post a link to that once it&amp;amp;#39;s up.
Young Joon &amp;amp;mdash; June 27, 2019 at 12:50 PM
Hi,
My name is Young Joon. I am making Mini Cheetah based upon your thesis. As I am looking for the Gates timing belt with aramid tensile cord I cannot find the exact belt you used on the Gates power transmission catalog. I guess your belt has 1.2mm width but aramid tensile members have a minimum 20 mm width. Can you share your belt product name and number instead? I am thinking of 15mm width instead because you commented this is performance bottle neck. Thank you for sharing all your work. Ben Katz &amp;amp;mdash; June 27, 2019 at 01:16 PM
The belt is a Gates 5MGT-535-09 Poly Chain GT. I&amp;amp;#39;m using 9mm width, but it wouldn&amp;amp;#39;t hurt to go up to 15mm for increased stiffness
Alexey &amp;amp;mdash; July 01, 2019 at 04:46 PM
Do you post design drawings for repeating mechanics? What is the date you put the source code?
Anonymous &amp;amp;mdash; July 08, 2019 at 05:13 PM
Hi there,
First off. AMAZING WORK!!! Can&amp;amp;#39;t believe I get to attempt something similar soon!
I was looking through the parts i will need and came across this link to the motor
https://www.aliexpress.com/item/32982236672.html?spm=2114.12057483.0.0.261e2cc0sA5QOO
For some reason they posted an image with the exploded planetary setup? Do you know anything about this? Can we purchase the motor setup like that?
Anonymous &amp;amp;mdash; July 08, 2019 at 05:16 PM
Ah I found this https://www.aliexpress.com/item/33003549263.html?spm=a2g0o.detail.1000014.7.7d684ce8qn4QtC&amp;amp;amp;gps-id=pcDetailBottomMoreOtherSeller&amp;amp;amp;scm=1007.13338.136569.000000000000000&amp;amp;amp;scm_id=1007.13338.136569.000000000000000&amp;amp;amp;scm-url=1007.13338.136569.000000000000000&amp;amp;amp;pvid=8d5be42d-7893-4dfa-b537-c48a89bc91a4
Ben Katz &amp;amp;mdash; July 08, 2019 at 05:33 PM
I don&amp;amp;#39;t know about that one, but there is one knock-off on Aliexpress I know is real:
https://www.aliexpress.com/item/32985671853.html?spm=a2g0s.12269583.0.0.109d67d4OreVgl
I&amp;amp;#39;ve been in touch with that company about manufacturing the motor modules, but they&amp;amp;#39;ve just gone ahead and put up their own version for sale. They sent me a sample, and mechanically it is very good, but the motor drive that comes with it is useless.
Alexey &amp;amp;mdash; July 08, 2019 at 07:21 PM
https://ru.aliexpress.com/item/33009340574.html?spm=a2g0o.detail.1000014.2.4fed50f3Yp6LLe&amp;amp;amp;gps-id=pcDetailBottomMoreOtherSeller&amp;amp;amp;scm=1007.13338.112281.000000000000000&amp;amp;amp;scm_id=1007.13338.112281.000000000000000&amp;amp;amp;scm-url=1007.13338.112281.000000000000000&amp;amp;amp;pvid=48b46301-8eca-421f-8fa0-b05188414cfa
And what can you say about this seller and the robot? Can you recommend this product for purchase?
Ben Katz &amp;amp;mdash; July 08, 2019 at 08:31 PM
I have no idea. They are completely unaffiliated with me, and I have not seen their hardware in person.
Anonymous &amp;amp;mdash; July 12, 2019 at 11:59 AM
Why is the driver useless? Low quality components/build, or not your newest firmware?
Ben Katz &amp;amp;mdash; July 12, 2019 at 12:18 PM
The driver is their own, not my design. It doesn&amp;amp;#39;t have phase current sensors, is full of bonus wires, as much worse fets, and so on:
Here are some pictures:
https://drive.google.com/open?id=1-Ko9CfRbY-AY-8eI0VaEVJIqv3RkCwFi
Anonymous &amp;amp;mdash; July 16, 2019 at 01:44 PM
Yeah, the drivers don&amp;amp;#39;t look like anything special, I wonder why do they need the extra two wires going into the motor? On a side note, do you see a possibility of connecting these actuators in parallel for increased joint torque in a safe manner e.g. with fully synchronized movement?
Ben Katz &amp;amp;mdash; July 16, 2019 at 01:50 PM
The two extra wires are for a thermistor in the windings.
You could connect them in parallel as long as you were only using them for torque control, rather than position/velocity control. With position or velocity control, if there were any discrepancy between position or speed the motors will fight each other.
Anonymous &amp;amp;mdash; July 18, 2019 at 04:37 PM
Hello
after reading your thesis which is very interesting, i find the 3phase_integrated PCBs and SPIne on github, but i would like to ask you if it is possible to have also PCB power supply out 12v and 5v with kobalt 24v battery,
thank you
Tim Blakely &amp;amp;mdash; July 18, 2019 at 07:06 PM
Hey Ben!
Love the blog posts; you&amp;amp;#39;ve been a huge inspiration over the years to finally get into robotics and control theory. Two quick questions:
1) Any chance you could share your ICRA 2019 paper? I&amp;amp;#39;m having little success finding a copy of it anywhere.
2) I&amp;amp;#39;ve been following your excellent thesis and posts, bumbling my way through EE and CAD design, but I&amp;amp;#39;m finally starting to make a bit of progress. I just wanted to check with you to see if it was okay to begin a blog/writeup of the process behind reproducing your results, and what I&amp;amp;#39;m toying with that&amp;amp;#39;s slightly different than what you&amp;amp;#39;ve accomplished (e.g. using a resin casted planetary set instead of steel gears). I have yet to post about it publicly - wanted to get your permission first - but you can find some unorganized photos here: https://photos.app.goo.gl/ZQk9NPxY2Py8Hzps5
Thanks again for sharing your knowledge; super appreciated to have such a great learning resource!
Ben Katz &amp;amp;mdash; July 19, 2019 at 02:23 AM
Awesome! Feel free to post publicly, of course.
I think IEEE hasn&amp;amp;#39;t publicly posted the final versions yet, but here&amp;amp;#39;s the preprint:
https://drive.google.com/file/d/1vn5ZH6VeRR7EZAmNfsooBHeNsIp2QG_O/view?usp=sharing
Alexey &amp;amp;mdash; August 04, 2019 at 10:26 AM
Good day! When will you publish the source code for the CAD files of the robot parts and the source code that you use on the UP Board?
Mike &amp;amp;mdash; August 06, 2019 at 07:58 PM
Hi Ben, what do you think about the new live drive motors from genesis robotics? Anonymous &amp;amp;mdash; September 17, 2019 at 07:07 AM
Ok so I&amp;amp;#39;m looking to get into robotics and have a very low budget, where should I start.
Probably not the place to ask though. RudiSoft &amp;amp;mdash; October 20, 2019 at 06:33 PM
Your&amp;amp;#39;re getting famous: https://www.youtube.com/watch?v=hBKNxoj02KM Here, Sanbae Kim is advertising mini cheetah in Germany...
Anonymous &amp;amp;mdash; July 21, 2024 at 02:32 PM
Dear Ben, it seems most robot dogs have all 4 logs designed with back-facing knees, maybe all of them except the ANYmal robot, which seems to have the back legs designed with front-facing knees. I wonder what are the reasons to choose any of these two options. It seems biological quadruped animals have their back legs designed with front knees, maybe that would bring any advantage? have you given a thought to this? Thank you, David.</description></item><item><title>Hello There, Mini Cheetah</title><link>https://robot-daycare.com/posts/2019-03-04-hello-there-mini-cheetah/</link><pubDate>Mon, 04 Mar 2019 06:10:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2019-03-04-hello-there-mini-cheetah/</guid><description>Now that this is officially&amp;amp;nbsp;out I can finally put up something about what I&amp;#39;ve been doing for the past 2 years.
Photo Credit: Bayley Wang
This project has been a continuation of the Hobbyking Cheetah project, but for research rather than out of my pocket.&amp;amp;nbsp; Here&amp;#39;s my thesis&amp;amp;nbsp;on the actuator and robot design.&amp;amp;nbsp; I designed and built all the all the hardware, both mechanical and electronics (with some design and fabrication help from Alex), and Jared wrote pretty much all the software and high-level control running the robot, including the Convex Model Predictive Control for locomotion.</description></item><item><title>Big Dyno Up And Running</title><link>https://robot-daycare.com/posts/2019-02-09-big-dyno-up-and-running/</link><pubDate>Sat, 09 Feb 2019 22:43:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2019-02-09-big-dyno-up-and-running/</guid><description>A long overdue progress update on the big dyno.
The torque sensor got new electronics Bayley designed, which have a built in power supply, A/D, and micro, to convert the signal to digital as quickly as possible.&amp;amp;nbsp; I made a nice box to house all the electronics:
The torque sensor mounted, with the absorber on the right and the motor under test on the left:</description></item><item><title>Planar Magnetic Headphones, Part 3: Finishing Up</title><link>https://robot-daycare.com/posts/2018-12-22-planar-magnetic-headphones-part-3-finishing-up/</link><pubDate>Sat, 22 Dec 2018 00:05:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2018-12-22-planar-magnetic-headphones-part-3-finishing-up/</guid><description>Over a year later, I&amp;#39;ve finally finished up the planar magnetic headphones.&amp;amp;nbsp; They even sound decent.
Here&amp;#39;s the rest of the build log:
The change that got them from sounding terrible to sounding tolerable was reducing the tension in the membrane as much as possible.&amp;amp;nbsp; The first few test versions were intentionally tensioned, which turned out to be a bad idea, causing weird notches and resonances in the frequency response.&amp;amp;nbsp; The new membrane is glued to a frame under no tension.&amp;amp;nbsp; I also switched to an even thinner flex pcb material, Pyralux AC&amp;amp;nbsp;091200EV, which has a 12 micron kapton layer, 9 micron copper layer, and no adhesive.
After the toner transfer.&amp;amp;nbsp; Getting the toner transfer right without wrinkling the material was tricky:</description></item><item><title>CORE Outdoor Power PCB Motor Teardown</title><link>https://robot-daycare.com/posts/2018-12-02-core-outdoor-power-pcb-motor-teardown/</link><pubDate>Sun, 02 Dec 2018 01:15:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2018-12-02-core-outdoor-power-pcb-motor-teardown/</guid><description>A company called Core makes some unusual electric lawn tools based on axial flux PCB motors.&amp;amp;nbsp; I first heard about them several years ago, and finally picked up one of the motors to take apart.
Here&amp;#39;s the weed-wacker.&amp;amp;nbsp; I just got the head of the tool- they make a base called the &amp;#34;drive unit&amp;#34;, which holds the battery and electronics.&amp;amp;nbsp; Each head has its own motor:
The motor&amp;#39;s right at the end, direct driving the spool of wire:
Removed from the stick.&amp;amp;nbsp; Three board-mount faston terminals for phase power, and another connector for hall sensors.
The motor was a huge pain to take apart, as it is pretty much entirely held together with retaining compound.&amp;amp;nbsp; With a hammer and some screwdrivers I was able to pull off the back cover:
The shaft and front bearing were pushed out of the other half of the housing with a gear puller.&amp;amp;nbsp; There&amp;#39;s a ring of thermal pad on one side of the board:
It&amp;#39;s a dual-rotor design, with the PCB stator sandwiched between the two halves of the rotor.&amp;amp;nbsp; The rotor is held together by even more retaining compound:
To pull off half of the rotor, I gripped it in a small lathe chuck and used&amp;amp;nbsp; a gear puller to pull it off the shaft:
First a closer look at the stator.&amp;amp;nbsp; The board had at least 4 layers, and probably has 4 oz copper - it&amp;#39;s very dense feeling.&amp;amp;nbsp;
Some observations and thoughts:
- Each phase has 4 4-turn coils, and the 3 phases are overlapped.&amp;amp;nbsp; &amp;amp;nbsp;This is a full-pitch winding.
- This winding pattern results in a large area of end-turn, so the actual &amp;#34;active&amp;#34; area of the stator is unfortunately small - less than half the area of the PCB actually produces torque.
- The traces neck down and become thinner within the active area.&amp;amp;nbsp; Presumably this is to reduce eddy current losses from the magnets swinging over the traces.&amp;amp;nbsp;
- The hall sensors are through-hole halls, surface mounted sideways into cutouts in the PCB, so they add almost no additional thickness.
- The empty space around the edges of the board are filled with radial strips of copper.&amp;amp;nbsp; I&amp;#39;m not really sure why.&amp;amp;nbsp; Maybe for thermal reasons?&amp;amp;nbsp; The edge of the board is heatsinked to the aluminum housing through a ring of thermal pad.
Here&amp;#39;s the&amp;amp;nbsp;patent for reference.
The two rotors have single-piece magnets magnetized with 4 pole-pairs:
One of the reasons it&amp;#39;s all held together with retaining compound is that the bearing bores in the castings aren&amp;#39;t even post-machined.&amp;amp;nbsp; The bearing is just glued straight into the rough, tapered hole in the casting:
Back-EMF is pretty sinusoidal.&amp;amp;nbsp; An FFT reveals a little bit of 5th harmonic.&amp;amp;nbsp; Flux linkage is ~.0044, for a torque constant of .0264 N-m/A (peak phase amps).&amp;amp;nbsp; Line-to-line resistance is 125 mOhms. This gives a motor constant of .086 N-m/sqrt(watt).
Over all it&amp;#39;s not a particularly high performance motor for it&amp;#39;s size or weight.&amp;amp;nbsp; There&amp;#39;s a lot of dead space, and a very heavy, high-inertia rotor.&amp;amp;nbsp;
Comments from Blogger
qikai li &amp;amp;mdash; December 21, 2018 at 12:30 PM
Can I get your email? I have read your paper about cheep actuator of cheetah. I want to ask you some questions. Hope you can answer. Thank you very much!
Ben Katz &amp;amp;mdash; December 21, 2018 at 10:59 PM
There&amp;amp;#39;s a contact form here:
/&amp;#34;blogger-comment&amp;#34;&amp;gt;
qikai li &amp;amp;mdash; December 22, 2018 at 04:09 AM
Sorry I have tried many times to press the &amp;amp;quot;send&amp;amp;quot; button, but there is no response. I wonder if you have received my e-mail. My e-mail address is 940525739@qq.com, if you don&amp;amp;#39;t mind you can directly send to me. :)
MarkR &amp;amp;mdash; April 14, 2019 at 08:53 PM
So what&amp;amp;#39;s become of this company and their CORE electric motors? Troy-Bilt has a few CORE-tech outdoor power tools, but they seems to be discontinuing them, as you can&amp;amp;#39;t order them anymore. In fact I have their mower and weed-trimmer and they are fabulously awesome. I want more, though. Can&amp;amp;#39;t find anything about them, now. Justin Nelson &amp;amp;mdash; June 02, 2019 at 08:25 PM
&amp;amp;quot;Over all it&amp;amp;#39;s not a particularly high performance motor for it&amp;amp;#39;s size or weight. There&amp;amp;#39;s a lot of dead space, and a very heavy, high-inertia rotor.&amp;amp;quot; I have tested this motor myself, and I strongly disagree with your results, although I found them very very interesting. The motor uses around 500 watts, and produces over a horsepower(around 1000 watts of power), 6800 RPM @ around 1 ft/lb of torque.
There could be some room for improvement within the motor itself, however. Perhaps a re-design and optimization. I believe you may have come to your conclusion from examining the diagnostics, but the real-world performance blows other electric motor designs totally out of the water. I can do things with the(40v version, Elite) that I cannot do with a 2-stroke gas trimmer. Perhaps it is the higher RPM that this motor type develops, as you said it is a very heavy, high-inertia rotor.
I believe there is tremendous potential for this motor design, given design improvements.
Ben Katz &amp;amp;mdash; June 03, 2019 at 01:46 AM
? 1000 watts output at 500 watts input violates conservation of energy...
A 1 kW RC car motor, for example, is much smaller and lighter.
Justin Nelson &amp;amp;mdash; June 03, 2019 at 08:16 PM
Its the RPM that it develops, the inertia(6800 rpm) with a heavy rotor. It uses 500 watts and puts out over a horse. Only problem is not a whole lot of start up torque. The key is higher RPM.
Justin Nelson &amp;amp;mdash; June 03, 2019 at 08:17 PM
Oh and thank you for responding so quickly! I would love to discuss with you the results! :) You are an amazing person!
Justin Nelson &amp;amp;mdash; June 03, 2019 at 08:20 PM
Oh, and the design too, Axial Flux is an amazing next-gen design. Good for some things, WAY better than Radial Flux, even though RF has more start up torque. AF is WAY more efficient, you don&amp;amp;#39;t need the heavy iron core, the CORE design (mostly) eliminates Eddy Currents(so I&amp;amp;#39;ve heard), or does it? I would LOVE to discuss this! You are the only person I&amp;amp;#39;ve seen that analyzed the CORE motor this deeply.
Justin Nelson &amp;amp;mdash; June 03, 2019 at 08:27 PM
Oh yea! I thought so too, amazingly fabulously awesomeest motors I&amp;amp;#39;ve ever seen!
Justin Nelson &amp;amp;mdash; June 03, 2019 at 08:54 PM
Hi again! I have just a few questions if you don&amp;amp;#39;t mind, I am extremely interested in your results, but I don&amp;amp;#39;t really understand some of the variables(I am a software programmer, just getting into hardware, especially drones).
Question 1: &amp;amp;quot;There&amp;amp;#39;s a lot of dead space&amp;amp;quot;.
So from my limited autopsy of the motor, I believe there are 3 phases, so how many degrees are not used? I assumed, as with most 3 phase motors, there are 120 degrees that are used in a single phase, so the other 2/3 of the motor is unused. I also assumed that there are multiple layers, from looking at the patent, and that the phase goes all the way through the layers. I made a color diagram of the path of electricity through the coils in a phase. What did you mean by dead space exactly?
&amp;amp;quot;Back-EMF is pretty sinusoidal. An FFT reveals a little bit of 5th harmonic. Flux linkage is ~.0044, for a torque constant of .0264 N-m/A (peak phase amps). Line-to-line resistance is 125 mOhms. This gives a motor constant of .086 N-m/sqrt(watt).&amp;amp;quot;
1. &amp;amp;quot;Back-EMF is pretty sinusoidal&amp;amp;quot; What does that mean? Sorry, I&amp;amp;#39;m new to hardware and motors, but I&amp;amp;#39;m learning quickly!
2. FFT?
3. 5th harmonic?
4. So from your results(.0264 N-m/A), how many real world Newton Meters of torque could this motor produce?(Or am I interpreting that wrongly, perhaps that is dealing with something else)
5. &amp;amp;quot;.086 N-m/sqrt(watt)&amp;amp;quot; so .086 N-m/sqrt(500) = .086 N-m/22.36 = 0.0038 N-m? Oh I probably messed that one up.
I appreciate it, just trying to understand, this is very exciting! Most in depth explanation ever!
Justin Nelson &amp;amp;mdash; June 03, 2019 at 09:13 PM
Ok, here is that picture of the path the electricity takes through the conductor down to multiple layers.
https://oi1174.photobucket.com/albums/r605/LordNelson7/CoreMotorElectricalPath_zpsr1lz76qj.png?t=1559509385
The electricity starts in 53B(A+) and ends in 53A(A-). There are only 3 prongs in a real-world motor(there are 6 prongs in the diagram), so I am assuming the next phases prong is used as the end.
Starting on PCB pattern 32(the layer on the left), which is the top layer, the electricity flows in A+, through the conductor(colored brown). The first part of the conductor is thick, then flows through a thinner wire-type area, then to the middle, a slightly thicker area, then to the thin again, then out the &amp;amp;quot;lime green&amp;amp;quot; colored circular area, down to PCB Pattern 33, the second layer, our of the &amp;amp;quot;lime green&amp;amp;quot; colored circular area, on to the light brown thick area, around to a thin layer, onto the middle, onto &amp;amp;quot;bright red&amp;amp;quot; color, then &amp;amp;quot;dark blue&amp;amp;quot; color, then &amp;amp;quot;deep purple&amp;amp;quot;, then &amp;amp;quot;dark green&amp;amp;quot;, then into &amp;amp;quot;yellow&amp;amp;quot; circle, back to PCB pattern 32, layer 1, at yellow circle, along thick &amp;amp;quot;dark green&amp;amp;quot;, to thin, to middle, to &amp;amp;quot;pink&amp;amp;quot; circle, down to layer 2, to dark green, deep purple, dark blue, bright red, light brown, to blue circle, up to layer 1, along &amp;amp;quot;dark yellow&amp;amp;quot; back to A-.
Anonymous &amp;amp;mdash; July 29, 2019 at 05:48 PM
Core sold-out to a giant in the lawn care industry who wanted to turn-key into the growing &amp;amp;quot;environmentally-friendly&amp;amp;quot; commercial landscaping market. We built that PCB (and many more like it) but take no credit for the design (we build-to-print).</description></item><item><title>Controlling Phase Current Harmonics with FOC and AFC</title><link>https://robot-daycare.com/posts/2018-09-29-controlling-phase-current-harmonics-with-foc-and-a/</link><pubDate>Sat, 29 Sep 2018 19:57:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2018-09-29-controlling-phase-current-harmonics-with-foc-and-a/</guid><description>I was playing with my thermal test motor, and noticed that at high speeds, some pretty significant harmonics showed up in the phase currents.&amp;amp;nbsp; Here&amp;#39;s an example with an obvious 5th harmonic - I&amp;#39;m commanding 20A, peak, and the harmonics add a couple amps of ripple on top of that:
This ripple shows up because there&amp;#39;s a 5th harmonic in the motor&amp;#39;s flux linkage (and therefore back-emf).&amp;amp;nbsp; From the perspective of the field-oriented control, these harmonics at the phases show up as AC disturbances on the D/Q voltages.&amp;amp;nbsp; The two current loops will try to squash these disturbances, but it&amp;#39;s ability to do so depends on the current loop bandwidth and the magnitude of the disturbances.&amp;amp;nbsp; Since both the magnitude and frequency go up with motor speed, even&amp;amp;nbsp; really high-bandwidth current loops have trouble keeping up.&amp;amp;nbsp; For example, in the scope shot at the top, the current loop had around 2 kHz closed-loop bandwidth.&amp;amp;nbsp; The motor&amp;#39;s electrical frequency was 300 Hz, so the harmonic (in D/Q) was at 1.8 kHz, so the controller couldn&amp;#39;t quite reject it.
So how exactly do harmonics in the flux linkage at each phase show up when transformed into D and Q?&amp;amp;nbsp; In the sinusoidal flux linkage case with no position-varying inductance, the motor&amp;#39;s dynamics in the D/Q frame is exactly the classic voltage equations:
$$V_{d} = Ri_{d} + L\frac{di_{d}}{dt}&amp;amp;nbsp; - \omega Li_{q}$$
$$V_{q} = Ri_{q} + L\frac{di_{q}}{dt}&amp;amp;nbsp; + \omega Li_{d} + \omega\lambda$$
Where \(L\) is the synchronous inductance, \(R\) is the synchronous resistance, \(\omega\) is the (electrical) angular velocity, and \(\lambda\) is the peak flux linkage of one phase.
In the equations above, the flux linkage of a single phase \(\lambda_{p}\) is assumed to be of the form \(\lambda_{p} = \lambda \cos(\theta)\), where \(\theta\) is the rotor angle.&amp;amp;nbsp; Other phases will have an offset of \(\pm \frac{2\pi}{3}\).
If the flux linkage has a fifth-harmonic in it, for a single phase it looks like \(\lambda \cos(\theta) + \lambda_{2}\cos(5 \theta) \).&amp;amp;nbsp; With the fifth harmonic in flux linkage, the voltage equations in D and Q become:
$$V_{d} = Ri_{d} + L\frac{di_{d}}{dt}&amp;amp;nbsp; - \omega Li_{q} + 5\omega\lambda_{2}\sin(6\theta)$$
$$V_{q} = Ri_{q} + L\frac{di_{q}}{dt}&amp;amp;nbsp; + \omega Li_{d} + \omega\lambda - 5\omega\lambda_{2}\cos(6\theta)$$
(I have no interest in doing tedious trig and algebra by hand, so I wrote a&amp;amp;nbsp;Mathematica script&amp;amp;nbsp;to do the transforms analytically for me.)
That&amp;#39;s interesting&amp;amp;nbsp; - a fifth harmonic at the phases shows up as a 6th harmonic through the transforms.&amp;amp;nbsp; It turns out, a 7th harmonic at the phases also&amp;amp;nbsp;shows up as a 6th harmonic through the transforms - just with both positive sine and cosine components, rather than positive sine negative cosine.&amp;amp;nbsp; 11 and 13 show up as 12, and so on.&amp;amp;nbsp; Also (although this may be more intuitively obvious), odd multiples of 3 disappear through the transforms.
Just to confirm, here&amp;#39;s the output when plugging a fifth harmonic into my motor simulator, using the the other motor parameters from the U12 and same controller gains as the hardware.
Phase currents:</description></item><item><title>Thermal Testing, Round 2</title><link>https://robot-daycare.com/posts/2018-08-21-thermal-testing-round-2/</link><pubDate>Tue, 21 Aug 2018 05:19:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2018-08-21-thermal-testing-round-2/</guid><description>I made a cover for the small motor controller, which serves as both a top-side heatsink for the MOSFETS and gate driver, and (more importantly) as a clamping mechanism to keep the PCB flat and evenly pressed against the heatspreader beneath it.
In the picture below, the heatspreader is on the left, and cover on the right:&amp;amp;nbsp; The bar across the bottom sits on top of the FETS, the square in the middle sits above the DRV chip.&amp;amp;nbsp; I left a 0.1mm gap between the FET-bar and the top of the FET package, which gets filled by some .5mm thermal pad.&amp;amp;nbsp; This allows for some variation in the height of the transistors once they&amp;#39;re soldered down, and the compression of the thermal pad means there&amp;#39;s a fair amount of pressure pushing down on the top of each transistor.</description></item><item><title>Thermal Testing</title><link>https://robot-daycare.com/posts/2018-07-04-thermal-testing/</link><pubDate>Wed, 04 Jul 2018 05:01:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2018-07-04-thermal-testing/</guid><description>With the various layout errors on the last set of boards fixed, the controller seems to work as expected, so I&amp;#39;ve been doing some thermal testing.
I strapped the controller to a much bigger motor:&amp;amp;nbsp; Even with the old version of the controller, the small motors I&amp;#39;ve been using would catch on fire before the controller does.&amp;amp;nbsp;
Here it is attached to a T-motor U12:</description></item><item><title>Integrated Motor Controllers V2: Searching for the noise</title><link>https://robot-daycare.com/posts/2018-06-17-integrated-motor-controllers-v2-searching-for-the-/</link><pubDate>Sun, 17 Jun 2018 01:34:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2018-06-17-integrated-motor-controllers-v2-searching-for-the-/</guid><description>Remember how I said I was going to re-do the integrated motor controller using the new TI DRV8323 chip?&amp;amp;nbsp; Well, I did that.&amp;amp;nbsp; First round of boards came in and had a few errors, but I think I&amp;#39;ve found them all.&amp;amp;nbsp;
Changes:
DRV8323RS for gate drive, buck converter, and current shunt amplifiers
Smaller footprint - 37x37mm
Reasonable shape!&amp;amp;nbsp; Square mounting hole pattern, centered position sensor
All components (except for the position sensor) on the top side - the underside is flat for easy mounting and heat-sinking
Designed for through-board cooling, with FET pads thermal-via&amp;#39;d to the underside
True 4-layer design, 0402 package passives wherever possible, 6 mil trace/spacing, to make it small
Smaller buck passive, smaller CAN transceiver
Front:
Back side.&amp;amp;nbsp; Notice how empty it is.</description></item><item><title>Big Dyno Beginnings</title><link>https://robot-daycare.com/posts/2018-05-27-big-dyno-beginnings/</link><pubDate>Sun, 27 May 2018 06:29:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2018-05-27-big-dyno-beginnings/</guid><description>Bayley and I have been thinking about building a bigger motor dyno for a while now, based off the same power system as the Big Kart.&amp;amp;nbsp; Over the last year we&amp;#39;ve been slowly collecting parts for it - a torque sensor, a couple more Sonata HSGs, Prius inverters, etc, and I&amp;#39;ve finally started putting together the mechanical side of things.
Whereas the small dyno is good for 10 N-m of torque and 6000 RPM, this one will be good for 60 N-m and 15,000 RPM (although not simultaneously), and somewhere around 30 kW power.
First step was acquiring the appropriate torque sensor.&amp;amp;nbsp; The DC-output one I have on the small dyno is extremely convenient, because you can just measure the output with a DAQ or A/D, but the AC coupled ones are much more common on Ebay.&amp;amp;nbsp; Unfortunately, the readouts for the AC torque sensors are very expensive and hard to come by.&amp;amp;nbsp; A pile of really big, really cheap DC-operated torque sensors showed up on ebay for $28 apiece, so we got one and the MIT FSAE team collected the rest of the lot.
10,000 inch-pounds!&amp;amp;nbsp;(~1100 N-m) and 8500 RPM.&amp;amp;nbsp; With ~2&amp;#34; shafts on either end.&amp;amp;nbsp; Not actually very useful.</description></item><item><title>The Rubik's Contraption</title><link>https://robot-daycare.com/posts/2018-03-07-the-rubik-s-contraption/</link><pubDate>Wed, 07 Mar 2018 09:23:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2018-03-07-the-rubik-s-contraption/</guid><description>A collaboration with Jared.
Before any build log, here&amp;#39;s a video:
That was a Rubik&amp;#39;s cube being solved in 0.38 seconds.&amp;amp;nbsp; The time is from the moment the keypress is registered on the computer, to when the last face is flipped.&amp;amp;nbsp; It includes image capture and computation time, as well as actually moving the cube.&amp;amp;nbsp; The motion time is ~335 ms, and the remaining time image acquisition and computation.&amp;amp;nbsp; For reference, the current world record is/was&amp;amp;nbsp;0.637 seconds.
The machine can definitely go faster, but the tuning process is really time consuming since debugging needs to be done with the high speed camera, and mistakes often break the cube or blow up FETs.&amp;amp;nbsp; Looking at the high-speed video, each 90 degree move takes ~10 ms, but the machine is actually only doing a move every ~15 ms.&amp;amp;nbsp; For the time being, Jared and I have both lost interest in playing the tuning game, but we might come back to it eventually and shave off another 100 ms or so.&amp;amp;nbsp;&amp;amp;nbsp;</description></item><item><title>Small motor controller with integrated position sensor</title><link>https://robot-daycare.com/posts/2018-02-18-small-motor-controller-with-integrated-position-se/</link><pubDate>Sun, 18 Feb 2018 04:41:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2018-02-18-small-motor-controller-with-integrated-position-se/</guid><description>A while ago I added the hall effect encoder IC I&amp;#39;ve been using directly to the motor controller PCB.&amp;amp;nbsp; The controller sits directly on the back of the motor (with a magnet added to the motor shaft), and the phase wires solder straight in.&amp;amp;nbsp; I also have a pair of board-mounted XT30 connectors on the DC bus for easy daisy-chaining.&amp;amp;nbsp; Otherwise, the board is basically identical to the previous version of this controller.&amp;amp;nbsp; I&amp;#39;ve now built over a dozen of these, and have had no problems.</description></item><item><title>Controls Ramblings: How to get from Point A to Point B very fast (and stop)</title><link>https://robot-daycare.com/posts/2017-12-31-controls-ramblings-how-to-get-from-point-a-to-poin/</link><pubDate>Sun, 31 Dec 2017 16:28:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2017-12-31-controls-ramblings-how-to-get-from-point-a-to-poin/</guid><description>In an out-of-character move for me, this post has no actual hardware in it.&amp;amp;nbsp; Sorry to to disappoint you, dear readers.
This a simple but interesting controls problem relevant to a project I&amp;#39;m working on:
Problem: How do you move a thing from somewhere (point A)&amp;amp;nbsp; to somewhere else&amp;amp;nbsp; (point B) in the shortest possible amount of time, and stop dead on point B?&amp;amp;nbsp; Elsewhere, you might see this called &amp;#34;minimum time control&amp;#34;, &amp;#34;time optimal control&amp;#34;, or something similar.
Let&amp;#39;s say the thing is a mass \(M\), and we can apply a force \(F\) to it, and the problem is 1-D: the mass moves along a line.
Ignoring the&amp;amp;nbsp;shortest possible time&amp;amp;nbsp;part of the question for a second, the obvious linear control approach to this is a PD controller.&amp;amp;nbsp; If the controller gains are chosen so that the closed-loop response isn&amp;#39;t underdamped, \(M\) will converge to B without ever overshooting it.&amp;amp;nbsp; By cranking up the gains, it will converge faster and faster, assuming the system is perfect (i.e. it&amp;#39;s a perfect mass with no other dynamics, and you can instantaneously take perfect measurements and apply perfect force.&amp;amp;nbsp; Not that these are realistic assumptions).
Here&amp;#39;s what that looks like, with gains chosen such that all the closed-loop responses are critically damped.&amp;amp;nbsp; The legend shows the closed loop natural frequency.&amp;amp;nbsp; As that increases, response gets faster and faster, but the force required also increases.</description></item><item><title>Stall Torque Test Stand</title><link>https://robot-daycare.com/posts/2017-11-02-stall-torque-test-stand/</link><pubDate>Thu, 02 Nov 2017 19:19:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2017-11-02-stall-torque-test-stand/</guid><description>To better characterize the big kart motor, I threw together a stall torque test stand.&amp;amp;nbsp; This was actually several months ago, but I&amp;#39;m just now getting around to documenting things.
The stall-tester consists of a precision-length stick attached to the motor shaft, and a 50 kg load cell on the end of the stick.&amp;amp;nbsp; I added ball joints on each end of the load cell, to ensure that it is in pure tension or compression.</description></item><item><title>A brief introduction to the big go kart, and machining some PolyChain sprockets</title><link>https://robot-daycare.com/posts/2017-10-27-a-brief-introduction-to-the-big-go-kart-and-machin/</link><pubDate>Fri, 27 Oct 2017 02:56:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2017-10-27-a-brief-introduction-to-the-big-go-kart-and-machin/</guid><description>Brief Introduction:
Go read Bayley&amp;#39;s introduction.&amp;amp;nbsp; TL:DR:&amp;amp;nbsp; Racing kart frame with hybrid car parts based powertrain and custom motor control.&amp;amp;nbsp; We&amp;#39;ve done a lot of motor modeling, characterization, and control over the last year, and the go kart is getting quite performant.&amp;amp;nbsp; But we&amp;#39;re not quite squeezing all the possible performance out of the KIA HSGs yet.&amp;amp;nbsp; And the kart&amp;#39;s going to get a second motor.
Sprockets
Right now the go kart uses Gates Micro-V belts, because the HSG&amp;#39;s come with those pulleys pre-attached.&amp;amp;nbsp; However, we&amp;#39;re driving the motors a fair bit harder than the car they came from did.&amp;amp;nbsp; The v-belts, even with a huge amount of tension, slip at ~45 N-m of torque, and we&amp;#39;ve been able to hit nearly 60 N-m at 180 phase amps.&amp;amp;nbsp; So we&amp;#39;re switching the kart over to Gates PolyChain GT Carbon belts, which are basically the best synchronous belts you can get.&amp;amp;nbsp; The inch wide Micro-V belt is getting replaced with a 12mm wide, 8mm pitch PolyChain belt, which should be good for substantially more torque.
You can download CAD models of the sprockets from Gates, but, as they warn you on the website, the tooth geometry of the sprockets is not actually accurate, since the tooth profile is proprietary.&amp;amp;nbsp; My first plan was to try to figure out the tooth profiles from the patents (1, 2), but it turns out if you just ask nicely, Gates will send you the tooth profile drawings&amp;amp;nbsp; drawings for the sprockets you want.
We went for a reduction of 4:1, with a 20 tooth motor sprocket and an 80 tooth sprocket on the axle.&amp;amp;nbsp; The big sprockets were too big to fit on the MITERS CNC mill, so I did them on my lab&amp;#39;s Haas SMM.&amp;amp;nbsp; For fun I GoPro&amp;#39;d the entire machining process for one of them:</description></item><item><title>Extremely Chinese Brushless Power System Dyno-ing</title><link>https://robot-daycare.com/posts/2017-10-04-extremely-chinese-brushless-power-system-dyno-ing/</link><pubDate>Wed, 04 Oct 2017 05:02:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2017-10-04-extremely-chinese-brushless-power-system-dyno-ing/</guid><description>I did some data-gathering for Dane&amp;amp;nbsp;on a generic looking 48V 1800W brushless electric scooter motor widely available on ebay and aliexpress, paired with a 1500W E-bike controller.&amp;amp;nbsp;
Check out the full data here.
The motor had basically no shaft to speak of - it has a left-hand threaded stud on the end, and 2 flats which engage with a stamped #25 chain sprocket.&amp;amp;nbsp; Since there wasn&amp;#39;t enough shaft to grab onto with a collet, I made a &amp;#34;terrorist coupling&amp;#34;, with three steel pins that engage with the sprocket teeth:</description></item><item><title>Planar Magnetic Headphones, Part 2</title><link>https://robot-daycare.com/posts/2017-09-17-planar-magnetic-headphones-part-2/</link><pubDate>Sun, 17 Sep 2017 16:32:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2017-09-17-planar-magnetic-headphones-part-2/</guid><description>I finished putting together a housing for a single driver. &amp;amp;nbsp;CNC milled aluminum goodness:
The machining was done in two operations. &amp;amp;nbsp;All the fancy 3d profiling was done with the part flipped over and held in soft jaws. Front side:
Back side, before gluing in the magnets:
Here&amp;#39;s the assembled driver. &amp;amp;nbsp;I&amp;#39;m using a cheap off-the-shelf pair of earpads.</description></item><item><title>Dynamometer Database</title><link>https://robot-daycare.com/posts/2017-09-01-dynamometer-database/</link><pubDate>Fri, 01 Sep 2017 15:55:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2017-09-01-dynamometer-database/</guid><description>Now that I have a good process&amp;amp;nbsp;for collecting data on the motor dynamometer, and the appropriate scripts for quickly processing the data, I put up a page dedicated to motor dyno data. &amp;amp;nbsp;You can also find it in the navigation bar up top. &amp;amp;nbsp;There&amp;#39;s only one motor&amp;amp;nbsp;two motors on it right now, but it will slowly get populated as I get a chance to run more tests. I&amp;#39;m not sure if anyone else will actually find this useful, but it seems like there&amp;#39;s a growing number of people doing legitimate robotics and other cool stuff with hobby-grade motors, so I might as well share what data I&amp;#39;ve got.
Comments from Blogger
Tym &amp;amp;mdash; September 01, 2017 at 07:03 PM
This is certainly going to be useful! Get one of T-motor&amp;amp;#39;s new U8-II/U8-lite with curved magnets if you can.
Ben Katz &amp;amp;mdash; September 02, 2017 at 06:27 PM
If you send me one I&amp;amp;#39;d be happy to test it ;)
Also, U8 Pro data added
J &amp;amp;mdash; September 04, 2017 at 04:53 PM
It would be even nicer if data for resistance, inductance, torque constant etc. was measured :)
Ben Katz &amp;amp;mdash; September 04, 2017 at 04:57 PM
The reports already have resistance and torque constant on them, and I can throw in inductance as well.
J &amp;amp;mdash; September 17, 2017 at 07:23 PM
Oh, how did I miss that? Inductance would be great!</description></item><item><title>Planar Magnetic Headphones, Part 1</title><link>https://robot-daycare.com/posts/2017-08-21-planar-magnetic-headphones-part-1/</link><pubDate>Mon, 21 Aug 2017 01:08:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2017-08-21-planar-magnetic-headphones-part-1/</guid><description>A brief break from 3-phase electric motors, for a different kind of electromagnetic actuator.
Planar magnetic (a.k.a. &amp;#34;orthodynamic&amp;#34;, &amp;#34;isodynamic&amp;#34;, etc) drivers are a pretty neat topology of linear motor, which, as far as I can tell, has found no application besides speakers and headphones. &amp;amp;nbsp;Here&amp;#39;s a well-diagrammed explanation of how they work.
Instead of a voicecoil actuator which drives a stiff cone back and forth, like a conventional speaker driver, a thin membrane with conductive traces sandwiched within a funny magnet arrangement moves back and forth. image credit: innerfidelity.com
I won&amp;#39;t try to argue that this is &amp;#34;better&amp;#34; than a conventional driver in any way, because frankly I don&amp;#39;t care. &amp;amp;nbsp;It is cool, though, and also a perfect excuse to send out for some flex-PCB&amp;#39;s, which my go-to PCB vendor, PCBWay, recently started offering for quite reasonable prices
I started out by playing with magnet arrangements in FEMM, to see how sensitive this arrangement was to changes in magnet dimensions and spacing, and I ended up here:
This uses 1/8&amp;#34; square N52 magnets, with a 2mm airgap, and 9mm pitch. &amp;amp;nbsp;The array 2 inches long (into the page), and each bar is a pair of 1/8&amp;#34; x 1/8&amp;#34; x 1&amp;#34; magnets, which are cheaply available on ebay:</description></item><item><title>Reamer Regrinding</title><link>https://robot-daycare.com/posts/2017-08-14-reamer-regrinding/</link><pubDate>Mon, 14 Aug 2017 00:31:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2017-08-14-reamer-regrinding/</guid><description>In the near future I&amp;#39;ll need to make a bunch of things with tight-tolerance 22 mm bores, so instead of buying a 22 mm reamer, or just boring the holes like a normal person, I tried out re-grinding a 7/8&amp;#34; reamer (22.225 mm) reamer down to 20 mm by setting up my toolpost spindle as a toolpost grinder.
Here&amp;#39;s the setup:
The reamer is set up between centers, and the toolpost spindle has a 4&amp;#34; grinding wheel on an arbor. &amp;amp;nbsp;There&amp;#39;s a mist-coolant dispenser to keep everything cool and lubricated. &amp;amp;nbsp;The center on the chuck-side was turned in place out of some steel scrap, to ensure its concentricity with the spindle.
a</description></item><item><title>Vector Hysteresis FOC</title><link>https://robot-daycare.com/posts/2017-05-31-vector-hysteresis-foc/</link><pubDate>Wed, 31 May 2017 03:48:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2017-05-31-vector-hysteresis-foc/</guid><description>Here&amp;#39;s round 3 of wrapping up draft blog posts I&amp;#39;ve been sitting on for a while.
This came out of thinking about&amp;amp;nbsp;sliding mode control&amp;amp;nbsp;and direct torque control, thanks to the nonlinear controls class I took this past term. &amp;amp;nbsp;I did a more formal writeup for my final paper for the class, in the (unlikely) case you find that a more readable format.
In a typical FOC implementation, phase currents are measured and transformed into the rotor frame to get d and q axis currents. &amp;amp;nbsp;Then two PI loops are run to control the d and q currents, with some feed-forward deal with the coupling between the voltage equations. &amp;amp;nbsp;The two PI controllers output d and q voltages, which are transformed back to the stator frame, and approximated with PWM.
This usually works great, but here&amp;#39;s another controller I thought of which is (maybe) conceptually easier, and requires no controller design or gain calculating to work. &amp;amp;nbsp;In fact, it doesn&amp;#39;t even use any motor parameters. &amp;amp;nbsp;And it doesn&amp;#39;t even use PWM. &amp;amp;nbsp;At every step, it just picks which switches to turn on and off. &amp;amp;nbsp;Because of how it works, it&amp;#39;s quite robust to changing parameters, like the motor&amp;#39;s inductance changing when it saturates. &amp;amp;nbsp;Also, it has as fast as possible response given the open-loop dynamics of the motor. The basic idea is as follows: &amp;amp;nbsp;Given the position of the rotor and errors in d and q currents, which switches should be turned on and off to make the error decrease as fast as possible?
Every loop cycle, the controller measures current, looks at the error and where the rotor is, and chooses the switch states that send the current error towards zero the fastest.
While it probably looks very confusing at first, I think the vector diagram below best explains the situation:
First, there are six vectors drawn in black, V1-V6, which represent the six stator voltage vectors. &amp;amp;nbsp;Each of these corresponds to a set of switch-states. &amp;amp;nbsp;The states with all switches on or all switches off are not used. &amp;amp;nbsp;Then there&amp;#39;s the&amp;amp;nbsp;ĩ vector in blue, which is the vector sum of the d and q current errors. &amp;amp;nbsp;In red is the (negative of the) vector from motor dynamics, minus inductance. &amp;amp;nbsp;Looking at the motor voltage equations in d and q:
$$V_{d} = R_{d}i_{d} + L_{d}\frac{d i_{d}}{dt} - \omega L_{q}i_{q}$$
$$V_{q} = R_{q}i_{q} + L_{q}\frac{d i_{q}}{dt} + \omega(L_{d}i_{d} + \lambda_{r})$$
Vdynamics is equal to the vector sum of&amp;amp;nbsp;
$$ -R_{d}i_{d} &amp;amp;nbsp;+ \omega L_{q}i_{q}$$
and
$$-R_{q}i_{q} &amp;amp;nbsp;- \omega(L_{d}i_{d} + \lambda_{r})$$
in the d and q directions, respectively.
If the d-axis component of stator voltage plus the d-axis component of the dynamics is positive, then id will increase, and the same for the q axis.
The green vectors are di/dt scaled by inductance - mostly their direction is what matters. &amp;amp;nbsp;Given a dynamics vector and one of the stator vectors, the six di/dt vectors are the possible directions the current will change in.
Basically:
$$V_{stator} +&amp;amp;nbsp;V_{dynamics} = &amp;amp;nbsp;L\frac{d i}{dt}$$</description></item><item><title>Toolpost Spindle, Part 2</title><link>https://robot-daycare.com/posts/2017-05-30-toolpost-spindle-part-2/</link><pubDate>Tue, 30 May 2017 23:47:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2017-05-30-toolpost-spindle-part-2/</guid><description>I&amp;#39;ve mostly finished the toolpost spindle.
I found the perfect spindle motor on All Electronics, of all places, for $17. &amp;amp;nbsp;It&amp;#39;s a very cute brushless inrunner. &amp;amp;nbsp;I dyno-ed it at 500 watts peak output at 48V, running of a 17A sensorless e-bike motor controller. &amp;amp;nbsp;I forgot to take a picture of the inside, but the rotor has a thin steel sleeve around it, so the magnets won&amp;#39;t fly off the rotor at high speed. &amp;amp;nbsp;So I&amp;#39;m not worried about running it at 48V, even though it&amp;#39;s nominally a 24V or so motor.</description></item><item><title>Motor Dyno Efficiency Mapping</title><link>https://robot-daycare.com/posts/2017-05-30-motor-dyno-efficiency-mapping/</link><pubDate>Tue, 30 May 2017 02:20:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2017-05-30-motor-dyno-efficiency-mapping/</guid><description>
I finished up the code for automatically generating and post-processing efficiency maps on the motor dyno. &amp;amp;nbsp;You give it a maximum speed, a maximum command vs speed, and number of points to sample in speed and command, and it auto-generates a time-stamped .csv file my dyno software can read. &amp;amp;nbsp;Then the dyno plays back the time series, and logs the data. &amp;amp;nbsp;To extract the points of interest, the log has a flag in it, which is set to 1 after each operating &amp;amp;nbsp;point has settled, and 0 the rest of the time. &amp;amp;nbsp;The post-processing script just finds all the intervals where the flag is 1, averages all the samples collected over that period, and combines them into one point. &amp;amp;nbsp;So each point on the efficiency map is from several seconds of data.</description></item><item><title>EMRAX Motor Teardown</title><link>https://robot-daycare.com/posts/2017-05-08-emrax-motor-teardown/</link><pubDate>Mon, 08 May 2017 06:53:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2017-05-08-emrax-motor-teardown/</guid><description>** 12/5/2017 Update **
A number of people noticed that this post disappeared for a while.&amp;amp;nbsp; Here&amp;#39;s why.&amp;amp;nbsp; Skip down for the actual teardown
TL:DR, Emrax is a shitty company.&amp;amp;nbsp; They seem to have no/poor protection of their IP, and are willing to bully college students to keep pictures of their motors off the internet.
On July 4, I received the following message through the contact form on this site, typos and all:
Dear Mr. Ben,
I am a representative of EMRAX company. We have come across your web site, where you have published disassembled EMRAX motor. We want you to removie this article. We are signing Non-disclosure agreement with every our customer. I believe that also Massachusetts Institute of Technology (MIT) has signed it. Consider this agreement and remobe the article as soon as possible. I am waiting for your reply.
If you have any further questions feel free to contact me.
Hmm, sounds fishy.&amp;amp;nbsp; I don&amp;#39;t buy it.&amp;amp;nbsp; My response:</description></item><item><title>Encoder Autocalibration for Brushless Motors: Offset and Eccentricity</title><link>https://robot-daycare.com/posts/2017-03-31-encoder-autocalibration-for-brushless-motors-offse/</link><pubDate>Fri, 31 Mar 2017 23:55:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2017-03-31-encoder-autocalibration-for-brushless-motors-offse/</guid><description>I finally got around to writing a position sensor auto-calibration procedure, for measuring the orientation of the position sensor relative to the stator. &amp;amp;nbsp;Until now, I&amp;#39;ve been manually measuring that position by setting my U phase high, and V and W low to, lock the rotor to the D-axis, looking at the position sensor reading about a few of these points, and hard-coding them into my firmware.
This process should work regardless of the order the motor phases are plugged in to the controller, or how the position sensor is initially oriented.
Step 1: &amp;amp;nbsp;Determine Phase Ordering
The purpose of this step is so that commanding positive current on the q-axis produces torque in the direction that causes the encoder angle to increase. &amp;amp;nbsp;Basically, the process is to apply a large, slowly rotating current to a &amp;#34;virtual&amp;#34; D-axis. &amp;amp;nbsp;The rotor will closely follow this rotation. &amp;amp;nbsp;This is basically equivalent to driving the motor like a stepper motor with microstepping. &amp;amp;nbsp;As the current rotates around, if the encoder count is increasing in the positive direction, then everything&amp;#39;s good. &amp;amp;nbsp;If the encoder count is decreasing, then swap the voltage outputs and current sensor inputs on two phases. &amp;amp;nbsp;Now the motor will rotate the correct direction. In pseudo-code:
v_d = 1; // Volts on the D-Axis
v_q = 0;
reference_angle = 0; start_angle = encoder.GetPosition(); //starting position
while(reference_angle &amp;amp;lt; 2*Pi){
[v_u, v_v, v_w] = abc_transform(reference_angle, v_d, v_q, 0) //inverse dq0 transform to get phase voltages
wait(); //give the rotor some time to settle into position
reference_angle += .001;
}
end_angle = encoder.GetPosition(); // final position
if(start_angle - end_angle &amp;amp;gt; 0){ // if position decreased, swap phases
swap_phases(); }
Step 2: &amp;amp;nbsp;Measure Encoder Offset
Now that the motor spins the right direction, you can measure the DC offset of the encoder. &amp;amp;nbsp;Just like before, apply volts to the &amp;amp;nbsp;D axis, and slowly rotate the axis through a whole mechanical rotation both backwards and forwards.
Looking at the position sensor output vs the reference angle, you&amp;#39;ll see something like this.</description></item><item><title>Lathe Toolpost Spindle</title><link>https://robot-daycare.com/posts/2017-03-31-lathe-toolpost-spindle/</link><pubDate>Fri, 31 Mar 2017 02:12:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2017-03-31-lathe-toolpost-spindle/</guid><description>I&amp;#39;ve been thinking for a while it would be nice to have live tooling for the MITERSlathe, for things like grinding and indexed drilling parts like hubs. So far I&amp;#39;ve made everything out of random bits and pieces found at MITERS. &amp;amp;nbsp;For the spindle, I started out with this old R8 to ER16 adapter:
I meticulously turned the shank down to 20mm. &amp;amp;nbsp;I used sandpaper and Scotchbrite to bring the shaft to within a couple tenths down the whole length.</description></item><item><title>E-Mount to Sinar View Camera Adapter</title><link>https://robot-daycare.com/posts/2017-02-12-e-mount-to-sinar-view-camera-adapter/</link><pubDate>Sun, 12 Feb 2017 06:03:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2017-02-12-e-mount-to-sinar-view-camera-adapter/</guid><description>Bayley has a pretty cool Sinar view camera. &amp;amp;nbsp;I&amp;#39;m not going to go into exactly what a view camera is (go read wikipedia), but the gist is that you add a bunch of degrees of freedom between the camera&amp;#39;s sensor (or film) and the lens, allowing you to shift the plane of focus to somewhere not parallel to the plane of the sensor or lens. Unfortunately, using his CCD camera back requires tethering the camera to a sketchy old PowerBook G4, because that&amp;#39;s all the software to read it runs on, and tolerating the painfully slow ~1 Hz live-view updates. &amp;amp;nbsp;Focusing can literally take an hour if it&amp;#39;s a tricky shot.
To improve the view camera experience, I made an adapter for mounting my own Sony&amp;amp;nbsp;α6000 camera body to the view camera&amp;#39;s motion stages. &amp;amp;nbsp;Because the sensor is much smaller and recessed more into the camera body, you don&amp;#39;t get the extreme range of motion in tilt and swing like you do with the giant sensor, but it&amp;#39;s sufficient to get the view-camera effect.</description></item><item><title>LEM-On-A-Stick</title><link>https://robot-daycare.com/posts/2017-01-27-lem-on-a-stick/</link><pubDate>Fri, 27 Jan 2017 14:21:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2017-01-27-lem-on-a-stick/</guid><description>A quick build which is incredibly useful. &amp;amp;nbsp;Somehow I only thought of this now.
Recently Bayley&amp;amp;nbsp;and I were helping the FSAE team do some motor-debugging. &amp;amp;nbsp;To get a good oscilloscope shot of their motor&amp;#39;s phase currents, I borrowed the big LEM closed-loop hall current sensor from the motor dyno buck converter, wired into a ±15V supply and a sense resistor. &amp;amp;nbsp;It proved to be extremely helpful, and in the process I realized that having a small, high-current, medium-bandwidth current probe would be incredibly handy, especially for motor/motor control stuff.
I threw together a simple current probe made from a smaller LEM current transducer powered by a 9V battery and DC-DC converter IC. &amp;amp;nbsp;Pass your wire through the LEM, and the current signal goes out the SMA connector in the back straight to your oscilloscope. &amp;amp;nbsp;The particular sensor I used is good for&amp;amp;nbsp;±70A at DC to 200 kHz, making it fast enough to see effects like current ripple from switching on electric motors.</description></item><item><title>Motor Dyno: The Talk-To-Everything Board, and Other Updates</title><link>https://robot-daycare.com/posts/2017-01-21-motor-dyno-the-talk-to-everything-board-and-other-/</link><pubDate>Sat, 21 Jan 2017 20:15:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2017-01-21-motor-dyno-the-talk-to-everything-board-and-other-/</guid><description>
Here&amp;#39;s the Talk-To-Everything Board. &amp;amp;nbsp;The idea is that I want to be able to plug arbitrary motor controllers into the motor dyno, and control them from the UI on the computer. &amp;amp;nbsp;There&amp;#39;s an FTDI chip for USB to serial, with a digital isolator and isolated DC-DC converter, so that the computer is electrically isolated from whatever motor controller gets plugged in. &amp;amp;nbsp;My favourite STM32 is broken out to a CAN tranceiver, a small buck for 0-5V output, I2C, RC PWM, TTL Serial, &amp;amp;nbsp;differential 5V serial (like RS422), and SPI. &amp;amp;nbsp;Even if I don&amp;#39;t end up ever using several of these, it wasn&amp;#39;t much extra effort to break out more interfaces, so I figured I might as well.</description></item><item><title>Return of the Snow Bike: It actually works now</title><link>https://robot-daycare.com/posts/2017-01-14-return-of-the-snow-bike-it-actually-works-now/</link><pubDate>Sat, 14 Jan 2017 22:26:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2017-01-14-return-of-the-snow-bike-it-actually-works-now/</guid><description>It snowed rather a lot last Saturday, so I was finally motivated to get the snow bike up and running again. &amp;amp;nbsp;Last episode, the rollers inside the treads kept jamming with snow. &amp;amp;nbsp;I actually fixed this problem shortly after (almost a year ago now), but never quite got the electrical system to be solid. &amp;amp;nbsp;The motor/controller was still plagued with position sensor errors, so the vehicle never lasted more than a couple minutes without breaking down. &amp;amp;nbsp;For now, I&amp;#39;ve replaced the big 40V, 150A Kelly motor controller with a much more modest 50A sensorless e-bike controller borrowed from Dane. Here it is wired-up and ready to go:</description></item><item><title>Some Motor Math and Simulation</title><link>https://robot-daycare.com/posts/2016-12-21-some-motor-math-and-simulation/</link><pubDate>Wed, 21 Dec 2016 20:36:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-12-21-some-motor-math-and-simulation/</guid><description>While waiting for boards and parts for the&amp;amp;nbsp;motor dyno&amp;amp;nbsp;to show up, I got distracted by doing some motor modeling and simulation. Having a decent motor-modeling platform is an incredibly useful tool, because it lets you quickly test out motor control stuff in simulation, before actually implementing it on hardware and testing it for real.
I wanted a model which could encompass controller effects like sample time, &amp;amp;nbsp;switching, PWM resolution, A/D resolution, sensor noise, etc, and generally be, well, as general as possible, so that I can use it for arbitrary motors and motor controllers. &amp;amp;nbsp;I started out doing most of the model in the D-Q frame, but realized to get what I want, it really makes more sense to do all the motor modeling at the phases, and then just use the transformations as necessary for control purposes. &amp;amp;nbsp;You know, like how motors work in real life.
In working through this problem, I finally sat down and did a bunch of motor modeling math by hand, which I should probably have done a while ago. &amp;amp;nbsp;Fortunately&amp;amp;nbsp;Bayley&amp;amp;nbsp;&amp;amp;nbsp;was semi-coincidentally working through similar problems at the same time, to do some optimization for controlling hybrid car motors for a go kart, so we did some back-and forth to sanity check results.</description></item><item><title>Small Motor Controllers, Round 2</title><link>https://robot-daycare.com/posts/2016-10-31-small-motor-controllers-round-2/</link><pubDate>Mon, 31 Oct 2016 21:09:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-10-31-small-motor-controllers-round-2/</guid><description>A few minor differences on this revision:
Switched to lower-ESR through-hole electrolytic capacitors, from surface mount ones
Added a MCP 2562 CAN transceiver, to make it more straightforward to build robots with lots of motors on them.
Moved all the connectors to the edges of the board, and made them right-angle, for neater wiring
2 oz copper instead of 1 oz.
Sweet white solder mask
Stack o&amp;#39; boards from 3pcb:</description></item><item><title>Motor Dyno Updates, First Tests</title><link>https://robot-daycare.com/posts/2016-10-09-motor-dyno-updates-first-tests/</link><pubDate>Sun, 09 Oct 2016 05:10:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-10-09-motor-dyno-updates-first-tests/</guid><description>It&amp;#39;s somehow already been over a month since I last posted motor dyno documentation, so a lot has happened in the meantime.
The basic architecture of the system looks like this:
Most importantly, the absorber and the test motor are run off the same power supply. &amp;amp;nbsp;This means that the power supplies only have to output the losses in the system, not the absolute power of each motor. &amp;amp;nbsp;And since the buck converter powering the test motor is synchronous, the dyno supports full 4-quadrant operation.
Absorber Testing
Here&amp;#39;s the test setup for getting the absorber controller up and running.</description></item><item><title>Introducing the GigaTroller</title><link>https://robot-daycare.com/posts/2016-08-29-introducing-the-gigatroller/</link><pubDate>Mon, 29 Aug 2016 22:57:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-08-29-introducing-the-gigatroller/</guid><description>Enjoy this unprecedented two posts in one day. &amp;amp;nbsp;It probably won&amp;#39;t happen again.
The GigaTroller is the motor controller designed for running the absorber on the motor dyno, named for the absurd mosfets it uses, the IXYS MMIX1F520N075T2 TrenchT2 GigaMOS HiperFET. What a mouthful. This is an rediculous mosfet. &amp;amp;nbsp;Rdson is quite good but not spectacular (given its size), typically 1.2 mΩ on a 75V FET, and it has quite a lot of gate charge, 550 nC at 10V on the gate. &amp;amp;nbsp; However, mechanically it&amp;#39;s pretty awesome. &amp;amp;nbsp;It&amp;#39;s some fancy IXYS surface mount package, 1&amp;#34; square, with an isolated&amp;amp;nbsp;metal pad on the top. &amp;amp;nbsp;Thanks to the presumably gigantic die and excellent package, it&amp;#39;s rated for 500 A at 25 C, 1700 A pulsed, and 830 (!) watts of package dissipation at 25 C. &amp;amp;nbsp;It&amp;#39;s also a whopping $17 per FET on Digikey, but fortunately Bayley found some rails of them for $5 each on Ebay. &amp;amp;nbsp;At $17 they would be silly to buy but it&amp;#39;s actually a pretty reasonable amount of transistor for $5.</description></item><item><title>Small Motor Dynamometer: The Beginnings</title><link>https://robot-daycare.com/posts/2016-08-29-small-motor-dynamometer-the-beginnings/</link><pubDate>Mon, 29 Aug 2016 20:58:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-08-29-small-motor-dynamometer-the-beginnings/</guid><description>Where &amp;#34;Small&amp;#34; means around 6-7 kW.
I&amp;#39;ve been ruminating on building a small motor dyno for a while, since spending most of last summer working with really big dynamometers. &amp;amp;nbsp;While strategies like listen to the strange noises your motor is making to find glitches in your control loop&amp;amp;nbsp;and use your hand to load the motor and see how it behaves&amp;amp;nbsp;are surprisingly informative (and certainly help develop some intuition), they don&amp;#39;t really give you any quantitative information about motor performance (although I&amp;#39;m learning to calibrate my wrist as a torque sensor). For those unfamiliar with what a dynamometer is and does, it&amp;#39;s basically a system that lets you characterize a motor/engine/other torque-producing device. &amp;amp;nbsp;The output of the motor is coupled to speed and torque sensors. &amp;amp;nbsp;Speed times torque gives the actual mechanical power coming out of the motor. &amp;amp;nbsp;At the same time, voltage and current going into the motor can be measured, giving the power going into the motor. &amp;amp;nbsp;On the other side, another motor, called the &amp;#34;absorber&amp;#34;, acts as a generator to absorb all the power put out the the motor being tested.
For several months my ebay home page was filled with a variety of different searches for torque sensors, and eventually I found an excellent deal on a used S. Himmelstein DC-operated torque transducer, good for 11.15 Nm of torque and 6000 RPM. &amp;amp;nbsp;It&amp;#39;s almost perfectly matched to one of the 80-100 sized brushless outrunners, which is just about the biggest motor used in the various contraptions my friends and I build. &amp;amp;nbsp;The DC-operated versions of the Himmelstein torque sensors are especially convenient, since they just output analog DC voltage proportional to torque, which can be shoved into a DAQ for logging. &amp;amp;nbsp;Lots of the ebay-torque transducers require extra (expensive) circuitry to run the rotary transformers which interface with the strain gauges. &amp;amp;nbsp;I&amp;#39;m really impressed with this torque sensor - plugging it into a 16-big USB DAQ, I can easily distinguish 0.001 Nm changes in torque on the sensor, which is 1/10,000th of full scale.
For the absorber, I started out with the original 80-100 from the electric trike, which Charles gave to me 4 years ago. &amp;amp;nbsp;When it originally stopped working due to some shorted windings, I pulled off the original windings and then it sat around until now. &amp;amp;nbsp;I did the rewind with 4 parallel strands of 16 AWG, 200 C rated magnet wire, five turns-per-tooth, wye terminated. &amp;amp;nbsp;There&amp;#39;s still a little space between the stator slots, which I wanted for improved cooling (there will be a blower to force air through the stator).</description></item><item><title>Desktop Inverted Pendulum Part 2: Control</title><link>https://robot-daycare.com/posts/2016-08-26-desktop-inverted-pendulum-part-2-control/</link><pubDate>Fri, 26 Aug 2016 18:43:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-08-26-desktop-inverted-pendulum-part-2-control/</guid><description>With the mechanical bits&amp;amp;nbsp;out of the way, it&amp;#39;s time to go through the process of controlling the inverted pendulum. &amp;amp;nbsp;Brace yourself for babble about transfer functions and other controls stuff. &amp;amp;nbsp;Video at the end.
First on the agenda is getting the brushless motor to actually produce torque. &amp;amp;nbsp;While I&amp;#39;d already done 99% of the work&amp;amp;nbsp;required, I still had to redo the current d/q axis current loops.
After some decoupling&amp;amp;nbsp;the motors d and q axes look like independent RL circuits, and are thus easily tamed with PI controllers. &amp;amp;nbsp;Since the control loops are running on a microcontroller, it makes sense to design them directly in discrete time, rather than in continuous time (although designing in continuous time, assuming you sample fast enough for it to not make a difference, and converting to discrete time can be valid too). &amp;amp;nbsp;To do so, first find the&amp;amp;nbsp;zero-order hold equivalent of the RL circuit - basically, how the dynamics of the circuit appear to the microcontroller sampling at a fixed rate. Remembering good ol&amp;#39; 2.004,&amp;amp;nbsp;the transfer function of a series RL circuit from voltage to current is $$\frac{I(s)}{V(s)} = \frac{1}{(Ls&amp;amp;nbsp;+ R)}$$ which has a frequency response like this:</description></item><item><title>Desktop Inverted Pendulum, Part 1</title><link>https://robot-daycare.com/posts/2016-08-13-desktop-inverted-pendulum-part-1/</link><pubDate>Sat, 13 Aug 2016 19:49:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-08-13-desktop-inverted-pendulum-part-1/</guid><description>
This is a relatively quick little project, but one that&amp;#39;s been on my mind for more than a year now, and finally got around to building.
Inverted pendulums&amp;amp;nbsp;can be a pretty cool testbed for controls stuff. &amp;amp;nbsp;They&amp;#39;re relatively simple, but very non-linear systems, and there are a lot of approaches to swinging up and stabilizing the pendulum. &amp;amp;nbsp;The Furuta pendulum&amp;amp;nbsp;style of machine is particularly interesting, I think. &amp;amp;nbsp;If built right, they can be very small but have unlimited travel, unlike the car-pole style of inverted pendulum, which eventually runs out of track for the cart. &amp;amp;nbsp;Although the full non-linear equations of motion are much more gnarly, for small motions the behavior is largely the same, so it&amp;#39;s not actually any harder to stabilize. &amp;amp;nbsp;</description></item><item><title>Documenting all the things</title><link>https://robot-daycare.com/posts/2016-05-22-documenting-all-the-things/</link><pubDate>Sun, 22 May 2016 03:18:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-05-22-documenting-all-the-things/</guid><description>I&amp;#39;ve been saying I&amp;#39;ll post my design files and such online for a while now, so here it is. &amp;amp;nbsp;Use anything at your own risk.
I&amp;#39;ve been using mbed to store and compile my code. &amp;amp;nbsp;Here&amp;#39;s the version of the code that&amp;#39;s running the jumping leg. &amp;amp;nbsp;I&amp;#39;m not a software person, so please don&amp;#39;t judge me too hard on my code. &amp;amp;nbsp;I went into this project thinking it would be a good idea to make all the code modular, but I think I went a little too far with that. &amp;amp;nbsp;At some point I&amp;#39;ll condense it all down into something a bit more manageable, and just keep things like position sensor code modular. &amp;amp;nbsp;The current loops should have enough stability margin to work for a fairly wide range of small motors without any tweaking of constants.
Here are the python scripts that send serial commands to the motor controllers. Here are the eagle files, gerbers, and BOM for the motor controllers and sensor boards. &amp;amp;nbsp;When I sent the boards to 3PCB, the text the motor controllers got all scrambled so keep that in mind. &amp;amp;nbsp;At this point I&amp;#39;ve built up three of each board, and they all work. &amp;amp;nbsp;I haven&amp;#39;t even blown up a single FET yet, in all of my motor control derping so far. Here are my CAD files for the motor, gearbox, motor module, and leg.&amp;amp;nbsp; Requires Solidworks 2015-2016 to open. &amp;amp;nbsp;Many of the gearbox files have HSMWorks CAM in them, so you&amp;#39;ll need the full version of HSMWorks to view the CAM. &amp;amp;nbsp;There&amp;#39;s also a list of the gears I got from KHK and the post-machining I did on them.
What&amp;#39;s Next
I&amp;#39;m taking a break from this for the summer, but don&amp;#39;t worry, it&amp;#39;s not getting abandoned. Things I might do eventually:
Scramble the physical layout of everything to make it more robust. &amp;amp;nbsp;No more sensors dangling off 3D-printed mounts, and I don&amp;#39;t want to have to modify the motors in any way for the gearbox. &amp;amp;nbsp;Probably move to a single-board design with both motor controller and position sensor on it. &amp;amp;nbsp;Maybe get quotes for how much it would cost to get a bunch of the gearboxes made in China? &amp;amp;nbsp;We&amp;#39;ll see.
More motor stuff! &amp;amp;nbsp;I&amp;#39;m in the process of building a motor dynamometer, so I&amp;#39;ll be able to quantify dynamic motor performance. &amp;amp;nbsp;This is something the MITERS circle of motor enthusiasts hasn&amp;#39;t ever done. &amp;amp;nbsp;Woo, science!
Thoughts on selling motor modules: &amp;amp;nbsp;I&amp;#39;ve been asked a surprising number of times if I plan on selling these motor/gearbox/controller modules. &amp;amp;nbsp;I definitely do not plan on it any time in the near future. &amp;amp;nbsp;Maybe&amp;amp;nbsp;I&amp;#39;ll give it more thought later, but right now I&amp;#39;m not interested. &amp;amp;nbsp;Also, there&amp;#39;s a lot more engineering that needs to be done to make this product-grade. Oh, hey, I wrote a thing.&amp;amp;nbsp; It&amp;#39;s basically this blog half-assedly copy-pasta&amp;#39;d into Latex, and re-written in a slightly more formal tone. &amp;amp;nbsp;There&amp;#39;s fairly little that&amp;#39;s not also somewhere in this series of blog posts, but hey, it exists.
Until next time,
Comments from Blogger
Anonymous &amp;amp;mdash; May 27, 2016 at 09:08 PM
How did you measure your q axis current on the scope when you were looking at the step response?
Ben Katz &amp;amp;mdash; May 27, 2016 at 09:23 PM
Write the computed q current to the D/A converter, scope the output.
Anonymous &amp;amp;mdash; May 27, 2016 at 11:56 PM
Thanks - that makes sense. Having a analog outputs seems very useful.
Nice work!</description></item><item><title>Slow-Motion Jump</title><link>https://robot-daycare.com/posts/2016-05-06-slow-motion-jump/</link><pubDate>Fri, 06 May 2016 03:53:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-05-06-slow-motion-jump/</guid><description>One more jumping leg post. &amp;amp;nbsp;Bayley broke out his Photron high-speed camera last night, and we took some 500 fps video of the leg jumping. &amp;amp;nbsp;Sorry it&amp;#39;s so red, from a combination of incandescent bulbs and no IR filter on the lens:
Expect design files, code, etc. &amp;amp;nbsp;to appear here in a couple weeks, when I&amp;#39;m done with classes. &amp;amp;nbsp;Also, this is the 100th post on this section of my blog! &amp;amp;nbsp;Only took ~4 years.</description></item><item><title>More Jumping</title><link>https://robot-daycare.com/posts/2016-05-04-more-jumping/</link><pubDate>Wed, 04 May 2016 20:24:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-05-04-more-jumping/</guid><description>
Last night I reworked all the communication to happen directly over serial, and hooked the leg up to a more capable power supply. &amp;amp;nbsp;Performance was greatly improved. &amp;amp;nbsp;Now the leg can max out the travel of the linear guide it&amp;#39;s fixed to:
And the obligatory animated GIF:
That jump was actually still with a current limit set on the power supply. &amp;amp;nbsp;Turning up the supply to max current, the leg can easily crash into the hard-stop at the top of the linear rail. &amp;amp;nbsp;It actually managed to move the hard stop by a couple millimeters - I dialed back after that, because if the bearing manages to escape the rail, all the little recirculating balls will fall out.</description></item><item><title>Jumping Leg</title><link>https://robot-daycare.com/posts/2016-04-25-jumping-leg/</link><pubDate>Mon, 25 Apr 2016 03:42:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-04-25-jumping-leg/</guid><description>After 2 days of debugging (and only partially fixing) a mysterious SPI communication bug that appeared out of nowhere, here&amp;#39;s a jumping leg:
A few things to note: &amp;amp;nbsp; - This is with current limited to 40 amps on the motor side. &amp;amp;nbsp;For more current, I&amp;#39;ll need to a smaller phase current shunt. &amp;amp;nbsp;The current limit definitely gets saturated here. &amp;amp;nbsp;The boards and motor can&amp;#39;t handle that current continuously without real cooling, but seems to handle it just fine in bursts.
&amp;amp;nbsp;- The linear bench supply powering things got pretty sad here. &amp;amp;nbsp;You can hear/see it click into constant current mode, which certainly doesn&amp;#39;t help jumping performance, and see the voltage spike as the leg lands and motors regen. &amp;amp;nbsp;Needs more battery.
- This is at 12V, not the maximum 24-ish the controller&amp;#39;s can handle. &amp;amp;nbsp;Also, at peak motor power, the supply sags to ~8V, which may significantly affect jumping performance.
GIF infinite loop mode:</description></item><item><title>I'm Back to Building Robot Arms</title><link>https://robot-daycare.com/posts/2016-04-22-i-m-back-to-building-robot-arms/</link><pubDate>Fri, 22 Apr 2016 16:24:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-04-22-i-m-back-to-building-robot-arms/</guid><description>Not really, but a sideways leg is basically a SCARA arm, right?
I milled out a simple 4-bar linkage leg. &amp;amp;nbsp;Leg dimensions were roughly taken from the SMC robot. &amp;amp;nbsp;It&amp;#39;s really fun to prod at with different joint parameters. &amp;amp;nbsp;Each motor controller takes joint position, stiffness, and damping commands in over SPI:
I threw together some quick Python command line tools for setting the joint parameters in real-time:
Time to strap it to a linear rail and make it jump, then hide away for a couple weeks to write my thesis and finish the other stuff I need to do to graduate.</description></item><item><title>Torque Ripple Characterization and Position/Impedance Control</title><link>https://robot-daycare.com/posts/2016-04-13-torque-ripple-characterization-and-position-impeda/</link><pubDate>Wed, 13 Apr 2016 21:46:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-04-13-torque-ripple-characterization-and-position-impeda/</guid><description>I promised more science, so here it is. &amp;amp;nbsp;I took some measurements of my motor&amp;#39;s torque ripple &amp;amp;nbsp;- its variation in torque with rotor position - at different current levels, to see how bad the ripple is, how easy it would be to compensate, and get a sense for how well my motor control is working.
The basic idea for this experiment was apply constant current to the q axis, and measure the torque out of the motor as a function of rotor position by slowly rotating the rotor through a single mechanical rotation.
The setup, from left to right:
Indexing head, a rewound 80-100 motor acting as a shaft, an S. Himmelstein rotary torque transducer, my Multistar Elite motor, and an optical encoder.</description></item><item><title>Motor Module</title><link>https://robot-daycare.com/posts/2016-04-05-motor-module/</link><pubDate>Tue, 05 Apr 2016 20:58:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-04-05-motor-module/</guid><description>Another fairly unsubstantial post (as far as technical details are concerned), but pretty pictures. &amp;amp;nbsp;I promise there&amp;#39;ll be more science in the future.
Here&amp;#39;s a motor&amp;amp;nbsp;+ gearbox&amp;amp;nbsp;+ position sensor +&amp;amp;nbsp;controller module assembled:
Cute feature: &amp;amp;nbsp;The FETs on the bottom of the board heatsink to the flat spot on the gearbox.
At the other end is a small diametrically magnetized cylindrical magnet, glued to the rotor, and MA700 chip sensing magnet orientation.</description></item><item><title>New Boards!</title><link>https://robot-daycare.com/posts/2016-03-22-new-boards/</link><pubDate>Tue, 22 Mar 2016 21:34:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-03-22-new-boards/</guid><description>I finally put the finishing touches on the 2nd revision of motor control boards, and sent them out to get made. &amp;amp;nbsp;Here&amp;#39;s the layout I sent to 3pcb:
I waited a couple days after receiving the boards for the new MITERS rework station to show up. &amp;amp;nbsp;It has a heater below the board that preheats everything, and a hot air gun on an arm. &amp;amp;nbsp;Assembly, especially of the TSOP-package parts, was far more pleasant than first time around and turned out way better:</description></item><item><title>Planetary Gearboxes</title><link>https://robot-daycare.com/posts/2016-02-28-planetary-gearboxes/</link><pubDate>Sun, 28 Feb 2016 23:02:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-02-28-planetary-gearboxes/</guid><description>
I made a little single-stage 6:1 planetary gearbox for one of the motors.&amp;amp;nbsp;
Cross section, so you can see the bearing arrangement. &amp;amp;nbsp;For compactness and maximum bearing spacing, the planet carrier is supported on either side by bearings, rather than cantilevered as they usually are.
Parting a bunch of 24 tooth planets off some gear rod stock.
To reduce backlash and make everything generally smoother, the planets have ball bearings pressed into them. &amp;amp;nbsp;The inner race of the bearings are pressed onto the planet carrier. &amp;amp;nbsp;Usually the planets ride on pins with bushings, which will contribute to backlash and friction in the gearbox:.</description></item><item><title>Motor Control Progress: Working Hardware, and a Field Oriented Control Implementation</title><link>https://robot-daycare.com/posts/2016-02-03-motor-control-progress-working-hardware-and-a-fiel/</link><pubDate>Wed, 03 Feb 2016 08:33:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-02-03-motor-control-progress-working-hardware-and-a-fiel/</guid><description>
Over winter break I finished EAGLE-ing up a first revision of motor control hardware, and sent out for boards from 3PCB first week in January. &amp;amp;nbsp;This version is shaped like a Nucleo for ease of modification and debugging. &amp;amp;nbsp;Once I get motor control stuff solid, I&amp;#39;ll redesign it with the microcontroller on the same board. &amp;amp;nbsp;
I&amp;#39;m using TI&amp;#39;s DRV8302&amp;amp;nbsp;chip-that-does-everything. &amp;amp;nbsp;It has built in 3 phase gate drive (with configurable deadtime), 2 amplifiers for low-side current shunts (with selectable gain), and buck converter for your logic (just add your own inductor, capacitor, diode, and feedback resistors). &amp;amp;nbsp;</description></item><item><title>Snow Bike Part 2: How Does Snow Work?</title><link>https://robot-daycare.com/posts/2016-01-25-snow-bike-part-2-how-does-snow-work/</link><pubDate>Mon, 25 Jan 2016 19:37:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-01-25-snow-bike-part-2-how-does-snow-work/</guid><description>Snow Bike was more or less finished Saturday night, just in time for playing in several inches of snow before it all got plowed and salted.
Here&amp;#39;s the motor mount, made from a couple more aluminum plates.
I cut a ski mount from a section of 3&amp;#34; square tubing, and pressed some brass bushings in. &amp;amp;nbsp;The axle is a standard bike axle. &amp;amp;nbsp;I have some long gas springs I might eventually add to the ski to return it to a neutral position, but haven&amp;#39;t gotten around to that yet.</description></item><item><title>Emergency Snow Bike, Part 1</title><link>https://robot-daycare.com/posts/2016-01-21-emergency-snow-bike-part-1/</link><pubDate>Thu, 21 Jan 2016 08:46:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-01-21-emergency-snow-bike-part-1/</guid><description>After the absurd amount of snow Massachusetts got last winter, I decided to prepare myself for the next winter by grabbing a pair of small snow blower treads on Ebay. &amp;amp;nbsp;On Monday of this week, there were rumors of a foot of snow this coming weekend, so I decided to punt everything else for a few days, put the treads to use, and build an emergency snow vehicle. &amp;amp;nbsp;Although the snow forecasts are no longer so exciting, at some point this winter it&amp;#39;ll snow enough for some fun snow riding.
Here&amp;#39;s the preview:</description></item><item><title>Closed Loop Subwoofer With Interferometer Feedback, Part 2: The Hardware</title><link>https://robot-daycare.com/posts/2016-01-15-closed-loop-subwoofer-with-interferometer-feedback/</link><pubDate>Fri, 15 Jan 2016 06:14:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-01-15-closed-loop-subwoofer-with-interferometer-feedback/</guid><description>
In Part 1, I documented quadrature-encoder-ing with the Nucleo boards, and talked about some ways to sense speaker cone velocity.
Here&amp;#39;s the hardware.&amp;amp;nbsp;
So what&amp;#39;s going on up there?
To the left of the speaker is an interferometer built by Peter. &amp;amp;nbsp;This particular configuration of interferometer results in two out-of-phase interference patterns, which (for this project) are conditioned into a digital quadrature signal, just like an encoder.
A HeNe laser is split and directed at two retroreflectors - one on the back of the speaker driver, and one fixed to the optical breadboard. &amp;amp;nbsp;The reflected paths re-intersect each other and interfere. &amp;amp;nbsp;The interference pattern changes as the moving half of the path changes length, and this changing pattern is picked up by a pair of photodiodes. &amp;amp;nbsp;Here&amp;#39;s a diagram of the laser path, because words are hard sometimes. &amp;amp;nbsp;The blue circle is where the interference happens. &amp;amp;nbsp;The interference pattern on each beam cycles every 1/2 wavelength of displacement, (since the beam path lengthens by twice the movement of the speaker), and since the two interference patterns are ~90 degrees out of phase, the edges of the digital output are spaced 1/2 that again, so every 1/4 wavelength of speaker displacement. &amp;amp;nbsp;That&amp;#39;s 158.2 nm for this laser. &amp;amp;nbsp;I can&amp;#39;t do justice to the explanation for why the two outputs are out of phase, so I&amp;#39;m not going to try.</description></item><item><title>Motor Characterization for Small Running Robots</title><link>https://robot-daycare.com/posts/2016-01-06-motor-characterization-for-small-running-robots/</link><pubDate>Wed, 06 Jan 2016 05:41:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2016-01-06-motor-characterization-for-small-running-robots/</guid><description>a.k.a. HobbyKing Cheetah.
Bear with me, this is going to be a long one. Tl;DR:&amp;amp;nbsp;
I characterize a bunch of cheap brushless motors to investigate their usefulness in small running robots. &amp;amp;nbsp;Each motor gets a mechanical teardown and brief characterization. &amp;amp;nbsp;Scroll to the bottom for conclusions.
Background
I&amp;#39;ve worked on small running robots in the past, in the Biomimetic Robotics Lab. &amp;amp;nbsp;That robot was designed to be extremely low-cost, built out of super cheap off-the-shelf DC gearmotors, which proved to be a hugely limiting factor in terms of the kind of running the robot was capable of.
So here&amp;#39;s the basic idea: &amp;amp;nbsp;The hobby remote-control-things market has produced an abundance of cheap, light, super powerful motors. &amp;amp;nbsp;This type of motor has showed up in my fleet of small electric vehicles, and many other people&amp;#39;s vehicles, multi-copters, airplanes, etc. long before me. &amp;amp;nbsp;But not in robots as precision or fast, torque controlled actuators. There are a couple reasons for this, I think. &amp;amp;nbsp;First, suitable motor controllers don&amp;#39;t really exist. &amp;amp;nbsp;There are super expensive small brushless controllers made by companies like Maxon, and slightly less expensive (but larger) industrial-grade servo drives by the likes of AMC. &amp;amp;nbsp;These could be convinced to work by appending your own sensor array to a hobby motor. &amp;amp;nbsp;However, these motors tend to be wound for low torque constant, low resistance, low inductance, so they want lots of amps and relatively few volts, which doesn&amp;#39;t play nicely with the fancy servo drives. &amp;amp;nbsp;On the other end of the spectrum, there are the hobby grade controllers which usually are awful for anything other than RC vehicles, as they lack any form of current or torque control. As I&amp;#39;m interested in using these motors in dynamic running robots, all these motor control options become even less useful. &amp;amp;nbsp;The fancy industrial drives might output 10 amps all day, but won&amp;#39;t give you a drop more than 10 amps ever. &amp;amp;nbsp;For running, on the other hand, that&amp;#39;s not what you want. &amp;amp;nbsp;Instead, you want many times your continuous current for short bursts and much less current the rest of the time. &amp;amp;nbsp;So more dynamic current limiting is required.
Thanks to Nick&amp;#39;s last semester at MIT working on the Derpbike&amp;amp;nbsp;(a.k.a&amp;amp;nbsp;Bremsthesis), I&amp;#39;m making this a senior thesis project. &amp;amp;nbsp;While I technically don&amp;#39;t need to do one to graduate as I&amp;#39;m doing course 2A (the flexible MechE option), it&amp;#39;s an excellent excuse to spend all of next term at MITERS working on my own project&amp;amp;nbsp;for credit. &amp;amp;nbsp;My end-goal for the semester is to get all the necessary motor control stuff worked out and build a prototype 2 degree-of-freedom leg using hobby RC motors.
Motor Characterization
I&amp;#39;ve started out this project by acquiring a pile of small brushless motors I thought would be suitable for this kind or robot, and characterizing them to figure out which are the best. &amp;amp;nbsp;These were visually narrowed down from the vast array of available motors by geometry. &amp;amp;nbsp;In general, pancake-shaped (large diameter, small depth) is best for high torque density1. This can be seen with a little motor dimensional analysis. &amp;amp;nbsp;Assume your rotor and stator are two rings of constant thickness, and radius and depth can be varied (not too unreasonable, although not all-encompassing). &amp;amp;nbsp;Motor torque will be proportional to both air gap surface area and air gap radius. &amp;amp;nbsp;So for a fixed air gap surface area (which means fixed mass, in this case) &amp;amp;nbsp;increasing diameter means increasing torque per mass.
Obviously there are many practical reasons why this might not be perfectly true (motor supporting material mass may scale differently, thinner motor means larger percent of windings in the end turns, etc.) but it&amp;#39;s a good place to start from.
Here&amp;#39;s the pile of motors I ended up with. &amp;amp;nbsp;From left to right, the Turnigy HD 5208 Gimbal Motor, Turnigy Multistar Elite 5010, Gartt ML 5208, Turnigy Multistar 4830, Turnigy Multistar 4822, and Flycat i-Rotor 5010:</description></item><item><title>High-Speed Quadrature Decoding with the STM32F4 Nucleo...Because Lasers and Bass</title><link>https://robot-daycare.com/posts/2015-12-29-high-speed-quadrature-decoding-with-the-stm32f4-nu/</link><pubDate>Tue, 29 Dec 2015 02:24:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-12-29-high-speed-quadrature-decoding-with-the-stm32f4-nu/</guid><description>I&amp;#39;ve been using the STM32F4 Nucleo dev boards for everything lately, and needed to do high speed (edges at MHz frequency) quadrature decoding with one. &amp;amp;nbsp;Here are the snippets of code to do this.
This setup uses PA_0 and PA_1 plus Timer 2 (one of the two 32-bit timers), which are on the Arduino-compatible A0 and A1 of the Nucleo board (pinout). The setup code is mostly copy-and-pasted from here. &amp;amp;nbsp;That code got me to encoder edges at ~600 Khz before it started losing counts. &amp;amp;nbsp;Turns out&amp;amp;nbsp;there&amp;#39;s a digital filter on the GPIO pins I had inadvertently turned on with the copy-pasta code.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// configure GPIO PA0 &amp;amp;amp; PA1 as inputs for Encoder
RCC-&amp;amp;gt;AHB1ENR |= 0x00000001; // Enable clock for GPIOA
GPIOA-&amp;amp;gt;MODER |= GPIO_MODER_MODER0_1 | GPIO_MODER_MODER1_1 ; //PA0 &amp;amp;amp; PA1 as Alternate Function /*!&amp;amp;lt; GPIO port mode register, Address offset: 0x00 */
GPIOA-&amp;amp;gt;OTYPER |= GPIO_OTYPER_OT_0 | GPIO_OTYPER_OT_1 ; //PA0 &amp;amp;amp; PA1 as Inputs /*!&amp;amp;lt; GPIO port output type register, Address offset: 0x04 */
GPIOA-&amp;amp;gt;OSPEEDR |= 0x00000011;//|= GPIO_OSPEEDER_OSPEEDR0 | GPIO_OSPEEDER_OSPEEDR1 ; // Low speed /*!&amp;amp;lt; GPIO port output speed register, Address offset: 0x08 */
GPIOA-&amp;amp;gt;PUPDR |= GPIO_PUPDR_PUPDR0_1 | GPIO_PUPDR_PUPDR1_1 ; // Pull Down /*!&amp;amp;lt; GPIO port pull-up/pull-down register, Address offset: 0x0C */
GPIOA-&amp;amp;gt;AFR[0] |= 0x00000011 ; // AF01 for PA0 &amp;amp;amp; PA1 /*!&amp;amp;lt; GPIO alternate function registers, Address offset: 0x20-0x24 */
GPIOA-&amp;amp;gt;AFR[1] |= 0x00000000 ; // /*!&amp;amp;lt; GPIO alternate function registers, Address offset: 0x20-0x24 */
// configure TIM2 as Encoder input
RCC-&amp;amp;gt;APB1ENR |= 0x00000001; // Enable clock for TIM2
TIM2-&amp;amp;gt;CR1 = 0x0001; // CEN(Counter ENable)=&amp;#39;1&amp;#39; &amp;amp;lt; TIM control register 1
TIM2-&amp;amp;gt;SMCR = 0x0003; // SMS=&amp;#39;011&amp;#39; (Encoder mode 3) &amp;amp;lt; TIM slave mode control register
TIM2-&amp;amp;gt;CCMR1 = 0x0101; // CC1S=&amp;#39;01&amp;#39; CC2S=&amp;#39;01&amp;#39; &amp;amp;lt; TIM capture/compare mode register 1
TIM2-&amp;amp;gt;CCMR2 = 0x0000; // &amp;amp;lt; TIM capture/compare mode register 2
TIM2-&amp;amp;gt;CCER = 0x0011; // CC1P CC2P &amp;amp;lt; TIM capture/compare enable register
TIM2-&amp;amp;gt;PSC = 0x0000; // Prescaler = (0+1) &amp;amp;lt; TIM prescaler
TIM2-&amp;amp;gt;ARR = 0xffffffff; // reload at 0xfffffff &amp;amp;lt; TIM auto-reload register
//Tim2-&amp;amp;gt;BDTR
TIM2-&amp;amp;gt;CNT = 0x0000; //reset the counter before we use it And to read the count, just
position = TIM2-&amp;amp;gt;CNT;
The critical change was in line 16, which used to read
TIM2-&amp;amp;gt;CCMR1 = 0xF1F1; Changing &amp;#34;F&amp;#34; to &amp;#34;0&amp;#34; disables the filter for input capture 1 and 2. &amp;amp;nbsp;&amp;#34;F&amp;#34; sets the filter as slow as possible, so I likely could have left some filtering and still gotten good enough results (with perhaps better noise-immunity). &amp;amp;nbsp;More details about filtering can be found on page 358 of the&amp;amp;nbsp;841 page reference manual&amp;amp;nbsp;for the STM32F4 series.
I was able to test up to ~5 Mhz edges using a 12,500 CPR optical encoder coupled to a DC motor, with no missed counts. &amp;amp;nbsp;Probably could have gone faster, but I didn&amp;#39;t have an easy way of testing.
%% &amp;amp;nbsp;end of useful reference material, on to project-ramblings &amp;amp;nbsp;%%
%% &amp;amp;nbsp;proceed at your own risk &amp;amp;nbsp;%%
Now why did I need to read encoder edges at several megahertz? &amp;amp;nbsp;Well, this term I took 2.171 (Digital Feedback Control Systems, with Prof. David Trumper and TA&amp;amp;nbsp;Will Bosworth. &amp;amp;nbsp;A++, would highly recommend.), and for my final project built a subwoofer with closed-loop velocity control of the speaker cone from an audio signal reference. Lots of possible velocity sensing methods exist, and they can basically all be broken down into three categories: &amp;amp;nbsp;direct velocity measurement, position measurement with differentiation to get velocity, and acceleration measurement with integration to get velocity. For direct velocity measurement, I thought of a few strategies.
Attach a second voice coil to the speaker cone. &amp;amp;nbsp;Voice coil voltage will be proportional to velocity. &amp;amp;nbsp;The only tricky bit is making sure the magnetics of the second voice coil are completely isolated from those of the driving coil.
Wrap a second coil of very thin sense-windings around the original voice coil windings. &amp;amp;nbsp;This has been done.&amp;amp;nbsp; The problem with this strategy is that, in addition to the back-emf from the permanent magnet, the driving coil and sense coil are coupled. &amp;amp;nbsp;This can be sorted out with some math, but I preferred not to go that route.
Somehow measure the back-emf of the coil between switching transients. &amp;amp;nbsp;During the dead-time in the switching of the h-bridge (or Class-D amplifier with no output filter, in audio-lingo), the voltage across the coil isn&amp;#39;t railed at (±)power-supply voltage, and it should be possible to figure out the speaker&amp;#39;s back emf during this period. &amp;amp;nbsp;I stared at a scope trace of coil voltage for a few minutes and decided this would be really hard. &amp;amp;nbsp;This would be the holy grail of closed-loop speaker nonsense, as it requires no external sensor.
Measuring position and differentiating can be risky business, because high-frequency noise gets amplified by differentiation. &amp;amp;nbsp;A few linear position measuring methods are:
Laser&amp;amp;nbsp;+ mirror&amp;amp;nbsp;+ 1-D PSD, as suggested by Prof. Trumper. &amp;amp;nbsp;Fix a laser, and point it at a little mirror on the speaker cone. &amp;amp;nbsp;The reflected laser spot lands on the PSD, which gives you cone position. &amp;amp;nbsp;Gain of the sensor can be adjusted by changing the angles of the laser, mirror, or PSD. &amp;amp;nbsp;Sadly, PSDs proved difficult to find over a short timeframe.
Linear optical encoder strip. &amp;amp;nbsp;These exist down to absurd resolution.
Magnet&amp;amp;nbsp;+ hall effect sensor. &amp;amp;nbsp;I built one of these, but it just didn&amp;#39;t have the necessary resolution.&amp;amp;nbsp;
And many more
And of course, for acceleration&amp;amp;nbsp;+ integration to get velocity, just stick an accelerometer on the speaker cone. &amp;amp;nbsp;This could be an attractive option- the usual drift problem associated with integrating an accelerometer can be solved by a slow high-pass filter, since audio is always AC anyway. &amp;amp;nbsp;However, the accelerations are actually very large: &amp;amp;nbsp;1 mm peak-to-peak excursion at 100 Hz is already 20 G&amp;#39;s of acceleration, which would saturate a lot of cheap accelerometers.</description></item><item><title>Metal Electric Ukulele</title><link>https://robot-daycare.com/posts/2015-12-23-metal-electric-ukulele/</link><pubDate>Wed, 23 Dec 2015 23:01:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-12-23-metal-electric-ukulele/</guid><description>I like taking my gourd ukulele with me when I leave school for more than a week or so, but it&amp;#39;s a little annoying to travel with, since it takes up pretty much an entire backpack and is somewhat fragile. &amp;amp;nbsp;Inspired by Amy&amp;#39;s lovely wooden travel ukulele&amp;amp;nbsp;and an awesome one-stringed electric instrument made out of a pipe made by Mike, I made this tiny electric travel ukulele. The original intent was to basically make an aluimnum stick with four strings and a pickup on it, but after I machined a fretboard and it turned out really nicely, I figured out I should make the rest of the instrument nice while I was at it.
The entire project, from idea to finish, was completed between Thursday night and early Monday morning before I left back to Atlanta. &amp;amp;nbsp;Some things could definitely be improved (the pickup and tuners, especially), but were done more simply for time.
I started out with this mystery strip of 1/8&amp;#34; x 1.75&amp;#34; &amp;amp;nbsp;stainless steel found in the putz cruft closet.</description></item><item><title>Benchtop Lathe</title><link>https://robot-daycare.com/posts/2015-12-21-benchtop-lathe/</link><pubDate>Mon, 21 Dec 2015 20:15:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-12-21-benchtop-lathe/</guid><description>After stumbling upon the bed, carriage, and tailstock from a Taig lathe, I rebuilt the lathe, making all the parts I didn&amp;#39;t have already. &amp;amp;nbsp;This includes new cross slide and compound slide, a new headstock and spindle with integrated taper for ER32 collets, and brushless spindle motor with a DC custom power supply.
Here&amp;#39;s the build log&amp;amp;nbsp;(and many more pictures), which will be occasionally updated as I add features like auto feed and chucks.</description></item><item><title>Shiny Lathe Pictures</title><link>https://robot-daycare.com/posts/2015-11-20-shiny-lathe-pictures/</link><pubDate>Fri, 20 Nov 2015 06:29:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-11-20-shiny-lathe-pictures/</guid><description>Here&amp;#39;s a pile of tiny lathe pictures:
Since taking these, I&amp;#39;ve also re-cut the spindle taper in place to eliminate runout, mounted an encoder to the back of the motor for closed-loop spindle speed control, and leveled the tailstock. &amp;amp;nbsp;
Comments from Blogger
nkirkby &amp;amp;mdash; November 21, 2015 at 08:06 AM
this is a very very beautiful art. it looks like it repels chips well. thank you :3</description></item><item><title>The Tiny Lathe is Working!</title><link>https://robot-daycare.com/posts/2015-11-03-the-tiny-lathe-is-working/</link><pubDate>Tue, 03 Nov 2015 06:19:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-11-03-the-tiny-lathe-is-working/</guid><description>After great struggles with the lathe electronics, the lathe is finally working.
One of the main challenges was form factor. &amp;amp;nbsp;I wanted all the electronics to fit into the base of the lathe, and I wanted the base to be thin (~25mm thick) &amp;amp;nbsp;so I needed a 600 watt, 45-50 volt power supply that fit in a 25 mm thick package. &amp;amp;nbsp;Bayley&amp;amp;nbsp;suggested using a Vicor DC-DC converter to generate 48 volts at 600 watts. &amp;amp;nbsp;Vicor makes some extremely compact converters perfectly suited for this, and they can be had pretty cheaply on ebay. &amp;amp;nbsp;Only downside is that they need around 300 volts in to turn on. The basic electronics system would then be wall to doubler for 340 VDC, doubler to Vicor converter for 48 V, and 48 V into an AMC servo drive donated by Dane&amp;amp;nbsp;to drive the spindle motor.
This seemed like a good idea, so I got an appropriately sized Vicor brick on ebay and built up the rest of the system:</description></item><item><title>Ball Turner</title><link>https://robot-daycare.com/posts/2015-10-17-ball-turner/</link><pubDate>Sat, 17 Oct 2015 19:41:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-10-17-ball-turner/</guid><description>I recently stumbled across a neat design for a ball turner on youtube, and ebay-rage-ordered all the parts to build one.
It consists of:
- A CXA (fits the MITERSlathe) boring bar holder with a 3/4&amp;#34; split bushing
- The cheapest 2&amp;#34; boring head I could find
- A 3/4&amp;#34; shank for the boring head
Total damage was ~$100.
I turned a couple 3/4&amp;#34; I.D. thrust bushings:</description></item><item><title>Motor Mount and Bearing Shields</title><link>https://robot-daycare.com/posts/2015-09-07-motor-mount-and-bearing-shields/</link><pubDate>Mon, 07 Sep 2015 17:19:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-09-07-motor-mount-and-bearing-shields/</guid><description>l spent way too long agonizing over how to mount the motor. &amp;amp;nbsp;My basic requirements were: Adjustable motor position for varying pulley sizes
Must only use one fastener to loosen the motor
Looks nice
Elegant, for some definition of elegant
To hold the motor, I made this piece which clamps around the motor housing (clamping bit not in this picture). &amp;amp;nbsp;I didn&amp;#39;t use the mounting holes on the face of the motor to leave more clearance around the pulley. &amp;amp;nbsp;The ID was cut with a boring head, and the outside was roughed to an octagon, and hand-filed to round:</description></item><item><title>Tiny Tool Post</title><link>https://robot-daycare.com/posts/2015-09-06-tiny-tool-post/</link><pubDate>Sun, 06 Sep 2015 01:08:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-09-06-tiny-tool-post/</guid><description>A tiny tool post for the tiny lathe. &amp;amp;nbsp;The body of the tool post is 35 mm on each edge. &amp;amp;nbsp;The standard tool holders &amp;amp;nbsp;up to 3/8&amp;#34; lathe tools, and the boring bar holder is also for a 3/8&amp;#34; shank boring bar.
Brass wheels for setting the tool height were knurled on the MITERSlathe
A steel t-nut holds the tool post down to the compound slide.</description></item><item><title>Mini Lathe Pulleys</title><link>https://robot-daycare.com/posts/2015-08-27-mini-lathe-pulleys/</link><pubDate>Thu, 27 Aug 2015 17:20:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-08-27-mini-lathe-pulleys/</guid><description>I&amp;#39;m back from the left coast, and for once I&amp;#39;m not busy building giant wooden contraptions for orientation. &amp;amp;nbsp;Instead I&amp;#39;m trying to finish the tiny lathe before classes start.
I made some 2L sized v belt pulleys for the motor and spindle. &amp;amp;nbsp;I considered using timing belts, but the spindle&amp;#39;s going to be pretty high speed (&amp;amp;gt;7k rpm max) and figured v belts would be a bit quieter. &amp;amp;nbsp;Not to mention, v belt pulleys are much easier to machine.
The pulleys were cut turned using a grooving tool ground from a HSS blank:</description></item><item><title>Spindle and Headstock Machining</title><link>https://robot-daycare.com/posts/2015-06-08-spindle-and-headstock-machining/</link><pubDate>Mon, 08 Jun 2015 02:46:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-06-08-spindle-and-headstock-machining/</guid><description>Machining the spindle turned out to be kind of a disaster, but I was mostly able to salvage things. I started out with a chunk of crufted 1.625&amp;#34; steel round of an unknown alloy. &amp;amp;nbsp;For whatever reason, I found it pretty much impossible to get a good surface finish on the stock with the MITERS carbide insert turning tools. &amp;amp;nbsp;The only way I could get a finish resembling anything reasonable was to crank up the lathe&amp;#39;s speed to the maximum and take really heavy cuts. &amp;amp;nbsp;Unfortunately, this meant it was impossible to take finishing passes, so I screwed up the surfaces that mate with the inner spindle bearing races, and made them a little too small. &amp;amp;nbsp;I did the final surface finishing using sand paper pressed against a precision ground steel block. &amp;amp;nbsp;This seemed to fix the surface pretty nicely, but I was a little overzealous with sanding, and took off at least a thousandth too much off the front bearing interface, and a tiny bit too much off the back interface.
Since I didn&amp;#39;t have an extra piece of steel to start over with, I attempted to salvage the spindle by using the newly acquired MITERS knurling tool to expand the shaft at the bearing interfaces. &amp;amp;nbsp;It did work, although I lost a little concentricity in the process. &amp;amp;nbsp;Fortunately, I can virtually eliminate the spindle&amp;#39;s runout by taking a final pass off the critical surfaces on the mini-lathe itself.
Some design notes about the spindle:
- The front of the spindle is tapered and threaded to accept ER-32 collets. &amp;amp;nbsp;I did the M40 x 1.5mm threading on one of the fancy Prototrak CNC lathes in the new N51 CNC shop. &amp;amp;nbsp;This was a huge pain to set up. &amp;amp;nbsp;All I wanted was a menu to input thread pitch/feed per revolution and a lever to engage/disengage the autofeed, but instead I had to actually program a job to do all the passes for me. &amp;amp;nbsp;It took many hours poking through menus, reading the manual, and asking for help to finally figure it out. &amp;amp;nbsp;Conclusion: &amp;amp;nbsp;I should find MITERS a set of change gears for the Clausing lathe to approximate metric threading, so I can do my metric threading there.
-The spindle is extremely disproportionately large in diameter for a lathe of this size, and for good reason. &amp;amp;nbsp;The bore through the spindle is .875&amp;#34; in diameter. &amp;amp;nbsp;A stock taig spindle has a bore of just over .375&amp;#34;, so this will be able to hold much longer large pieces of stock.</description></item><item><title>Mini Lathe Handwheels</title><link>https://robot-daycare.com/posts/2015-05-25-mini-lathe-handwheels/</link><pubDate>Mon, 25 May 2015 03:44:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-05-25-mini-lathe-handwheels/</guid><description>The making of the handwheels involved a few revisions and many mistakes before producing something acceptable. My first idea was to have a system vaguely like Bridgeport mill dials. &amp;amp;nbsp;There would be a ring with scribed markings on it which could be rotated and locked down by another threaded ring. &amp;amp;nbsp;Here&amp;#39;s what the parts look like: &amp;amp;nbsp;A simple aluminum handwheel, with a solid stainless steel handle press fit into it. &amp;amp;nbsp;I really don&amp;#39;t like the type with freely rotating handles - if there&amp;#39;s any slop they feel cheap.</description></item><item><title>Cutting a Rack Gear on a Bridgeport</title><link>https://robot-daycare.com/posts/2015-05-20-cutting-a-rack-gear-on-a-bridgeport/</link><pubDate>Wed, 20 May 2015 12:43:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-05-20-cutting-a-rack-gear-on-a-bridgeport/</guid><description>I considered buying a little metric rack gear for the lathe on SDP-SI, but it would have cost around $30. &amp;amp;nbsp;Instead, I figured out how to machine one on the MITERS Bridgeport. &amp;amp;nbsp;
The basic idea, which came from a thread on a machining forum which I can no longer seem to find, is this: &amp;amp;nbsp;Put a single-point cutter in a fly cutter. &amp;amp;nbsp;Angle the head of the mill such that the cutter points straight down. &amp;amp;nbsp;Cut a tooth, then feed by the &amp;amp;nbsp;pitch of the rack. &amp;amp;nbsp;The forum-poster thought it would create a slightly incorrect tooth, because of the angle of the fly cutter.
Turns out, though, if the mill is angled between 90 degrees &amp;amp;nbsp;and 90 minus the pressure angle of the gear, the teeth actually come out perfectly shaped. &amp;amp;nbsp;Here&amp;#39;s why:
This is what a single point cutter looks like when it has been swept around the axis of the mill spindle. &amp;amp;nbsp;In this case, the mill is angled to 65 degrees, and the cutter is for a 20 degree pressure angle rack.&amp;amp;nbsp;</description></item><item><title>Compound Slide</title><link>https://robot-daycare.com/posts/2015-05-20-compound-slide/</link><pubDate>Wed, 20 May 2015 00:24:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-05-20-compound-slide/</guid><description>School&amp;#39;s over, so it&amp;#39;s time to catch up on documentation. &amp;amp;nbsp;The lathe isn&amp;#39;t finished yet, but I&amp;#39;ve made a lot of progress. &amp;amp;nbsp;Sadly, I won&amp;#39;t have shop access this summer, so the lathe won&amp;#39;t get finished until August or September.
The compound was made from two pieces, a dovetail slide which holds the ball nut, and a cone-shaped base. &amp;amp;nbsp;The two pieces were silver-soldered together.
The base of the slide had a ring milled in it with a rotary table, so that the force clamping it down to the cross slide acts at a maximal radius:</description></item><item><title>Cross Slide, Take 2</title><link>https://robot-daycare.com/posts/2015-05-04-cross-slide-take-2/</link><pubDate>Mon, 04 May 2015 20:20:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-05-04-cross-slide-take-2/</guid><description>Man am I behind on documenting the mini lathe.
My original plan for the cross slide was to anodize it like Taig does, to prevent wear and galling on the aluminum-aluminum interface. &amp;amp;nbsp;I decided instead of dealing with nasty chemicals and temperature control (required for hard anodizing), to just remake the part out of steel. &amp;amp;nbsp;Steel machines much more slowly, but since I had already machined the part once, it went reasonably quickly.
Fortunately, Nick had a big chunk of steel which was very close to the size I needed:</description></item><item><title>The Longboard Has Gone Too Long Without a Motor</title><link>https://robot-daycare.com/posts/2015-04-20-the-longboard-has-gone-too-long-without-a-motor/</link><pubDate>Mon, 20 Apr 2015 00:37:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-04-20-the-longboard-has-gone-too-long-without-a-motor/</guid><description>As previously indicated, &amp;amp;nbsp;my longboard (can it be called that? &amp;amp;nbsp;It&amp;#39;s tiny) recently sprouted a battery pack and motor.
I started out with this board. &amp;amp;nbsp;Nick crufted the deck out of a dumpster a while back, and I got an extremely cheap set of wheels and trucks for it. &amp;amp;nbsp;The construction is interesting. &amp;amp;nbsp;The deck is made from a 1/8&amp;#34; thick sheet of wood laminated on each side with a very thin layer of aluminum. &amp;amp;nbsp;The resulting deck is extremely light and flexible, which makes the board really smooth out bumps (which are rather abundant on Cambridge roads and sidewalks).</description></item><item><title>BendyPack</title><link>https://robot-daycare.com/posts/2015-03-29-bendypack/</link><pubDate>Sun, 29 Mar 2015 21:19:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-03-29-bendypack/</guid><description>A new innovation in silly electric vehicle battery technology:
More to come soon.</description></item><item><title>New Cross Slide</title><link>https://robot-daycare.com/posts/2015-03-11-new-cross-slide/</link><pubDate>Wed, 11 Mar 2015 20:22:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-03-11-new-cross-slide/</guid><description>Since I only have one of the original taig cross slides, but want both a cross slide and compound on the mini lathe, I had to make a new cross slide from scratch. &amp;amp;nbsp;Also, since the little ballscrews I&amp;#39;m using are right-handed, rather than left-handed like cross feed leadscrews normally are, the whole system has to be rethought a bit. &amp;amp;nbsp;To get the correct motion, the handwheel that moves the cross slide will be fixed to the cross slide, rather than the carriage. &amp;amp;nbsp;Basically the same way compounds are normally set up.
As with most projects, I started out with a nice brick of aluminum. &amp;amp;nbsp;The original cross slide is on top for reference:</description></item><item><title>Taig Mini Lathe</title><link>https://robot-daycare.com/posts/2015-03-02-taig-mini-lathe/</link><pubDate>Mon, 02 Mar 2015 04:54:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-03-02-taig-mini-lathe/</guid><description>Back over the summer, while exploring some dusty top shelves at MITERS, I found what appeared to be they ways, carriage, and cross slide from a tiny lathe. &amp;amp;nbsp;No one seemed to recognize them (and they were covered in a healthy layer of dust), so I claimed the parts as my own. &amp;amp;nbsp;The steel dovetail ways were a bit rusty, but everything seemed in good shape otherwise. The design of this thing is unusual. &amp;amp;nbsp;The tailstock is lever-actuated, the carriage is cast aluminum with machined surfaces, and the cross slide looks like an anodized aluminum extrusion.</description></item><item><title>Finishing Up the Coreless Motor</title><link>https://robot-daycare.com/posts/2015-02-15-finishing-up-the-coreless-motor/</link><pubDate>Sun, 15 Feb 2015 19:09:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-02-15-finishing-up-the-coreless-motor/</guid><description>
First, some photos taken with one of Bayley&amp;#39;s magical cameras:
Sorry I didn&amp;#39;t focus it well enough to achieve the full 25 megapixels of resolution, Bayley
After last round, the only thing left to make was a ring to separate the two halves of the rotor. &amp;amp;nbsp; I CNC milled these two rings out of solid 10mm plate, using a 1/8&amp;#34; carbide endmill. &amp;amp;nbsp;(Very) Subtractive manufacturing for the win.</description></item><item><title>Coreless Axial Flux Motors</title><link>https://robot-daycare.com/posts/2015-02-07-coreless-axial-flux-motors/</link><pubDate>Sat, 07 Feb 2015 22:14:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-02-07-coreless-axial-flux-motors/</guid><description>I&amp;#39;ve been thinking about this kind of motor since I started playing with the ServoDisc&amp;#39;s for the robot arm. &amp;amp;nbsp;There are lots of reason I think this particular motor topology is especially cool, and I won&amp;#39;t go into all of them. &amp;amp;nbsp;Near the top of the list, though, is that the disk-like form factor and lack of laminate steel core allow for a lot of flexibility in construction. &amp;amp;nbsp;This is probably why they&amp;#39;re particularly popular with the diy-wind turbine folks. I&amp;#39;ll jump straight into the design, and then go back and justify it. &amp;amp;nbsp;
Here&amp;#39;s a motor:</description></item><item><title>Some Long Needed Updates to the Big Scooter</title><link>https://robot-daycare.com/posts/2015-01-26-some-long-needed-updates-to-the-big-scooter/</link><pubDate>Mon, 26 Jan 2015 06:14:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-01-26-some-long-needed-updates-to-the-big-scooter/</guid><description>The Big Scooter&amp;amp;nbsp;(version 2) has existed for a year and a half now, and I&amp;#39;ve finally gotten around to doing some long needed updates to it. &amp;amp;nbsp;Most importantly, I originally did not build in a chain tensioning mechanism, because the chain length worked out pretty much perfectly. &amp;amp;nbsp;Chains stretch, though, so the chain started falling off, especially when plowing through snow. &amp;amp;nbsp;Since it&amp;#39;s snow season again, it seemed prudent to fix this problem. First quick fix, replacing the hand-truck bearings I never bothered upgrading with more legitimate bearings. &amp;amp;nbsp;The original bearings had deteriorated so much there was about 10 degrees of slop in the back wheel.</description></item><item><title>Trying to Crack the EC Desk Safe</title><link>https://robot-daycare.com/posts/2015-01-23-trying-to-crack-the-ec-desk-safe/</link><pubDate>Fri, 23 Jan 2015 23:41:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-01-23-trying-to-crack-the-ec-desk-safe/</guid><description>There&amp;#39;s an old safe at the EC front desk that hasn&amp;#39;t been opened in a while, and no one knows either the combination or what&amp;#39;s in it. &amp;amp;nbsp;A number of students have unsuccessfully tried manually cracking it, but a little label on the safe does say it has been tested to 20 hours of expert manipulation, or something like that, so manually cracking the combo is pretty difficult. &amp;amp;nbsp;I actually don&amp;#39;t know much about safe cracking. &amp;amp;nbsp;I understand the mechanism behind this kind of lock, and some ways by which it can be exploited, but I have pretty much no experience actually trying to crack safes. &amp;amp;nbsp;I do have experience building robots, however. It shouldn&amp;#39;t be too hard to build a simple robot to auto-dial safe combinations. &amp;amp;nbsp;All you need is a servo to rotate the dial and some way of sensing when the correct combination has been entered. &amp;amp;nbsp;And since robots are infinitely patient, it can just brute-force combinations until it finds the correct one. How long will that take? &amp;amp;nbsp;Well, the safe has 100 numbers per dial, and the combination is 3 numbers. &amp;amp;nbsp;That means 100^3 or 1,000,000 possible combos, right? &amp;amp;nbsp;Actually no. &amp;amp;nbsp;First, locks have mechanical tolerance. &amp;amp;nbsp;When entering a number into the dial, your number-entering precision needs to be something like ±&amp;amp;nbsp;1 increment from the correct number. &amp;amp;nbsp;Actual tolerance depends on the exact model of lock, going down to about ± .5. &amp;amp;nbsp;I don&amp;#39;t know exactly what model of lock is on the safe, but it appears to be made by Sargent and Greenleaf, and looking at their catalog of modern locks for reference, I settled on ±1. &amp;amp;nbsp;So, that cuts the number of possible combinations by a factor of 8, bringing it down to 125,000. &amp;amp;nbsp;Additionally, according to the manual, one should never set the third number to anything 95-20, because it can stop the lock from working correctly. &amp;amp;nbsp;This brings the total number down to 92,500. &amp;amp;nbsp;Much more reasonable. &amp;amp;nbsp;Supposing it takes 6 seconds to enter a combination (I&amp;#39;ll explain why it takes so long later), that&amp;#39;s 6.4 days to try everything. &amp;amp;nbsp;So it should average something like 3.2 days to open. &amp;amp;nbsp;That is still a pretty long time, but as long as I&amp;#39;m not sitting there entering combinations, who cares?
On to the hardware. &amp;amp;nbsp;Here&amp;#39;s the basics of how it works:
The device will magnet on to the door of the safe. &amp;amp;nbsp;A coupling with a spline matching that of the dial will mesh with the dial to connect it to a motor. &amp;amp;nbsp;I&amp;#39;m using a giant stepper motor. &amp;amp;nbsp;Now I want to be very clear, I hate stepper motors. &amp;amp;nbsp;They&amp;#39;re terrible. &amp;amp;nbsp;Servos all the way. &amp;amp;nbsp;However, I didn&amp;#39;t have any motors with appropriate low-speed torque and backlash-free gear-down on hand, so I didn&amp;#39;t have much choice but to use a stepper motor. &amp;amp;nbsp;I grabbed the biggest one I could, which I scavenged out of some old lab equipment a while back. &amp;amp;nbsp;The stepper is powered by a (also scavenged) stepper driver, which is controlled by an STM32 Nucleo F411RE. &amp;amp;nbsp;I found about these things through Bayley, and they&amp;#39;re great. &amp;amp;nbsp;$10, lots of computing power, and compatible with the mbed compiler, which I am already very familiar with. &amp;amp;nbsp;This is in turn connected to a netbook which logs attempted combinations and sends me an email every 1000 tries and when it thinks the lock has been opened.
Here&amp;#39;s the motor, microcontroller, and stepper driver. &amp;amp;nbsp;To start out, I used this Easy Power GSD200S, because some x-ray equipment MITERS crufted a couple months ago had a bunch of them. &amp;amp;nbsp;This driver could only do half-stepping, so everything was really noisy. &amp;amp;nbsp;When first testing out the machine, there was a noise complaint from someone living two floors above the desk. &amp;amp;nbsp;I later swapped this stepper driver out for something a bit nicer.</description></item><item><title>A Box for a Plane</title><link>https://robot-daycare.com/posts/2015-01-18-a-box-for-a-plane/</link><pubDate>Sun, 18 Jan 2015 06:37:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2015-01-18-a-box-for-a-plane/</guid><description>
I finally made it back to Atlanta this December, and while I was there I was given this beautiful little block plane. &amp;amp;nbsp;It seemed appropriate to build a box for the plane, using the plane.
Here&amp;#39;s the plane on top of the block of oak from which I made the box. &amp;amp;nbsp;It&amp;#39;s solid, but made from a few pieces glued together. &amp;amp;nbsp;I think it&amp;#39;s a section from a post on the staircase of our old house.</description></item><item><title>2014 East Campus Roller Coaster</title><link>https://robot-daycare.com/posts/2014-12-29-2014-east-campus-roller-coaster/</link><pubDate>Mon, 29 Dec 2014 17:25:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-12-29-2014-east-campus-roller-coaster/</guid><description>
Since working on the rotating climbing wall&amp;amp;nbsp;last year, I&amp;#39;ve been interested in trying to revive the East Campus&amp;amp;nbsp;roller coaster. &amp;amp;nbsp;Fellow MechE 2016&amp;#39;s Jaguar K. and Wesley L. were similarly enthusiastic about the roller coaster, so we started coming up with ideas over that fall semester. &amp;amp;nbsp;We got an early start on the approval process for the ride, and, thanks to lots of hard work from our Rush chairs and others, we were able to get the permitting and approval from MIT and Cambridge in time. After a week of construction, we had a working roller coaster:
Photo credit to the folks at monograph.io
More documentation of the roller coaster&amp;#39;s design and construction can be found&amp;amp;nbsp;here.</description></item><item><title>East Campus Roller Coaster: Actually Building the Thing</title><link>https://robot-daycare.com/posts/2014-12-28-east-campus-roller-coaster-actually-building-the-t/</link><pubDate>Sun, 28 Dec 2014 17:42:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-12-28-east-campus-roller-coaster-actually-building-the-t/</guid><description>Winter break means it&amp;#39;s time to finally finish up roller coaster documentation.
TL:DR; here&amp;#39;s a timelapse of the construction. &amp;amp;nbsp;Jaguar&amp;amp;nbsp;setup and maintained a bunch of cameras, and I compiled the stills into video.
Construction took place over a week, and was done by a combination of East Campus&amp;amp;nbsp;residents, incoming freshmen, a few students from other dorms, and a few random strangers.
I think there are a few key things that made it possible to finish construction in such a short timeframe:
Being prepared
We thought through the construction process as thoroughly as we could before actually building anything. &amp;amp;nbsp;This included putting together lots of documentation and drawings for different parts of the roller coaster, thinking through assembly order and methods, and making jigs to assemble some repetitive parts. &amp;amp;nbsp;Here&amp;#39;s an example of one of the sets of assembly documents.
Some parts of the construction, like assembling frames under the track, could be easily parallelized. &amp;amp;nbsp;Each unique frame section got its own drawing showing the critical dimensions and pieces of lumber required. &amp;amp;nbsp;These drawings could then be handed to one or two reasonably skilled people, who were generally able to assemble a frame section in a half hour or so.</description></item><item><title>Turning An Outrunner Stator Into A Really Bad Induction Motor</title><link>https://robot-daycare.com/posts/2014-12-15-turning-an-outrunner-stator-into-a-really-bad-indu/</link><pubDate>Mon, 15 Dec 2014 22:40:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-12-15-turning-an-outrunner-stator-into-a-really-bad-indu/</guid><description>Because why not. &amp;amp;nbsp;A few months ago, Jamison brought a pile of small brushless motor stators down to MITERS. &amp;amp;nbsp;I decided last night I should turn one of them into a tiny induction outrunner. &amp;amp;nbsp;Basically, I replaced the permanent magnet rotor with an aluminum can shoved inside a steel can. &amp;amp;nbsp;It&amp;#39;s as simple as an induction motor can get; &amp;amp;nbsp;it doesn&amp;#39;t even have a squirrel cage rotor.&amp;amp;nbsp; Although a rudimentary squirrel cage could be easily made by milling slots in the aluminum can.
Here&amp;#39;s the stator. &amp;amp;nbsp;Nice and densely wound, and it even has string holding the windings in! &amp;amp;nbsp;Slightly above a hobbyking-grade stator.</description></item><item><title>Robot Arm Z-Axis and Custom Servo Drive</title><link>https://robot-daycare.com/posts/2014-11-30-robot-arm-z-axis-and-custom-servo-drive/</link><pubDate>Sun, 30 Nov 2014 10:34:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-11-30-robot-arm-z-axis-and-custom-servo-drive/</guid><description>Finally back to the robot arm! &amp;amp;nbsp;I&amp;#39;ve been taking a break from rideable things recently to arm more robots. &amp;amp;nbsp;Most significantly, the robot arm got much bigger and gained a degree of freedom.
Part 1: More Billet
I started out with a huge linear rail which I think was scavenged from a large format plotter. &amp;amp;nbsp;I found it in a corner of MITERS while replacing a table earlier this year. &amp;amp;nbsp;I conveniently was also able to scavenge four recirculating linear ball bearings for the same shaft diameter. &amp;amp;nbsp;I made a pair of bearing blocks to hold the bearings and robot arm to the rail:</description></item><item><title>Roller Coaster Mechanical Design: How to Make Solidworks Really Sad</title><link>https://robot-daycare.com/posts/2014-11-02-roller-coaster-mechanical-design-how-to-make-solid/</link><pubDate>Sun, 02 Nov 2014 22:19:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-11-02-roller-coaster-mechanical-design-how-to-make-solid/</guid><description>While I wrote about designing the shape of the track a while back, the shape design and detailed mechanical design actually happened somewhat simultaneously. &amp;amp;nbsp;The roller coaster went through many revisions, as we got feedback from MIT and later some professional structural engineers about what we were allowed to build. The first thing that vaguely resembled a cad model was this:
It was really just a 3D concept drawing, to get the idea across to all the people at MIT that would need to approve the structure.
Another quick pass at a variant of the looped design, missing most of the structure:</description></item><item><title>iPad Retina Display External Monitor</title><link>https://robot-daycare.com/posts/2014-09-30-ipad-retina-display-external-monitor/</link><pubDate>Tue, 30 Sep 2014 18:48:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-09-30-ipad-retina-display-external-monitor/</guid><description>Two summers ago I bought an iPad 3 LCD off ebay. &amp;amp;nbsp;These are 9.7&amp;#34; 2048 x 1536 IPS panels, which use an internal DisplayPort interface. &amp;amp;nbsp;In May, I finally got around to building an external display out of the panel, which can be clipped directly onto the side of my Macbook Pro&amp;#39;s screen, and is powered by a USB port.
I have been using the display on a daily basis for the last four months, and it has held up beautifully. &amp;amp;nbsp;It took a little while for my eyes to get used to the tiny 264 pixels-per-inch pixel density, but I can now comfortably use it at native resolution.
The display&amp;#39;s build log can be found here.</description></item><item><title>Roller Coaster Track Design</title><link>https://robot-daycare.com/posts/2014-09-30-roller-coaster-track-design/</link><pubDate>Tue, 30 Sep 2014 06:48:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-09-30-roller-coaster-track-design/</guid><description>The East Campus Roller Coaster happened, and was a great success. &amp;amp;nbsp;Here&amp;#39;s some proof. &amp;amp;nbsp;I didn&amp;#39;t get too many pictures of the construction process, since I was busy with the construction itself, so as I wait for other people&amp;#39;s photos to trickle in, here are the details on how the shape of the roller coaster&amp;#39;s track was designed.
To start off though, a brief back story about the roller coaster tradition and how I ended up being one of the people in charge of this year&amp;#39;s &amp;#39;coaster. As far as I can tell, the first EC roller coaster, dubbed &amp;#34;8.01: The Ride&amp;#34; was built in 2004 (making this the 10th anniversary coaster). &amp;amp;nbsp;The last roller coaster, &amp;#34;The Reverse Cowgirl&amp;#34; was in 2010, and had to be taken down prematurely since they weren&amp;#39;t permitted.&amp;amp;nbsp; So since then, EC has avoided roller coasters.
I&amp;#39;ve been thinking about the roller coaster since rush last year. &amp;amp;nbsp;Pretty early on I was joined by Jaguar and then Wesley, hall-mates and fellow Mech E. 16&amp;#39;s. &amp;amp;nbsp;During the fall and winter, we started thinking about general track shape and construction method, and as soon as EC&amp;#39;s Rush Chairs were elected near the beginning of spring semester 2014, we started talking with them about getting a roller coaster approved.
This post will cover track design. &amp;amp;nbsp;A construction post will come later.
Let&amp;#39;s get started.
Track designing started out like this:</description></item><item><title>Carbon Fiber Scooter</title><link>https://robot-daycare.com/posts/2014-09-03-carbon-fiber-scooter/</link><pubDate>Wed, 03 Sep 2014 17:58:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-09-03-carbon-fiber-scooter/</guid><description>You may be wondering what&amp;#39;s been happening with that extremely shiny hub motor I built ages ago. &amp;amp;nbsp;Well, the vehicle being built for it is nearly complete, but I&amp;#39;ve been bad at documenting things this summer, so I haven&amp;#39;t gotten around to making a post about it. &amp;amp;nbsp;Until now. &amp;amp;nbsp;Get ready for a long one.
Since the motor was intended to serve as the drive for some sort of reasonable and practical vehicle, it will be stuck on a kick-scooter shaped object. Aluminum U channel and rectangular tubing are great ways to make scooter frames with integrated batteries. &amp;amp;nbsp;Unfortunately, MITERS, did not have any of either of these types of stock in appropriate dimensions for efficiently packing batteries. &amp;amp;nbsp;However there was some carbon fiber cloth, epoxy, and foam from the same stash I used in my bicycle building adventures.
I quickly laid up a rectangular carbon fiber tube:
I tried out something new for layup. &amp;amp;nbsp;Instead of vacuum bagging the foam mold, I bent an aluminum sheet metal form, and clamped the carbon-wrapped foam mold into it.
The surface finish on the bottom and sides was excellent directly out of the mold, but not great on top. &amp;amp;nbsp;It&amp;#39;ll all get covered in more carbon anyways though. &amp;amp;nbsp;The pink foam was melted out with solvents.</description></item><item><title>It's Time</title><link>https://robot-daycare.com/posts/2014-08-16-it-s-time/</link><pubDate>Sat, 16 Aug 2014 15:03:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-08-16-it-s-time/</guid><description>
Thanks to Zach Both from Formlabs for taking some awesome pictures!
1:60 Scale. &amp;amp;nbsp;Printed in 15 parts on a Form1+ and glued together with some extra black resin and a laser pointer.
Full-scale construction starting approximately now.
If you want to print your own, the STLs as well as the Form files for printing on a Form 1 (with supports already painstakingly added in by hand) can be found here</description></item><item><title>Chibi Atomic Jeep, the Power Racing Series, and the Detroit Maker Faire</title><link>https://robot-daycare.com/posts/2014-08-07-chibi-atomic-jeep-the-power-racing-series-and-the-/</link><pubDate>Thu, 07 Aug 2014 13:31:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-08-07-chibi-atomic-jeep-the-power-racing-series-and-the-/</guid><description>Summers wouldn&amp;#39;t be summers without frantically building something a week before a competition,&amp;amp;nbsp;and this summer is no different.
This year&amp;#39;s event was the Power Racing Series at the Detroit Maker Faire. &amp;amp;nbsp;Charles has been preparing for this event for a while, with the glorious Chibi-Mikuvan, but Dane spearheaded an effort for a brand new vehicle to race, just over a week before the event. &amp;amp;nbsp;By the combined abilities of MITERS, we got the new cart, dubbed chibi atomic jeep, into a driveable state approximately 30 minutes before beginning our long drive to Detroit.
Here&amp;#39;s some of the story of the fabrication of the Atomic Jeep, and its adventures in Detroit.
A frame came first. &amp;amp;nbsp;Dane quickly welded up the frame out of some thin-walled steel tubing.
Photo credit to Dane. &amp;amp;nbsp;I did a pretty poor job documenting the build, so most of the pictures are borrowed from other people.</description></item><item><title>Various Updates to the Tiny Go-Kart</title><link>https://robot-daycare.com/posts/2014-07-18-various-updates-to-the-tiny-go-kart/</link><pubDate>Fri, 18 Jul 2014 02:52:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-07-18-various-updates-to-the-tiny-go-kart/</guid><description>Over the past several months, the one-day kart has seen lots of use and received a number of slight upgrades. &amp;amp;nbsp;Its light weight, relatively low power, and low top speed make it an excellent vehicle to demo for other students and people visiting MITERS. &amp;amp;nbsp;At least a dozen strangers have driven the kart around the hallways of N52. &amp;amp;nbsp; User reviews include &amp;#34;that kart made my day!&amp;#34;
First, the 80/20 bar we used for handlebars was replaced with a real go kart steering wheel. &amp;amp;nbsp;This was obtained from the cruftlabs cleanout earlier this year. &amp;amp;nbsp;The real go kart wheel makes it even sillier and even more fun to drift around empty hallways.</description></item><item><title>The Reason I Haven't Updated Anything in a Month</title><link>https://robot-daycare.com/posts/2014-07-04-the-reason-i-haven-t-updated-anything-in-a-month/</link><pubDate>Fri, 04 Jul 2014 23:39:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-07-04-the-reason-i-haven-t-updated-anything-in-a-month/</guid><description>
Comments from Blogger
Jaguar Kristeller &amp;amp;mdash; July 08, 2014 at 12:56 AM
So pretty :)
Ivan Tadeu &amp;amp;mdash; July 21, 2014 at 12:50 AM
This is awesome Ben!! I can&amp;amp;#39;t wait to go back to EC!
Anonymous &amp;amp;mdash; December 09, 2014 at 06:40 PM
Bring it to burning man!</description></item><item><title>Spontaneous Hub Motor</title><link>https://robot-daycare.com/posts/2014-06-06-spontaneous-hub-motor/</link><pubDate>Fri, 06 Jun 2014 20:27:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-06-06-spontaneous-hub-motor/</guid><description>A couple weeks ago,&amp;amp;nbsp;Michael&amp;#39;s 2-hour electric scooter&amp;amp;nbsp;made me sad about my lack of small, practical electric vehicle. &amp;amp;nbsp;As a result of the piles of motor stators and magnets lying around, my recent acquisition of some scooter wheels, and quality 1:00 AM logic , I came to the conclusion that I should build a hub motor to fix this problem.
The first problem I ran into was that there were no steel pipes of appropriate diameter from which I could make the motor can. &amp;amp;nbsp;This bit needs to be steel for its magnetic properties. &amp;amp;nbsp;However, the MITERS drawer of Absurd Round Things had some steel gears in it, which were similar diameter and also had a face width equal to the length of my magnets:
I think this makes me a terrible person...
I machined the giant gear into a thin ring on MITERS&amp;#39;s new Big Lathe.</description></item><item><title>External Display from an iPad LCD, Part 2</title><link>https://robot-daycare.com/posts/2014-05-21-external-display-from-an-ipad-lcd-part-2/</link><pubDate>Wed, 21 May 2014 15:30:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-05-21-external-display-from-an-ipad-lcd-part-2/</guid><description>Last post I showed how all the electronics stuff would work for the iPad screen. &amp;amp;nbsp;After getting screen working it took me a few months to actually sit down and assemble everything. &amp;amp;nbsp;Once I got around to it, it just took one evening to physically put everything together. I first laser cut a bezel for the screen out of some thick black acrylic. &amp;amp;nbsp;I then milled out a recess for the screen in the acrylic bezel. &amp;amp;nbsp;I fixed the acrylic to the mill using this fancy milling fixture I machined a while back.</description></item><item><title>External Display from an iPad LCD, Part 1</title><link>https://robot-daycare.com/posts/2014-05-15-external-display-from-an-ipad-lcd-part-1/</link><pubDate>Thu, 15 May 2014 16:50:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-05-15-external-display-from-an-ipad-lcd-part-1/</guid><description>Last summer, Bayley, Sherry and I got a stack of iPad 3 LCD off ebay for $50 apiece. &amp;amp;nbsp;These are 2048x1536 9.7&amp;#34; LCDs, and a cool thing about them is that they use a displayport interface internally. &amp;amp;nbsp;This means you can splice the ribbon connector that comes with an LCD into a normal display port cable, add a backlight driver, and use the display with any computer. &amp;amp;nbsp;This is a fairly straight forward and well documented. My original plan was to build my own board and backlight driver. &amp;amp;nbsp;After sitting on the LCD for over 6 months without making any progress, I decided to just get a premade breakout board and backlight driver from here for around $35.</description></item><item><title>How Not to do 2.007</title><link>https://robot-daycare.com/posts/2014-05-12-how-not-to-do-2-007/</link><pubDate>Mon, 12 May 2014 00:12:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-05-12-how-not-to-do-2-007/</guid><description>This term I took 2.007 Design and Manufacturing 1. &amp;amp;nbsp;The class centers around a robotics competition. &amp;amp;nbsp;In fact, this class is the mother of all robot competitions, spawning FIRST and its derivatives (more 2.007 history here). &amp;amp;nbsp; Technically since I am Course 2A (MIT&amp;#39;s more flexible version of mechanical engineering) rather than Course 2, I was not required to take this class, but I haven&amp;#39;t really done a robotics competition since highschool, and I didn&amp;#39;t want to pass up the chance to get to build robots for credit.</description></item><item><title>Adding Gears to the Oar Bike</title><link>https://robot-daycare.com/posts/2014-04-23-adding-gears-to-the-oar-bike/</link><pubDate>Wed, 23 Apr 2014 02:27:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-04-23-adding-gears-to-the-oar-bike/</guid><description>Over spring break I added a cassette, rear derailleur, and shifter to the carbon bike. &amp;amp;nbsp;The shifter and derailleur were taken off my now unused bamboo bike, while the cassette was scrounged from MITERS. When I milled the dropouts for the original frame, I did not add a derailleur hanger. &amp;amp;nbsp;To attach the derailleur, I machined a clamp-on hanger. &amp;amp;nbsp;This was shaped out of some aluminum bar stock with a bandsaw and some files. &amp;amp;nbsp;Brief aside: I think files are one of the most underrated metalworking tools. &amp;amp;nbsp;Especially on soft metals like aluminum, files can remove material remarkably quickly, but can also make smooth, elegant edges. &amp;amp;nbsp;Bandsaw and filing this part took way less time than CAD and CNC milling this thing, which would be an alternative for making such a weirdly shaped object. &amp;amp;nbsp;Granted, precision was of little importance here.</description></item><item><title>What's Happening With the Robot Arm?</title><link>https://robot-daycare.com/posts/2014-03-27-what-s-happening-with-the-robot-arm/</link><pubDate>Thu, 27 Mar 2014 06:43:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-03-27-what-s-happening-with-the-robot-arm/</guid><description>Not too much, sadly. &amp;amp;nbsp;Term started, 2.007 started (introductory post to follow soon), and I&amp;#39;ve gotten mixed up in other side projects. I have made a little progress on characterizing the arm&amp;#39;s dynamics for feed-forward control as discussed at the end of the last update. &amp;amp;nbsp;To start out I took some measurements to characterize the friction in the belt reductions. &amp;amp;nbsp;Somehow in the past month my data from the 72 tooth reduction disappeared, but I still have everything from the 60 tooth one, and I remember they were virtually identical:</description></item><item><title>How to Build a Mini Electric Go-Kart in a Day</title><link>https://robot-daycare.com/posts/2014-02-24-how-to-build-a-mini-electric-go-kart-in-a-day/</link><pubDate>Mon, 24 Feb 2014 04:15:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-02-24-how-to-build-a-mini-electric-go-kart-in-a-day/</guid><description>
During the middle of some Friday night MITERSing, Mike, one of this year&amp;#39;s crop of MITERS-frosh (also one of the people responsible for the recent revival of LOLriokart), decided to build a tiny electric kart or other small silly vehicle. &amp;amp;nbsp;That night. &amp;amp;nbsp;I joined in on the project, and within 10 hours we had a rideable go kart. &amp;amp;nbsp;
At around 12:00 am Saturday we had a pile of kart-parts. &amp;amp;nbsp;There&amp;#39;s a pair of large scooter wheels, some 1.25&amp;#34; square aluminum tubing, some 1&amp;#34; x 4&amp;#34; rectangular aluminum extrusion, a Kelly KBS24121 controller, an EMP 63-200 motor (essentially identical in construction but a bit smaller than the trike motor), a big Colson Performa wheel, and a very old Brooks saddle.</description></item><item><title>Robot Arm, Now With The Drawing Ability Of A 5-Year-Old</title><link>https://robot-daycare.com/posts/2014-02-08-robot-arm-now-with-the-drawing-ability-of-a-5-year/</link><pubDate>Sat, 08 Feb 2014 05:53:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-02-08-robot-arm-now-with-the-drawing-ability-of-a-5-year/</guid><description>Last update I was bad at serial and the robot arm almost exploded itself.&amp;amp;nbsp; I quickly made my serial communication less stupid, and added some features like a checksum, which stopped the robot from behaving so spastically. &amp;amp;nbsp;However, no matter what I did I was unable to get smooth motion while streaming serial commands. &amp;amp;nbsp;The robot would follow the path smoothly for a few seconds at a time, but would be interrupted by jerky motions I could not diagnose. &amp;amp;nbsp;One strategy for fixing this might be buffering the serial commands rather than executing them as they arrive. &amp;amp;nbsp;For now though, my Python script simply generates a text file with all the commands, rather than streaming them over serial. &amp;amp;nbsp;I can then copy the text file to the mbed for it to execute. &amp;amp;nbsp;While more time consuming to change paths, this method has been much more (read: completely) reliable.
So here&amp;#39;s the robot drawing some things:
Fast squares:
Writing &amp;#34;MITERS&amp;#34;:
Here are some mediocre squares. &amp;amp;nbsp;I&amp;#39;ve gotten it to draw better ones (without weird corners) since this since, but it&amp;#39;s actually roughly the size it&amp;#39;s supposed to be:</description></item><item><title>A Tale of Two Robot Arms</title><link>https://robot-daycare.com/posts/2014-01-28-a-tale-of-two-robot-arms/</link><pubDate>Tue, 28 Jan 2014 06:35:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-01-28-a-tale-of-two-robot-arms/</guid><description>The robot arm is now moving. &amp;amp;nbsp;I started out by writing simple PID position controllers, and then making the motors do some fast back-and-forths. &amp;amp;nbsp;Nothing is at all tuned right now, and I imagine my whole control loop will get fancier as I take 2.004 next term and learn how to actually do controls.
The basic control structure of the robot arm is this: &amp;amp;nbsp;At the highest level, my computer runs some python code. &amp;amp;nbsp;This code takes XY-space commands and does the inverse kinematics for the robot arm to convert XY to two joint angles, and then sends the joint angles over serial (using pySerial) to one of two mbed microcontrollers. &amp;amp;nbsp;The mbed keeps one command to itself, and sends the other along to a second mbed over SPI. &amp;amp;nbsp;Each mbed reads the encoder signals from the motors and uses that plus the commanded positions from my computer to do a PID control loop for each motor. &amp;amp;nbsp;Finally, the mbed&amp;#39;s send PWM and direction signals to a pair of Pololu motor drivers, which actually drive the motors.
For the sake of the robot arm and anything in its plane of motion, early testing was done without the arm attached. &amp;amp;nbsp;Here&amp;#39;s the linkage drive doing a 10 Hz shake:
And the arm&amp;#39;s first link moving:
Once I got the core of my python code mostly working, I could send position commands from my computer:
Or so I thought. &amp;amp;nbsp;Here, the arm was supposed to do a 1 Hz, 10 mm amplitude Y axis sine wave. &amp;amp;nbsp;And it did, for a bit:
Somehow the arm managed to not crash into its physical limits, so nothing was damaged. &amp;amp;nbsp;As far as I can tell, the problem was with my serial communication. &amp;amp;nbsp;I added identification commands to the beginning and end of each block joint angles as a safety feature, so now the robot just stops when the commands go wrong, rather than freaking out as above. &amp;amp;nbsp;Also, I&amp;#39;m now testing with the motor power supply at 5V rather than 20+, so the max speed and torque are much, much less dangerous. &amp;amp;nbsp;After incident this I added an emergency stop button.</description></item><item><title>Fun With Encoders</title><link>https://robot-daycare.com/posts/2014-01-24-fun-with-encoders/</link><pubDate>Fri, 24 Jan 2014 07:59:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-01-24-fun-with-encoders/</guid><description>Time to play with some microcontrollers!
For now I&amp;#39;m starting out using the mbed platform. &amp;amp;nbsp;Think Arduino but faster and fancier. &amp;amp;nbsp;I spent a lot of time using these in the lab over the summer, so that&amp;#39;s what I&amp;#39;m using to get things up and running. &amp;amp;nbsp;Eventually, I&amp;#39;d like to switch over to a BeagleBone Black, but there&amp;#39;s a fairly large learning curve there that I&amp;#39;m not going to jump into just yet. To sample the encoders, I first used the convenient QEI library.&amp;amp;nbsp; Testing with this quickly showed me that one of the stock encoders was borked. &amp;amp;nbsp;Upon opening it up, I could see a chip out of the encoder&amp;#39;s glass optical disc. &amp;amp;nbsp;Disassembling it revealed even more sadness on the surface of the disc.</description></item><item><title>Now It Looks Like A Robot Arm</title><link>https://robot-daycare.com/posts/2014-01-18-now-it-looks-like-a-robot-arm/</link><pubDate>Sat, 18 Jan 2014 21:31:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2014-01-18-now-it-looks-like-a-robot-arm/</guid><description>
In the last month I&amp;#39;ve more or less finished the hardware side of the robot arm. &amp;amp;nbsp;For the two fast axes, at least. &amp;amp;nbsp;I&amp;#39;ll deal with the z axis later.
Finishing the arm required a few big machining operations, especially for the elbow joint. &amp;amp;nbsp;Naturally, I made these parts from big bricks of aluminum billet. &amp;amp;nbsp;Elbow Part One started out as some 2&amp;#34; square billet, which I faced to size manually on the CNC mill, since the MITERS Bridgeport was temporarily out of commission. &amp;amp;nbsp;On my first attempt at making this part, I discovered that when plunging into a pocket with a large endmill, the CNC mill&amp;#39;s spindle stalls really easily. &amp;amp;nbsp;Even with .5 mm plunges this occurred. &amp;amp;nbsp;To resolve this, I manually drilled big pilot holes for the circular contours. &amp;amp;nbsp;After the first CNC job, the part looked like this:</description></item><item><title>More Snow Scootering</title><link>https://robot-daycare.com/posts/2013-12-29-more-snow-scootering/</link><pubDate>Sun, 29 Dec 2013 17:01:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-12-29-more-snow-scootering/</guid><description>More messing around with the snow scooter outside of MITERS. &amp;amp;nbsp;Now is just needs modular tank treads for the back to match the modular ski in the front.</description></item><item><title>Snow Scooter!</title><link>https://robot-daycare.com/posts/2013-12-16-snow-scooter/</link><pubDate>Mon, 16 Dec 2013 18:57:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-12-16-snow-scooter/</guid><description>In the hours after MEETERS at MITERS, Dane and I came up with a ski attachment for our scooters, for the purpose of snowy scooter shenanigans. &amp;amp;nbsp;Both our scooters have the same axle diameter, so switching it from scooter to scooter just takes adding a few shaft collars for spacing.
It was definitely a success. &amp;amp;nbsp;Fast turns cause the back wheel to slip out, and at one point I accidentally turned too fast and did a 180 at speed. &amp;amp;nbsp;Fortunately since the ground was covered in snow, it was a pretty soft landing. &amp;amp;nbsp;The brake is pretty much useless, but you can stop quickly shifting your weight forward and going into a sideways slide, like you would on skis.</description></item><item><title>Belt Reduction #2 Finished</title><link>https://robot-daycare.com/posts/2013-12-16-belt-reduction-2-finished/</link><pubDate>Mon, 16 Dec 2013 16:15:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-12-16-belt-reduction-2-finished/</guid><description>After another end of the week blitz on the CNC mill, I finished the second belt reduction. &amp;amp;nbsp;The second differs from the first in that it supports the entire arm, while the first only drives a linkage to actuate the second link of the arm.
I started by pocketing the solid aluminum pulleys to make them lighter. &amp;amp;nbsp;To get rid of any slop in the arm, the arm is supported by a pair of tapered roller bearings.</description></item><item><title>All Terrain Scooter Redux</title><link>https://robot-daycare.com/posts/2013-12-02-all-terrain-scooter-redux/</link><pubDate>Mon, 02 Dec 2013 21:58:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-12-02-all-terrain-scooter-redux/</guid><description>The original version of my all-terrain electric scooter suffered from a number of problems, the most important of which was in the motors I used. &amp;amp;nbsp;The triple CIM motors were just not capable of providing both the top speed and acceleration I wanted out of the vehicle. &amp;amp;nbsp;Actually they could, but just not for very long before the insulation on their windings turned into a melty black mess. After some attempted snow-scootering during the northeast snowstorm last year, I decided I was sick of the freshly roasted motor smell, and stored away the scooter until the summer. &amp;amp;nbsp;A full teardown of the scooter revealed enough unnoticed or impending failures that I decided to scrap pretty much the entire mechanical end of the original scooter.
Version 2 features the same HobbyKing LiPo battery pack and Kelly 72V 200A brushed motor controller as the original, but nearly everything else is new. &amp;amp;nbsp;Replacing the CIMs are a pair of Magmotor S28-200&amp;#39;s, which are slightly larger than the S28-150&amp;#39;s of battlebot fame. &amp;amp;nbsp;Like before, the motors are mechanically coupled to one output shaft through a gearbox reduction, and connected electrically in series.
This version also has even bigger wheels (because the old ones clearly weren&amp;#39;t large enough...), and over a foot of clearance everywhere.
The scooter&amp;#39;s build log can be found here.</description></item><item><title>CNC Everything</title><link>https://robot-daycare.com/posts/2013-11-30-cnc-everything/</link><pubDate>Sat, 30 Nov 2013 20:05:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-11-30-cnc-everything/</guid><description>Just before last summer, a lab donated their old CNC mill to MITERS, in a mostly-not-working state. &amp;amp;nbsp;Until now, I have not had a project that required any CNC machining, and even for this project I designed the parts for the belt drive reductions to be water jet cut, rather than CNC milled. &amp;amp;nbsp;However, over this break my source for water jet access was out of town, so I decided to learn how to operate the MITERS CNC mill instead.
Here is one of the motor mounts, just after machining:</description></item><item><title>Electric Tricycle: 9 Month Service, Painting, and Data Collection</title><link>https://robot-daycare.com/posts/2013-11-07-electric-tricycle-9-month-service-painting-and-dat/</link><pubDate>Thu, 07 Nov 2013 16:57:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-11-07-electric-tricycle-9-month-service-painting-and-dat/</guid><description>
After almost nine months of use, the trike has gotten pretty gross. &amp;amp;nbsp;Since all the mechanical bits are directly behind the front wheel, they get sprayed with everything the front wheel goes through, be that water, dirt, snow, sand, or anything else. &amp;amp;nbsp;There was also some bare steel on the frame, which got pretty rusty.
Much of the grime came off with the help of rags and solvents. &amp;amp;nbsp;I could not get the differential really clean without completely taking it apart, so I just wire-brushed as much of the gunk out as possible and regreased it with some thin teflon lubricant. &amp;amp;nbsp;The chains were cleaned by putting them in a cup full of acetone and leaving them on an agitator platform. I stripped down the steel part of the frame, and removed all the old paint and rust with an angle grinder. &amp;amp;nbsp;I primed the frame with self-etching primer, and spray painted it red.</description></item><item><title>Robot Arm: Testing Construction Methods and More Design</title><link>https://robot-daycare.com/posts/2013-10-31-robot-arm-testing-construction-methods-and-more-de/</link><pubDate>Thu, 31 Oct 2013 05:54:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-10-31-robot-arm-testing-construction-methods-and-more-de/</guid><description>
I CADed up a 3D-printable test arm, to see how well adding carbon fiber over ABS plastic would work:
And then printed it in two parts on a Stratasys uPrint. &amp;amp;nbsp;The two halves were superglued together. &amp;amp;nbsp;The full part would have just barely fit diagonally on the uPrint&amp;#39;s print bed, but I split it into two parts so that I could also print test pieces on my own UP! if needed.</description></item><item><title>A Really Really Fast Robot Arm</title><link>https://robot-daycare.com/posts/2013-10-12-a-really-really-fast-robot-arm/</link><pubDate>Sat, 12 Oct 2013 04:05:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-10-12-a-really-really-fast-robot-arm/</guid><description>Since I started working in the cheetah robot lab, I&amp;#39;ve wanted to build a high-speed robot arm using a similar low-inertia, composite construction as used on the cheetah legs. The arm will be roughly SCARA configuration. &amp;amp;nbsp;Rather than having a motor directly at each joint, both the motors will be located at the shoulder of the arm, and the arms second link will be driven with a linkage. &amp;amp;nbsp;This will make the arm light and low inertia, so it can be moved back and forth quickly.
I got some excellent motors for the arm from Charles at Swapfest. &amp;amp;nbsp;They&amp;#39;re a pair of ServoDisc Platinum UD9-E. &amp;amp;nbsp;They have built in optical encoders, and because they&amp;#39;re a real part rather than hobby grade equipment, they have an incredibly detailed spec sheet. &amp;amp;nbsp;The ServoDiscs are coreless axial flux DC motors. &amp;amp;nbsp;So basically a mini brushed etek.&amp;amp;nbsp; Since the rotor is just copper windings, without any steel laminations, so there&amp;#39;s zero cogging and very low rotor inertia, which make for extremely fast response.
To make the arm as fast as possible, I wrote some code to optimize the tip speed of the second segment of the arm over the gear ratio - arm length space. &amp;amp;nbsp;Since I&amp;#39;m taking How To Matlab 2.086&amp;amp;nbsp;this term, I took this opportunity to apply what I was learning in the class just write it in Python using ScyPi.
The main thing I &amp;#39;d like to change about the code at this point is to implement one of the actual built-in ODE integrating functions. &amp;amp;nbsp;Rather than figuring out how to use the stock ones I just used my own extremely simple fixed-timestep integrator. &amp;amp;nbsp;It works fine, but it is pretty slow if you want good output resolution.
Since I know the basic construction method I would use for the arm as well as the motor specs, I was able to model the arm pretty easily. &amp;amp;nbsp;The model arm is a 1.5&amp;#34; diameter carbon fiber tube I found the mass per length number for online, with a 70 gram mass at the end of it. &amp;amp;nbsp;The arm is attached to an aluminum HTD timing belt pulley, which is described as an aluminum disc. &amp;amp;nbsp;For a given arm length and pulley size, you can easily find the moment of inertia of the arm about its rotation point. &amp;amp;nbsp;From there, you can use the torque-speed curve of the motor to get an expression for angular acceleration of the arm. The code simulates the arm starting from standstill and applies constant voltage to the motor until a specified change in arm angle is reached (I&amp;#39;ve been using between 30 and 90 degrees). &amp;amp;nbsp;Then the average speed of the tip of the arm over the motion can be found. &amp;amp;nbsp;To get an idea of what ratios/lengths are optimal, you just repeat this process over a bunch of arm lengths and gear ratios.
Here&amp;#39;s the Python code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
from math import *
import scipy
from mpl_toolkits.mplot3d.axes3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
def IntegrateArm(theta0, dtheta0, timestep, thetaEnd, L, Ta):
time = 0
theta = theta0
dottheta = dtheta0 ########### Define Physical Properties ###########
Kt = .081 #Motor torque constant in N-m/Amp
V = 30.0 #Motor supply voltage
R = .85 #Motor terminal resistance in ohms
L = L #Length of arm in m
M = .07 #Mass of end-effector in kg
Ta = Ta #Arm pulley teeth
Tm = 20.0 #Motor pulley teeth
Rp = Ta*0.7958/1000 #Arm pulley radius in m, assuming HTD 5mm belt
Ml = .164 #Linear density of arm in kg/m
########### Define Body Properties ###########
Ma = L*Ml #Mass of arm in kg
Mp = 2700*.005*pi*Rp**2 #Approximate mass of pulley in kg (modeled as aluminum disc)
Ia = (Ma*L**2)/3 #Moment of Inertia of Arm
Im = M*L**2 #Moment of Inertia of end effector
Ip = (Mp*Rp**2)/2 #Moment of inertia of pulley
I = Ia + Im + Ip #Total arm moment of inertia
########### Equation of Motion ###########
tau = Kt*(V - Kt*dottheta*(Ta/Tm))/R #Torque at motor shaft in N-m
ddottheta = (tau*(Ta/Tm))/I
while theta &amp;amp;lt; thetaEnd:
dottheta += ddottheta*timestep
theta +=dottheta*timestep
time += timestep
tau = Kt*(V - Kt*dottheta*(Ta/Tm))/R #Torque at motor shaft in N-m
ddottheta = (tau*(Ta/Tm))/I
V_avg = thetaEnd*L/time return V_avg #Average arm tip velcity in m/s
def plotSurface(Lmin, Lmax, Tmin, Tmax, thetaInt):
fig = plt.figure()
ax = fig.gca(projection=&amp;#39;3d&amp;#39;)
x = np.linspace(Lmin, Lmax, 100)
y = np.arange(Tmin, Tmax, 1.0)
X, Y = np.meshgrid(x, y)
z = np.zeros([len(x), len(y)])
for L in range(len(x)):
for T in range(len(y)):
V = IntegrateArm(0, 0, 1e-4, thetaInt, x[L], y[T])
z[L][T] = V
ax.contour(X, Y, z.T)
surf = ax.plot_surface(X, Y, z.T, rstride=1, cstride=1, cmap=cm.coolwarm,linewidth=0, antialiased=False)
plt.show()
def findBestGear(L, Tmin, Tmax, thetaInt):
T = np.arange(Tmin, Tmax, 1.0)
V = []
for i in range(len(T)):
val =IntegrateArm(0, 0, 1e-4, thetaInt, L, T[i])
V.append(val)
return t[V.index(max(V))]
The plotSurface function generates a nice 3D picture of the tip velocity vs number of pulley teeth on the arm and arm length:</description></item><item><title>Gourd Ukulele</title><link>https://robot-daycare.com/posts/2013-10-05-gourd-ukulele/</link><pubDate>Sat, 05 Oct 2013 07:19:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-10-05-gourd-ukulele/</guid><description>
Back in June, I returned to Atlanta for a couple weeks. &amp;amp;nbsp;While there, I took advantage of all the woodworking hand tools I had access to, and made this ukulele. &amp;amp;nbsp;The body of the instrument was made from a dried gourd. &amp;amp;nbsp;The neck is mahogany, which was scavenged from the desk in my old bedroom. &amp;amp;nbsp;The fretboard is burned oak, which was split off a stump in my back yard, and the soundboard was the bottom of a desk drawer.
The ukulele is about Tenor sized, and tuned with a low-G. &amp;amp;nbsp;Fret positions were determined using this handy online fret calculator. &amp;amp;nbsp;All of the construction except drilling a couple of holes was done with hand tools. &amp;amp;nbsp;The neck was shaped mostly with a drawknife, except for the channel for the tuning pegs, which was chiseled out.
The ukulele&amp;#39;s build thread can be found here.
I don&amp;#39;t have any audio or video clips of me playing it, so you&amp;#39;ll have to take my word for it that it sounds pretty good. &amp;amp;nbsp;I think it does, at least. &amp;amp;nbsp;Not that I have much to compare it to.</description></item><item><title>Finishing up the Giant Scooter</title><link>https://robot-daycare.com/posts/2013-09-29-finishing-up-the-giant-scooter/</link><pubDate>Sun, 29 Sep 2013 02:05:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-09-29-finishing-up-the-giant-scooter/</guid><description>Getting the scooter to a nearly-finished state from its previous condition took a few nights of solid work. &amp;amp;nbsp;Most of the work was done in the days leading up to the New York Maker Faire. Last update, the scooter was basically a rolling frame. &amp;amp;nbsp;To interface the old adjustable steering column with the motorcycle fork crown, I had to make a clamping shim to adapt the tube diameters.</description></item><item><title>Rotating Climbing Wall</title><link>https://robot-daycare.com/posts/2013-09-04-rotating-climbing-wall/</link><pubDate>Wed, 04 Sep 2013 04:03:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-09-04-rotating-climbing-wall/</guid><description>
For REX this year at East Campus, I helped to design and build a rotating climbing wall. The climbing wall consisted of a twelve-foot diameter by eight-foot wide wooden cylinder suspended on an axle. &amp;amp;nbsp;The surface of the cylinder was covered in climbing holds. &amp;amp;nbsp;As the climber progresses, their weight causes the cylinder to rotate opposite the climbing direction. &amp;amp;nbsp;</description></item><item><title>The Building of the Climbing Wall</title><link>https://robot-daycare.com/posts/2013-08-31-the-building-of-the-climbing-wall/</link><pubDate>Sat, 31 Aug 2013 06:06:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-08-31-the-building-of-the-climbing-wall/</guid><description>Many freshmen arrived at&amp;amp;nbsp;East Campus, and we immediately used their slave&amp;amp;nbsp;labor to build an assortment of ridiculous wooden structures. &amp;amp;nbsp;Construction of the climbing wall went very quickly and fairly smoothly, and I didn&amp;#39;t really take any pictures of the process. &amp;amp;nbsp;Fortunately a more talented and better equipped photographer got some good photos and video of the process. &amp;amp;nbsp;All photo and video credits to Billy Demaio.
Some of the construction footage compiled:
Assembling the uprights:</description></item><item><title>Scooter Mega-Update: Piling on the Absurdity</title><link>https://robot-daycare.com/posts/2013-08-14-scooter-mega-update-piling-on-the-absurdity/</link><pubDate>Wed, 14 Aug 2013 02:30:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-08-14-scooter-mega-update-piling-on-the-absurdity/</guid><description>Lots of progress has been made since the revival of the all-terrain scooter project, although a reasonable person would probably describe it as progress in the wrong direction. &amp;amp;nbsp;As I&amp;#39;ve stumbled across random components in the treasure trove that is N51/N52, the scooter has become progressively more ridiculous. Over a month ago, I finished up the dual-mag-box: a gearbox, which much like the triple-cim-box on the original scooter, combines and reduces the speed of the outputs of multiple (in this case 2) motors. &amp;amp;nbsp;This time, rather than chopping up and sketchily aluminum-zinc brazing together a gearbox, the gearbox housing was milled out of a 6.5&amp;#34; x 3&amp;#34; x 1.5&amp;#34; aluminum billet. Here&amp;#39;s the brick marked up and ready to mill:
SAD: Sharpie Aided Design
I bored out holes for the gears. &amp;amp;nbsp;The big one in the center proved to be a real challenge to machine. &amp;amp;nbsp;The boring head for the mill was too small, and the geometry of the cutting tooth on it prevents it from making flat-bottomed holes. &amp;amp;nbsp;I ended up chucking the billet on the four jaw chuck and boring out the cavity on the lathe.</description></item><item><title>Bot Blast Recap</title><link>https://robot-daycare.com/posts/2013-07-29-bot-blast-recap/</link><pubDate>Mon, 29 Jul 2013 22:15:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-07-29-bot-blast-recap/</guid><description>So, Bot Blast happened, and it wasn&amp;#39;t a complete failure. Actually it was, but it was a highly entertaining failure. &amp;amp;nbsp;In the week hours before we left for PA, Jaguar and Dane also managed to whip together some little antweights. &amp;amp;nbsp;I finished a little early, so I did some weapon testing on Jaguar&amp;#39;s in-progress bot.
Here&amp;#39;s the trio of last minute bots. &amp;amp;nbsp;Mine on the left, Dane&amp;#39;s stepper motor powered Del-Ran Bumble in the middle, and Jaguar&amp;#39;s Speed Bump on the right.
Picture credit to Charles
My first match was against Dust-Pandemonium, a dustpan shaped robot with a blender-like attachment in the middle of the pan. &amp;amp;nbsp;It became immediately apparent that my robot was just way too slow. &amp;amp;nbsp;I just could not move fast enough to do much of anything. &amp;amp;nbsp;My opponent even had some sharp corners and exposed wheels that my recessed spinning drum could have easily bit into, but he outmaneuvered me by a mile. &amp;amp;nbsp;Fortunately, his weapon was more for show than destruction, so all it did was put some scratches on my steel drum and carbon fiber armor.</description></item><item><title>One-Week Battlebot Blitz</title><link>https://robot-daycare.com/posts/2013-07-20-one-week-battlebot-blitz/</link><pubDate>Sat, 20 Jul 2013 19:33:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-07-20-one-week-battlebot-blitz/</guid><description>Sometime in the early hours on Monday morning this week, &amp;amp;nbsp;I decided to join Charles, Dane and Jamison on an adventure to Bot Blast 2013. &amp;amp;nbsp;Problem: &amp;amp;nbsp;I do not have a battlebot. &amp;amp;nbsp;So I had roughly five days to build up a 1 pound battlebot from scratch. &amp;amp;nbsp; &amp;amp;nbsp;I came up with the rough design for a robot with spinning drum weapon, and then just built the drum so I had something to design around.
The drum was made from some steel tubing. &amp;amp;nbsp;It&amp;#39;s driven by a small brushless motor I scrounged via a press fit aluminum hub:</description></item><item><title>The Rebirth of the All-Terrain Scooter</title><link>https://robot-daycare.com/posts/2013-07-12-the-rebirth-of-the-all-terrain-scooter/</link><pubDate>Fri, 12 Jul 2013 21:59:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-07-12-the-rebirth-of-the-all-terrain-scooter/</guid><description>The all-terrain electric scooter&amp;amp;nbsp;has lived a sad and broken life. &amp;amp;nbsp;A combination of design flaws and user stupidity have caused it to burn through more CIM&amp;#39;s than I would like to share, and since the Great Blizzard Snow Storm of this year, the scooter has been folded up in a corner with all three motors in some state of broken.
The basic problem with the scooter was that I wanted both more torque and a higher top speed than 3 CIM&amp;#39;s were really capable of producing. &amp;amp;nbsp;Combined with a motor controller that would happily feed the motors over 100 amps until the battery went flat meant that the motors got really toasty, especially at low speeds or on any sort of hill.
I came up with two basic plans of attack for reviving the scooter carcass:
Rewind the original shorted 80-100 motor from the tricycle for operation at 60 volts, and buy the most powerful Kelly KBS motor controller.
Find some giant DC motor(s) to swap in for the CIMs. &amp;amp;nbsp;Preferably one or more short magmotor.
Since I did not want the 72V 200A peak brushed controller on the scooter to go to waste, the second option was more appealing. &amp;amp;nbsp;I checked ebay for magmotors on a regular basis for a few weeks, but found nothing for sale below ~$225 per motor. &amp;amp;nbsp;Eventually I tried lowballing the seller, and somehow came away with 2 Magmotor S28-200&amp;#39;s for 27% of the original asking price. While waiting for the new motors to arrive, I stripped down the scooter. &amp;amp;nbsp;I found lots of things that were either beginning to break or were simply too painful to look at to continue using. &amp;amp;nbsp;The fork fit both these&amp;amp;nbsp;descriptions, as the its aluminum plates were beginning to bend, and it was a real hack job in the first place. &amp;amp;nbsp;The plate that held the idler sprocket on the high-tension side of the chain was warped from the torque of the motors. &amp;amp;nbsp;When I got down to the bare frame, I found that the aluminum extrusion the original kick scooter frame was actually slightly bent where the suspension attached. &amp;amp;nbsp; &amp;amp;nbsp;So, rather than sinking time (and fancy new motors) into a scooter frame that would probably break repeatedly, I plan on rebuilding the scooter pretty much from the ground up.
I will be using the same electronics plus the two new magmotors. &amp;amp;nbsp;Some of the original gears and sprockets will be used, as will the hubs of the original wheels the original head tube and folding mechanism and&amp;amp;nbsp;handlebars.</description></item><item><title>REX 2013 Project: Rotating Climbing Wall</title><link>https://robot-daycare.com/posts/2013-06-24-rex-2013-project-rotating-climbing-wall/</link><pubDate>Mon, 24 Jun 2013 00:54:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-06-24-rex-2013-project-rotating-climbing-wall/</guid><description>
Every year during the freshman orientation, residents of my dorm (East Campus) build a variety of large wooden structures in the courtyard between the parallels. &amp;amp;nbsp;Or rather, they design the structures, and then enlist the labor of excited freshmen to actually do most of the construction.
This summer, as not-a-frosh, a couple hall mates and I are joining in on the design side of things. &amp;amp;nbsp;Our plan is to build a giant rotating cylindrical climbing wall. &amp;amp;nbsp;Basically like this. &amp;amp;nbsp;The cylinder you climb on will be 12&amp;#39; in diameter, &amp;amp;nbsp;8&amp;#39; long, with the axle about which it rotates suspended 8.5&amp;#39; off the ground.</description></item><item><title>Gourd Ukulele, Part 2</title><link>https://robot-daycare.com/posts/2013-06-18-gourd-ukulele-part-2/</link><pubDate>Tue, 18 Jun 2013 03:29:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-06-18-gourd-ukulele-part-2/</guid><description>
To attach the soundboard to the body of the ukulele, I first added some wooden braces, to add a bit of surface area to glue to:
Skipping a few steps...
I made the soundboard from the bottom of an old drawer. &amp;amp;nbsp;Unfortunately, the wood turned out to be veneered rather than solid, which according to the internet is inferior. &amp;amp;nbsp;It sounds okay to me though. &amp;amp;nbsp;I did not have any particular method for choosing the hole size and location. &amp;amp;nbsp;I just tried to make them look nice. &amp;amp;nbsp;I cut the holes by drilling a pilot hole through the wood, and then sawing them out with a coping saw.
I shaped the oak fretboard and glued it to the neck. &amp;amp;nbsp;It becomes much thinner where the neck meets the body, so that the part of the fretboard that overlaps the soundboard does not actually touch the soundboard.</description></item><item><title>Gourd Ukulele, Part 1</title><link>https://robot-daycare.com/posts/2013-06-04-gourd-ukulele-part-1/</link><pubDate>Tue, 04 Jun 2013 01:24:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-06-04-gourd-ukulele-part-1/</guid><description>Being at home for a couple weeks before working on awesome robots for the rest of the summer means it&amp;#39;s time for another woodworking project. &amp;amp;nbsp;Probably because I heard my neighbor Nick playing his handmade stringed instruments all last year, I decided to make a stringed-thing for myself. &amp;amp;nbsp;This should be interesting, as I have never made an instrument before, and also do not know how to play any stringed instruments. &amp;amp;nbsp;But hey, summers are for learning all the things you didn&amp;#39;t learn during the school year, right?
Something roughly ukulele sized seemed appropriate for a two-week timeframe. &amp;amp;nbsp;The wood used for the neck was cannibalized from my desk at home, and the body of the instrument is made from a dried gourd.
I started out by pulling these two mahogany two-by-fours from underneath my desk, and gluing them together:</description></item><item><title>Electric Tricycle, now with Gaudy Lighting</title><link>https://robot-daycare.com/posts/2013-05-16-electric-tricycle-now-with-gaudy-lighting/</link><pubDate>Thu, 16 May 2013 00:48:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-05-16-electric-tricycle-now-with-gaudy-lighting/</guid><description>&amp;amp;nbsp;Using a couple feet of RGB LED strips I found in a drawer at MITERS, I made some&amp;amp;nbsp;obnoxiously&amp;amp;nbsp;colorful and bright lights for the&amp;amp;nbsp;tricycle.
This little circuit has some NPN transistors and a 7805 voltage regulator on it.
The voltage regulator powers an Arduino pro mini that sits on top of the board. &amp;amp;nbsp;This reads the throttle signal, and converts the throttle position into a color for the LEDs. &amp;amp;nbsp;The LEDs are mapped to the throttle such that the color of the strip shifts through the rainbow as you change the throttle position. &amp;amp;nbsp;To smoothly transition between colors, the Arduino handles an HSV to RGB conversion. &amp;amp;nbsp;The throttle position is just proportional to hue value. &amp;amp;nbsp;The conversion was done with a modified version of this code. &amp;amp;nbsp;</description></item><item><title>Zero-Dollar Carbon Fiber Bicycle</title><link>https://robot-daycare.com/posts/2013-04-28-zero-dollar-carbon-fiber-bicycle/</link><pubDate>Sun, 28 Apr 2013 20:06:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-04-28-zero-dollar-carbon-fiber-bicycle/</guid><description>
Back in January, I was presented with a large carbon fiber tube, in the form of an oar. &amp;amp;nbsp;Being who I am, I made the obvious decision to build a&amp;amp;nbsp;bicycle&amp;amp;nbsp;frame out of it. &amp;amp;nbsp;As I found out when building my bamboo bike, making a bicycle frame from scratch, especially when using&amp;amp;nbsp;composites,&amp;amp;nbsp; is not actually very hard, as long as you have a lot of patience. &amp;amp;nbsp;To make this project more interesting, more challenging, and cheaper, I built the entire frame and bicycle without spending any money on it. &amp;amp;nbsp;Every component (except the pedals, which used to live on the bamboo bike) I either made myself or scavenged.</description></item><item><title>Bike, Trike, and Science</title><link>https://robot-daycare.com/posts/2013-04-15-bike-trike-and-science/</link><pubDate>Mon, 15 Apr 2013 02:07:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-04-15-bike-trike-and-science/</guid><description>
I was not able to scavenge a stem, so I welded up my own out of... steel. &amp;amp;nbsp;When the new TIG welder arrives at MITERS, and I learn how to use it properly, I&amp;#39;ll weld up an aluminum one. &amp;amp;nbsp;I did not have a proper set of bearings for the top of the headset, so I made an experimental headset bushing out of Delrin.</description></item><item><title>PocketBoard v2: Metal Edition</title><link>https://robot-daycare.com/posts/2013-03-29-pocketboard-v2-metal-edition/</link><pubDate>Fri, 29 Mar 2013 17:34:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-03-29-pocketboard-v2-metal-edition/</guid><description>Unfortunately, PocketBoard&amp;#39;s pretty oak deck&amp;amp;nbsp;did not last for very long. &amp;amp;nbsp;Repeatedly getting wet and drying out expanded some cracks already present in the wood, and eventually the deck split down its entire length. &amp;amp;nbsp;Because the board was so useful (it noticeably increased my free-food&amp;amp;nbsp;acquisition&amp;amp;nbsp;rate), I quickly made a new deck out of the most readily available material: &amp;amp;nbsp;carbon fiber aluminum.
The top of the deck was cut out of the side panel of an old PowerMac G5 case&amp;amp;nbsp;on a bandsaw. &amp;amp;nbsp;Originally, I planned to have the Apple logo on the top of the deck, but Julian pointed out that the&amp;amp;nbsp;disassembly&amp;amp;nbsp;guide on the opposite side of the panel was much more interesting.</description></item><item><title>Another Differential</title><link>https://robot-daycare.com/posts/2013-03-29-another-differential/</link><pubDate>Fri, 29 Mar 2013 03:18:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-03-29-another-differential/</guid><description>Back when I built the nifty spur gear differential for my electric tricycle, I chose to buy, well, spur gears rather than bevel gears like differentials traditionally use. &amp;amp;nbsp;I did this partly because McMaster&amp;#39;s spur gears are much cheaper than their bevel gears, and partly because I had the great LOLriokartdiff off which I could base my design.
A couple weeks ago, while reading through a build thread on RoboWars Australia&amp;amp;nbsp;I found pictures of some bevel gear sets originally intended for angle grinders, which were purchased from Ebay. &amp;amp;nbsp;A quick search revealed that a number of Amazon retailers stock similar gears. &amp;amp;nbsp;I ended up getting two sets of these, so I could find out how useful they were.
A few days ago, these came in the mail:</description></item><item><title>Electric Tricycle</title><link>https://robot-daycare.com/posts/2013-03-26-electric-tricycle/</link><pubDate>Tue, 26 Mar 2013 02:49:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-03-26-electric-tricycle/</guid><description>
So I built another electric vehicle. &amp;amp;nbsp;This time around, I actually did some designing before I got any parts, so this was less of a &amp;#34;what do I do with this cool part&amp;#34; project than most of the things I build are. &amp;amp;nbsp;However, the actual construction of the vehicle was&amp;amp;nbsp;started due to the acquisition of a cool part: &amp;amp;nbsp;the &amp;#34;melon&amp;#34; sized brushless motor that drives the tricycle. &amp;amp;nbsp;Getting the motor was a great excuse to implement a bunch of ideas for an electric vehicle I developed after building my electric scooter.
This was my first big project done with access to real machine tools (courtesy of MITERS), so this was both my learn how to machine things&amp;amp;nbsp;and&amp;amp;nbsp;learn how to Solidworks&amp;amp;nbsp;project. &amp;amp;nbsp;Even with just a semester working with these tools, I was able to make this vehicle significantly more refined (while simultaneously even more&amp;amp;nbsp;ridiculous) than my scooter.
The design for the vehicle was inspired by the classic&amp;amp;nbsp;Radio Flyer tricycle. &amp;amp;nbsp;That vehicle geometry is not exactly intended for the high speed go-kart like performance I wanted, so I tried to optimize the design while retaining the tiny kids-trike aesthetic. &amp;amp;nbsp;
And now, a brief overview of the tricycle&amp;#39;s specifications:
Motor: Turnigy C80100-130&amp;amp;nbsp;brushless RC outrunner
Controller: Kelly&amp;amp;nbsp;KBS48121 120A peak BLDC controller
Batteries: 39.6V 7.5 Ah A123 Systems Lithium Nanophosphate pack
Drivetrain: Manual 8-Speed Shimano internal gear hub, custom spur gear differential
Chassis: Welded steel tubing and aluminum plate construction with side-to-side leaning
Top Speed: 45+ mph, if you&amp;#39;re feeling brave
More pictures, videos, and build log can be found after the break.</description></item><item><title>It Almost Looks Like A Bicycle</title><link>https://robot-daycare.com/posts/2013-03-25-it-almost-looks-like-a-bicycle/</link><pubDate>Mon, 25 Mar 2013 19:21:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-03-25-it-almost-looks-like-a-bicycle/</guid><description>
I made the seatstays using pretty much the same process as I did for the chainstays, but with carbon fiber cloth instead of bundles of tow. &amp;amp;nbsp;I plan on adding an aluminum insert for the rear brake to clamp into.
&amp;amp;nbsp;Rather than using a bunch of layers of cloth, I decided to try&amp;amp;nbsp;embedding&amp;amp;nbsp;some thin pre-made carbon fiber tubes into the seatstays, and only using two layers of cloth:</description></item><item><title>Tricycle Shenanigans, Pre-CPW Stress Testing</title><link>https://robot-daycare.com/posts/2013-03-04-tricycle-shenanigans-pre-cpw-stress-testing/</link><pubDate>Mon, 04 Mar 2013 10:03:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-03-04-tricycle-shenanigans-pre-cpw-stress-testing/</guid><description>The tricycle has actually been done for a few weeks now. &amp;amp;nbsp;The two things stopping me from doing a final writeup are that I have still not gotten around to taking nice pictures of it, and until yesterday, I did have any good videos either. &amp;amp;nbsp;In the&amp;amp;nbsp;acquisition&amp;amp;nbsp;of the video, some parts of the trike were broken, so now the pictures have to wait until everything is fixed and pretty again. &amp;amp;nbsp;Here is as close to a final picture as I have right now:</description></item><item><title>Playing with Real Carbon Fiber™</title><link>https://robot-daycare.com/posts/2013-03-04-playing-with-real-carbon-fiber/</link><pubDate>Mon, 04 Mar 2013 05:17:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-03-04-playing-with-real-carbon-fiber/</guid><description>Last semester, the class How To Make (almost) Anything&amp;amp;nbsp;(MAS.863) took place two floors above MITERS, so when their leftover materials were cleared out, MITERS members collected some of them. &amp;amp;nbsp;These materials included a proper vacuum bagging pump that can be run continuously, as well as some real woven carbon fiber cloth. &amp;amp;nbsp;
I made a male foam mold for the seatstays, and vacuum bagged it with wetted-out carbon fiber cloth.</description></item><item><title>Laminated Chainstays</title><link>https://robot-daycare.com/posts/2013-02-11-laminated-chainstays/</link><pubDate>Mon, 11 Feb 2013 03:25:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-02-11-laminated-chainstays/</guid><description>During the blizzard-induced long weekend, I made a mold for the bike&amp;#39;s chainstays and laminate it with carbon fiber. &amp;amp;nbsp;I started out with a block of pink insulation foam:
I cut down the foam into a block for the spot where the chainstays connect to the bottom bracket, and two tapering rectangular rods for the chainstays themselves, and glued the three pieces together:</description></item><item><title>OarCycle: Tacked Front Triangle</title><link>https://robot-daycare.com/posts/2013-02-05-oarcycle-tacked-front-triangle/</link><pubDate>Tue, 05 Feb 2013 02:18:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-02-05-oarcycle-tacked-front-triangle/</guid><description>
I finished mitering the carbon fiber tubes, and tacked the frame&amp;#39;s front triangle together. &amp;amp;nbsp;Before doing so, I put a layer of fiberglass composite over the outside of the bottom bracket shell and head tube. &amp;amp;nbsp;I attempted to vacuum bag the tubes, but I forgot about all the volume on the inside of the tubes when making the vacuum bags. &amp;amp;nbsp;When I turned on the vacuum pump, all the bagging was sucked into the centers of the tubes, which caused the bagging to leak. &amp;amp;nbsp;To avoid having to run the pump constantly to&amp;amp;nbsp;maintain&amp;amp;nbsp;the vacuum while the epoxy cured, I went back to the&amp;amp;nbsp;electrical&amp;amp;nbsp;tape method of compressing the composite.</description></item><item><title>Bike Frame Jig</title><link>https://robot-daycare.com/posts/2013-02-02-bike-frame-jig/</link><pubDate>Sat, 02 Feb 2013 19:27:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-02-02-bike-frame-jig/</guid><description>
Begin Build Everything Before IAP Ends mode:
I chopped up the oar with an angle grinder. &amp;amp;nbsp;Sorry MITERS.&amp;amp;nbsp;&amp;amp;nbsp;
Almost looks like a real bicycle
Rather than deconstructing an old aluminum frame for the head tube, bottom bracket shell, and dropouts, I will be making my own. &amp;amp;nbsp;I learned how to make threads on the lathe, and made my own BB shell out of some aluminum tubing. &amp;amp;nbsp;It is much thinner than one you would find on an all-aluminum bike, but since it will be wrapped in a few layers of fiber-reinforced-epoxy-composites&amp;amp;nbsp;it should be fine. &amp;amp;nbsp;All the aluminum parts of the frame will be coated first in a layer of fiberglass composite before any carbon fiber, to prevent galvanic corrosion.</description></item><item><title>A Preview of Upcoming Projects</title><link>https://robot-daycare.com/posts/2013-01-30-a-preview-of-upcoming-projects/</link><pubDate>Wed, 30 Jan 2013 21:34:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-01-30-a-preview-of-upcoming-projects/</guid><description>
First, a flying thing. &amp;amp;nbsp;Nick let me have his old quadrotor, including motors and ESCs. &amp;amp;nbsp;It should be pretty straight forward to get running again, with a new battery, flight controller, and transmitter/receiver system.
This oar has apparently been sitting around MITERS for a few years. &amp;amp;nbsp;The oar is made out of a&amp;amp;nbsp;slightly&amp;amp;nbsp;elliptical&amp;amp;nbsp;tapering carbon fiber tube. &amp;amp;nbsp;I plan on chopping up the oar and turning it into a bicycle frame. &amp;amp;nbsp;The joints will probably a combination of CF and fiberglass, depending on what I can find. &amp;amp;nbsp;One of the goals for this project is to basically not spend any money on it &amp;amp;nbsp;- if there some bike parts I can&amp;#39;t find, I&amp;#39;m not going to worry about conforming bike-part standards, and just make my own components.</description></item><item><title>Autonomous Anti-Mouse Sentry Turret</title><link>https://robot-daycare.com/posts/2013-01-29-autonomous-anti-mouse-sentry-turret/</link><pubDate>Tue, 29 Jan 2013 19:42:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-01-29-autonomous-anti-mouse-sentry-turret/</guid><description>For Bad Ideas&amp;amp;nbsp;I built a computer controlled anti-mouse sentry turret. &amp;amp;nbsp;The turret uses a video feed from a webcam and a slightly modified version of the Project Sentry Gun Processing code to track mouse-sized objects that move across the camera&amp;#39;s field of view. &amp;amp;nbsp;It fires at the objects using a hacked electric airsoft gun on a pan/tilt servo platform.</description></item><item><title>Battery Building, Motor Woes, and a Rideable Tricycle</title><link>https://robot-daycare.com/posts/2013-01-24-battery-building-motor-woes-and-a-rideable-tricycl/</link><pubDate>Thu, 24 Jan 2013 21:05:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-01-24-battery-building-motor-woes-and-a-rideable-tricycl/</guid><description>
Here is an unfortunately large update, due to my blogging laziness. &amp;amp;nbsp;
I spent way too much time inhaling soldering fumes while building two battery packs for the trike. &amp;amp;nbsp;As you may notice the cells I ended up using were the green flavored variety (given to me by Dane), rather than the cardboard covered ones&amp;amp;nbsp;&amp;amp;nbsp;I was planning on using. &amp;amp;nbsp;The green cells are 2.5 Ah, as opposed to the 2.2 of the others, and have 2/3 the internal resistance. &amp;amp;nbsp;</description></item><item><title>Motorized Projector Screen</title><link>https://robot-daycare.com/posts/2013-01-16-motorized-projector-screen/</link><pubDate>Wed, 16 Jan 2013 18:43:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-01-16-motorized-projector-screen/</guid><description>
After the winter break, I brought a projector I got from old high school&amp;#39;s recycling pile back to my dorm with me. &amp;amp;nbsp; I made a screen for the projector from some blackout fabric, and motorized the raising and lowering of the screen with a small gear motor and some other parts I found.</description></item><item><title>Mechanically Finished Tricycle</title><link>https://robot-daycare.com/posts/2013-01-12-mechanically-finished-tricycle/</link><pubDate>Sat, 12 Jan 2013 17:03:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-01-12-mechanically-finished-tricycle/</guid><description>
Actually it is not quite mechanically done, but it is finished enough &amp;amp;nbsp;for unpowered test rides. &amp;amp;nbsp;
To attach the top plates to the frame, I had to drill and tap a bunch of holes in the parallel vertical plates. &amp;amp;nbsp;They were lined up for drilling by the holes on their bottom sides, because there were no other common reference points between all them due to their unusual shapes.</description></item><item><title>PocketBoard</title><link>https://robot-daycare.com/posts/2013-01-04-pocketboard/</link><pubDate>Fri, 04 Jan 2013 03:06:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2013-01-04-pocketboard/</guid><description>
PocketBoard is a 14.5&amp;#34; long skateboard designed to be the opposite of my electric scooter: It is a small, simple and reliable vehicle for going short distances quickly. &amp;amp;nbsp;At roughly 5% the weight of the scooter and some small fraction of the volume, I can easily store it in a backpack or even my laptop bag when I&amp;#39;m not riding it. &amp;amp;nbsp;It has a solid oak deck with inlayed aluminum plates, and (what I assume to be) standard skateboard trucks, along with some soft 60mm diameter wheels.
PocketBoard V2 keeps the same shape and footprint, but has an&amp;amp;nbsp;aluminum&amp;amp;nbsp;deck made from the side panel of a PowerMac G5 case.
PocketBoard&amp;#39;s rather short build thread can be found here.</description></item><item><title>PocketBoard Part 2: Now it Need Wheels</title><link>https://robot-daycare.com/posts/2012-12-31-pocketboard-part-2-now-it-need-wheels/</link><pubDate>Mon, 31 Dec 2012 22:12:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-12-31-pocketboard-part-2-now-it-need-wheels/</guid><description>
To clean up the rough surface left by the angle grinder, and to make the board flatter, I planed the both sides by hand.
The small block plane left the surface smooth enough that it barely needed sanding:
I jigsawed out the rough form of the deck, and cleaned up the edges with a plane and some coarse sandpaper.</description></item><item><title>PocketBoard: The Tiny Oak Skateboard</title><link>https://robot-daycare.com/posts/2012-12-28-pocketboard-the-tiny-oak-skateboard/</link><pubDate>Fri, 28 Dec 2012 17:02:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-12-28-pocketboard-the-tiny-oak-skateboard/</guid><description>
While my scooter is great for medium to long distance trips (when it is working...), especially with a load of cargo, it is too large and heavy for short excursions. &amp;amp;nbsp;In order to improve my response time on Free Food and Reuse posts, I needed a very small wheeled vehicle that I could easily stuff into my backpack once I reached my destination. &amp;amp;nbsp;A couple weeks ago I snagged a pair of skateboard trucks from a reuse pile in CSAIL, which decided that this vehicle was going to be a miniature skateboard. &amp;amp;nbsp;</description></item><item><title>Improper Use of Machinery</title><link>https://robot-daycare.com/posts/2012-12-17-improper-use-of-machinery/</link><pubDate>Mon, 17 Dec 2012 18:40:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-12-17-improper-use-of-machinery/</guid><description>
With the arrival of some parts from Surplus Center and Monster Scooter Parts, I was able to finish the differential and assemble most of the drivetrain. &amp;amp;nbsp;
Since I don&amp;#39;t know where to find a proper broach on campus (maybe the Edgerton shop has a set?) I had to horribly abuse the poor MITERS tools use some unconventional machining techniques to make keyways in the differential&amp;#39;s output gears. &amp;amp;nbsp;I basically followed this guide, but used the mill instead of the lathe, and using a tool I &amp;amp;nbsp;ground out of some tool steel blank. &amp;amp;nbsp;I tried using the lathe at first, but found that the tool holder would twist if I accidentally tried to make too deep a pass, so I switched to the mill, locking the output so the cutting tool wouldn&amp;#39;t turn. &amp;amp;nbsp;The keyway isn&amp;#39;t perfectly the same depth all the way down the gear, since the tool flexed some, but it works well enough. &amp;amp;nbsp;I imagine this method would work much better on aluminum than steel. &amp;amp;nbsp;</description></item><item><title>Building the Differential</title><link>https://robot-daycare.com/posts/2012-12-02-building-the-differential/</link><pubDate>Sun, 02 Dec 2012 21:00:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-12-02-building-the-differential/</guid><description>
I started out with a foot of 12 tooth, 20 pitch spur gear rod, two 20 tooth pinions, a pile of bushings and bearings, some 5/16 precision steel rod, a 2.5&amp;#34; diameter solid aluminum cylinder, and some&amp;amp;nbsp;miscellaneous&amp;amp;nbsp;other hardware.
I cut the spur gear rod roughly to length on the horizontal bandsaw, and faced the ends on the mill. &amp;amp;nbsp;I bored out the centers, and pressed in pairs of bronze bushings.</description></item><item><title>Assorted Tricycle Updates</title><link>https://robot-daycare.com/posts/2012-12-02-assorted-tricycle-updates/</link><pubDate>Sun, 02 Dec 2012 20:09:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-12-02-assorted-tricycle-updates/</guid><description>
Where I left off, the front half of the tricycle&amp;#39;s frame was mostly built, as were the bits and pieces for pivot. &amp;amp;nbsp;To connect the two halves, I made the piece below. &amp;amp;nbsp;It grips onto the rod that passes through the bushings with two set screws, to make the frame easy to take apart. &amp;amp;nbsp;
I welded it in place at the bottom of the curved tube:</description></item><item><title>Soon-To-Be-Named Three-Wheeled Electric Thing</title><link>https://robot-daycare.com/posts/2012-11-20-soon-to-be-named-three-wheeled-electric-thing/</link><pubDate>Tue, 20 Nov 2012 08:51:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-11-20-soon-to-be-named-three-wheeled-electric-thing/</guid><description>A new electric vehicle! &amp;amp;nbsp;More specifically, an electric tricycle. &amp;amp;nbsp;For lack of a better name, this project will temporarily be called the Presently UnNamed Tricycle, which, as an acronym, conveniently describes the time spent working on it. &amp;amp;nbsp;I came up with the idea for this vehicle a few months ago, while &amp;amp;nbsp;trying to figure out what to do with my Nice Project Fund courtesy of the Instructables Fix and Improve it Contest. &amp;amp;nbsp;In an interesting coincidence, there seems to be a lot of simultaneous tricycle building going on at MITERS right now, so when they&amp;#39;re all finished I&amp;#39;ll have some fun vehicles to race against.
The inspiration for the basic design comes from the classic Radio Flyer kids tricycle, but, as I&amp;#39;m building it from scratch, rather than modifying an existing tricycle, my tricycle will have a number of improvements that should improve its riding characteristics, especially for people larger than toddler-size. &amp;amp;nbsp;The trike&amp;#39;s most interesting features will include a pivoting front half, so that the rider can lean into turns as one would on a bicycle; rear wheel drive, through an eight-speed bicycle internal gear hub and differential; and a ~7 kW peak brushless RC motor. &amp;amp;nbsp;My original plans included even more cool mechanical bits, such as independent rear suspension with universal joint power transmission, but I realized I probably couldn&amp;#39;t fit all those things into my target size.
Speaking of motors, the motor is the reason I started this project when I did. &amp;amp;nbsp;Charles, who seems to have all the motors ever, was kind enough to give me a slightly-broken Turnigy 80-100, which will be powering the trike. Fixing the motor turned out to be pretty simple, once I managed to get it open. &amp;amp;nbsp;The motor had more cogging torque than it should have, which apparently can be a sign of the windings being shorted to the stator/casing. &amp;amp;nbsp;I quickly confirmed this with some multimeter probing. &amp;amp;nbsp;Here&amp;#39;s the inside of the motor:</description></item><item><title>Monitor Arm</title><link>https://robot-daycare.com/posts/2012-11-04-monitor-arm/</link><pubDate>Sun, 04 Nov 2012 18:58:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-11-04-monitor-arm/</guid><description>By a combination of luck and keeping a close eye on the reuse mailing list, I have acquired a pair of nice, large computer monitors: A 24&amp;#34; 1920 x 1200 SyncMaster 245BW and a 25&amp;#34; 1920 x 1080 HP 2509m. &amp;amp;nbsp;Both screens were easily repaired by replacing dead capacitors on their power supply and inverter boards. &amp;amp;nbsp;Due to the small size of the stock dorm room desks, the two monitors plus my laptop could not actually fit on my desk with space left for anything else, so I built a monitor arm that bolts to my loft out of some 80/20 extrusion.</description></item><item><title>Nyan Hat</title><link>https://robot-daycare.com/posts/2012-10-28-nyan-hat/</link><pubDate>Sun, 28 Oct 2012 18:43:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-10-28-nyan-hat/</guid><description>I present Nyan Hat, possibly&amp;amp;nbsp;my silliest and most useless project yet. &amp;amp;nbsp;Nyan Hat was spawned from a late-night discussion involving at various times Halloween, hats, and Nyan Cat, and went from idea to completion in just over two weeks.</description></item><item><title>Finishing Nyan Hat</title><link>https://robot-daycare.com/posts/2012-10-28-finishing-nyan-hat/</link><pubDate>Sun, 28 Oct 2012 18:41:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-10-28-finishing-nyan-hat/</guid><description>&amp;amp;nbsp;Nyan Hat is done! To make the stars in the background of the Nyan Cat video, I made two long strips of LEDs. &amp;amp;nbsp;The strips consist of six nodes of 5 LED&amp;#39;s each, arranged in a star pattern. &amp;amp;nbsp;The six nodes are split in half, and connected with the two-transistor LED alternating circuit in the center.
Here&amp;#39;s one of the strips:
Recreating the exact star pattern seen in the Nyan Cat video would have taken 13 LEDs per star, so I simplified it to use only 5. &amp;amp;nbsp;The centers and outsides of the stars are connected to opposite outputs of the LED controlling circuit so that they alternate.</description></item><item><title>Nyan Hat: Nice Lasered Things and More</title><link>https://robot-daycare.com/posts/2012-10-21-nyan-hat-nice-lasered-things-and-more/</link><pubDate>Sun, 21 Oct 2012 20:24:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-10-21-nyan-hat-nice-lasered-things-and-more/</guid><description>Since the first half of my weekend consisted of
Work on projects until 3 AM
Rest
Repeat
I was able to make significant progress on Nyan Hat. &amp;amp;nbsp;
First, I modified the motor that moves the Nyan Cat around the outside of the hat. &amp;amp;nbsp;I started out with a generic hobby servo, and removed the mechanical stop that prevents it from spinning more than 180 degrees. &amp;amp;nbsp;I also removed all the control circuitry as well, and in its place installed a linear voltage regulator (7805) with heatsink, since the hat&amp;#39;s operating voltage will be around 10V, but the motor only operates from 4-6V. &amp;amp;nbsp;</description></item><item><title>New Project: Nyan Hat</title><link>https://robot-daycare.com/posts/2012-10-14-new-project-nyan-hat/</link><pubDate>Sun, 14 Oct 2012 04:17:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-10-14-new-project-nyan-hat/</guid><description>
For Halloween, I&amp;#39;m making a Nyan Hat, which is pretty much exactly what it sounds like. &amp;amp;nbsp;The base of the hat will be a blue top hat, with a pixelated rainbow encircling the middle of the cylindrical part of the hat. &amp;amp;nbsp;A mechanical Nyan Cat, complete with moving head, tail, and legs, will move around the rainbow, on the outside of the hat. &amp;amp;nbsp;The blue part of the hat will be&amp;amp;nbsp;embedded&amp;amp;nbsp;with white LED&amp;#39;s controlled to mimic the star patterns in Nyan Cat. &amp;amp;nbsp;Finally, built in speakers will play the Nyan Cat song while the hat is turned on.</description></item><item><title>Post-Maker Faire Update</title><link>https://robot-daycare.com/posts/2012-10-04-post-maker-faire-update/</link><pubDate>Thu, 04 Oct 2012 05:12:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-10-04-post-maker-faire-update/</guid><description>This past weekend, I went to the World Maker Faire in NYC, along with a group from MITERS, and I brought my scooter. &amp;amp;nbsp;I arrived at MITERS the night before we left, and spent the time making some last minute modifications to the scooter. &amp;amp;nbsp;I found that even with the addition of a rear fender, I could not ride comfortably through wet conditions, since the front wheel would sling water into the &amp;amp;nbsp;only partially enclosed battery box. &amp;amp;nbsp;To make the battery housing more waterproof and also a bit more structurally sound, I plated most of the outside in 1/16&amp;#34;&amp;amp;nbsp;aluminum&amp;amp;nbsp;plate fastened with 4-40 screws tapped into the frame.</description></item><item><title>Scooter Accessories</title><link>https://robot-daycare.com/posts/2012-09-22-scooter-accessories/</link><pubDate>Sat, 22 Sep 2012 20:47:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-09-22-scooter-accessories/</guid><description>In an effort to make the scooter into a semi-useful vehicle, I built a set of attachments for it. &amp;amp;nbsp;The first step was to make a fender for the rear wheel. &amp;amp;nbsp;In the event of me riding through water, based on the angle between the back of the scooter frame and the top of the rear wheel, water flung off the back wheel could easily end up somewhere between the back of my shirt to the back of my head. The fender was made from a long piece of approximately 3/8&amp;#34; square-ish aluminum bar left over from someone&amp;#39;s water-jetted stock and a piece of 1/8&amp;#34; polycarbonate. &amp;amp;nbsp;The aluminum was bent into an arc, the ends were filed to curves, and it was drilled through to attach the polycarbonate. &amp;amp;nbsp;Two more holes were drilled and tapped into it, so that the fender could be bolted to the crosspiece from the rear suspension assembly. &amp;amp;nbsp;The polycarbonate was scored and broken to size, since the MITERS bandsaw is&amp;amp;nbsp;currently&amp;amp;nbsp;out of commission. &amp;amp;nbsp;The polycarbonate was drilled and tapped, and screwed to the fender&amp;#39;s aluminum backbone.</description></item><item><title>Loft</title><link>https://robot-daycare.com/posts/2012-09-15-loft/</link><pubDate>Sat, 15 Sep 2012 21:22:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-09-15-loft/</guid><description>Using wood left over from the REX shenanigans in the East Campus courtyard, my roommate and I built a double loft in our room. &amp;amp;nbsp;We put up the loft in record time - we only had to sleep in our institute-provided beds for a total of one night before we could sleep in the loft. &amp;amp;nbsp;The design we used was based on another loft down the hall. &amp;amp;nbsp;It spans the entire room, so there are no supports in the middle of the floor, and it is tall enough to walk under without having to duck. &amp;amp;nbsp;It also includes integrated speaker mounts, a cruft shelf, and LED strip lighting.</description></item><item><title>Scooter vs. UPS</title><link>https://robot-daycare.com/posts/2012-09-14-scooter-vs-ups/</link><pubDate>Fri, 14 Sep 2012 01:59:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-09-14-scooter-vs-ups/</guid><description>To get my scooter to campus, I had my parents UPS it from Atlanta to Cambridge. &amp;amp;nbsp;In a box. &amp;amp;nbsp;All 75 pounds of it. Unfortunately, the scooter did not survive its journey unscathed. &amp;amp;nbsp;The packaged seemed to confuse the Portland UPS office, and it spent a day going in an out of the city. &amp;amp;nbsp;By the time I got the package, the box was very sad looking. &amp;amp;nbsp;It had no real form left, and looked more like thick, slightly torn wrapping papper than a box. &amp;amp;nbsp;More sadness appeared when I opened the box. The first casualty was the metal brake cable noodle, which had been completely crushed:</description></item><item><title>Blacksmithing: Year 3</title><link>https://robot-daycare.com/posts/2012-08-19-blacksmithing-year-3/</link><pubDate>Sun, 19 Aug 2012 04:30:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-08-19-blacksmithing-year-3/</guid><description>
For the third year running, I spent a week in the blacksmithing shop at the John C. Campbell Folk School in North Carolina. &amp;amp;nbsp;Following the trend I set during my last two visits, I continued working on cool but useless mechanical things. &amp;amp;nbsp;This time around, I made gears. &amp;amp;nbsp;</description></item><item><title>Chain Tensioner V3: So Close...</title><link>https://robot-daycare.com/posts/2012-08-11-chain-tensioner-v3-so-close/</link><pubDate>Sat, 11 Aug 2012 02:35:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-08-11-chain-tensioner-v3-so-close/</guid><description>The previous edition of the chain tensioner turned out to be a miserable failure. &amp;amp;nbsp;It successfully prevent the chain from coming off the drive sprocket, in exchange for causing the chain to come off the wheel&amp;#39;s sprocket. I think the problem was that since the chain tensioner was fixed relative to the body of the scooter, rather than the rear wheel, when the wheel moved when going over bumps, the chain tensioner could easily come out of alignment with the back sprocket, causing the chain to slip off. &amp;amp;nbsp;Also, the chain tensioner was made from a long piece of thin aluminum, making it even more susceptible to flexing out of alignment. &amp;amp;nbsp;Solution: &amp;amp;nbsp;Build a compact, physically robust chain tensioner mounted to the suspension swingarm.
With that (questionably rationalized) solution in mind, I made this:</description></item><item><title>It Floats!</title><link>https://robot-daycare.com/posts/2012-08-04-it-floats/</link><pubDate>Sat, 04 Aug 2012 22:22:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-08-04-it-floats/</guid><description>
Five years after going to the&amp;amp;nbsp;Wooden Boat School, I finally sailed the Shellback Dinghy&amp;amp;nbsp;my granddad and I started there. &amp;amp;nbsp;This was actually our second attempt at sailing it, but during the first, we discovered that the boat had a leak around the daggerboard trunk, which we had to putty up.</description></item><item><title>Electric Scooter: Drivetrain Refinement</title><link>https://robot-daycare.com/posts/2012-07-28-electric-scooter-drivetrain-refinement/</link><pubDate>Sat, 28 Jul 2012 20:45:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-07-28-electric-scooter-drivetrain-refinement/</guid><description>In the scooter&amp;#39;s original build report, I said:
&amp;#34;Since the sprocket on the gearbox is not located at the pivot point of the rear swingarm, as the suspension is compressed, the effective chain length increases. To take up the slack in the chain, I added a chain tensioner&amp;#34;
As it turns, out, the problem was not as simple as having a chain tensioner to allow the chain to lengthen when the suspension is compressed. When riding the scooter over rough terrain, the chain constantly came off the drive sprocket. I added a chain guard to fix this initially, which worked great, until it broke. As far as I can tell, the problem stemmed from the fact that, when the suspension is compressed while the scooter&amp;#39;s throttle is applied, the top of the chain is put under a ton of tension. My previous sprocket and chain guard arrangements could not deal with the extra tension, causing the chain to pop off either the drive or idler sprocket. A second contributing factor was that the original chain tensioner did not store nearly enough extra links of chain to allow for much suspension movement. &amp;amp;nbsp;If all the extra chain stored in the chain tensioner was used, as it might be during large impacts, the chain would be put over even more tension than it would be while going over typical bumps.
To (hopefully) fix these problems, I completely redid the chain tensioner and idler sprocket arrangement. As far as I can tell, there is no way for the chain to come of either the idler or drive sprockets without either breaking the chain or bending the idler mounts. The idler is now fixed to the gearbox, so it does not move with the suspension, as it did in the previous configuration. Also, the pin below the idler prevents the chain from disengaging the teeth, even when there is slack in the top of the chain. The new chain tensioner works similarly to a rear derailleur on a bicycle, and bends the chain around in an &amp;#34;s&amp;#34; shape, to store more chain. When the suspension bottoms out, the drive sprocket, wheel sprocket, and chain tensioner sprockets all line up so that there is a straight chain line directly between the sprocket on the wheel and the drive sprocket, so that none of the extra chain links are wasted.</description></item><item><title>Site Change</title><link>https://robot-daycare.com/posts/2012-07-23-site-change/</link><pubDate>Mon, 23 Jul 2012 21:19:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-07-23-site-change/</guid><description>Until now, this site has been organized so that all my projects have exactly one post associated with them. &amp;amp;nbsp;I started out posting that way because my early projects on here were ported over from Instructables I had written, rather than posted here initially. &amp;amp;nbsp;I&amp;#39;ve gotten a bit fed up with writing one massive post when I finish a project, so from now on I will be posting about projects all along the way, instead of just at the end. &amp;amp;nbsp;</description></item><item><title>All-Terrain Electric Scooter</title><link>https://robot-daycare.com/posts/2012-07-06-all-terrain-electric-scooter/</link><pubDate>Fri, 06 Jul 2012 02:42:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-07-06-all-terrain-electric-scooter/</guid><description>As seems to be the case with many of my projects, for this one, I acquired the parts first, and then designed a project to fit the parts I had. Here is the back story of how I got the parts, and what drove me to use them to build the vehicular monstrosity this post is about.
But first, a brief overview of the scooter&amp;#39;s specs:
Motors: 3x CIM motors
Batteries: 8x Turnigy 5000 mAh 4s LiPo packs, 16s2p configuration (59.2V, 10 Ah)
Controller: Kelly KDS72200E, 72V, 120 A continuous, 200A peak
Wheels: 12.5&amp;#34; with knobby pneumatic tires
Deck: Hand laminated carbon fiber with polycarbonate top
Frame: Royce Union Transit kick scooter, with about 200% more aluminum added
Brake: Pedal actuated rear disk (sprocket) brake
Videos are at the bottom of the post.
&amp;amp;nbsp;</description></item><item><title>Graduation Glasses</title><link>https://robot-daycare.com/posts/2012-06-01-graduation-glasses/</link><pubDate>Fri, 01 Jun 2012 03:11:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-06-01-graduation-glasses/</guid><description>For my high school graduation, students walk onto the stage in pairs, and are expected to do something interesting (most do some variation of a dance move or handshake) when they meet in the middle, before going to their seats. &amp;amp;nbsp;Having been to my sister&amp;#39;s graduation last year, I knew ahead of time that I wanted to make my entrance more interesting and less awkward than the ones I had seen. I built two pairs of glasses - one for me, one for my walk in partner - that, when turned on, display &amp;#34;2012&amp;#34; across the two pairs. &amp;amp;nbsp;</description></item><item><title>MIT Tube Hack</title><link>https://robot-daycare.com/posts/2012-03-18-mit-tube-hack/</link><pubDate>Sun, 18 Mar 2012 20:18:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-03-18-mit-tube-hack/</guid><description>
This year in their early acceptance tubes, in honor of the 30th anniversery of the great balloon hack, the MIT admissions office sent a note encouraging us to hack our tubes. &amp;amp;nbsp;Since there were an number of balloons included in the tube, I decided to make my tube hack a tribute to the the great balloon hack. &amp;amp;nbsp;To fill the balloon, I built an electrolytic cell out of stainless steel washers. &amp;amp;nbsp;When the cell is placed in water (with baking soda added to increase its conductivity), the current splits the water into oxygen and hydrogen. &amp;amp;nbsp;This gas then fills the balloon. &amp;amp;nbsp;When the oxygen-hydrogen mixture in the balloon comes in contact with a flame, the oxygen and hydrogen very quickly combust back into water, producing a very satisfying explosion.</description></item><item><title>Impossible Circuit</title><link>https://robot-daycare.com/posts/2012-03-17-impossible-circuit/</link><pubDate>Sat, 17 Mar 2012 03:12:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-03-17-impossible-circuit/</guid><description>
As you can see, the circuit consists of two switches, two LEDs, and a resistor in series (and yes, they actually are in series - there are no hidden wires). &amp;amp;nbsp;So how does each switch control one LED? &amp;amp;nbsp;Solution after the break:</description></item><item><title>Arduino Game Port Interface</title><link>https://robot-daycare.com/posts/2012-01-28-arduino-game-port-interface/</link><pubDate>Sat, 28 Jan 2012 17:55:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2012-01-28-arduino-game-port-interface/</guid><description>
A while back I got my hands on an old analog PC joystick, and since then I have been meaning to build an adapter make the joystick work over USB. &amp;amp;nbsp;The adapter I&amp;amp;nbsp;finally&amp;amp;nbsp;built consists of an Arduino connected to a game port I hacked off an old sound card. &amp;amp;nbsp;The Arduino reads the analog (x and y movement) and digital (buttons) inputs and then sends them to the computer over serial. &amp;amp;nbsp;Then a Processing script running on the computer reads the serial data, and converts it into mouse movements and clicks using the Java Robot class.</description></item><item><title>Retro Rechargeable USB Booster</title><link>https://robot-daycare.com/posts/2011-11-24-retro-rechargeable-usb-booster/</link><pubDate>Thu, 24 Nov 2011 02:53:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2011-11-24-retro-rechargeable-usb-booster/</guid><description>
This project started when I found a 7805 voltage regulator when I was searching through old circuit board for useful parts to scavenge. &amp;amp;nbsp;Since these chips are often used in DIY USB chargers, I decided to build such a charger, but with some major improvements over the typical 9V battery powered chargers housed in Altoids tins.</description></item><item><title>Shellback Dinghy</title><link>https://robot-daycare.com/posts/2011-10-30-shellback-dinghy/</link><pubDate>Sun, 30 Oct 2011 16:48:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2011-10-30-shellback-dinghy/</guid><description>Back in the summer of 2007, I went to the Wooden Boat School in Maine with my granddad, and we took the Build a Shellback Dinghy class. &amp;amp;nbsp;We made very slow progress on the boat after that, and it is only now finished. &amp;amp;nbsp;The boat is made out of marine mahogany plywood, and it is just over 11 feet long. &amp;amp;nbsp;It has a mast, spars and sail in addition to oarlocks, but they do not fit on the boat in my granddad&amp;#39;s indoor wood shop.</description></item><item><title>iMac Mini</title><link>https://robot-daycare.com/posts/2011-09-22-imac-mini/</link><pubDate>Thu, 22 Sep 2011 20:46:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2011-09-22-imac-mini/</guid><description>I started this project because I had a small pile of Macbook laptops and white iMacs in various states of&amp;amp;nbsp;functionality. &amp;amp;nbsp;For this project, I used the stand and friction hinge from a 2006 iMac, the LCD from a Macbook that had coffee spilled on it, and the motherboard from a Macbook with a smashed screen. &amp;amp;nbsp;The keyboard header on the motherboard was missing, so I had no way to use it in a laptop. &amp;amp;nbsp;I decided to build a miniature iMac-like computer out of the parts I had. &amp;amp;nbsp;As it turned out, I built the computer only to find out that the USB ports on the motherboard I used were dead, rendering the computer useless. &amp;amp;nbsp;It was still a fun project though.</description></item><item><title>Tree Climbing Robot</title><link>https://robot-daycare.com/posts/2011-08-30-tree-climbing-robot/</link><pubDate>Tue, 30 Aug 2011 01:40:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2011-08-30-tree-climbing-robot/</guid><description>After I got comfortable programming and building with an Arduino, I used my newly acquire microcontroller skills to build a robot. &amp;amp;nbsp;Using a microcontroller, four high-torque DC gear motors, spiked legs, a linear actuator, rotation sensors, and 3 L298 H-bridge circuits, this robot can climb up trees of varying diameter. &amp;amp;nbsp;The very long build log follows.
The robot in action:</description></item><item><title>Predator-Prey Simulation</title><link>https://robot-daycare.com/posts/2011-08-16-predator-prey-simulation/</link><pubDate>Tue, 16 Aug 2011 17:28:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2011-08-16-predator-prey-simulation/</guid><description>Since I started programming, I have thought it would be interesting to attempt to approximate life within a computer program. &amp;amp;nbsp;I started this project on my own, but finished it, collected data from it, and wrote a paper on if for my final CS class project. &amp;amp;nbsp;
What my final program does is create a virtual Petri dish with two types of cells in it: predator cells and prey cells. &amp;amp;nbsp;As the cells move around in their virtual environment, the predator cells try to chase down the prey cells, and the prey try to escape the predators. &amp;amp;nbsp;If the predators do not eat for a long time, they die of starvation. &amp;amp;nbsp;As the cells move in the simulation, the also replicate. &amp;amp;nbsp;All of the cells, both predator and prey, have two individual attributes: sight radius and movement speed, which are passed on from parent cells to child cells. &amp;amp;nbsp;However, as the cells replicate, there is a small chance that the child cells &amp;#34;mutate.&amp;#34; &amp;amp;nbsp;In other words, one or both of their attributes has a slightly different value than the parent cell&amp;#39;s attributes. &amp;amp;nbsp;These random mutations allow for natural selection to occur within the simulation, provided it runs for long enough. &amp;amp;nbsp;The most effective predators will survive the longest, and therefore produce the most offspring, so their&amp;amp;nbsp;desirable&amp;amp;nbsp;attributes proliferate. &amp;amp;nbsp;The same applies to prey cells that can escape most easily. &amp;amp;nbsp;As the simulation runs, it outputs the average attributes of all of each type of cell to a text file at regular intervals. &amp;amp;nbsp;If the simulation is run for a long period of time, these values can be evaluated, and one can see if natural selection&amp;amp;nbsp;occurred&amp;amp;nbsp;or not, on average.</description></item><item><title>More Blacksmithing</title><link>https://robot-daycare.com/posts/2011-08-16-more-blacksmithing/</link><pubDate>Tue, 16 Aug 2011 16:06:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2011-08-16-more-blacksmithing/</guid><description>I spent another 4 days blacksmithing, and came up with this:
I mostly made up the piece as I went along. &amp;amp;nbsp;The entire thing can be taken apart and put together without any fasteners, and there are close-up pictures after the break:</description></item><item><title>Dual L298HN Motor Driver</title><link>https://robot-daycare.com/posts/2011-06-25-dual-l298hn-motor-driver/</link><pubDate>Sat, 25 Jun 2011 21:48:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2011-06-25-dual-l298hn-motor-driver/</guid><description>I built this motor controller to power the motors for an Arduino-controlled robot I am working on. &amp;amp;nbsp;It uses 2 L298HN dual full-bridge chips, each of which is capable of powering 2 DC motors at 2A each, with bidirectional control. &amp;amp;nbsp;You can get up to 3 of the L298HN chips for free from the ST website. &amp;amp;nbsp;The rest of the parts needed are as follows:
2.5&amp;#34; x 3.125&amp;#34; perfboard
4 2-Position PC Mount Terminal Strips
5 3-Position PC Mount Terminal Strips
22 AWG Solid Core Hookup Wire
2 Heatsinks for the L298&amp;#39;s</description></item><item><title>GUI Controlled LED Matrix</title><link>https://robot-daycare.com/posts/2011-06-23-gui-controlled-led-matrix/</link><pubDate>Thu, 23 Jun 2011 20:08:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2011-06-23-gui-controlled-led-matrix/</guid><description>
I recently got an Arduino Uno, and it quickly became my favorite toy. &amp;amp;nbsp;After learning the basics of how the platform operates, I became interested in interfacing the Arduino with personal computers. &amp;amp;nbsp;After seeing a large number of LED matrix projects on Instructables and the rest of the web, the LED matrix seemed like a perfect project to attempt to interface with a computer. &amp;amp;nbsp;</description></item><item><title>Useless Machines</title><link>https://robot-daycare.com/posts/2011-06-05-useless-machines/</link><pubDate>Sun, 05 Jun 2011 22:26:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2011-06-05-useless-machines/</guid><description>I built three &amp;#34;Useless Machines&amp;#34; within the last few months, and here are two of them. &amp;amp;nbsp;I made one for my younger sister to decorate and give to her science teacher, and the other out of leftover parts I had. &amp;amp;nbsp;The circuits of both have been modified from the standard circuit to include an LED strip. &amp;amp;nbsp;The LED&amp;#39;s are wired through the bumper switch, so they only light up when the box is open and the arm is moving.</description></item><item><title>How to Fit Your PC in a Power Mac G5 Case</title><link>https://robot-daycare.com/posts/2011-04-17-how-to-fit-your-pc-in-a-power-mac-g5-case/</link><pubDate>Sun, 17 Apr 2011 15:47:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2011-04-17-how-to-fit-your-pc-in-a-power-mac-g5-case/</guid><description>Whether you are an apple fan or not, it is hard to disagree with the fact that the Power Mac G5 computer looks great, inside and out. My goals for this project were to preserve the look of the case, inside and out; fit my PC&amp;#39;s hardware, including a full length ATX motherboard, 2 GPU&amp;#39;s, and a CoolIt ECO; and keep the system fully upgradeable, meaning no modifying the hardware.</description></item><item><title>Bench PSU</title><link>https://robot-daycare.com/posts/2011-04-02-bench-psu/</link><pubDate>Sat, 02 Apr 2011 03:02:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2011-04-02-bench-psu/</guid><description>
This is a&amp;amp;nbsp;bench-top&amp;amp;nbsp;power supply built to power my various electronics projects. &amp;amp;nbsp;It is built from a PC Power and Cooling Silencer 470 watt PSU.</description></item><item><title>Doodle4Google Entry</title><link>https://robot-daycare.com/posts/2011-03-16-doodle4google-entry/</link><pubDate>Wed, 16 Mar 2011 00:15:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2011-03-16-doodle4google-entry/</guid><description>My entry to this year&amp;#39;s Doodle4Google contest:</description></item><item><title>Birch and Mahogany Home Theater PC</title><link>https://robot-daycare.com/posts/2011-02-19-birch-and-mahogany-home-theater-pc/</link><pubDate>Sat, 19 Feb 2011 15:14:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2011-02-19-birch-and-mahogany-home-theater-pc/</guid><description>This is a home theater PC I built from mostly spare parts. &amp;amp;nbsp;It was designed to be as compact and quiet as possible, given the parts I used, and also not look intrusive in a living room setting.</description></item><item><title>Triple Monitors</title><link>https://robot-daycare.com/posts/2011-02-13-triple-monitors/</link><pubDate>Sun, 13 Feb 2011 16:26:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2011-02-13-triple-monitors/</guid><description>
I recently switched GPUs from an HD3650 to a 9800GTX+, and because I also have an old 8500gt, I now have two nVidia cards. &amp;amp;nbsp;This means that in Windows Vista, I can run two video cards (Vista requires the two cards to use the same drivers, but W7 does not). &amp;amp;nbsp;To get the setup working, I had to do some modifications to the 8500gt, as well as build a stand for my monitors, since my desk is too small for three.</description></item><item><title>Artillery Game</title><link>https://robot-daycare.com/posts/2011-01-15-artillery-game/</link><pubDate>Sat, 15 Jan 2011 22:18:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2011-01-15-artillery-game/</guid><description>
This is a basic artillery game I wrote in python. &amp;amp;nbsp;There are still some minor issues I need to fix, but it works and is playable. &amp;amp;nbsp;It includes wind, movement, and variable-height (but not shape) terrain.</description></item><item><title>Python Game and Cipher</title><link>https://robot-daycare.com/posts/2010-11-06-python-game-and-cipher/</link><pubDate>Sat, 06 Nov 2010 14:44:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2010-11-06-python-game-and-cipher/</guid><description>
I wrote this simple game in Python using the tkinter graphics module. &amp;amp;nbsp;This is my first attempt at writing a game, so it is very basic but (hopefully) entertaining at the same time.</description></item><item><title>Carbon Fiber Bike Light Holder</title><link>https://robot-daycare.com/posts/2010-09-27-carbon-fiber-bike-light-holder/</link><pubDate>Mon, 27 Sep 2010 01:22:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2010-09-27-carbon-fiber-bike-light-holder/</guid><description>
This&amp;amp;nbsp;handlebar&amp;amp;nbsp;mounted light holder holds a cheap 9 LED flashlight, and clips onto any bike&amp;amp;nbsp;handlebars. &amp;amp;nbsp;I built this carbon fiber holder out of the same carbon tow and epoxy I used for my bamboo bike frame. &amp;amp;nbsp;When layered thinly, the composite is flexible enough so that the holder can clip on and off the&amp;amp;nbsp;handlebars&amp;amp;nbsp;and light without needing any screws. &amp;amp;nbsp;I lined the holder with some&amp;amp;nbsp;handlebar&amp;amp;nbsp;tape so that it would grip the light and the&amp;amp;nbsp;handlebars. &amp;amp;nbsp;The entire holder weighs only a few grams, and can easily be switched between bikes.</description></item><item><title>Battery Powered Ipod Box Speakers.</title><link>https://robot-daycare.com/posts/2010-09-17-battery-powered-ipod-box-speakers/</link><pubDate>Fri, 17 Sep 2010 23:34:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2010-09-17-battery-powered-ipod-box-speakers/</guid><description>
These speakers were built out of a pair of USB powered desktop speakers that came with an eMachines&amp;amp;nbsp;computer, and the box my iPod Touch came in.</description></item><item><title>Building a Bamboo Bike Frame</title><link>https://robot-daycare.com/posts/2010-09-08-building-a-bamboo-bike-frame/</link><pubDate>Wed, 08 Sep 2010 01:48:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2010-09-08-building-a-bamboo-bike-frame/</guid><description>
This is how I built a bamboo bicycle frame. &amp;amp;nbsp;</description></item><item><title>Rocket Car</title><link>https://robot-daycare.com/posts/2010-08-25-rocket-car/</link><pubDate>Wed, 25 Aug 2010 01:44:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2010-08-25-rocket-car/</guid><description>For a science project three years ago, I built a car powered by model rocket engines. &amp;amp;nbsp;The first model was cut from a pine wood derby car blank, and used 1/4 A engines. &amp;amp;nbsp;The final design I used was a modified version of a balloon powered car I built for a previous science project, with a balsa wood frame, and CD wheels. &amp;amp;nbsp;CD&amp;#39;s apparently do not hold up very well when spinning very fast on rough asphalt, but I had enough spare wheels to do a few launches. &amp;amp;nbsp;Although I no longer have any of the data I recorded for the project, or any of the pictures I took of the car, I do have the video&amp;#39;s of the launches:</description></item><item><title>Blacksmithing</title><link>https://robot-daycare.com/posts/2010-08-10-blacksmithing/</link><pubDate>Tue, 10 Aug 2010 00:15:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2010-08-10-blacksmithing/</guid><description>
I took a blacksmithing class last week, and here are the results:
I started out by making hooks:</description></item><item><title>Skull Flash Drive Mod</title><link>https://robot-daycare.com/posts/2010-07-11-skull-flash-drive-mod/</link><pubDate>Sun, 11 Jul 2010 15:50:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2010-07-11-skull-flash-drive-mod/</guid><description>I built this flash drive out of Sculpey for a flash drive modding contest on TheBestCaseScenario.com&amp;amp;nbsp;
Once&amp;amp;nbsp;the skull was baked, the flash drive was glued in it using epoxy, and the opening was painted over.</description></item><item><title>Water Cooled Laptop</title><link>https://robot-daycare.com/posts/2010-07-07-water-cooled-laptop/</link><pubDate>Wed, 07 Jul 2010 14:00:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2010-07-07-water-cooled-laptop/</guid><description>Many laptops tend to run very hot, and as a result their tiny blower fans have to work hard to stop the computer from overheating. &amp;amp;nbsp;Simple ways of fixing this include taking some compressed air to the heatsink, or reapplying thermal paste. &amp;amp;nbsp;But this is a far more interesting solution.</description></item><item><title>Mini Ipod Speakers</title><link>https://robot-daycare.com/posts/2010-07-04-mini-ipod-speakers/</link><pubDate>Sun, 04 Jul 2010 02:22:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2010-07-04-mini-ipod-speakers/</guid><description>These speakers clip into the headphone jack of your mp3 player, and require no external power source. Version 2:</description></item><item><title>Book Speakers</title><link>https://robot-daycare.com/posts/2010-07-03-book-speakers/</link><pubDate>Sat, 03 Jul 2010 20:28:00 +0000</pubDate><guid>https://robot-daycare.com/posts/2010-07-03-book-speakers/</guid><description>The purpose of this project was to create a pair of&amp;amp;nbsp;unintrusive bookshelf speakers that blend right into the contents of your bookshelf.</description></item><item><title>About</title><link>https://robot-daycare.com/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://robot-daycare.com/about/</guid><description>Hi, I&amp;amp;rsquo;m Ben. I like to to build things and write about the things I build.
I work on robot hardware at Physical Intelligence. From 2019-2025 I worked at Boston Dynamics on the Atlas team, helping bring Atlas to the electric era. From 2016-2019 I worked in the Biomimetic Robotics Lab, where I helped get Cheetah 3 up and running and designed the Mini Cheetah.
Send me an email to get in touch
This site was migrated from build-its.blogspot.com, where it lived from 2010-2026</description></item></channel></rss>