Clock, alarm & calendar

Three apps use the watch slots of the carousel: Clock, Alarm and Calendar. You open the Alarm from the Clock.

Clock

The Clock has two watch faces, digital and analog. A small bell icon in the header appears when an alarm is on.

To open it: press Left or Right until the badge shows the Clock screen.

KeyAction
Up / DownChanges between the digital face and the analog face
Execute / FireOpens the alarm editor (slot 0)
Left / RightGoes to the next or the previous carousel screen

Setting the time

The badge has no backup battery for its real-time clock. The clock therefore returns to None at every start, and it shows “Clock not set” until you set it. You can set it in two ways:

  • With the MeshCore app over Bluetooth. The phone sends its time. This is the easy method.
  • With a mesh time advert. Stay near a synchronized LoRa repeater, and the badge takes the time over the air. The badge accepts a time over the air only from a trusted source. That is a repeater or companion advert with a verified signature, or a channel that you hold the key for. Other badges near you cannot set your clock.

Set the timezone once, under Main → Settings → Timezone. The badge keeps that setting through a restart. The default is +2, which is CEST for BornHack.

Alarm

Press Execute / Fire on the Clock screen to open the alarm editor.

KeyAction
Up / DownMoves between the fields: Hour, Minute, Days, Tone, Enabled
Execute / FireEnters or leaves the edit mode of a field
CancelReturns to the watch face

The Days field steps through Daily, Weekdays, Weekends, None and Custom. The Tone field has ten built-in tunes: Beep, Imperial March, Rickroll, Pink Panther, Sandstorm, Startup, Trololo, Daisy Bell, Nokia and Samsung.

At the alarm time, the buzzer plays the selected tone up to five times, with 8 seconds between them. Any button press stops the alarm. If you do nothing, the alarm stops after about 32 seconds.

Calendar

The Calendar is a month grid with a timeline for each day. It shows the iCalendar events you imported.

To open it: press Left or Right to the Calendar screen, to the right of the Clock. The grid appears without a cursor. Press Execute / Fire to enter the active mode.

Active mode:

KeyAction
Up / DownMoves the cursor 7 days, one week
Left / RightMoves the cursor 1 day
Execute / FireOpens the timeline of the day
CancelReturns to the passive view

Day detail (timeline):

KeyAction
Up / DownMoves 1 hour
Left / RightMoves a long event title horizontally
Execute / FireShows the full day list, with all events
CancelReturns to the month view

Loading events

The badge imports events at the start, from a file with the name ALARMS.ICS in the root of the USB drive:

  1. Connect the USB-C cable to your computer.
  2. Open the drive with the name CYBR<4 hex>.
  3. Copy your .ics file to the root, with the name ALARMS.ICS.
  4. Eject the drive.
  5. Restart the badge. Slide the ON/OFF switch at the top left of the front off, then back on.

You can use the official BornHack program .ics from https://bornhack.dk/.

Import limits & quirks

The parser is minimal on purpose. If events are absent or wrong, one of these limits is usually the cause:

  • File size: 16 KiB maximum. The parser cuts the rest of the file, in the middle of an event, without a message. A full conference program is larger than this. Cut it first with the firmware’s scripts/strip_ics.py. That script removes DESCRIPTION, UID and similar fields, and it accepts --from, --to and --max to select a range.
  • 31 events maximum. The import stops at the limit without a message. Later events in the file never appear.
  • No recurrence. The parser ignores RRULE. A repeated event imports as its first occurrence only. Export an expanded ICS file with one entry for each occurrence. The BornHack program is already expanded.
  • No all-day events. The parser drops a DTSTART with a date and no time, without a message. Give the event a real start time.
  • ASCII only. The parser removes non-ASCII characters from titles. It does not transliterate them, so Æ, accented letters and emoji disappear.
  • Timezones. The parser shifts only timestamps with the Z suffix, which are UTC, to local time. It always uses the built-in default of UTC+2, which is correct for BornHack, because the import runs before the badge applies your saved timezone. The parser takes floating times and TZID= times without a change. Export in UTC if you are not sure.
  • An event that fired disappears from the Calendar until the next start. Imported events are single-shot alarms. After one fires, the grid and the day view no longer show it. A restart imports everything again.
  • Changes take effect at the start only. Replace ALARMS.ICS, eject the drive correctly, then power cycle the badge.