Giter Site home page Giter Site logo

scribbl's Introduction

Scribbl - The $30 full-featured smartwatch

NOTE: This project is still considered a work-in-progress. Keep an eye out for new improvements and features!

Features

  • Bluetooth 5 LE
  • 2.4GHz Wi-Fi
  • Type-c connector
  • Touchscreen
  • Gyroscope and accelerometer
  • Fully programmable!

Directions

These directions are rather lengthy, but only because I explained each step in a lot of detail. If you think you get it, you probably do.

Hardware

To build the Scribbl watch, first consult the bill of materials below. You will need to order 2 parts (about $30 before tax, as of Feb 2024) and have access to a 3D printer.

๐Ÿ’ก 3D printers are actually more commonplace than you might think - your local school or library probably has one. If not, you can always pay to have the parts printed for you through an online service. If you own a 3D printer, you will likely know that filament is dirt cheap, hence why the project is so heavily reliant on it.

โฌ‡๏ธ First, download the watch case I have designed. You can find the model files under the 3D Models folder and labeled as "container.stl" and "cover.stl". You will also need to download "pin.stl" (which will be printed multiple times - I recommend 4, but skip down a bit for more info). The model is designed to "just fit" - the tolerances have been carefully set so that all parts fit snugly together and there are no screws required. Additionally, download the watch strap designed by ibudmen and linked below. You will need a Thingiverse account to use the customizer, or you can download the .scad file (also copied under the 3D Models folder) and use a suitable program to modify it as described below.

๐Ÿ–จ๏ธ Next, print the model. If you are an experienced printer, simply know that just about any settings will do - have fun. Otherwise, I will now explain in depth how to 3D print an object. First, download a program like Cura (what I use, it's free and open source). Next, simply drag and drop your .stl file into the program. You may see some settings on the right - you shouldn't need to mess with them to print this well. Click the blue "Slice" button in the bottom right corner. "Slicing" the print means splitting it up into thin layers which will be printed layer-by-layer by the printer. When you're done, save the file (bottom right corner) to an external SD/MicroSD card that you will then put in the printer. If you are borrowing a printer, please read the instructions for that printer or ask someone to assist you in getting the print started. Honestly, most printers should be fairly intuitive to use after you put the MicroSD card in.

Getting tired of reading yet? Because I'm getting a bit tired of writing this!

๐Ÿ”ฌ The next step is to place the Waveshare board (or display module, whatever you want to call it) into the cover model. This way it will be easier to fit. Place the battery in the case, taking care to note where extra space is given for the wire. Plug the battery into the matching port on the Waveshare board, and attach the 2 pieces together (taking care to note where the USB-C port goes). Almost there!

๐Ÿ˜ก Finally, after all that, you still have one last challenge to overcome - the pins. I designed them to account for error by the 3D printer, so they are larger than they should be by default. Trim off (carefully) with scissors any excess that printed funny (fatter than the rest) and repeat this until the pin is just wider than the space between the pegs (technically called the "lugs") that are designed to accept it on the watch. You will likely mess up several times, so I recommend you print 4 pins or more to start. They cost $0.00 to print (according to Cura), so don't feel bad. Next, put 1 pin into each of the half-watch-bands and force the straps into the lugs.

Software (the good stuff!)

First, install Thonny. Next, plug your watch into your computer. In the bottom right of Thonny, change the Python interpreter (it may say something like "local Python3") to ESP32. Then, click that again and select "Configure interpreter". On that screen, select (from the bottom right) "Install or update micropython" (esptool). You may need to follow Thonny's instructions for installing esptool (basically, Tools -> Manage Plugins -> find & install esptool from the dialog). Click the 3 bars in the bottom right next to "Install", and then choose "Select local Micropython image".

If Thonny is having issues detecting your watch, make sure to

Download and select within Thonny the .bin file from Waveshare I have uploaded here under "firmware", and then click "Install". This may take a while. Next, just upload the 2 files under the "src" folder to the watch by right clicking them in Thonny and choosing "Upload to ...". You can either press the "reset" button on your board, or type import main into the console in Thonny (recommended), whatever works for you.

If you're a purist and can't bear the thought of a closed binary built off of open-source software and distributed by a Chinese company, you should set the settings for the board using the Wiki link from Waveshare and download+use this library/firmware instead. It's basically the same thing, I think, and should work. I just trusted Waveshare though - it's way easier and should be safe given the underlying code is open source.

๐ŸŽ‰ You now have a $30 watch with all of the modern tech you'd expect!

Materials

Must be bought

  • Touch-display + chip combo - $22
    • This can be bought from Waveshare directly, but I recommend getting it from Amazon as it is roughly the same price after shipping/tax.
  • Battery - $10
    • You can use a different battery, but it needs to have an MX1.25 connector and you will have to redesign the case. Honestly, it's not worth it as larger capacity batteries are also much larger in size.

3D printed

  • Watch Case (3 parts)
    • You will also need to print several of the pins I designed as well. Due to slight inaccuracies in 3D printing, I have designed them to be larger than needed. Simply cut a little bit off until the pins are just longer than the width between the slots on the watch they fit into.
  • Watch strap (not designed by me)
    • Use customizer (click "customize" in the bottom left corner of the model page) with 22mm width, 1.2 pin radius, pick your length

More details for nerds

Here is the documentation for the Waveshare board: https://www.waveshare.com/wiki/ESP32-S3-Touch-LCD-1.28

scribbl's People

Contributors

jvadair avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.