Settings

Theme

./watch

dotslashwatch.com

403 points by shrx 3 months ago · 122 comments

Reader

blahgeek 3 months ago

> taking inspiration from command-line interfaces

IMO the take away from command-line interfaces is compact, precise and minimal design. In a transitional shell prompt like #~$, each character has its meaning. Merely copying these symbols to a watch face is the exact opposite spirit of command like interfaces.

  • goncalomb 3 months ago

    Cool project, but I also noticed the weird choice of #:~$ as a prompt, it uses almost half the width of the clock screen. And isn't # normally used to denote root shells? I don't think I ever saw it together with $.

    My favorite prompt is >: as a callback to the Swan computer in the TV show Lost (not sure if it's also used in early Apple computers).

    • 0xDEAFBEAD 3 months ago

      A prompt including > can be dangerous since that character also does shell output redirection. A sloppy copy/paste could, in theory, overwrite an important file.

      • swiftcoder 3 months ago

        The usually trick here is to use a unicode character like ⟫ (U+27EB) instead, which looks basically the same, but isn't interpreted as a redirection by the shell

    • miohtama 3 months ago

      Good news it's an open source project so you can customise your prompt (:

    • dhosek 3 months ago

      If I remember right, > was the prompt for Integer basic, ] for Applesoft Basic and * for the monitor.

  • MrGilbert 3 months ago

    On the other hand: It‘s art. It‘s ok for art to get inspired from the command line, yet put aesthetics over replication.

  • pjmlp 3 months ago

    Using computers since 1986, not sure where I can find such precise and minimal design, when it is impossible to use them without a manual, there is no discovery, and most commands have an endless list of options.

    • nine_k 3 months ago

      The manual is there usually: type `man`, or `help`, or run the command with `--help`.

      Most GUIs also have "endless" pages of options. Grouping them helps quite a bit.

      Having many options is usually considered the trait of the rich and powerful. Studying them for the tools you use often may actually save time, compared to googling around the bush every time.

      • pjmlp 3 months ago

        Only on specific operating systems, not on a CLI as user interface concept across all operating systems.

        GUIs have discovery by definition, users have visual references where to click and possibly see some side effect taking place.

        Apparently the UNIX way that gets thrown around the Internet doesn't agree with such endless options.

  • barbazoo 3 months ago

    Perhaps one could configure it or fork and modify https://github.com/zsteig/.watch

  • OJFord 3 months ago

    `date +whatever` right arg for the output would also make more sense than `./t` if there's room

EarthIsHome 3 months ago

If you like quartz watches that expose their circuitry, you'll definitely enjoy some of Accutron's watches: https://www.hodinkee.com/articles/introducing-accutron-314

While usually not on display, the quartz movements of Grand Seikos are beautifully finished:

* https://i.imgur.com/sJXfmg1.jpeg

* https://i.imgur.com/BucSW15.jpeg

* https://i.imgur.com/xVd04BM.jpeg

* https://i.imgur.com/wuRSif1.jpeg

jsheard 3 months ago

Interesting idea, but the generic green PCB is a bit of a missed opportunity. Some manufacturers now offer transparent solder masks which emphasize the copper traces and can look really cool with a clean PCB layout.

e.g. https://hackaday.io/project/194683-plasma-toroid-sky-guided-...

jgrahamc 3 months ago

If the idea is this: "Many quartz watches do their best to hide away any electronic components from view. The design concept for this watch was to embrace those digital components instead [...]" then I'd argue this watch that I built fulfils the requirement better: https://blog.jgc.org/2022/12/the-rogers-watch-retro-display-...

7373737373 3 months ago

I learned the term for such mechanical watches is https://en.wikipedia.org/wiki/Skeleton_watch

  • jsheard 3 months ago

    I disagree with Wikipedia's definition covering any design where the guts are visible from either side, in my experience "skeleton" always refers specifically to the dial being hollowed out or transparent. When the dial is opaque but the rear is transparent it's usually called an "exhibition caseback" instead.

    • bashinator 3 months ago

      Agreed, and also most skeleton watches have the actual movement routed out to remove much of the material from bridges and plates, to expose as much gearing as possible.

incanus77 3 months ago

Very impressive. I love this kind of project (by me or anyone else) — learning whole new areas of tooling that you're unfamiliar with, following a passion to make something that you can hold in your hand. Kudos.

jazzyjackson 3 months ago

There's also the DIGIduino, an atmega128p design with segmented display. I like the variety of attempts and showing off the circuitboard like the complex movements of mechanical watches.

I do want to dig into how much a battery can be obviated here, there's one watch called the Pulse-o-matic that uses an automatic movement (that is, self-winding) to power an LCD display and associate 'tronics. I am charmed by the idea of wind up electronics now that we have microchips with deep sleep modes and ePaper displays that only need a blip to update.

https://theprintablewatch.com/collections/digital-watch-part...

https://www.hamiltonwatch.com/en-us/h52585339-pulsomatic.htm...

tugdual 3 months ago

Amazing work, I have a deep respect for this type of project where the underlying theme is perseverance !

codazoda 3 months ago

Nice design.

I’ve been wanting a larger watch than most companies make. I’d like a traditional digital watch. Since I can’t find what I want, I’ve been thinking about building my own. I want to go to about 60mm for the case (across my wrist).

I purchased a Casio G-Shock GA-010 last week but its size is smaller than I anticipated. It’s 52mm.

I’ve also been drafting a document about how I’m using a digital watch to increase my productivity while limiting distractions.

riazrizvi 3 months ago

Very cute. If Casio bought you guys out and combined their retro design aesthetic, this would sell like hot cakes IMO.

  • mxuribe 3 months ago

    I'm not a watch enthusiast, but i do like the what i'll call old school look and appeal of Casio watches. If Casio hasn't already done so, it feels like they have chances to tap into both nostalgia audiences plus geeks audiences...and this watch - if they were to acquire it - would be awesome! Casio has its decades of manufacturing, distribution and marketing experience, and they get these novel, innovative ideas from others...and if they keep tapping into these geek topics, they could really be that niche maker for geeks - like what Apple products historically have been for creative types...sort of a default purchase for such an audience. (Again, i don't follow this stuff, so its possible they already do this.)

dvh 3 months ago

Display HS096T01H13 almost fits inside F91-W (1mm too wide) but have much smaller bezel.

one_more_q 3 months ago

Reminds me of my pebble watchface created 12 years ago: https://youtube.com/shorts/Zv4h8Uyyg1Q

yohbho 3 months ago

.\t

seems useful on it. can you run

watch -n '.\t'

on it? /jk as that would make it a dedicated watch watch

Theodores 3 months ago

The most hardcore timepieces I ever had to use were the $50K+ clocks used in TV production galleries back in the olden days. These sent a time signal around the facility and there was usually a backup clock in a different part of the building, with both clocks talking to each other from the comfort of their respective 1U enclosures in 19" racks.

What I particularly liked was that these clocks did not actually tell you the time unless you hooked them up to your notebook's RS232 port and telneted in. We don't even have serial ports now, particularly on laptops, but I had to telnet into them to update them when the clocks changed to/from GMT/BST.

Up the road from these expensive clocks was a college that had a horology course. People on it would spend their three years making these absurd timepieces that were all about the mechanism and it was almost a point of pride for the students to have just an hour hand rather than something actually useful.

I feel that this watch concept needs a few more iterations to make it stylishly useless. For example, if the strap was like one of those ribbon cables we used to use to connect disk drives to the motherboard in early PCs, with an adaptor so the ribbon cable is either a watch strap, plugged into the watch, or a connector to a break out box that connects to a PC via USB, with this being the sole means of adjusting the watch or setting what mode it is in.

Regarding the screen and the terminal styling, this doesn't quite work for me as 'time' is what I type into the terminal to time something and 'date' is what I type in to get the date. I therefore see the terminal styling as a bit over the top. What I would like to see is an OG font from the 8 bit days, with blinking cursor, in old school LCD, think of the one character high screens that the last of the typewriters had.

Regarding changing the mode, some dip switches could come in handy. I think that there is fun to be had and that everyone would want to critique whatever gets made, as, ultimately, a CASIO is far better for the task in hand, plus you can also get calculator watches by them that get 90% of the aesthetic for a bargain price. But that is not the point though, much like the horology students, it is all about creating a timepiece and the challenges that involves, notably keeping the time accurate.

A for effort, and A for posting your work for armchair experts like me to critique!

tamimio 3 months ago

I loved it all, software and hardware, thanks for sharing it!

> I had never done any PCB design before and downloaded KiCAD with no idea how it worked.

I saw similar lines among many people who designed great things, take a note, companies, just because an engineer doesn’t have 10y of experience in XYZ doesn’t mean they won’t do great in the job.

HPsquared 3 months ago

Someone needs to make Termux for Wear OS.

Edit: huh, someone has apparently done it! https://www.reddit.com/r/termux/comments/nl0rex/termux_on_we...

fsflover 3 months ago

PineTime has a similar watchface,https://blog.krafting.net/wp-content/uploads/2023/09/2023071...

Neywiny 3 months ago

The RTC doesn't seem much better than a 32k Crystal that the stm could use internally. Which is odd because there are better RTCs around. Maybe it's just for having the window to the crystal. And that's fair. Artistic choice

alpenbazi 3 months ago

Interesting concept. Bigger screen less casing would be nice, but very good concept

  • ricardobeat 3 months ago

    It’s hard to achieve a good screen/case ratio in DIY projects. The screen components are bulky and it’s difficult to fit everything in small enclosures without producing custom boards, mass produced hardware has a ton of advantages there.

    • wkjagt 3 months ago

      It would be cool if someone made a mass produced "watch" that's all the hardware but none of the firmware. So a tiny computer on your wrist that doesn't do anything out of the box, and you can make it do whatever you want. Maybe a watch, maybe something else. It just provides the housing, microcontroller, battery, screen, etc., and an SDK.

xrd 3 months ago

I don't really get a sense from the repo and the very sparse readme how and at what cost I could build one of these. There isn't a pricing page so I'm assuming this is diy, build it yourself, right?

aartaka 3 months ago

Yeah, right, the website is not accessible without JavaScript.

tatjam 3 months ago

Love how clever the logo is! I wonder why the RTC has the resonator exposed? I cannot find anything on the datasheet that explains its purpose

  • jsheard 3 months ago

    Maybe they laser-trim the embedded crystal in situ after the chip has been fully packaged? It might be more difficult to keep it in spec if they trim it earlier and then pass it through more manufacturing steps afterwards.

    • Arch-TK 3 months ago

      Seems unlikely it would fall out of spec by that much just during manufacturing. These things drift due to temperature (or even vibrations) anyway, and when it comes to using them in an RTC you have drift adjustment registers for any major drift from the factory.

Retr0id 3 months ago

> The RV-2123 is an RTC with a glass top that allows you to see the quartz crystal itself inside the component.

Very cool

lloydatkinson 3 months ago

The electronics section is a nice read but the software/firmware section is very barebones.

bogdan_r 3 months ago

Looks awesome! What is the battery life? How much of the power is used by the screen?

redbell 3 months ago

Under the Software section, when he clicks the side button [0], watching the live stream of text as it is generated appears like ChatGPT :)

__________________

0. https://dotslashwatch.com/images/Run_Example.webp

zach_moore 3 months ago

Great project for this young man. Really great start to your career. Keep it up.

davydm 3 months ago

Very cool. Keep on keepin on.

floppyd 3 months ago

Great hardware design, awful watchface design. The pseudo terminal interface looks like something I'd design right after discovering Linux at 13yo and making it my whole identify for a while.

  • sho_hn 3 months ago

    > discovering Linux at 13yo and making it my whole identify for a while.

    I did that, and got a banging career out of it. Would recommend!

    God, HN has become a bunch of sourpusses.

    • Rendello 3 months ago

      I think sometimes if there's a project that's getting highly voted up but the initial few comments are negative, the thread can stay that way.

      I agree with what you said though, when I was 13(-ish) I had an XKCD store t-shirt with a bunch of Linux commands upside-down so you could reference them [1]. I loved the idea but didn't love the shirt (not a fan of black t-shirts), so I didn't wear it much. I would've definitely wore this watch though, I'd even wear it today except I recently got a chunky watch that fits my proportions better than the retro-Casio-style.

      https://web.archive.org/web/20220125185031/https://store.xkc...

  • themafia 3 months ago

    > looks like something I'd design right after discovering Linux at 13yo and making it my whole identify for a while.

    Was this sentence designed to make you look more mature and developed than this imagined 13 year old? It fails to do so.

    • stack_framer 3 months ago

      I couldn't disagree more. I laughed out loud at it!

        const sense = new Sense()
        sense.humor(true)
  • Rendello 3 months ago

    I don't understand everyone's harsh reactions. I too would've loved it at 13 during the same phase, so what?

    The retro(-style) Casio community lives for retro-future kitsch. I guess it's a matter of taste.

    • spacedcowboy 3 months ago

      I can appreciate the design principle while simultaneously thinking “Oh my $deity, that looks ugly as sin”

      Watches are an aesthetic accessory as much as functional devices, and beauty is in the eye of the beholder. It’s ok for different people to have different views on it.

    • thomond 3 months ago

      Casio watches never looked as cheap as this watch does. Going with light grey plastic was a mistake, makes it look like a cheap prop of a metallic object.

      • Rendello 3 months ago

        > Casio watches never looked as cheap as this watch does.

        Casio's a dedicated watch company. Even in their earliest iterations, they were less limited. From the site [1], this appears to be one person's project.

        > Going with light grey plastic was a mistake, makes it look like a cheap prop of a metallic object.

        I wonder if it's less the colour than the sheen of that specific type of plastic. Casio has some great looking fake-metal. In the end, cheap plastic will probably end up looking like what it is.

        1. https://dotslashwatch.com/hardware/

        • account42 3 months ago

          You could probably find more convincing metal spray pain in your nearest hardware supply store. But you also don't need to choose a metal look if you can't pull it off. Even when going for a retro computer look, those didn't usually have exposed metal on the outside anyway.

  • bigyabai 3 months ago

    It looks fine. The readout is digital and static, you know exactly where to read what you need. I doubt passersby are able to read what the screen says anyhow.

  • ninalanyon 3 months ago

    > Great hardware design,

    Really? It looks like it would be uncomfortable to wear with those screws on the back sitting proud of the surface. Why aren't they countersunk?

    Or were you referring only to the electronics?

  • huflungdung 3 months ago

    Hilariously accurate and appropriate username presumably also from when you were 13

simonjgreen 3 months ago

Swatch make some delightful and affordable skeleton watches

elnerd 3 months ago

What’s the emulator he used when designing the firmware?

senectus1 3 months ago

the only thing i really dont like is that you have to touch it to get the time.

imho a watch is useless if you cant just look at it and see the time.

andrewrn 3 months ago

Super awesome and fun project! I'm jealous

amelius 3 months ago

Why isn't the silicon die visible? :)

Dwedit 3 months ago

That's dotslash, not slashdot.

AbraKdabra 3 months ago

> #:~$

why

bogdan_r 3 months ago

What is the battery life?

comrade1234 3 months ago

Yeah the watch command is pretty sweet. sudo watch sensors

HelloUsername 3 months ago

Change title to "STM32-based OLED digital watch"?

  • skrebbel 3 months ago

    What's wrong with the current title? It's a title, not a summary.

    • HelloUsername 3 months ago

      It was unclear for me at least. First I thought it's about a live folder/directory trick, then I thought a video streaming service. I didn't guess clock.

Y_Y 3 months ago

On that point, I see an awful lot of code that uses dotslash as if it was necessary for files in the current directory.

You only need to prepend dotslash to a filename in order of disambiguate invocations of executables in the the current directory (and not a subdirectory).

This is because bare commands will be looked up in $PATH, rather than among executable files in $PWD.

It strikes me as weird copycat (without understanding) programming to just have it wherever you're referring to a local file. In fact I prefer to invoke `bash foo.sh` rather than `mv foo.sh foo; chmod +x foo.sh; ./foo.sh`. (This assumes that I don't need to rely on something special in the shebang line.) This also lets you use tab-completion as normal, as well as adding flags for bash like -x.

(I know you could use it for clarity when an argument could look like a string or a file, but I don't think that's usuaully the purpose.)

  • PhilippGille 3 months ago

    One issue is when the path is not interpreted by the shell but by a program which plays by different rules.

    For example in Go:

      $ cd /path/to/go/repo
      $ go run cmd/myapp
      package cmd/myapp is not in std (/usr/local/go/src/cmd/myapp)
      
      $ go run ./cmd/myapp
      Hello, World!
    
    And then people don't want to think about when your path is for the shell and when it's a CLI param and how the CLI treats it, and just use the version that always works.
    • Y_Y 3 months ago

      Thanks, this is the first good reason I've seen! Seems crazy to me that the go tool does that, but maybe I just lack sufficient unix-nature.

      • zahlman 3 months ago

        This allows it to disambiguate between system path syntax and the language's syntax for symbolic names.

        Similarly, package installers can use this to disambiguate between "install the local file with this exact name" and "look up a file on the index for the named package".

    • umanwizard 3 months ago

      This is one of the papercuts of go that I find way more annoying than is rational.

    • catlifeonmars 3 months ago

      That’s because cmd/myapp is not a local path, it’s a universal path. It makes more sense when you type go run github.com/user/name/cmd/myapp

      • PhilippGille 3 months ago

        > cmd/myapp is not a local path, it’s a universal path

        In `go run` the CLI interprets it as universal path, to be precise. That's exactly the point.

        > go run github.com/user/name/cmd/myapp

        That's not an alternative when you're working on the app's code locally. You have to use `./cmd/myapp`.

        And when you do that multiple times per day/week, after a while you just start always using `./` prefix for local paths.

        • catlifeonmars 3 months ago

          Would it be preferable to use a URI for go run?

          For example

          - go run go://cmd/foo

          - go run file:///cmd/foo

  • lynx97 3 months ago

    For executables, it is actually necessary to prepend ./ iff . is not in $PATH. And . is usually not in $PATH for security reasons.

  • Bleibeidl 3 months ago

    I'm pretty sure most people use it to make clear it's a relative path. It takes mental load off the one reading the code. That's why I pretty much always use it, not only when executing things.

  • aidos 3 months ago

    ./<tab> completes nicely. Ambiguity is removed. There’s no chance of accidentally running the wrong executable.

    So I think you and I differ on this one, but none of this is a hill I care to die on.

  • mjw1007 3 months ago

    It makes tab completion work.

    • jagged-chisel 3 months ago

      At the start of a line? So you want to run a script or executable in the current directory. PATH doesn’t contain . and ./ is necessary.

      As an argument in a line? My shell offers completion from the current directory without ./ just fine.

      • alganet 3 months ago

        Let's say you have 100 programs in your PATH that start with the letter "g", but only one program in the current folder that starts with "g". You type `./g[TAB]` so it autocompletes automatically to the local program instead of cycling through dozens of results you know you don't want.

  • amonith 3 months ago

    I use it for autocomplete... e.g ./f<tab> and enter. If I don't do it the terminal literally hangs for a split second and gives me a lot useless suggestions. I rarely type full words.

  • teddyh 3 months ago

    Similarly, many people needlessly append a slash to every directory name.

    • SoftTalker 3 months ago

      Makes it clear you're naming a directory and not a file.

      I also alias 'ls' to 'ls -F' so that directories have a / appended, makes it easier to understand the output.

    • BoredPositron 3 months ago

      For me it's because of rsync.

    • chuckadams 3 months ago

      It's handy when the directory might not exist, happens all the time in git checkouts. Raise your hand if you've ever moved something to tmp and created a file called tmp.

      Usually it's tab-complete adding the slash though, I don't go typing it in.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection