Jun 15

ohai blog

i’ve neglected you, and i am sorry

Jun 13

Visiting the CRP factory


Motor Valley, Italy.  The region encompassing Bologna and Modena that has birthed the likes of Ferrari, Lamborghini, Pagani, Ducati, Bugatti, and Maserati, and most recently CRP.


CRP is actually a group of 6 companies with long standing operations in precision machining, additive manufacturing, motorsport, and R&D. There is even an American branch – but more on that later. CRP joins the ranks of premium Italian motorsport OEMs with this :


The soon-to-be-released Energica electric sportbike . What really excites me about the Energica is that it is a real sportbike. There are some fantastic upright-sitting electric motorcycles now on the market – but it’s the crotchrocket formfactor that really gets me my jollies. Weight has yet to be specified, but the machine will host a 100kW electric motor and nearly 12kWh of battery. 😀 These are the kind of numbers I’ve been waiting for in an electric motorcycle; the CBR 600RR in my garage should be cowering in fear.  The Energica’s 118 ft lb gob of torque, unscrupulously delivered by Mr. Heaviside, will definitely bring an EV Grin to many new faces. If you are able to go easy on the throttle, you should be able to get about 90 miles on a charge. From ’empty’ (0% SoC) the battery recharges in 3 hours over a level 2 AC connection, or 30min to 80% if you can find a fast DC charger.   Before you say it – yes – the Energica will not [yet] be price competitive with current ICE bikes. It comes in at $22k , whereas a 600cc sportbike is about half that.  Though its also worth mentioning that the Energica will integrate a laundry list of premium components from Brembo, Pirelli, Sachs, Marzocchi and others.
The tour began with a look at a few former racing machines from CRP’s participation in Moto2, 125cc MotoGP, and Formula 1.


CRP USA moto2 entry

After being greeted with a nice schwagbag, I was introduced to the company’s technical director, who happily led me through the machining building. I won’t claim to to have seen any great number of machine shops, but this place was pristine. Primarily producing F1 and other race components for top tier clients, they understandably have one hell of a collection of cutting edge CNC machinery. 
Next I was shown the 3D printing side of the business. Prior to my arrival I had no idea of their involvement in this industry. CRP’s Windform is a line of roughly 7 different types of 3D printable carbon composite.  The composite is strong and lightweight (though in slightly different ways than other carbon fiber products) and is printed with SLS (Selective Laser Sintering) machines. Extremely cool to watch. Here is a video that gives a good overview of the process:

Even more remarkable is the shapes this can produce, and the material properties that can be achieved. Quite literally, this can produce shapes that are impossible to make via traditional methods, and no support structures are required. Check out the internal fill structures in this LX sample:


Though it was the SP sample that really put my jaw on the floor:


3D printable compliance! Imagine the unconventional spring shapes that can be created – with spring, damping and other parameters governed by internal fill structures. Really too cool. Windform is also printed by CRP USA in North Carolina mostly for NASA and NASCAR.

In the electric motorcycle R&D facility I was shown the 3 eCRP motorcycles which were raced in the TTXGP series; taking a the 1st in 2010. The CRP’s electric racing program is now suspended as they are devoting efforts to the production machine. Clever of them to start with a racing program for R&D and brand building before moving to a production machine. A few other iconic Italian brands followed similar footsteps in their early days. At the time of my visit there were no completed Energica bikes present (off for ABS testing) , and the team was busy calibrating the powertrain on a dynamometer/usage simulation rig. Though I did get to see some nice looking prototypes of the trellis frame, 3D printed fairings, and a few other miscellaneous bits.


The Energica arm of CRP recently came under fire as they pushed their 2014 expected delivery date to 2015. The CTO and PR people I spoke with stressed that , despite being a new OEM, they fully intend to deliver a product that meets with Modena standards of quality and perfection. All previously reserved motorcycles are receiving an ABS upgrade at no additional cost; the 2014->2015 delay is mainly to adequately test and validate the ABS system. In Europe ABS will be required in all motorcycles sold as of 2016.


Prior to my visit I knew little about CRP beyond their TTXGP race entries and street machine prototypes. My visit to the headquarters revealed a fully fledged and multi-faceted engineering operation, with deep ties in performance vehicle industry.  From what I saw, CRP really is a company with the chops to bring a fresh performance motorcycle to market. Personally, I wish them best of luck. Not because they will need it, not even because it is a family business with an extremely kind and enthusiastic staff, but because what they are doing is damn exciting and I can’t wait to ride one.






Apr 13

Spirited Robotics at Yuri’s Night LA

Spirited Robotics serving drinks under the Endeavor Space Shuttle at Yuri’s Night Los Angeles:






Video showing the new design:


Join us on Facebook!

Mar 13

Goodbye Google Reader

today I found out that Google Reader, one of my favorite google products, has been sentenced to /dev/null




I can only hope that this is because (like with GOOG411 and Google voice search) it will soon be replaced with something much much better, but I’m not holding my breath. looks like I’m in the market for a new rss manager. recommendations welcome.

Jan 13

Ellipse Stencils

Just picked up my first laser cut acrylic design! nothing too exciting – just a set of ellipse stencils [for much cheaper than you would find at an art store] made using ponoko/vectorealism. Even though this was dreadfully simple, it gave me a fresh reminder of that special feeling you only get by bringing a design into the physical. Its an addictive feeling.

Photo 13

In case you want a set of these stencils for yourself, you can purchase the finished set on Ponoko, or just download the design file for free here (it is creative commons licensed after all)

PS yeah i know , its been waay too long between updates.. remind me and i’ll come up with an excuse for that later


Photo 14

May 12



Recently got hold of blueprints from the house i grew up in. Figured i’d try my hand at modeling in sketchup.

Mar 12

Santa BarBot 2012!

~12 days ago i read this:


A San Francisco Cocktail party where the drinks are mixed by robots?!? There were 10 days remaining before the event, just enough time to build one, i thought…
Late that night I sent out a frantic email to the ever so special cross section of my drinking and geeking buddies, asking who wanted to partake in the build. At t-184hours the dreamteam had been assembled; we held our first meeting and [mostly] converged on a design:



Friday parts were purchased, and Sat/Sun we took over another good friend’s [well equipped] garage for the build party.
Most of us also have regular (or semi regular) jobs to balance with this, so in the following week we had quite a few very late nights of coding, fabricating, mounting, testing and drinking! (had to test all the recipes of course)
At t-6hours we had it pretty much all together though there was still some coding to be done on the ride up to SF, and some of us were still recovering from rigorous testing the night before. We didn’t get to Parisoma until around 7, and did not have our robot entirely setup until after 8 when the venue had already become good and crowded. On the ride up a few pieces became bent/broken and had to be fudged back into place. Runs ended up making a royal mess and nailed our first customers with a dose of lime juice to the crotch.. counter to our engineering intuition, the ‘danger’ factor associated with our robot helped to make it all the more a crowd pleaser.

Overall the event was one hell of a good time, and I’d do it again in a heartbeat. There were 14 robotenders in service and enough of a turnout to piss off a firemarshall. We got a bit of a kickback to help cover transportation, but the majority of the proceeds go to student involvement in robotics and the robogames’ main events. We were also encouraged to sign up for Roboexotica, an event that is supposedly bigger, badder, and Austrian. I will certainly be looking into this


Shown above are the core team members (minus 1) and our Santa Barbot. I’ve gotta say, I really regard myself as fortunate to have such a slick bunch of engineers as friends. I think the fact that in ~1 week we went from idea to f****** awesome robot that takes a voice command (Siri) to make a Pan Galactic Gargle Blaster, speaks for itself. Cheers friends, I think we’d have done Douglas Adams proud.








Also seen on the Make Blog!

Nov 11

Three birds with one stone


No place to put my suitcases
Need a desk
No more closet door to have to open


Oct 11

There is a 40ft rubber duck atacking Japan

First Godzilla then Mothra now this:


Aug 11

ROS & Robovero


Working in the UCSB Robotics Lab  I’ve had the fortune of getting to play with one of those adorable little chewable linux computers , during the ~week before my move to Japan. While unfortunately I wont get to see it though to its installation as the nervous system on a hoping robot,  I’ve had the adventure of getting it all up and running with the ROS (Robot Operating System)  toolchain. I pulled a bit of hair out during the process, so hopefully this post will prevent others from having to do so.




As of now, this blog describes the process of getting Gumstix to boot Ubuntu Natty from an SD card , autoconnect to wifi, and subscribe to a  ROS topic.
I’m using a Gumstix Overo Fire COM, 8GB SD card, and the new Robovero daughter board.

You don’t need that exact hardware, but at minimum:

  • -Gumstix Overo Air/Fire/FE
  • -Micro SD card (8 GB in these examples)
  • -Overo daughter board (could be pretty much any one)
  • -Computer running Ubuntu
  • -A wireless (or wired if you have the right Gumstix daughter board) network that both the Overo and Host computer can connect to


Creating the Bootable Ubutnu SD Card

First grab a copy of rootstock – a nifty tool we will use to create our armel ubuntu image:

# apt-get install rootstock

cd to someplace where you dont mind making a mess:

# mkdir gumbuntu
# cd gumbuntu

Now to generate the image:

~/gumbuntu# rootstock --fqdn overo --login robot --password temppasswd --imagesize 8G --seed wget,vim,linux-firmware,wireless-tools,wpasupplicant,usbutils,build-essential,tmux,openssh-server,lynx,python-yaml,cmake,subversion,wget,python-setuptools,pkg-config,python-dev,ntp,libboost-dev,libboost-all-dev,libapr1,libapr1-dev,libaprutil1,libaprutil1-dev,liblog4cxx10,liblog4cxx10-dev --dist natty --serial ttyS2

You may want to edit this somewhat. For more info on rootstock see https://wiki.ubuntu.com/ARM/RootfsFromScratch

This is bound to take a while. So in the meantime crack open a new terminal session and get your sd card formatted and bootable by following the directions here. STOP after copying MLO u-boot.bin and uImage to the boot partition, because we will be using our own rootfs image. You can download MLO u-boot.bin and uImage from here.

Once rootstock has completed unzip everything to the SD card’s root partition (lets call it sdroot)

~/gumbuntu# cd /media/sdroot
/media/sdroot# tar xvaf ~/gumbuntu/armel-rootfs-[creation date].tgz

This will also take a while. Make yourself useful by getting your Overo ready for the next step. The Ubuntu image we are building unfortunately does not have built in support for the Overo’s wifi chip, so we are going to swipe the modules and firmware from the nand image (which we know works). You could probably also find this stuff on the interweb , but this way is a pretty simple one stop shop for everything. If your kernel versions do not match you may be better off extracting the stuff from one of the Gumstix images to avoid compadibility issues.



Copying Modules and WiFi Firmware

Plug the daughter board into your desktop as you would normally to get to the serial console, give the boards power and let the Overo boot into the NAND Angstrom distro. We will be connecting to a wifi network to transfer files, becasue afaik there is no reliable way to do this over the serial connection. From the console (in a session thats not extracting files):

$ screen /dev/ttyUSB1 115200
[you will see the overo booting into Angstrom]
login: root
# ifconfig wlan0 up
# iwconfig wlan0 essid [your SSID]
# dhclient wlan0
# /etc/init.d/sshd restart

If you use encription you are going to have to set up wpa_supplicant.conf , but I’ll trust you know how to do this. The sshd restart probably isnt strictly necessary, but can’t hurt. Also don’t forget your Gumstix’s IP address; lets pretend its

Once the files have finished extracting from the SD card you will want to do the following (from a fresh terminal ) :

# cd /media/sdroot/lib
/media/sdroot/lib# scp -r root@* modules/
/media/sdroot/lib# scp root@* firmware/
/media/sdroot/lib# cd ..
/media/sdroot# scp -r root@* etc/network/
/media/sdroot/lib# cd
# umount -a

Your bootable Ubuntu MicroSD card is now all ready! plug it into the Overo and give it a go



Installing ROS

Log into your Gumstix Ubuntu distro with the username/pass you used in the rootstock command, connect to your router and install ros by running:

# ifconfig wlan0 up
# iwconfig wlan0 essid [your SSID]
# dhclient wlan0
# apt-get update #not really needed yet, but verifies that you are connected
# easy_install -U rosinstall
# rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=diamondback&variant=ros-base&overlay=no"


go get that cup of coffee.


now I’ll assume you can get your router to statically assign IPs , if not you will have to change things every time your router does.  Edit /etc/hosts to include the name of your desktop computer (which will be running roscore) lets pretend your desktop has IP address, and you want to name it desky

#echo " desky" >> /etc/hosts

#echo "source ~/ros/setup.bash" >> ~/.bashrc

#export ROS_MASTER_URI=http://Desky:11311

. ~/.bashrc

Now ROS is all set up! lets just configure the Gumstix so that it automatically connects to WiFi on boot.



Network Config

In /etc/rc.local put:

#ifconfig wlan0 up
#iwconfig wlan0 essid [your SSID]
#dhclient wlan0 -4

You may not need the -4 , but without it my connection would fail every few minutes and I would have to request a new lease.
Also if you are using encryption you will need to set up /etc/wpa_supplicant.conf and change the above lines to something more like:

#ifconfig wlan0 up
# wpa_supplicant -Dwext -i wlan0 -c/etc/wpa_supplicant.conf -B
#dhclient wlan0

Now your overo is all set! Unplug the mini-USB and reset the Overo. After about a minute you should see the outermost blue LED blink violently then remain lit. This means you are connected.
To make things easier on ourselves and ROS, lets make another similar entry in /etc/hosts. This time assume the gumstix is and we want to name it gummy

#echo " gummy" >> /etc/hosts

no tricks there.  Now you can log into your overo wirelessly simply by running

ssh [user]@gummy

You can now run your ROS programs , and the two computers should be able to find each other seamlessly.



r/w_ blog : 05-23-2024
powered by WordPress