Corbin's Treehouse - Corbin Dunn, Santa Cruz, CA
Plug Bug

Archive for 2014

Red Rocks climbing

Did some climbing in Red Rocks, Nevada last weekend. This is more of a record and reminder for myself. Last time I was there was in 2005 back when I was a strong 5.11 climber. I don’t climb very often right now, and I felt rather nervous about doing much of anything. Costanza and her dog Douglas came with me. The first day we arrived around noon and stopped at the first pullout. I didn’t bring a guidebook (mistake) hoping I could piece it together from the Mountain Project website. I was targeting Panty Wall, but it was way too... [read more]

EV Page of Shame: Drax in a Lexus at the Aria Hotel in Vegas

UPDATE: Thank you Aria hotel! They are going to update their signage and start towing offenders. I just talked with someone from the security team and they are on top of this. They are also going to fix the broken charger. Excellent! They handled this very well, and I’d be happy to stay with them the next time I’m in Vegas. (Still, I think Drax and others should not park in these spots, so I’m leaving the post up). ————————— Aria Hotel in Las Vegas: You provided four EV charging spots but failed to enforce the rules, and allowed three... [read more]

Electric Bug: Running Again!

So, I got my new rebuilt transmission from MOFOCO. I put it back in the car and buttoned up the rear end entirely. I then attached the shifter…but, it wasn’t shifting! So, I posted on and the guys there said something might be wrong w/the nosecone setup. I had to drop the transmission/motor combo again. This time I decided to make a better cradle for it: These pictures are mainly for my future reference so i can remember how it goes. The strap holds it on pretty well. I popped the nosecone off and it was definitely shifted into... [read more]

Adafruit CC3000 + Webduino = Arduino Web Server over Wifi

Adafruit has a CC3000 breakpoint board for $35 on their site. Rather expensive, considering the chip should be $10, but it adds some nice features and they wrote a library for it. Cut to the chase: for a rather full featured Arduino web server with the CC3000 chip, check out my port of Webduino CC3000 on my GitHub page. REQUIRES my forked version of Adafruit_CC3000 ———– Longer story: I want to add Wifi support to my LED cyr wheel. My goal is to be able to wirelessly control it from an iOS device (iPhone or iPad). I also want to... [read more]

LED Cyr Wheel v2: Custom PCB

I finished designing a custom PCB for my LED cyr wheel. It simply combines all the chips I use into one board. Ideally I would eliminate all of the other boards except the Teensy, but I’m not so good at SMD soldering yet. I designed it in Eagle: And I’ll be printing it with OSH Park based on advice from my friend Spencer. This things should be awesome! It’ll be my first PCB, so i’m crossing my fingers that I did everything right.

SD Card errors with Arduino / Teensy 3.0

With my LED cyr wheel I kept getting random errors in reading data from my SD card with Ardunio code. Sometimes init would fail, even at half speed. Most often I would get corrupted data, or not be able to read the filenames. Worse, it would start to read and then fail. Searching around, I found it could be one of the following problems: * Bad SD card (I tried a few of them) * Improperly formatted SD Card (I used the official SD Card Formatter from SD: and it still failed) * Floating CS (Chip Select / Slave... [read more]

Firewood Hutch

An oak tree fell down at the end of last winter and I ended up with a lot of great firewood. I saved a few pieces for woodworking (we’ll see how those turn out), but the rest is going to heat my house. I needed a convenient place to store the firewood, and I originally was going to turn my back door cement area into a covered firewood area…but Costanza and my friend Mark convinced me it was a bad idea (it would block too much light into my house). So, I designed a little firewood hutch that would go... [read more]

LED Cyr Wheel on Stage

Some pictures of my work with Velocity Circus at an event for UCSF Photos by Hiromi Yoshida, Courtesy of Gregangelo & Velocity Arts & Entertainment

Photography: LED Cyr Wheel v2 Self Portraits

Self Portraits, Corbin Dunn, LED Cyr Wheel v2, September 11, 2014. Canon 5d, a timer of 10 exposures manually set for a specific aperture and shutter speed. Man Silhouette Pattern Test Single Pattern Test

Final drive ratio in an electric conversion car

So, I’m getting a new transmission for my VW bug (number 3), and probably buying it from What drive ratio should I get? They can do a few different options. My bug is/was currently running the stock stuff for a 69 bug: I have 165R15 coker tires, and the diameter was calculated via: & The ratios I got from the VW manual, and the screen shot is from my Numbers spreadsheet (email me and I’ll send it to you). Here are my current speeds for a given RPM and a given gear. Max motor RPM is around... [read more]

Electric VW: Transmission Killer

In my last post on the bug, I had mentioned that I replaced my brushes, hoping it would fix some noise I was getting in the transmission/motor area. It didn’t help, and I then replaced two CV joints, as one was worn pretty bad. That also didn’t help. So, I bit the bullet and removed the transmission/motor. This isn’t fun; I have to remove some of my cells in the rear seat area as they cover the hatch that lets me undo the transmission from the shifter. It isn’t too bad; I simply undo the red hold down strap, disconnect... [read more]

Kitty Cabinet: Finished

I finally finished my Kitty Cabinet. I had to wait for some more Water Based Poly finish to come; I had accidentally ordered “gloss” when I really wanted “satin”, so it had to be put on hold until I got back from a vacation in Italy. I use water based finishes from Target Coatings. It looks rough in the picture, but it turned out quite nice. I put one coat of a shellac amber sealer on, followed by 4 coats of satin poly (water based). Without the doors: Doors: Kitty entrance:

Photography: Rome Street

Rome Street Camogli, Italy. August 2014. HDR from 5 exposures. Canon 5D Mark III, 24-70mm lens. No tripod; supported by a plant for a bit.

Photography: Camolgi, Italy

Camogli Camogli, Italy. August 2014. HDR from 5 exposures. Canon 5D Mark III, 24-70mm lens

Electric VW Bug: Brushes replaced

The rear end of my car has been making quite a bit of noise lately. It seems to only happen when I apply power, and I wasn’t too sure of what it was. If I put the car in neutral or pushed in the clutch it would also go away, so it seemed to be related to the motor. I was guessing it was the brushes; on the two brushes per section, one seemed worn about 1/8″ to 1/4″ more than the other. The brush springs aren’t worn out, but I figured they might need replacing: So, I got some... [read more]

Kitty Cabinet: Finishing

one coat of Target Coatings shellac (amber), lightly sanded and then one coat of their water based Polyurethene (9000). Time to order more….

Kitty Cabinet

I’m building a little cabinet to hold the kitty litter box, and some accessories. On top I plan to put the cat’s food and water bowls, to keep them out of reach of bad doggies. Download the sketch up file – Cat Box and Food area.skp I have a bunch of old redwood from my water tank. I have been drying it out for years, and I just haven’t had the right project for it. Redwood is really soft, and this stuff is partially rotten, so I’m not sure how well it will work out. Here’s how it started out:... [read more]

New Corbin UniBar (unicycle handlebar)

I made a new handlebar for my geared KH26. I was using the KH T-bar, but it feels really flexy and it feels like the seat will eventually break from the pressure I put on it. I had already made a slightly longer and slightly wider T for it out of CroMo steel, but it was just as light as the aluminum original. Here’s the new bar, completed and installed: New bar, 352 grams: Old bar plus the seat strengthen plate (not needed with my design): So, 150 gram savings in weight by using CroMoly steel. And it is a... [read more]

Fire LED Cyr Wheel Pattern

I took some demo code and modified it to do a fire pattern in the cyr wheel:

Angular Velocity in cyr wheel

This is a plot of the angular velocity vector when spinning in my cyr wheel. I took the gyro x/y/z value and created a vector (squared each value, added them, and took the square root). The downward start was from back spin “wind up” hat I did. I then increased velocity to a high speed, and you can clearly see when I give it an extra “umph” each revolution around. It was probably about 7 revs I did in the wheel. Values are (apparently) degrees per second. So, I spin about 1.5 times every second.

Accelerometer woes

I have a accelerometer/gyro/compass combo in my wheel LSM303DHLHC, data sheet: found via Pololu’s link: It has been tough to figure out consistent data. First of all, I realized the compass has to be calibrated. There is a sample app included with the LSM303 Adruino code called “Calibrate”. It just reads the compass/magnet data a keeps a running max and min value of what it sees. First off, I kept getting strange values out of it; specifically -4096. I later learned from the Polo website that this is an overflow condition in the chip and it is documented... [read more]

NSTableView Tips: Doing Animations with Core Data

For my “Cyr Wheel Pattern Editor” app I am using CoreData and an NSTableView. However, I’m sort of “manually” doing bindings for the array content itself to get animations in the View Based NSTableView. Here’s what my model looks like: The CDPatternSequence has a children array of CDPatternItems: @interface CDPatternSequence : NSManagedObject @property (nonatomic, retain) NSOrderedSet *children; @end Now, if you have Xcode generate the standard code you might have noticed the standard NSOrderedSet accessors aren’t implemented for you; this is a bug in CoreData, but here is a good post on stack overflow about it. The minimal implementation I... [read more]

NSTableView Tips: View Controller per row

Sometimes you may find your application has rather complex rows, and you want an NSViewController to manage each row in a “View Based” NSTableView. This is fairly easy to do, and I did it in my Cyr Wheel pattern editing application. My “Cell View” that I want for each row was designed in Xcode like: A simple NSViewController subclass: @interface CDPatternItemViewController : NSViewController // the thing we are editing @property(weak) CDPatternItem *patternItem; @end The controller code is what is interesting. I use an NSWindowController subclass, and keep an array of the view controllers: @interface CDPatternEditorWindowController () { @private NSMutableArray *_patternViewControllers;... [read more]

NSTableView Tips: Not delaying the first responder

I have a little home-brew Cocoa app for making Cyr Wheel patterns. The UI is built with an NSTableView and looks like this: Now normally when you try to directly click on one of the NSTextFields the table will first select the row. Then a second click will allow you to start editing. For most tables, this is the behavior you want. For something like what I have, I want to avoid this, and allow the first responder to go through. This can easily be done by subclassing NSTableView and overriding: - (BOOL)validateProposedFirstResponder:(NSResponder *)responder forEvent:(NSEvent *)event { return YES; //... [read more]

How to make a cyr wheel: Insert detail

Here’s some details on my cyr wheel inserts that I make (aka: roue cyr):

Implementing delete in an NSTableView

I’ve seen many ways to implement delete in an NSTableView. Many are good. Many hardcode references to something they shouldn’t, and those are bad. Here’s an easy way: Subclass NSTableView and override keyDown: - (void)keyDown:(NSEvent *)theEvent { // handle delete unichar key = [[theEvent charactersIgnoringModifiers] characterAtIndex:0]; if (key == NSDeleteCharacter && self.selectedRow != -1) { [NSApp sendAction:@selector(delete:) to:nil from:self]; } else { [super keyDown:theEvent]; } } This just lets the responder chain take care of it. Your window controller can easily handle it by just implementing delete: - (IBAction)delete:(id)sender { if (self.tableView.selectedRowIndexes.count > 0) { [_tableView beginUpdates]; [[self _patternSequence] removeChildrenAtIndexes:self.tableView.selectedRowIndexes];... [read more]

LED Cyr Wheel: compass/accelerometer

The next step for my project is to add 3d position support by determining what angle and how fast the wheel is spinning at any given moment. The chip is in the wheel; I just need to interpret the data. I initially bought the LSM303D 3D Compass and Accelerometer Carrier with Voltage Regulator from Pololu ($15). However, I learned the LSM303D is just a compass, and gyro data is needed to determine pitch and yaw. So I bought a $20 MinIMU-9 v2 Gyro, Accelerometer and Compass from Pololu (well, two, in case I screw one up — and the price... [read more]

Flower Market

India, Flower Market Kolkata

Photography: India, Fruit delivery

India, Fruit delivery This guy didn’t look too happy, but I took his picture as he was walking by on the road. India, February 2014.

LED Cyr Wheel: Longer video

Another slightly longer video from last weekend. I have about 3 or so hours on it, and it seems to be holding up well!

(c) 2008-2017 Corbin Dunn

Corbin's Treehouse is powered by WordPress. Made on a Mac.

Subscribe to RSS feeds for entries and comments.

38 queries. 0.630 seconds.