Difference between revisions of "Tux Droid"

From YobiWiki
Jump to navigation Jump to search
Line 22: Line 22:
 
* Bugreports
 
* Bugreports
 
** [http://www.tuxisalive.com/issue-trackers/tux-daemon/ daemon]
 
** [http://www.tuxisalive.com/issue-trackers/tux-daemon/ daemon]
** [http://www.tuxisalive.com/issue-trackers/firmware firmware/harware]
+
** [http://www.tuxisalive.com/issue-trackers/firmware firmware/hardware]
 
** [http://www.tuxisalive.com/issue-trackers/api API]
 
** [http://www.tuxisalive.com/issue-trackers/api API]
 
** [http://www.tuxisalive.com/issue-trackers/tuxup bootloader]
 
** [http://www.tuxisalive.com/issue-trackers/tuxup bootloader]

Revision as of 19:12, 18 March 2007

Introduction

_The_ gadget any linux geek should have ;-)

Moreover it is designed in Belgium, tadaam!

Having kids can help justifying such a, hum, impulsive buy ;-)

http://www2.tux-is-alive.com/mediawiki/images/thumb/b/b9/Tux-proto.jpg/200px-Tux-proto.jpg

Sites

Audio

  • Plugging everything for the first time, and I got immediately a new Alsa device:
cat /proc/asound/cards
...
2 [default        ]: USB-Audio - TUX RF DONGLE 
                     C2ME BELGIUM TUX RF DONGLE  at usb-0000:00:1d.2-1, full speed

And I can already place an Ekiga test call :-)
Note that echo between internal speaker and microphone is very important so echo tests are quite terrible!
Using the OSS emulation, I can play whatever I want:

mpg321 -o oss -a /dev/dsp2 /path/to/some/mp3
mplayer -ao oss:/dev/dsp2 http://www.paul.sladen.org/pronunciation/torvalds-says-linux.mp3

Reflashing

Then I learn that to run the new (alpha2) tuxdaemon I'll also need to flash the stuffed pinguin.
Instructions are given on the web site and are not... straightforward.

Additional notes:

  • Be sure to have installed properly libusb and to have mounted /proc/bus/usb, cf /usr/share/doc/libusb-0.1-4
    • For users to have the right to access usbfs, change /etc/udev/rules.d/020_permissions.rules and add GROUP=usb:
SUBSYSTEM=="usb_device",        MODE="0664", GROUP="usb"
  • Recompile dfu-programmer from sources! I first tried alien on the rpm but there were glibc problems and when trying tuxup fuxusb.hex I got the following "common problem" but here it's really not because of permission problems.
Programming fuxusb.hex in USB CPU
Tux not found on USB
  • They explain about tuxup fuxrf.hex and tuxup --main . but I had also to fix the tux rf counterpart: tuxup tuxrf.hex
  • At the end, replug the dongle and restart the tux

Compiling a firmware

apt-get install gcc-avr avr-libc gdb-avr

Follow the howto starting from SVNWCRev section.
To get the proper header files to compile SVNCRev:

apt-get install libsvn-dev

And edit svncrev-0.1/config.mk to fix the following path:

APR_INCLUDE=/usr/include/apr-1.0

Personalizing the firmware

For basic stuff, we'll only change the tuxcore.eep file where are stored the basic standalone behaviors.
Edit common/config.h based on commands listed in common/commands.h
Each line is one first byte (what for?) then a frame of 4 bytes to combine between 1 and 4 commands as explained in commands.h
My first personalized firmware has the following behavior:
Eyes closed when no rf link and opened when rf link is established.
Note that it would be easier if there was a CLOSE_EYES_CMD
I solved it by using the seq "OPEN_EYES_CMD, BLINK_EYES_CMD, 1, 0"

Note that for such personalization, only eep file is required but if you plan to use the hex file, I noticed that there was a problem in the versioning structures order, you've to edit global.c and invert the last lines:

const version_t tag_version __attribute__((section(".version"))) =
                        {VERSION_CMD, CPU_NUMBER, VER_MAJOR, VER_MINOR, VER_UPDATE};
const revision_t vn_revision __attribute__((section(".version"))) =
                        {REVISION_CMD, SVN_REV, SVN_STATUS};
const author_t author __attribute__((section(".version"))) =
                        {AUTHOR_CMD, AUTHOR_ID, 0};

Remote Control

(from the forum)
Press 'ALT' then 'Tux and phone' and you're in test mode.
The arrows should move tux, if you press a digit key, you change the number of movements. So 4 then up will move the eyes 4 times (2 blinks: close - open -close - open)
Read firmware/tuxcore/trunk/standalone.c l262 to see all possiblities

Raw commands

gtdi allows to send raw commands, see /firmware/tuxdefs/commands.h

Misc Tips

  • First time, don't forget to plug Tux to the power adaptor for a while (~5h)
  • Want to get Acapela Telecom? It's actually available as the tts-daemon

Misc Problems

  • tuxdaemon from svn eats all CPU when running daemonised :-(
  • tuxttsdaemon launched by gtdi eated 100% cpu after a while with tux off
  • gtdi source to be modified: add a space between gnome-terminal -e and "the_commands"
  • wrong comments in commands.h 0x1A & 0x1B control both leds

Misc Questions

  • How to use alsa natively, not through /dev/dsp2 OSS layer?
  • How to control the volume by software?