You are browsing as a guest. Sign up (or log in) to start making projects!

Hidden Timer

Hardware
  • 11 Devlogs
  • 8 Total hours
Open comments for this post

40m logged

Hidden Timer Devlog 11

Figured out key problem

I realized that when increasing size of the bottom plate I didn’t account that there were two walls which was kinda dumb

Mate connectors are easy

When moving the PCB around I thought it was really annoying to like move it around and try to get it aligned, but turns out I can just use mate connectors (which I didn’t touch because I didn’t know what they were) but I just clicked around and it worked really easily

SSD1306 Mounting

Instead of my old approach, just using screws, I decided on making a hole with pegs that would fit into the holes on the SSD1306 PCB, which is what I will be working on next time.

0
0
12
Open comments for this post

54m logged

Hidden Timer Devlog 10

Finally working on case!!

I started designing the PCB case but I did run into some problems.

  1. For some reason, the rotary encoder hole seemed like it was bigger than it really was, since if I tried aligning from the wall and tried aligning it from the switch center it would be in different positions. I don’t really know why this is happening
  2. I cannot find the SSD1306 schematics for I2C. I keep finding SPI but not I2C and I’m honestly not sure if they line up or not which is why I’m not going to use SPI.
0
0
16
Open comments for this post

47m logged

Hidden Timer Devlog 9

PCB AGAIN 😭 :sob-hole: :sob-ios: :sob-neha:

I started designing the case, and then I wondered what wall dimensions would be so I would look at the mounting holes, then I realized that my mounting holes were probably too close to the edge, so I tried eyeballing it around and I realized that would not work, then I changed the grid so the measurements would be more accurate, then I found that my XIAO was too close to the edge for the holes. After all of that, I made a PCB I was happy with, where the holes weren’t too close to the edge, and the XIAO was far away from the wall. Then, when I looked on the guide for the sandwich casing, I realized that the PCB didn’t even need mounting holes. To reduce cost, I wanted to keep the board as small as possible so removed the holes and made the PCB smaller. At least the wiring got cleaner by moving the XIAO

0
0
15
Open comments for this post

26m logged

Hidden Timer Devlog 8

Editing the PCB again

After seeing the SSD1306 STEP on the onshape, I realized the space for the PCB is too little, so I just deleted all of the wires and rewired it.

Casing

I did some research outside the timelapse and I realized that there are strategies for keyboard casing, so I just chose sandwich casing because that’s what the hackpad thing says.

0
0
1
Open comments for this post

46m 1s logged

Hidden Timer Devlog 7

Editing the PCB

When adding the STEP file, I noticed the mounting holes are really tiny and I assumed they were cracked, so I had to keep moving it around. I also moved the XIAO so it wouldn’t run into the holes.

Onshape Hell

I haven’t used Onshape in a looong while so I had to figure out some stuff, and then I imported my PCB which took me a while to figure out how to import the STEP file. Then, after everything was done, I realized that I started my case directly on the bottom, making no room with the XIAO.

0
0
16
Open comments for this post

34m 1s logged

Hidden Timer Devlog 6

PCB

I made the PCB for my project, deciding on the XIAO ESP32 C5 and the EC12C Alp Rotary encoder. A bunch of my problems just came from trying to figuring out the wiring for the rotary encoder since there was no documentation or anything (tbf all rotary encoders are the same so idek)

0
0
8
Open comments for this post

1h 42m logged

Hidden Timer Devlog 5

Making the idle animation show

I didn’t want to have everything in one file because that would get really clunky but I did a bunch of testing stuff out like using the ptr array, importing from cpp, importing from ino and then making a function, but none of it worked, so I will just settle with having like a million lines of code imported. I might only do animations that can be recreated using code plus one animation so that I can still have animations but not have all that

Switching to rectangle generation

I basically just kept track of how many rectangles are made and I just calculated some stuff and got the bricks working.

0
0
6
Open comments for this post

28m 1s logged

Hidden Timer Devlog 4

Brainstorming idle animations

I just thought of some idle animations which all had the theme of something like “small things build up to something great”, “don’t give up now” and “you got this”. I decided to do this cause you’d probably think it broke if it was just a black screen

Github and drawing the thing

I decided to add the code into the github and drew the basic brick animation and put that in the git repo too

1
0
44
Open comments for this post

33m logged

Hidden Timer Devlog 3

Timer increments

I fixed a bunch of the problems and simplified my code a bunch by just assuming hours is going to be one hour and forced it to be that way.

Timer counting down

I just turned the set hours and minutes into milliseconds and constantly checked if the current time subtracted start time and compare that to the milliseconds calculated at the start

0
0
8
Open comments for this post

55m 1s logged

Hidden Timer Devlog 2

Rotary Encoder

Turns out that I actually do know how a rotary encoder works, it was just that my pin numbers were wrong 🙏 so I fixed that and quickly moved on to making the hours increments and stuff

Timer increases

I first made the time in the middle centered by using getTextBounds where all it basically does is take in text and puts the width and height at the pointer I gave it.
One of the problems with the display is that it doesn’t turn 5 into 05 cause it’s a timer and that the minutes are backwards (error in the text combination). Another thing is that when the hours wrap around it’s a bit glitchy.

0
0
9
Open comments for this post

19m 34s logged

Hidden Timer

Project info

This project is going to be very simple; just a timer where you can’t see the time as it’s going. Usually when I study or give myself focus periods, I kind of just constantly look at the timer and it wastes a bunch of time so I am making this.

What I did

I basically just set up the project, making the initializers for the pins, wired up everything, that kind of stuff

Struggles

This is my first time coming back to c++/arduino code in like a month so a bunch of missing semicolons, malformed if statements, things like that
Also, I haven’t really figured out how a rotary encoder works and I did some testing but honestly I had no clue where to go so I stopped and will do research and come back

0
0
95

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…