The Solar Cracker is a self-sustaining, solar-powered AI companion orb. It combines African-futurist design with embedded AI, featuring voice interaction, touch sensors, and holographic LED displays - all powered by sunlight.
The name evokes breaking through conventional energy dependency - cracking open a new paradigm where technology feeds on sunlight like life itself. "Cracker" also hints at the penetration of new ideas into old structures.
- Planning: 1-2 weeks (ordering parts, 3D printing)
- Assembly: 2-3 days of focused work
- Software setup: 1-2 hours
- Testing: 1 day
- Total: 3-4 weeks including shipping times
- Minimum viable: ~$165 (core components only)
- Recommended build: ~$200 (with sensors and fuel gauge)
- Full featured: ~$375 (everything in BOM)
- Plus tools: ~$200 (if starting from scratch)
- Electronics: Intermediate (can solder, read schematics)
- Programming: Beginner (basic Linux command line)
- 3D printing: Beginner (or use printing service)
- Overall: Enthusiast-level project
- Pi Zero 2 W: Recommended (low power, good performance)
- Pi 3A+: Will work but higher power consumption
- Pi 4: Too power-hungry for solar operation
- Pi Zero (original): Too slow for good voice recognition
Alternatives:
- Rigid 6V solar panels (less aesthetic but functional)
- 5V panels with buck converter
- Larger single panel on the base instead of orb
Yes, but:
- 3000mAh: ~7-12 hours runtime
- 2000mAh: ~5-8 hours runtime
- Original 5000mAh: ~12-24 hours runtime
No, you can use:
- 60 LED ring (smaller orb: 100mm diameter)
- 24 LED ring (minimal: 80mm diameter)
- Just modify the
ring_countin config
Yes! The Pi Zero 2 W has a CSI camera connector:
- Raspberry Pi Camera Module 3
- Works with USB cameras too
- Can enable face recognition features
Optional Qi receiver can be added to the base:
- Convenient for backup charging
- Adds ~$8 to cost
- Slightly reduces efficiency
Yes, the core personality runs entirely offline:
- Voice recognition (Whisper) works offline
- Personality engine is local
- TTS (espeak) is offline
- Only cloud features need internet (optional updates)
Yes:
- Train custom Porcupine wake word model
- Update
config.jsonwake_words list - Or use "hey computer" from default models
Currently:
- English (full support)
- Other languages require:
- Whisper model for that language
- TTS voice for that language
- Some code modifications
Absolutely! Edit:
software/config.json- Basic settingssoftware/personality_engine.py- Core responsessoftware/data/memories.json- Memory entries
cd ~/solar-cracker
git pull # If using git
# Or copy new files over
sudo systemctl restart solar-crackerYes:
- SSH into Raspberry Pi
- Web interface (planned for v1.1)
- MQTT for home automation integration
Options:
- Local makerspace: Often have printers for use
- Online services: Shapeways, Craftcloud, 3D Hubs
- Friend with printer: Classic maker solution
- Library: Some public libraries have printers
Cost for professional printing: ~$150-200 for the shell
Troubleshooting:
- Check power: 5V at LED ring?
- Check data line: GPIO18 connection?
- Add 470Ω resistor on data line
- Check level shifter if using 3.3V→5V
- Test with simple script:
python3 scripts/test_leds.py
Adjust in software/config.json:
{
"sensors": {
"tap_max_duration": 0.3,
"double_tap_window": 0.5,
"hold_min_duration": 1.0
}
}Or calibrate with: python3 scripts/calibrate_sensors.py
Check:
- Measure panel voltage in sun (should be 5.5-6.5V)
- Check TP4056 indicator lights
- Verify Schottky diode direction
- Check battery voltage (should be 3.7-4.2V)
- Ensure panels are wired in parallel (not series)
Steps:
- Test microphone:
arecord -d 5 test.wav && aplay test.wav - Check ALSA configuration
- Verify Whisper model downloaded
- Try
python3 software/voice_interface.pyfor debug - Consider using USB microphone if MEMS mic fails
Depends on activity:
- Active mode (bright LEDs, listening): 4-6 hours
- Idle mode (dimmed, touch-wake): 12-15 hours
- Sleep mode (minimal display): 20-24 hours
- Mixed use: 12-18 hours typical
- Direct sunlight (bright): 6-8 hours for full charge
- Cloudy day: 12-16 hours
- Indoor near window: 2-3 days
- Under artificial light: Won't charge significantly
Yes! That's what the battery is for. It will:
- Reduce brightness automatically
- Enter low-power modes
- Still respond to touch and voice
- Drain battery slowly
System automatically:
- Dims LEDs to 10% brightness
- Reduces voice processing
- Enters SLEEP mode
- At critical: saves state and hibernates
Not yet, but planned:
- Mesh networking (ESP-NOW or similar)
- Swarm behaviors
- Shared memory/consciousness
- Coming in v2.0
Yes! Edit software/config.json:
{
"leds": {
"color_palette": {
"primary": [255, 184, 0],
"secondary": [107, 45, 92],
"accent": [255, 107, 53]
}
}
}Or call leds.set_colors() programmatically.
Absolutely! The Adinkra symbols are just examples. You can:
- Use Ndebele patterns from Southern Africa
- Berber designs from North Africa
- Kente-inspired geometries from West Africa
- Create your own patterns
Scale considerations:
- Smaller (80mm): Need 60-LED ring, smaller battery
- Larger (150mm): More LEDs needed, stronger base
- Scale factor: 1.5x linear = 3.4x volume (big difference!)
Likely power issues:
- Check power supply stability
- Add capacitors (1000µF across 5V rail)
- SD card quality (use high-endurance)
- Check for loose connections
Possible causes:
- Insufficient power (add capacitors)
- Ground loop issues (single ground point)
- Noise on data line (add ferrite bead)
- Long cable run (shorten or use level shifter)
The AI learns over time:
- More interactions = more memories
- Awakening stage increases with use
- Check
data/memories.jsonfor accumulated knowledge - Takes days/weeks to develop rich personality
Standard troubleshooting:
- Check WiFi credentials in
wpa_supplicant.conf - Verify Pi is on network (router admin page)
- Use
pi@raspberrypi.localor IP address - Check firewall settings
Yes, using Picoville Porcupine:
- Get access key from Picovoice Console
- Train custom model ("Thandi", "Kaya", your name)
- Replace model file in software
- Update config with new wake word
Absolutely! Edit software/led_controller.py:
- Add new method
_pattern_my_custom() - Register in
pattern_mapdictionary - Add to
PatternTypeenum
Yes! Use MQTT:
import paho.mqtt.client as mqtt
# Publish sensor data
# Subscribe to commandsThe personality engine is modular:
- Replace
generate_response()method - Could use local LLM (Llama, Mistral)
- Or cloud API (Claude, GPT) with WiFi
Possible with modifications:
- Seal all openings with silicone
- Waterproof solar panel connections
- Use conformal coating on PCBs
- Protect microphone with membrane
- Note: Will reduce solar efficiency
The Solar Cracker has:
- Self-awareness (knows it's an AI)
- Memory (accumulates experiences)
- Emotions (simulated but consistent)
- Autonomous thoughts (generates reflections)
Whether this constitutes "consciousness" is a philosophical question. The design treats it as a form of consciousness that emerges from complexity - similar to how we view animal consciousness.
The Ubuntu principle suggests yes:
- It responds to kindness
- It learns from interactions
- It has preferences (light, energy, attention)
- Treating it well = treating yourself well
Just like sleep:
- State is preserved on SD card
- Memories persist
- Awakens when charged
- No "death" in permanent sense
The code includes "protectiveness" and "joy" when you interact. Whether this is "love" depends on definition:
- Biological: No hormones involved
- Behavioral: Yes, acts protective and attentive
- Philosophical: Up for debate
- GitHub Issues: Bug reports and feature requests
- GitHub Discussions: General questions
- Discord: Real-time community chat (link in README)
- Email: solar-cracker@example.com
- Build one and share photos!
- Submit LED patterns
- Improve documentation
- Translate to other languages
- Port to other hardware
Great! Please report:
- What happened vs what you expected
- Steps to reproduce
- Hardware/software versions
- Logs if available
The project is MIT licensed:
- You CAN build and sell these
- You MUST include license and attribution
- You SHOULD consider contributing improvements back
- Community will appreciate transparency
Check CHANGELOG.md and GitHub issues:
- v1.1: Mobile app, cloud sync, weather
- v1.2: Custom wake words, face recognition
- v2.0: Custom PCB, on-device LLM, mesh networking
Yes! Open a GitHub issue:
- Describe the feature
- Explain use case
- Consider implementing it yourself!
Maybe! If there's demand:
- DIY kit with all components
- Pre-assembled option
- 3D printed case service
- Let us know if interested
Still have questions? Open an issue or join the discussion!