Your friendly morning assistant that helps you start your day right
DawnDuck is a USB HID automation tool that opens your morning routine apps and websites automatically. It types cute messages and gets your day started.
Thank you Nico for testing it on Pico! Demo Video Using Pico (dawnduckpico.py) WATCH IT HERE
FOR THE NON PICO ONE Watch it here
The original version that runs on your computer. Good for testing and development without hardware.
Features:
-
Cute good morning message with cat ASCII art
-
Wake time checker - tells you if youre early or late
-
Auto website opener - opens all your sites one by one
-
Internet detection - checks connection before opening sites
-
Cross-platform - Windows, macOS, Linux
-
Customizable - JSON config for websites and wake time
-
Terminal-style UI in Notepad
Rewritten for actual PicoDucky/Raspberry Pi Pico hardware using CircuitPython. Runs on the Pico itself and acts as a real USB keyboard.
What changed:
-
Uses USB HID instead of desktop libraries
-
Removed wake time checking - Pico has no RTC
-
Removed internet detection - Pico cant check host connection
-
Hardcoded config instead of JSON file
-
Plug and play - no software needed on host computer
What still works:
-
Opens notepad/text editor
-
Types the same cute messages
-
Opens all your websites
-
Switches between windows
-
Cross-platform support
Prerequisites:
-
Python 3.8+ (tested on 3.12.10)
-
Admin/sudo permissions might be needed
Installation:
git clone https://github.com/Rexaintreal/dawnduck.git
cd dawnduck
pip install -r requirements.txt
Configuration:
Edit config.json:
{
"wake_up_time": "09:00",
"websites": [
"https://mail.google.com",
"https://github.com",
"https://leetcode.com"
]
}
Usage:
python dawnduck.py
Dont touch keyboard/mouse while its running. Takes about 30-60 seconds.
Prerequisites:
-
PicoDucky or Raspberry Pi Pico board
-
CircuitPython installed
-
adafruit_hid library
Installation:
IM NOT SURE ABOUT THIS BASED ON MY RESEARCH FEEL FREE TO CHANGE IT OR CONTACT ME
- Install CircuitPython on your Pico:
-
Download from circuitpython.org
-
Hold BOOTSEL while plugging in
-
Drag the .uf2 file to RPI-RP2 drive
-
Pico restarts as CIRCUITPY
- Install adafruit_hid:
-
Download CircuitPython Library Bundle
-
Copy
adafruit_hidfolder tolibfolder on CIRCUITPY -
Should look like:
CIRCUITPY/lib/adafruit_hid/
- Upload code:
-
Copy
dawnduckpico.pyto CIRCUITPY root -
Pico auto-restarts
Configuration:
Edit top of dawnduckpico.py:
OS = "windows" # Change to "mac" or "linux" it might work for them too
WEBSITES = [
"mail.google.com",
"github.com",
# add more here or remove it
]
TYPING_DELAY = 0.03 # adjust if too fast or too slowUsage: Please make sure only the browser is opened while plugging it in!
-
Have a browser already open
-
Plug in PicoDucky
-
Dont touch anything for 60 seconds
-
Watch it work
Desktop Version:
- Opens notepad using OS libraries
- Types good morning message
- Checks your wake time against current time
- Tests internet connection
- Opens each website using webbrowser module
- Closes notepad
PicoDucky Version:
- Waits 3 seconds for USB recognition
- Opens notepad by sending Win+R then typing "notepad"
- Types good morning message
- Switches to browser with Alt+Tab (Browser needs to be opened before plugging in)
- Opens new tabs with Ctrl+T and types URLs
- Switches back to notepad after each site
- Closes notepad
dawnduck/
├── dawnduck.py # v1.0 Desktop version
├── dawnduckpico.py # v2.0 PicoDucky version
├── config.json # v1.0 configuration
├── requirements.txt # v1.0 dependencies
└── README.md # This file
Desktop Version:
- Script doesnt type: Dont touch keyboard during execution
- Alt+Tab fails: Close other apps, increase delays
- Websites dont open: Check internet and URLs in config.json
- Permission errors: Run as admin/sudo
PicoDucky Version:
- Pico not recognized: Check CircuitPython is installed correctly
- Text in wrong place: Increase initial wait time to 5 seconds
- Websites dont open: Make sure browser is already running (yeah we need to open the browser manually)
- Wrong shortcuts: Change OS variable to match your system
- adafruit_hid not found: Make sure lib/adafruit_hid folder exists (im not sure as ive not tested yet on a pico)
Contact me if youre stuck.
v1.0 Dependencies:
- keyboard (0.13.5) - Keyboard simulation
- pyautogui (0.9.54) - GUI automation
- distro (1.9.0) - Linux detection
v2.0 Dependencies:
- usb_hid - USB HID protocol (built-in)
- adafruit_hid - Keyboard control for CircuitPython
Core:
- Open source - full code available
- Demo video - linked above
- Detailed README - youre reading it
- Non-malicious - just helpful automation
Extras:
- Works offline - all code runs locally
- Cross-platform - Windows, Mac, Linux
- Multiple HID interfaces - keyboard automation
- Contained in board - v2.0 runs entirely on Pico (NOT TESTED YET)
Pull requests welcome. Add features, fix bugs, improve docs, or share your configs.
MIT LICENSE
NICO For testing it! his portfolio REFERENCE DOCS ADAFRUIT Built with help from tutorials and docs across the internet. Thanks to Hack Club for PicoDucky YSWS.
Check out my other stuff:
- Libro Voice - PDF to Audio Converter
- Snippet Vision - YouTube Video Summarizer
- Weather App - Python Weather Forecast App
- Python Screenrecorder - Python Screen Recorder
- Typing Speed Tester - Python Typing Speed Tester
- Movie Recommender - Python Movie Recommender
- Password Generator - Python Password Generator
- Object Tales - Python Image to Story Generator
- Finance Manager - Flask WebApp to Monitor Savings
- Codegram - Social Media for Coders
- Simple Flask Notes - Flask Notes App
- Key5 - Python Keylogger
- Codegram2024 - Modern Codegram Update
- Cupid - Dating Web App for Teenagers
- Gym Vogue - Ecommerce for Gym Freaks
- Confessions - Anonymous Confession Platform
- Syna - Social Music App with Spotify
- Apollo - Minimal Music Player with Dancing Cat
- Eros - Face Symmetry Analyzer
- Notez - Clean Android Notes App
- Lynx - OpenCV Image Manipulation WebApp
Built by Saurabh Tiwari
- Email: saurabhtiwari7986@gmail.com
- Twitter: @Saurabhcodes01
- Instagram: @saurabhcodesawfully