Skip to content

Releases: KravitzLabDevices/Tumbly

v1.4.0

03 Jun 14:43

Choose a tag to compare

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

02 Jun 15:25
761b78e

Choose a tag to compare

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

24 May 16:19
d9e54a3

Choose a tag to compare

What's New

✨ Features

  • Dark Mode — set darkMode = true in 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
  • shakeServo estimates 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
  • FatalServoError debounces the wake button on entry to prevent accidental dismissal

🐛 Bug Fixes

  • readFeedback no 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

18 Apr 15:56
ea7d042

Choose a tag to compare

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

02 Mar 18:31
0e5f29f

Choose a tag to compare

Fix Arduino Low Power dependency name for Library Manager compatibility

First release!

18 Feb 17:07

Choose a tag to compare

This is the first release of the simple Tumbly TRF device