Known bugs:
Change log:
Download
The Big D and I have been working hard at coding an android app with Tacx Bushido support. The current state is that we have a working app (albeit with a few rough edges) that can simulate GPX courses. So it is with great pleasure that we release a preview (source code now up):
It is worth pointing out that you can run this in VirtualBox on windows/max/linux using android x86 (android-x86.org). I use android-x86-4.0-RC2-eeepc.iso for testing.
You will need to enable:
Feature requests welcome.
` <http://cowboycoders.org/cyclismo-change-log/>`__
In other news, BerryS has reversed a few more nuggets of the Bushido Headunit protocol (see the wiki). We now know about long/medium button presses, the device serial and the user's weight. Cheers BerryS!
NO WARRANTY - PLEASE REGARD AS EXPERIMENTAL
I have rewritten python-ant by Martín Raúl Villalb in Java. There are presently two drivers: one is a wrapper around Dynastreams own ant library for Android and the other is a javax.usb driver for ANT+ usb sticks. This allows code to be be prototyped on a development machine before adding the android specific stuff.
Features:
Grab it from : https://github.com/cowboy-coders/JFormica
Here is a code sample:
class Listener implements BroadcastListener{
@Override
public void receiveMessage(BroadcastDataMessage message) {
System.out.println("Heart rate: " + message.getData()[7]);
}
}
public void test_hrm() throws InterruptedException, TimeoutException {
// first usb ant-stick
AntTransceiver antchip = new AntTransceiver(0);
Node n = new Node(antchip);
NetworkKey key = new NetworkKey(0xB9,0xA5,0x21,0xFB,0xBD,0x72,0xC3,0x45);
key.setName("N:ANT+");
n.start();
n.reset();
// sets network key of network zero
n.setNetworkKey(0, key);
Channel c;
c = n.getFreeChannel();
c.setName("C:HRM");
ChannelType channelType = new SlaveChannelType();
c.assign("N:ANT+", channelType);
c.registerRxListener(new Listener(), BroadcastDataMessage.class);
c.setId(0, 120, 0, false);
c.setFrequency(57);
c.setPeriod(8070);
c.setSearchTimeout(255);
c.open();
Thread.sleep(10000);
c.close();
c.unassign();
//return the channel to the pool of available channels
n.freeChannel(c);
n.stop();
}
replicates Tacx TTS slope distance mode (headunit enters PC Communication mode)
a simple man in the middle implementation for snooping on communication from the headunit to the brake.
You can grab all the source code we are using to reverse engineer the Tacx Bushido here:
Please Note: I noticed a few people were having trouble with the Angstrom build using Doug's article, so I thought I'd post the exact method I used (which seemed to work!) so others can retrace my steps with out confusing anyone by editing the previous article! If you have already successfully baked an Angstrom image please ignore this post!
First off I'd like to point out that this article is essentially an amalgamation of the Open Embedded Wiki (Getting Started) and Angstrom's 'Building Angstrom' articles but in context relating to the mini2440 Embedded PC. If you would like a more detailed and probably better written explanation please refer to these two articles.
Make sure you have the packages needed for Open Embedded(OE) by visiting here and looking under the section relating to your distro. Running fedora 11 I did:
su -c "yum install python m4 make wget curl ftp cvs subversion tar bzip2 gzip unzip
python-psyco perl texinfo texi2html diffstat openjade docbook-style-dsssl
docbook-style-xsl docbook-dtds docbook-utils sed bison bc glibc-devel glibc-static
gcc binutils pcre pcre-devel git quilt groff linuxdoc-tools patch linuxdoc-tools
gcc-c++ help2man perl-ExtUtils-MakeMaker"
Getting down to business...
Open up a terminal. Issue these commands:
su -
mkdir -p /stuff2/build/conf
chmod 777 -Rf /stuff2/
exit
cd /stuff2/
Download latest bitbake from here and extract the bitbake directory in the archive (eg. bitbake-1.8.16) to /stuff2/
A few more commands:
mv bitbake-1.8.16/ bitbake
git clone git://git.openembedded.org/openembedded
cp openembedded/conf/local.conf.sample build/conf/local.conf
Edit the config you have just copied using your favourite text editor.
gedit build/conf/local.conf
It is important that you read the config carefully so that you understand what everything does...
Next edit it to look something like this (which is just a slightly modified version of openembedded/contrib/angstrom/local.conf) :
Note: Do not copy and paste from this article due to formatting issues. You can download a pre-made local.conf here.Just extract to /stuff2/build/conf/ ...
MACHINE = "mini2440"
# Where to store sources
DL_DIR = "/stuff2/downloads"
INHERIT += " rm_work "
# Make sure you have these installed
ASSUME_PROVIDED += "gdk-pixbuf-csource-native imagemagick-native librsvg-native"
# Which files do we want to parse:
BBFILES := "/stuff2/openembedded/recipes/\*/\*.bb"
BBMASK = ""
# What kind of images do we want?
IMAGE_FSTYPES += " tar.bz2 "
# Set TMPDIR instead of defaulting it to $pwd/tmp
TMPDIR = "/stuff2/${DISTRO}-dev"
# Make use of SMP and fast disks
PARALLEL_MAKE = "-j2"
BB_NUMBER_THREADS = "2"
#tinderbox
#INHERIT += "oestats-client"
OESTATS_BUILDER = "myname"
DISTRO = "angstrom-2008.1"
Save and exit the editor. Download this script and move it to the directory /stuff2/ .
Check it is ok:
gedit /stuff2/source-me.txt
It should look something like this:
export OETREE="/stuff2"
export PATH=/stuff2/bitbake/bin:$PATH
BBPATH=${OETREE}/:${OETREE}/build/:${OETREE}/openembedded/
PKGDIR=${OETREE}/build/
DL_DIR=${OETREE}/downloads
echo Setting up dev env for Ångström
if [ -z ${ORG_PATH} ] ; then
ORG_PATH=${PATH}
export ORG_PATH
fi
if [ -z ${ORG_LD_LIBRARY_PATH} ] ; then
ORG_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
export ORG_LD_LIBRARY_PATH
fi
PATH=${OETREE}/openembedded/bitbake/bin:${ORG_PATH}
cd $PKGDIR
LD_LIBRARY_PATH=
export PATH LD_LIBRARY_PATH BBPATH
export LANG=C
export BB_ENV_EXTRAWHITE="MACHINE DISTRO OETREE ANGSTROM_MODE ANGSTROMLIBC LIBC"
echo "Altered environment for OE Development"
save, and start the script:
cd /stuff2/
source source-me.txt
cd ../openembedded
one last update:
git pull
Issue a few commands to fix build issues:
su
sysctl vm.mmap_min_addr=0
setenforce 0 (Fixes an SELINUX problem during building)
exit
issue build commands:
bitbake base-image ; bitbake console-image ; bitbake x11-image
Be prepared to saturate your internet connection, wait a long time and take up a lot of disk space! The result ends up in:
stuff2/angstrom-dev/deploy/glibc/images/mini2440
You should have the image(s) in .jffs2 for flashing and .tar.gz for mounting using NFS.