Bring your Tux Droid back to life on modern Windows 10/11 & Linux systems!
Tuxdroid.com โ Full documentation, installation guides, 100 combos list, Telegram setup, TTS guide, troubleshooting, and more!
- 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
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
โโโโโโโโ โโโโโโโ โโโโโโ โโโ โโโโโโโโโโโโโโโ โโโโโโ โโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโ
โโโโโโโโโโโ โโโโโโโโ โโโโโโโ โโโ โโโ โโโ โโโโโโ
โโโโโโโโโโโ โโโโโโโโ โโโโโ โโโ โโโ โโโ โโโโโโ
โโโโโโโโโโโโโโโโโโโ โโโ โโโ โโโ โโโโโโโโโโโโโ โโโ
โโโโโโโโ โโโโโโโโโโ โโโ โโโ โโโ โโโโโโโ โโโ โโโ
| 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 |
| Item | Description |
|---|---|
| Tux Droid | The penguin robot (with batteries) |
| USB Dongle | "Fishtank" dongle (VID: 0x03eb, PID: 0xFF07) |
| USB Cable | Connect dongle to your computer |
git clone https://github.com/Scayar/ScayTux
cd ScayTux
START_WINDOWS.batAutomatic: Installs portable Maven, builds project, launches Interactive Mode.
git clone https://github.com/Scayar/ScayTux
cd ScayTux
chmod +x START_LINUX.sh && ./START_LINUX.shAutomatic: Installs OpenJDK, Maven, espeak, libhidapi, configures udev rules.
git clone https://github.com/Scayar/ScayTux
cd ScayTux
mvn clean package -DskipTests
java -jar target/ScayTux.jar| 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 |
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- 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
java -jar target/ScayTux.jar# 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| 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 |
| 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
| 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.mp3 (add to assets/audio/) |
| 99 | Cha Cha Slide | cha-cha.mp3 (add to assets/audio/) |
| 100 | Tux Anthem | tux-anthem.mp3 (add to assets/audio/) |
Place MP3 files in assets/audio/ to enable music combos 91-100.
Control your Tux Droid from anywhere!
- Create Bot: Message @BotFather on Telegram โ
/newbotโ Follow prompts โ Copy the bot token. - Get Chat ID: Message @userinfobot โ
/startโ Copy your Chat ID. - Configure ScayTux:
- Copy
telegram_config.example.jsontotelegram_config.json - Edit
telegram_config.jsonand add yourbotTokenandchatId - Or run ScayTux โ
3. Telegram Controlโ1. Configure Botand enter them interactively
- Copy
- Start Bot: Run ScayTux โ
3. Telegram Controlโ2. Start Bot
| Command | Description |
|---|---|
/start |
Show main menu |
/connect |
Connect to Tux Droid |
/flap |
Flap wings |
/blink |
Blink eyes |
/dance |
Dance animation |
/say <text> |
Make Tux speak |
/combo1 to /combo100 |
Run any combo |
/stop |
Stop music |
- Windows: Uses PowerShell (native SAPI voice)
- Linux: Uses espeak (
sudo apt install espeak) - Voices: NORMAL, WHISPER, ANGRY, SAD, CUTE, ROBOT, ANNOUNCER
- Audio: MP3 playback via JLayer; place files in
assets/audio/
ScayTux/
โโโ START_WINDOWS.bat # Windows launcher
โโโ START_LINUX.sh # Linux launcher
โโโ pom.xml # Maven config
โโโ telegram_config.example.json # Template (copy to telegram_config.json)
โโโ telegram_config.json # Your config (gitignored - add token here)
โ
โโโ src/main/java/.../jtuxdriver/
โ โโโ cli/ # Main, InteractiveMode, Debug
โ โโโ core/ # HidTransport, UsbTransport
โ โโโ telegram/ # TelegramController, TelegramManager
โ โโโ TuxDroid.java # Tux control API
โ โโโ TuxCombos.java # 100 combo implementations
โ โโโ Command.java # USB packet factory
โ โโโ AudioPlayer.java # MP3 player
โ โโโ TTS.java # Text-to-Speech
โ โโโ USBDefines.java # USB constants
โ
โโโ assets/audio/ # MP3 files (billie.mp3, chicken.mp3, etc.)
โโโ docs/ # COMMAND_REFERENCE.md, LICENSE
โโโ website/ # Tuxdroid.com (Next.js)
โโโ src/app/ # Pages
โโโ src/components/ # UI components
โโโ public/images/ # Logo, assets
# Build JAR
mvn clean package -DskipTests
# Run
java -jar target/ScayTux.jar
# Run with options
java -jar target/ScayTux.jar --combo 14 --say "Hello"| Library | Purpose |
|---|---|
| hid4java | USB HID |
| Picocli | CLI parsing |
| JLayer | MP3 |
| TelegramBots | Telegram API |
| Gson | JSON config |
| Issue | Solution |
|---|---|
| "Java is not installed" | Download from Adoptium |
| Maven download/rename fails | Delete tools/ folder and retry, or install Maven manually |
| "Build failed" | Delete target/ and retry |
| "Device not found" | Try different USB port; replug dongle |
| No audio from Tux | Check Windows mixer for "TuxDroid-Audio" |
| Issue | Solution |
|---|---|
| USB "Permission denied" | Run launcher (auto udev) or add udev rules manually |
| "espeak not found" | sudo apt install espeak |
| "libhidapi not found" | sudo apt install libhidapi-hidraw0 libhidapi-dev |
| Issue | Solution |
|---|---|
| Tux not responding | Unplug โ wait 5s โ replug |
| Spin stutters | Use --val 100 or higher |
| Telegram bot not connecting | Check token, chat ID, internet, firewall |
More help: tuxdroid.com/docs/troubleshooting
- Fork the repository
- Create a branch (
git checkout -b feature/amazing) - Commit (
git commit -m 'Add amazing feature') - Push (
git push origin feature/amazing) - Open a Pull Request
| Name | Scayar |
| GitHub | github.com/Scayar |
| Website | Tuxdroid.com |
| Telegram | @im_scayar |
| Support | Buy Me a Coffee โ |
- โญ Star this repository
- โ Buy me a coffee
- ๐ข Share with other Tux Droid owners
- ๐ Report bugs via GitHub Issues
- Personal / Educational: Free under GNU Lesser General Public License v3.0 (LGPL-3.0)
- Commercial (companies, stores, websites, marketing): Commercial License required โ Contact for pricing
Made with โฅ by Scayar
"Tux Droid Never Dies!" ๐ง๐