Skip to content

qewer33/qron0b

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

banner

qron0b is a minimalist and low-power digital binary wristwatch. It uses an Attiny24A/44A/84A as it's MCU, uses the DS1302 as it's RTC and displays the time in BCD (binary coded decimal) format with it's integrated 4x4 LED matrix driven by an 74HC595 shift register. It's powered by a single CR2032 coin cell battery. It's designed to use minimal power and can run without a battery change for months.

Warning

This project is NOT perfect by any means, it's my first ever low-power board design and thus contains many design flaws (although mostly small). It does work but build it at your own risk and definitely don't expect everything to go smoothly.

Repository Layout

  • pcb/: The KiCAD project for the qron0b PCB.
  • cad/: The FreeCAD files (and .stl + .step for 3D printing) for the watch case.
  • firmware/: The source code for the qron0b firmware, written in bare metal AVR C.
  • assets/ Screenshots and render files used in the README.

The Product

photo

Features

qron0b's default firmware is very minimalistic and thus only contains two basic features: reading time and setting time. The watch is in the sleep state by default with the CPU in power-down mode and the display off. When the onboard button is clicked, the CPU is wakes up from sleep and displays the current time in the LED matrix for 10 seconds. The time can be set while the watch is awake by long pressing the onboard button. Both features are explained in detail under the next two headings.

Reading Time

The time is displayed in BCD (binary coded decimal) format on qron0b's 4x4 LED matrix in columns (HH:MM), with the LSB (least-significant bit) being the bottom-most LED. Meaning for each column; the bottom-most LED represents 1, the one above represents 2, two above represents 4 and the top-most LED represents 8. All LEDs being off in a column represents 0. The first column is the tens digit of hour, the second column is the ones digit of hour, third column is the tens digit of minute and the fourth column is the ones digit of minute.

Below is a visual explanation and a few examples to help explain it better:

reading time

Setting Time

The time can be set while the watch is awake by long pressing the onboard button. The whole LED matrix will flash for ~0.5 seconds to indicate entering edit mode. After the watch enters edit mode, the first column (tens digit of hour) will start flashing (it may not flash if it's 0). Press the button once to increment the current column/digits value (it will wrap automatically, eg. between 0-2 for tens digit of hour or 0-5 for the tens digit of minute). After setting the current digit to the desired value, long press the button to move on to the next digit (the next column will start flashing). Long pressing on the last digit/column (the ones column of minute) will save the newly set time to the RTC and exit edit mode.

Hardware

PCB Design

The qron0b PCB is designed in the free and open source EDA software, KiCAD. You can find the PCB design source files under pcb/.

schematic

kicad screenshot

pcb 3d render

Mechanical Design

The mechanical parts of qron0b (the watch casing) is designed in the free and open source CAD software, FreeCAD. The watch case is designed in 2 parts: the bottom base and the top "glass". They connect together via a simple clip system. The bottom base casing accepts 22mm GT2/GT3 style watch straps.

You can find the CAD source and 3D print files under cad/.

freecad screenshot

technical drawing

Firmware

The qron0b firmware is written in bare-metal AVR C. It's written to be as minimal as possible and is only 1916 bytes, meaning it can even run on the ATtiny24A (in fact, it's designed for the 24A!).

For more information on the firmware, see the README.md file inside firmware/.

About

a sleek and low-power binary wristwatch

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published