Releases: KravitzLabDevices/Tumbly
v1.4.0
What's Changed
Bug Fixes
- Fixed servo jolt during position checks — the servo previously detached and re-attached on
every position check, causing a PWM initialization transient that snapped the servo on every
check cycle. The servo now stays attached for the lifetime of normal operation and only detaches
during manual calibration so the hopper can be freely positioned. - Increased position read settle delay from 10ms to 200ms for more stable analog readings after
the servo circuit powers on. - Calibration now keeps the servo circuit powered continuously from the open position screen
through the closed position save, eliminating a second power-on jolt mid-calibration.
New Features
- "Use saved pos" option (button A) on both calibration screens — skips physical repositioning
and keeps the previously saved value. Only shown when a saved value exists. - Startup animation is approximately 1 second faster.
Behavior Changes
- Sleep interval changed from 10 seconds to 30 seconds.
- Position check interval changed from 5 minutes to 30 minutes.
v1.3.0
What's Changed
Bug Fixes
- Fixed calibration jolt causing FATAL servo errors — powering the servo circuit at the moment of saving a position caused a small jolt, recording a wrong feedback value. On the closed side this pushed past the physical stop, making the saved position unreachable and triggering fatal errors. The servo circuit is now powered before calibration begins so the hopper is stable when the position is saved.
- Improved position read accuracy — analog feedback readings now use a 200ms settle delay and 5-sample averaging to ensure stable values after the circuit has been unpowered.
New Features
- 30-minute time increments for open and close times. Hold the button for fast scrolling.
- Fatal servo errors no longer freeze the device. The screen displays a jam warning and the device continues its schedule. Press B to resume after clearing the jam.
- Dark mode suppresses all screen and LED output after startup. Press button A at any time to wake the display for one cycle. Fatal error warnings always override dark mode.
v1.2.0
What's New
✨ Features
- Dark Mode — set
darkMode = truein your sketch to suppress all screen and LED output once a task starts. Press button A at any time to wake the display for one cycle. - Demo Mode — new
"Demo"task for hardware validation. Wakes every 5 s, alternates the door open/closed every 5 wakes, and runs a position check every 10 s so you can confirm servo movement before a real experiment. - Startup animation — animated splash screen on every boot.
🔧 Improvements
- Servo positioning starts from the last known PWM and only falls back to a full sweep if needed
- Open and closed PWM positions tracked independently for more accurate correction sweeps
shakeServoestimates starting position from sensor feedback instead of forcing a full close first- Hourly check interval corrected — position verification now triggers every 5 minutes (previously miscalculated as ~1 hour)
- Battery display upgraded from plain voltage text to a graphical bar
FatalServoErrordebounces the wake button on entry to prevent accidental dismissal
🐛 Bug Fixes
readFeedbackno longer re-attaches the servo during position checks, preventing unintended movement
Usage
String task = "TimedDoor"; // "TimedDoor" | "FreeFeeding" | "Demo"
bool darkMode = false; // true suppresses screen/LEDs during task
Tumbly tumbly(task, darkMode);v1.1.0
v1.1.0 — Task Selection, Config Persistence & SD Enforcement
New Features
Task Selection
Choose between TimedDoor and FreeFeeding directly on the device. FreeFeeding keeps the door open continuously and skips time-based settings.
Config File
Settings are saved to config.txt on the SD card and automatically reloaded on next boot. No more re-entering settings after every reset.
Wake Button
Press Button A during sleep to wake the display for 10 seconds before resuming the task.
SD Card Enforcement
The device will not start without an SD card inserted. If the card is removed mid-task, the display warns the user while the task continues running.
Interactive Time Setting
Open and close times are now set using a visual 24-hour timeline with a sliding cursor.
Bug Fixes
- Door close time was off by 1 hour
- Servo now detaches after every move, eliminating buzzing between button presses in the settings menu
- Wake button now works correctly on every sleep cycle
Data Logging
CSV now includes a Task column:
Datetime, Device_Number, Task, Battery_Voltage, Light Sensor, DoorOpen
1.0.1
First release!
This is the first release of the simple Tumbly TRF device