-
Manila Mini Maker Faire 2017
06/13/2017 at 12:37 • 0 commentsThanks to everyone who came by our booth at the Manila Mini Maker Faire 2017!
I've already emailed the winners of the raffle for the two watch kits we'll be giving away.
See you guys next year hopefully? :D
(Thanks to Chris Bermejo for the photos)
-
Proper assembly instructions
05/29/2017 at 15:01 • 0 commentsBelow, I detail how to properly assemble the watch from bare board to finished product.
--- Tools used
- Soldering iron and lead (Thinner is better)
- Liquid flux (Pictured above is an el cheapo flux)
- SMD tweezers
- PCB vise (I don't own helping hands)
- Screwdriver set
- Solder wick (not pictured)
Have the BOM handy to easily identify which part goes where!
--- Bare board
Firstly, we'll work on the top part of the board. Specifically, the first thing I like soldering would be the FPC connector. It's the most difficult one to solder with a 0.5 mm pin pitch.
--- FPC connector
Use plenty of flux and a solder wick to wick away any excess solder. Let's say pin 1 is the leftmost pin. (It's not)
Don't worry about shorting pins 1 and 2, or shorting pins 3, 4, 5, and 6. Those are GND and VBAT respectively. The rest of the pins must be isolated from each other however.
--- Passives
Solder all the passives on the top board. Just go through the BOM, and take your time. Make sure to do a better job than I did as seen in the photo.
--- Crystal
I read somewhere that you shouldn't heat up the crystal too much or you'll damage it, so take care in soldering this.
--- STM32 IC
Align the IC on all the pads. Make sure that the dot on the package matches the dot on the board.
Here it is all soldered up. As you can see, I was very liberal with my flux.
--- Passives (back)
Now you can flip the board around and solder the rest of the passives at the back. All of these are just 100n capacitors and 10k resistors.
--- Buttons
Place the buttons and align them using the holes located on the board. It's a bit more difficult to solder these since the leads don't extend outward. A hot air station might be better suited for this.
--- Solder pad
Don't forget to add a tiny bit of solder to the big square pad. This helps create a tighter fit on the battery and ensures a good connection. This should create a small bump, like maybe 1 mm thick or less.
--- Battery holder
Finally, solder the battery holder on. It's the only through-hole part in the build.
--- Connect STLink
I used a Chinese ST-Link clone. Just connect the five relevant pins from the programmer to the board: SWCLK, SWDIO, NRST, VCC, and GND.
--- OpenOCD
Open up a CLI. Type in the following command to start up the OpenOCD debugger.
(I used Linux for this part. There should be tutorials online about how to set up OpenOCD for Windows. Actually programming the part is OS-agnostic, so just search for that one specific tutorial to get OpenOCD set up)
openocd -f interface/stlink-v2.cfg -f target/stm32l0.cfg
The output should be something like this:Open On-Chip Debugger 0.10.0-dev-00399-g19df456 (2016-11-04-15:40) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'. adapter speed: 300 kHz adapter_nsrst_delay: 100 Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD none separate Info : Unable to match requested speed 300 kHz, using 240 kHz Info : Unable to match requested speed 300 kHz, using 240 kHz Info : clock speed 240 kHz Info : STLINK v2 JTAG v27 API v2 SWIM v6 VID 0x0483 PID 0x3748 Info : using stlink api v2 Info : Target voltage: 3.216787 Info : stm32l0.cpu: hardware has 4 breakpoints, 2 watchpoints
--- Programming with SW4STM32Fire up System Workbench for STM32 (SW4STM32), load the project, and flash it to the board by hitting Run.
--- Connect screen
Disconnect the programmer, connect a battery, and connect the screen via the 10-pin FPC connector. You should see the clock face on the display.
--- Test buttons
Press the buttons. The top and bottom buttons should move the minute hand forwards and backwards respectively. The middle button should reset the second hand. The previous picture doesn't have a second hand so this will have to be manually tested. You could also uncomment the lines in the code to enable the second hand.
Anyway, if the buttons don't work, make sure the solder joints are proper. Redo if necessary.
--- Attach screen support
IT IS HIGHLY RECOMMENDED to pre-tap the holes on the screen support. You can use an M3 tap or just use a screw and screw it all the way to create threads.
Place the screen support on the board and partially screw in two M3x8 countersunk screws at the bottom. Take note of the orientation of the part in relation to the screen.
The screws should stick out by that much so you can still place it on the back piece and screw it in.
--- Back piece
Here the board and screen support is being screwed into the back piece. There is only a small section where you can thread this in, so be careful you don't enlarge the hole. Tighten the screws until the top of them is flush with the screen support.
The screen should be able to sit flush on the screen support. Be careful not to bend or shatter the LCD when inserting. These things are very fragile!
--- Middle piece and flexible buttons
Now you can insert the middle piece through the assembly. Take note that the hole goes on the side where the buttons are, and the thin section is nearer to the bottom.
Now place the flexible buttons inside. Note that the actual buttons are offset vertically from the center and are flush at the top.
--- Fit cover and screw from back
Place the cover in front and insert the M3x12 countersunk screws from the back. This may be super tight if you don't tap the screen support part beforehand.
Almost complete. Yes, the screws stick out somewhat, but it's not bothersome.
--- Attach straps
Use the M2x12 cap head screws to attach the straps to the body. There are four in total.
COMPLETE!
The watch is complete! Wear it with pride. Make more for your family and friends.
-
Manila Mini Maker Faire 2017
05/28/2017 at 09:32 • 0 commentsI'll be going to the Manila Mini Maker Faire this June 10 - 11. I'll have 100 blank PCBs and 50 3D printed cases to give away to any interested makers there, along with the chance for two people to win a complete watch kit each. See you guys there!
-
Updated 3D files
04/14/2017 at 02:36 • 0 commentsI accidentally uploaded an earlier version of the back face. It's supposed to have this thin cutout for the PCB. Anyway, it's fixed now!
-
Printing the parts
04/07/2017 at 03:09 • 0 commentsHere's how I printed the parts for the watch. I used Slic3r to slice these. Find out more below.
Everything above except for the leftmost part (LCD support) gets printed with a 0.025 mm layer height. Initial layer height for these were 0.1 mm. The LCD support was printed with the standard 0.2 mm initial and layer height.
All the parts were printed with 100% infill. Setting it below that gives gaps just because of how thin each layer was. This could probably be remedied by increasing the number of perimeters (currently set to 2).
I enabled support material generation. Only the two parts on the left need support. I also had to uncheck the "Don't support bridges" setting. Anyway, support material removal is easy even without using the Prusa edition of Slic3r.
Here's what the support material should look like underneath that. -
Internals
04/04/2017 at 15:24 • 0 commentsFinally took the time to take a picture of the internals. Lots of photos below!
Top cover off. Watch face held together using M3x12 countersunk screws. The black blends well. See more photos below.
---------- more ----------
Closer look at the watch body, buttons, and the face. The button part was printed using TPE.Closer look at the bottom part, PCB subassembly, and LCD support. The two on either side of the PCB are printed upside down of what they are now so you can see the bridging. Also, you can see I used countersunk screws everywhere.
NOTE WHEN HAVING PCB MANUFACTURED: These are 0.8 mm thick PCBs from SeeedStudio.
Closer look at the PCB. I used "beginner-friendly" 0805 parts. The most difficult part is the LCD connector as it has a 0.5mm pin pitch. Use plenty of flux and a clean fine soldering iron.
Close look at the underside. Only six passives, and three buttons for the SMD work. You can see the FPC connector of the LCD bent because it's stayed that way for a few months now.
-
Progress so far...
03/30/2017 at 17:05 • 0 commentsCurrently, I would say the hardware is complete. I'd like to perhaps get the watch printed in a clear resin so people can see the inner workings of it. Black is still the sexiest.
My files are a mess. My code is a mess as well. There are some FreeRTOS things in the code right now, but I've commented out the main thread creation portion. FreeRTOS isn't needed in this sort of thing? Well, it's still a good learning experience for me.
I've removed the second hand to reduce power consumption. Measuring it shows it's around 0.31 mA most of the time. That would give me around a month(?) of battery life. I still need to read through and try to understand the low-power modes of the STM32L0. I think that's too big considering I'm running at 2MHz in (supposedly) low-power run mode and being in low-power sleep mode the rest of the time. Maybe I still need to reduce clock speed during sleep mode?
Would love to implement a digital clock face, but still need to implement fonts (ongoing). I specifically chose the STM32L051 version so I have more flash memory available.