Introduction: ⏲️ ES Timer a Special 🍅 Pomodoro Timer (Digispark ATtiny85)
ES Timer powered by Digispark ATtiny85 is based on the 🍅 Pomodoro technique, which can solve the problem of skipping the break phase between work phases.
When you connect it to your system port (whether Windows, Linux or even macOS) it starts to countdown when the counting is over it locks the system and this time starts counting the break phase the user cannot unlock your system at this time unless the time is overing or pull the timer out of the port. This timer, in addition to notifying the user of the LED by turning it on a few seconds before the start of the break phase, does not start the next Pomodoro without the user's approval. to start the new Pomodoro, it is enough to keystroke twice on the "Capslock'' with a delay of 1 second.
Supplies
Step 1: Why ES Timer
ES Timer has advantages and features over software or websites that you can use for the Pomodoro technique that distinguish it from other Pomodoro timers, which include:
1. Forcing to follow the breaks between tasks: With ES Timer, you no longer have an excuse not to observe breaks between your tasks, because unlike existing software, this timer does not only give a warning to stop working, but also forces you to fully observe the technique by locking the system.
2. Independent of the operating system of system and without the need for the Internet: Unlike existing software, ES Timer can be used on popular desktop operating systems such as Windows, Linux and macOS without any prerequisites.
3. Free and open source: Some software available for this technique requires a subscription fee or at least has in-app ads, with ES Timer being an exception, and use it for free for years at a one-time cost to build it.
4. Small size for easy transport without the need for batteries: The size of ES Timer is half the size of the palm of your hand, so you can put it in your pocket and you can use it everywhere without worry, and because it uses the USB port to set up, you will not need a battery.
Step 2: Pre Assemble
To cut the PCB prototype board, it is enough to push the cutter forward to the required holes (10x10) and pull the cutter up and down in a straight line several times, then separate it with both hands.
And to cut the pin header female, it is necessary to go forward to the required number of pins and empty the front pin and pull it from top to bottom several times from the middle with a cutter to separate it.
Step 3: Assemble
The first image shows the schematic ES Timer, which shows you the general work that you can first implement in a breadboard and then start making the timer. The following steps are in order with the images above.
1. Cut your PCB into square shape (10x10 holes) with cutter.
2. Break female pin header into two pins 2 and 4 and put them on pcb like top photo then soldering them legs.
3. The same work do on male pin header with the difference that, you have to break it into 3 and 6 pins, look to related picture.
4. In this step putting Digispark ATtiny85 on male pin headers and soldering their top legs related to 5V, GND, P0, P1, P2.
5. According to the picture of the fifth step, do wiring and solder on the back of pcb board.
6. In the end, put OLED and LED on pin headers, in this moment your ES Timer is ready for next step.
Step 4: Initialization
To program the main part of ES Timer, ie Digispark ATtiny85, you need to follow the steps below after installing the Arduino IDE (the pictures of each step are placed in order):
1. In the Arduino IDE go to the "File" menu and select "Preferences"
2. In the box labeled "Additional Boards Manager URLs" enter and click OK https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json
3. Go to the "Tools" menu and then the "Board" submenu - select "Boards Manager" and then type "Digistump AVR Boards" in filter box and click the "Install" button.
4. You'll see the download progress on the bottom bar of the "Boards Manager" window, when complete it will show "Installed" next to that item on the list
5. For Windows you must install the Digispark driver before you can program the board, download it here, open it and run InstallDrivers.exe (If you already have them installed, this installer will update them and install any that are missing)
6. With the install complete, close the "Boards Manager" window and select the "Digispark" from the Tools → Board → Digistump AVR Boards menu
7. Then select "16.5 MHz - For V-USB" from the Tools → Clock menu
8. After going through these steps, it is time to update the bootloader digispark attiny85, for which you only need to first click on the "Born Bootloader" option. After the message appears, connect the it to the usb port to start the update process.
Step 5: Upload Code to ES Timer
First of all, you need to download a clone of all ES Timer codes from my github repository. To do this, enter this link and click the code button and click on Download zip then after complete download extract it to a folder.
After opening the file "ESTimer.ino" in Arduino IDE In order to be able to upload the code on the device, you must add the zip file in the "lib" folder to IDE To do this, follow the path:
Arduino IDE Toolbar → Sketch → Include Library → Add .ZIP Library...
To enable the display you need to change the INCLUDE_OLED configuration to true and also specify the operating system type in the SYSTEM_OS configuration (see this link for other configuration documents)
Now to upload the code, click on the arrow button or use shortcut Ctrl + U. Wait for the code to be compiled. After you see the: "> Please plug in the device (will time out in 60 seconds) ..." message. Connect the device to the computer. After a few seconds, the code will be uploaded.
Congratulations 🎉, your ES Timer is ready to use.
Note 📝: After clicking the upload option, you will see a few warning related to core code like the one below. Do not worry about this issue: C:\Users\USER\Documents\Arduino\libraries\ESTimer\ESTimerC.c: In function 'usbFunctionSetup': ....