Andrew (bunnie) Huang is a published author, architect of the chumby hardware platform and the father of XBox hacking. His blog is a great source of technical info, but his features on hardware production in China are the real draw.
The Factory Floor (2013)
- The Factory Floor, Part 1 of 4: The Quotation
- The Factory Floor, Part 2 of 4: On Design for Manufacturing
- The Factory Floor, Part 3 of 4: Industrial Design for Startups
- The Factory Floor Part 4 of 4: Picking (and Maintaining) a Partner
Made In China (2007)
I’ve been carrying around the Squirt PS4 all summer. The knife, pliers and wire cutters have all been getting a work out and have held up fine. The screwdrivers and scissors are also very well built for their size. I’ve had larger Leatherman tools and smaller multitools, but this is the sweet spot for me in size and functionality. Red, Blue and Black colors are available. Amazon sells them for $25.
The PS4 fits in my watch pocket with plenty of room to spare. It measures 2.25 inches long (closed) and is about half an inch thick.
If you prefer needle nose pliers with a great range of wire strippers, but the same form factor as the PS4, consider the ES4.
Often, while using an iPad or smartphone, I want to multi-task. I don’t mean ‘fast app switching’ or running something in the background, I mean I want to see two applications at one time. That’s not possible with today’s smartphones, so I’ve been experimenting with using two devices at once. 2 screens = 2 apps.
In many settings, this kind of experience is easy. Sitting at a table, you can prop up one device and hold the other in your hands. In other settings, it’s very difficult. On a train, in a comfy chair, in bed, it’s difficult to use 2 smartphones or other multimedia devices simultaneously.
To solve that problem, I’ve tried a number of solutions to fix two or more devices together. I’ve focused on non-permanent techniques, since on device is always my phone and I need to be able to carry that alone.
Attempt 1: Use Shapelock (a plastic substance that melts and re-hardens easily and can be molded by hand) to create a case that holds two devices. That was not successful at all. The Shapelock is just too hard to coax into the desired shape.
Attempt 2: Velcro devices to a metal ruler. This works extremely well. The devices can be rotated to any orientation and the ruler can be bent to put the devices at an angle to one another. Unfortunately, the velcro gets gummy and dirty quickly.
Attempt 3: Combine rubber bands, a small clipboard and those grippy dashboard pads to hold multiple devices in place against a plastic plate (the clipboard). Too complicated. I used it twice, but it was difficult to get the devices situated.
Attempt 4: 3D printed clips that connect two or more devices. I modelled these in Google SketchUp and had a little trouble getting the fit right. The first batch of these that have the right dimensions to grip my iPhone 4, iPad and Droid X correctly just arrived today. I have several more clips coming from Shapeways over the next week or so. It’s too early to say if this approach will be successful, but there are a lot of reasons to believe it will be. The clips are small – they are pocketable. The clips grip well enough to feel confident that nothing will fall (except for the iPad clip-it needs to be a little tighter) if I’m reasonably careful. The clips are modular. Though I have to order a new clip for each device (each device has a different thickness), they aren’t very expensive. The nature of the clips makes it possible to have extenders or angled connectors to get exactly the orientations you are looking for.
In a few weeks, once I have the dimensions cleaned up a bit, I’ll post the final models you can use for printing – at your own risk, of course. If you desperately want the models AS-IS to make your own prints before I’ve had a chance to refine them, let me know in the comments and I’ll send you the files.
Below are a few photos. First, the clips themselves, alone. They look like Tron Recognizers… Second, 2 pieces holding an iPhone 4 and iPad together. Third, a Droid X and an iPhone 4. The multitasking shots are a little contrived (researching Star Trek while watching it; reading techmeme while watching a movie). The more likely use cases involve email, feeds (MobileRSS!!), Twitter, etc. The last picture shows several more clips and adapters that haven’t arrived, yet.
[If 3D printed iphone accessories are your cup of tea, also check out the Glif (although the Glif is now injection molded).]
The Glif Kickstarter projectjust hit $100,000 funding. They only asked for $10,000! Glif is an iphone stand and tripod adapter. Kickstarter is a great place which connects project teams with people willing to fund those projects. My first taste of Kickstarter was donating to the Makerbeam project last year. Both of these projects followed the best practice of making donations the equivalent of pre-orders for product.
Lego Universe, Fable III, Borderlands ClapTrap Revolution DLC and DoubleFine’s Costume Quest all come out this month. I’ve already spent significant time with Lego Universe and the Borderlands DLC. Both were terrific. High hopes for Fable III and Costume Quest.
The new PP3DP $3000 High Resolution 3D Printer is shipping. Tempting. Very Tempting. Probably means high quality desktop 3D printers at a sub-$1000 price are only a couple of years away. Meanwhile, the Shapeways service continues to improve. You can now print Sterling Silver. Crazy.
Apple’s Back to the Mac event is October 20th. The big rumor is a smaller MacBook Air. If it has excellent battery life it could be a winner.
Project Tuatara is under-hyped. A gun shaped controller with a gyro sensor and an embedded projector giving you the ability to pan around in 3D space. Watch the video (you can safely skip to the middle).
By the way – new favorite game for the iPhone and iPad. No, Human. Play it.
UPDATE: The Shapeways prints have arrived. Photos here:
END OF UPDATE
If you’ve been following me on Twitter, you know that I spent the better part of a day this week fooling with Google SketchUp (3D Modeling Software). I had started a 3D model of the character Claptrap from the game Borderlands a few weeks ago and finally had some time to really dive in.
I’d like to add arms, side fenders (and flaps) and a wheel. In case I don’t get back to it soon, though, I’m uploading the model here for others to download and modify. Please be sure to send any updates my way. NOTE: The prints above are from a new version of the model, here.
I’ve sent the current, unfinished, version to Shapeways to see what it looks like printed using their SLS technology. I’ll report back when it arrives.
Some interesting reading this morning.
Shirt Pocket software is working on fixes for SuperDuper!, the state-of-the-art backup software for OS X. The biggest issue right now seems to be the unconventional system that Apple is using for hiding file compression from applications (which seems to be necessary for backwards compatibility). The great news is that even without these fixes, SuperDuper! is not experiencing any data loss. Dave Nanian’s article is here.
If you want to learn more about Snow Leopard’s file compression or ANYTHING ELSE, check out John Siracusa’s massive 23 page review at Ars Technica. While I understand that some users are finding Snow Leopard more of a Service Pack than a new OS, I have to say that I’m loving some of the features. The new changes to Expose alone are worth the $30 bucks to me. You can read up on the Expose features and other cool bits over on the TidBits blog. Try hitting the Expose key and then tabbing through your applications. FUN!
It sounds like the new hero Massively Multiplayer game, Champions Online is off to a rough start. They ratcheted down the effectiveness of players who participated in the beta. This is called a ‘nerf’ in the MMO world. Matt Franklin contrasts this with the rate at which the lead MMO (World of Warcraft) is making game play (especially beginner game play) easier and easier.
This Commodore 64 Visual Debugger is incredible. You start out with a window that shows EVERY address in memory and then zoom in to look at specific locations. The waves of memory changes during file loading are neat! I can’t wait to run this thing while playing Paradroid!
Backblaze has a how-to article up about the homebrew storage solution they’ve created. 7 terabyte 4U servers for $7,867.
JKK checked out the Nokia N900. It merges the best work they’ve done on phones and the work they’ve done on Internet Tablets (Nokia 770, N800, N810). It looks great and has a lot of power in the OS (Linux/Maemo) and the hardware. The Internet Tablet community must be really excited!
PAX, Penny-Arcade’s SOLD-OUT Video Game and Geekery convention (which started yesterday) just added 1,000 tickets.
Alex King spent some time these past few weeks trying to figure out which Network and BlackBerry Phone to use. He wanted to use a BlackBerry Bold, but ended up with a Tour on Verizon. His story is full of the idiosyncrasies of various carriers and devices. Part one. Part two.
Jack Shedd has some things to say about HTML 5. If you are watching the HTML 5 changes closely, Jack’s sentiments will likely resonate with you, including the frustration AND the respect for the team.
Lifehacker has an article on creating a Snow Leopard Hackintosh for $900 (plus the price of Snow Leopard standalone which is $169). I’d be interested in seeing a $500 model.
I have a bunch of BlinkMs and an Arduino from an old project and I spent some time with them this weekend. This time, I used Python on a Mac to connect. I learned a little in the process, so I thought I’d share.
1. I used darwinports‘ Python2.4 and the pyserial library.
2. On the Arduino, I flashed the BlinkMCommunicator code available here.
3. When writing to the BlinkM’s eeprom, you need to pause briefly before sending another command.
4. The attached code uses decode(“hex”). I’ll explain that design choice later.
5. The code assumes you have 3 BlinkM’s hooked up to the Arduino with their addresses set as 1, 2 and 3.
import serial import time def toBlinkM (ser, command): print ">\t Sending "+command ser.write(command.decode("hex")) print ">\t\t Sent "+command def setBlinkMToPlaySimpleScript (ser, address, color1, color2, color3, color4, duration, fadespeed): # example: write line 0 of script 0 on BlinkM 1 # 01 Start code # 01 BlinkM address # 08 bytes to send # 00 bytes to receive # 57 command: write line # 00 script number # 00 line number # 20 duration # 63 fade # 20 R # 20 G # 00 B print ("> Playing Simple Script on "+address) toBlinkM(ser, "01"+address+"0800570000"+duration+"63"+color1) time.sleep (.2) toBlinkM(ser, "01"+address+"0800570001"+duration+"63"+color2) time.sleep (.2) toBlinkM(ser, "01"+address+"0800570002"+duration+"63"+color3) time.sleep (.2) toBlinkM(ser, "01"+address+"0800570003"+duration+"63"+color4) time.sleep (.2) # last line: play script 0 1 time toBlinkM(ser, "01"+address+"0800570004"+"00"+"70"+"000100") time.sleep (.2) # set script id 0 to a len. of 5, 1 repeats toBlinkM(ser, "01"+address+"04004C000501") time.sleep (.2) # set fade speed toBlinkM(ser, "01"+address+"020066"+fadespeed) time.sleep (.2) # play script id 0 toBlinkM(ser, "01"+address+"040070008000") time.sleep (.2) ser = serial.Serial('/dev/tty.usbserial-A4001lcU',19200, timeout=1) counter = 0 print "> Waiting for Arduino." while 1: serialline = ser.readline() if (serialline): print serialline.strip() if ('ready' in serialline): break print "> Arduino ready." # tell #1 to stop animating toBlinkM(ser, "010101006f") # tell #1 to show only green and red at 1 bright toBlinkM(ser, "0101040063010100") # tell #2 to stop animating toBlinkM(ser, "010201006f") # tell #2 to show only blue and green at 1 bright toBlinkM(ser, "0102040063000101") # tell #3 to stop animating toBlinkM(ser, "010301006f") # tell #3 to show only red at 3 bright toBlinkM(ser, "0103040063030000") time.sleep (10) setBlinkMToPlaySimpleScript(ser,"01","404040","FF0000","0000FF","FF0000","05","10") setBlinkMToPlaySimpleScript(ser,"02","400000","FF0000","800000","FF0000","05","10") setBlinkMToPlaySimpleScript(ser,"03","000000","FF0000","000000","FF0000","20","10")