Archive for the “PowerTap” Category

Training with my Saris Cycleops PowerTap using Apple OSX

Just uploaded the power telemetry from my afternoon bike ride. It was the exact same ride I did last sunday. I felt more tired today. That I had a hangover and was riding in 4pm sun didn’t help. Anyway, 68kilometers in 2:30. My device says I did 1396 kilohoules (kJ) of work today and 1365 kJ last week. That number doesn’t mean much too me — what is the significance of having burnt and extra 31kJ today.

It’s either 0.83 x metabolic energy of one gram of fat or 1.8 x the metabolic energy of one gram of sugar or protein.

That is, today’s ride burnt an extra half-packet of sugar. Fantastic.

Comments No Comments »

Dock

When I’m using Google software I get positive surprises. For example, plot a route in Google Maps then start dragging segments of it to spontaneously change the course.


View Larger Map

Microsoft software never surprises me. It is decade-old bloatware. It usually has an implementation of everything.

When I’m using software from small niche hardware companies, I assume it’s going to suck in countless ways.

My longstanding hate-object was Garmin, but now that Google Maps and my iPhone has mooted standalone GPS units, I have the luxury of not even thinking about Garmin any more.

A new enemy has appeared — my CycleOps Powertap. This is a small cycle computer that wirelessly talks to a rear wheel hub that measures my pedaling torque (thus wattage). Wattage is the most useful telemetry for a bicyclist.

The PowerAgent software that talks to it is shabby and brittle. But of course, that was a known known. I discovered a real gem in the cycle computer’s firmware yesterday. During a long ride, my cycle computer would periodically blink “full.” I had not cleared out old ride data for a while, so the telemetry was filling up. Didn’t really matter, I had already downloaded the old ride telemetry, so having the cycle computer replace it with the new, current ride data would be fine.

Except it didn’t.

Against all odds, the firmware designers decided that it made more sense to simply cease recording new data rather than overwrite the old data!

Why would the default assumption ever be that I value old data more than data I’m currently generating?

Does the cycle computer remember that I downloaded previously? Isn’t that a clue?

If they agree that it really should replace the old data, but were unable to implement that, then they’re just really pathetic.

Comments No Comments »

OSX Snow Leopard installed fine and all my software worked fine immediately or after the apps updated themselves. All except PowerAgent. Once again it cannot see the PowerAgent unit and gave me a new set of error messages. I hope they fix this quickly; I’ve already sent them a note with all the error stacks.

Dock

Communication Error

Message:
java.lang.UnsatisfiedLinkError: /private/var/folders/Il/IlR5g547GqySdDOncreFpU+++TI/-Tmp-/libd2xx-macosx.jnilib: no suitable image found. Did find: /private/var/folders/Il/IlR5g547GqySdDOncreFpU+++TI/-Tmp-/libd2xx-macosx.jnilib: no matching architecture in universal wrapper
Level:
SEVERE
Stack Trace:
java.lang.ClassLoader$NativeLibrary.load(Native Method)
java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1878)
java.lang.ClassLoader.loadLibrary(ClassLoader.java:1758)
java.lang.Runtime.load0(Runtime.java:770)
java.lang.System.load(System.java:1020)
com.cycleops.d2xx.Library.loadLibrary(Unknown Source)
com.cycleops.d2xx.D2xx. (Unknown Source)
com.cycleops.jpowertap.Manager.getConnectedDevices(Manager.java:120)
com.cycleops.devicemanager.DeviceManager.getSelectedDevice(DeviceManager.java:52)
com.cycleops.devicemanager.DeviceManager.getSelectedDevice(DeviceManager.java:41)
com.cycleops.devicemanager.ConfigureDeviceAction.performAction(ConfigureDeviceAction.java:39)
org.openide.util.actions.CallableSystemAction$1.run(CallableSystemAction.java:118)
org.netbeans.modules.openide.util.ActionsBridge.doPerformAction(ActionsBridge.java:77)
org.openide.util.actions.CallableSystemAction.actionPerformed(CallableSystemAction.java:114)
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
javax.swing.AbstractButton.doClick(AbstractButton.java:389)
com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:95)
java.awt.MenuItem.processActionEvent(MenuItem.java:627)
java.awt.MenuItem.processEvent(MenuItem.java:586)
java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:317)
java.awt.MenuComponent.dispatchEvent(MenuComponent.java:305)
java.awt.EventQueue.dispatchEvent(EventQueue.java:638)
org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:104)
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

java.lang.NoClassDefFoundError: Could not initialize class com.cycleops.d2xx.D2xx
at com.cycleops.jpowertap.Manager.getConnectedDevices(Manager.java:120)
at com.cycleops.devicemanager.DeviceManager.getSelectedDevice(DeviceManager.java:52)
at com.cycleops.devicemanager.DeviceManager.getSelectedDevice(DeviceManager.java:41)
at com.cycleops.devicemanager.DownloadDeviceAction.performAction(DownloadDeviceAction.java:83)
at org.openide.util.actions.CallableSystemAction$1.run(CallableSystemAction.java:118)
at org.netbeans.modules.openide.util.ActionsBridge.doPerformAction(ActionsBridge.java:77)
at org.openide.util.actions.CallableSystemAction.actionPerformed(CallableSystemAction.java:114)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:389)
at com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:95)
at java.awt.MenuItem.processActionEvent(MenuItem.java:627)
at java.awt.MenuItem.processEvent(MenuItem.java:586)
at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:317)
at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:305)
[catch] at java.awt.EventQueue.dispatchEvent(EventQueue.java:638)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:104)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Comments 17 Comments »

UPDATE: Jan and Ryan from Saris responded very very quickly to my problem and resolved it pretty much immediately with a beta version of PowerAgent combined with the firmware updater. Apparently an OSX upgrade was clashing with the old firmware updater.

Nice to be out of my state of ‘high dudgeon’. Now I have to stop being irritated with Saris and instead irritated with my lame wattage output tonight on the trainer. I think I soft-shoed it by 10% at least.

This is an expensive product. It comes with a java application to control the powertap (configuration, downloading data, etc).

It doesn’t work on any of my Mac computers even though the literature claims it does.

I followed the instructions exactly (on two separate Macs and also tried a Parallels XP installation) yet it always fails. I did manage to install the (crappy) software on an IBM ThinkPad, and it will find and talk to the PowerTap, but only after I did some gross thing to change the COM port id of the USB jack I was using.

Doubt me?

Here’s where I install the PowerTap driver on my OSX machine.

Then when I run the the PowerAgent software, it cannot spot the PowerTap, and com.cycleops.exceptionhandler.ReadableException throws.

I tried to do some debugging, but nothing works. The online technical support for this product is lamentable. The closest thing I found was TrainingPeaks software help that recommended adding an FTDI driver. This made no difference and everything continues to not work.

USB Prober
USB Prober
Contacting technical support is dubious. CycleOps support gave me a webform tell me to keep my question to under three hundred words. This is not an auspicious start to debugging.
Saris Cycling Group
Uploaded with plasq‘s Skitch!

Apparently they’ll get to me in about three days……………….

Saris Cycling Group

Comments 3 Comments »