ScayTux
ScayTux is a cross-platform Java application that revives the Tux Droid robot, offering full control, animations, music playback, and remote control via CLI and Telegram on Windows and Linux.
Install / Use
/learn @Scayar/ScayTuxREADME
🌐 Website
Tuxdroid.com — Full documentation, installation guides, 100 combos list, Telegram setup, TTS guide, troubleshooting, and more!
📋 Table of Contents
- Website
- Overview
- Features
- Hardware Requirements
- Quick Start
- Installation
- First Run
- Usage
- Commands Reference
- 100 Combos (Full List)
- Telegram Remote Control
- Text-to-Speech & Audio
- Project Structure
- Manual Build
- Dependencies
- Troubleshooting
- Contributing
- Author
- License
🌟 Overview
ScayTux is a modern, cross-platform Java application that resurrects the classic Tux Droid robot for modern operating systems. No more outdated Python scripts or broken dependencies — pure Java power with 100 cinematic animations, Telegram bot, TTS, and a beautiful interactive CLI.
What is Tux Droid? A Linux mascot robot from ~2007 — a wireless USB-connected penguin figure that spins, flaps wings, blinks LED eyes, and speaks. The original software is abandoned; ScayTux brings it back to life on modern systems.
📚 Learn more about Tux Droid:
- Wikipedia: Tux Droid — Overview, specs, history
- Ars Technica review (2008) — Make a penguin do your bidding
- LWN.net (2006) — Tux Droid brings Tux the penguin alive
- eLinux.org — Technical documentation
███████╗ ██████╗ █████╗ ██╗ ██╗████████╗██╗ ██╗██╗ ██╗
██╔════╝██╔════╝██╔══██╗╚██╗ ██╔╝╚══██╔══╝██║ ██║╚██╗██╔╝
███████╗██║ ███████║ ╚████╔╝ ██║ ██║ ██║ ╚███╔╝
╚════██║██║ ██╔══██║ ╚██╔╝ ██║ ██║ ██║ ██╔██╗
███████║╚██████╗██║ ██║ ██║ ██║ ╚██████╔╝██╔╝ ██╗
╚══════╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝
✨ Features
| Feature | Description | |---------|-------------| | ⚡ Cross-Platform | Single codebase for Windows 10/11 and Linux (Ubuntu/Debian) | | 📱 Telegram Remote | Control your Tux from anywhere via inline-keyboard Telegram Bot | | 🎭 100 Combos | 90 animation combos + 10 music+dance combos | | 🗣️ Text-to-Speech | Windows: PowerShell • Linux: espeak with multiple voices | | 🎵 Music Player | Play MP3s through Tux with synchronized dancing | | 🔌 Plug & Play | Auto-detects USB dongle (VID: 0x03eb, PID: 0xFF07) | | ⌨️ Interactive CLI | Beautiful ANSI-colored menu system | | 🦅 Full Motor Control | Eyes, Mouth, Wings, Spin, LED with smooth animations |
🔧 Hardware Requirements
| Item | Description | |------|-------------| | Tux Droid | The penguin robot (with batteries) | | USB Dongle | "Fishtank" dongle (VID: 0x03eb, PID: 0xFF07) | | USB Cable | Connect dongle to your computer |
🚀 Quick Start
Windows (One-Click)
git clone https://github.com/Scayar/ScayTux
cd ScayTux
START_WINDOWS.bat
Automatic: Installs portable Maven, builds project, launches Interactive Mode.
Linux (One-Command)
git clone https://github.com/Scayar/ScayTux
cd ScayTux
chmod +x START_LINUX.sh && ./START_LINUX.sh
Automatic: Installs OpenJDK, Maven, espeak, libhidapi, configures udev rules.
Manual Build (Any Platform)
git clone https://github.com/Scayar/ScayTux
cd ScayTux
mvn clean package -DskipTests
java -jar target/ScayTux.jar
📦 Installation
Prerequisites
| Platform | Requirement | How to Install |
|----------|-------------|----------------|
| All | Java 8+ | Adoptium or Oracle JDK |
| All | Maven 3.6+ | Auto-installed by launcher scripts |
| Linux | libhidapi | sudo apt install libhidapi-hidraw0 libhidapi-dev |
| Linux | espeak (TTS) | sudo apt install espeak |
Linux USB Permissions
The launcher script auto-configures this. For manual setup:
# Create udev rule
sudo bash -c 'cat > /etc/udev/rules.d/99-tuxdroid.rules << EOF
SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="ff07", MODE="0666", GROUP="plugdev"
KERNEL=="hidraw*", ATTR{idVendor}=="03eb", ATTR{idProduct}=="ff07", MODE="0666", GROUP="plugdev"
EOF'
sudo udevadm control --reload-rules
sudo udevadm trigger
sudo usermod -aG plugdev $USER
# Log out and back in
🎬 First Run
- Plug in the Tux Droid USB dongle.
- Run
START_WINDOWS.bat(Windows) or./START_LINUX.sh(Linux). - Choose from the main menu:
1— Interactive Menu (browse and run 100 combos)2— Manual/REPL Mode (type commands freely)3— Telegram Control (set up remote control)4— Exit
🎮 Usage
Interactive Mode (Default)
java -jar target/ScayTux.jar
Command-Line Mode
# Basic controls
java -jar target/ScayTux.jar --flap
java -jar target/ScayTux.jar --eyes true
java -jar target/ScayTux.jar --blink 5
java -jar target/ScayTux.jar --spin left --val 100
# Text-to-Speech
java -jar target/ScayTux.jar --say "Hello World"
# Play music with dance
java -jar target/ScayTux.jar --play assets/audio/billie.mp3
# Run combo (1-100)
java -jar target/ScayTux.jar --combo 14
# List devices
java -jar target/ScayTux.jar --list
# Debug mode
java -jar target/ScayTux.jar --debug
📚 Commands Reference
CLI Arguments
| Flag | Description | Example |
|------|-------------|---------|
| -i, --interactive | Force interactive mode | -i |
| --flap | Flap wings | --flap |
| --eyes <bool> | Open (true) or close (false) eyes | --eyes true |
| --blink <n> | Blink eyes N times | --blink 5 |
| --mouth <bool> | Open or close mouth | --mouth true |
| --talk <n> | Move mouth N times | --talk 10 |
| --spin <dir> | Spin left or right | --spin left |
| --val <n> | Duration/loops for spin | --val 100 |
| --led <color> | LED: 1=Red, 2=Blue, 3=Yellow | --led 2 |
| --intensity <n> | LED intensity (0-255) | --intensity 255 |
| --say <text> | Speak with TTS | --say "Hello" |
| --combo <id> | Run combo 1-100 | --combo 49 |
| --play <file> | Play MP3 and dance | --play song.mp3 |
| -l, --list | Check USB connection | -l |
| -d, --debug | Debug HID monitor | -d |
| --spin-doctor | Motor diagnostic | --spin-doctor |
🎭 100 Combos (Full List)
Animation Combos (1-90)
| ID | Name | ID | Name | ID | Name | |----|------|----|------|----|------| | 1 | Royal Entrance | 31 | Ninja Silent | 61 | Weatherman | | 2 | Bird Flex | 32 | Wake Ninja | 62 | Fitness Coach | | 3 | Brain Loading | 33 | JumpScare | 63 | Alarm Clock | | 4 | Sleep Mode | 34 | Sad Apology | 64 | Moonwalk | | 5 | Hacker Alert | 35 | Switch OFF | 65 | Karate Chop | | 6 | Police Mode | 36 | Magic Portal | 66 | News Anchor | | 7 | Shy Bird | 37 | Taunting | 67 | Evil Villain | | 8 | Laugh Mode | 38 | Game Won | 68 | Cheerleader | | 9 | Kiss | 39 | Game Lost | 69 | Ghostly Haunt | | 10 | Bird Crying | 40 | Loading 100% | 70 | Cowboy Duel | | ... | ... | ... | ... | ... | ... | | 51 | Disco Fever | 71 | Science Lab | 81 | Space Explorer | | 52 | Morning Stretch | 72 | Royal Wave | 82 | Chef Kiss | | 53 | Pirate Captain | 73 | Breakdance | 83 | Drill Sergeant | | 54 | Opera Singer | 74 | Sneezing Fit | 84 | Morse Code | | 55 | Counting Sheep | 75 | Photo Pose | 85 | Surfer Dude | | 56 | Thunder Storm | 76 | Hypnotize | 86 | Orchestra Conductor | | 57 | Zen Meditation | 77 | Traffic Cop | 87 | Spy Mode | | 58 | Rocket Launch | 78 | Submarine | 88 | Fortune Teller | | 59 | Penguin Walk | 79 | Birthday Party | 89 | Heavyweight Champ | | 60 | Time Bomb | 80 | Mime Artist | 90 | Penguin Shuffle |
Browse all 100: Run interactive mode → "Show All 100 Combos" • Or visit tuxdroid.com/docs/combos
Music + Dance Combos (91-100)
| ID | Name | Song File | |----|------|-----------| | 91 | Michael Jackson | billie.mp3 | | 92 | Chicken Dance | chicken.mp3 | | 93 | Syrian Dabkah | Suirian dabkah.mp3 | | 94 | Crazy Mode | crazy.mp3 | | 95 | Say My Name | Say My Name.mp3 | | 96 | Robot Rock | robot-rock.mp3 (add to assets/audio/) | | 97 | Macarena | macarena.mp3 (add to assets/audio/) | | 98 | Egyptian Walk | egyptian.m
