nRF52 Smartwatch from Scratch
To make the experience fit your profile, pick a username and tell us what interests you.
LS018B7DH02 Datasheet, since it exists nowhere else on the internet. Sharp assures me that, despite the "confidential" watermark, this is totally fine to share.
Adobe Portable Document Format - 1.55 MB - 02/20/2020 at 04:47
I've been working on the watch a fair amount, but I realized I've been bad about project logs. So here's a sort of omnibus update:
That's me, having just washed my hands. The cloudiness you see is not, unfortunately, a trick of the light, but a bit of water that got in (presumably through the flashlight hole) and stuck between the acrylic protector and the screen. Luckily this didn't damage anything, and eventually it cleared up on its own. It did, however, demonstrate the need for something a little more robust than a hole with an LED poking out.
Adding a small protrusion for the light turned out not to impact the aesthetics nearly as much as I'd expected. I cut a small circle of clear acrylic and sealed it into the hole with a healthy drip of superglue, and I haven't had water issues on that side since. I do occasionally get a bit of water seeping in around the white button bar on the other side of the watch if I'm not careful, so the next revision of the case will likely include a better buffer there (or perhaps just make the TPU fit more snugly to keep water out). I don't need the watch to be fully submersible or waterproof, but it needs to be able to stand up to handwashing without damage.
/* * Views are the primary UI structure. A view is a bit like an "app" on a * smartphone. The active view's draw() method is called (by the system * controller object) when the screen updates, and when user events happen (like * button presses), the active view handles them. * ...
As usual, pictures first:
The project is slowly moving again! The reason for the long time between updates is primarily that rev. 5 didn't work, I got discouraged, and I stopped working on it for a while. Pictured, jammed into the case, is rev. 6, which has a few improvements:
The flashlight feature is stupidly bright. At full brightness, it's significantly brighter than my cell phone's "flashlight" feature. After using it to navigate around my dark bedroom at night, I may have to dial it back just so I don't blind myself. It also draws somewhere around an amp, which is not a great thing to do with a 500mAh battery (a 2C draw). It also gets extremely hot; I'm hesitant to leave it on for more than 30 seconds at a time for fear of melting the solder joint. This explains why the breakout boards available for the XM-L2 are chunks of aluminum bigger than my watch itself... the next revision will probably use an aluminum daughterboard PCB that can act as a heatsink, and the final form for the watch might involve a machined aluminum case rather than the 3D printed version.
The flashlight mounting also needs some work. The XM-L2 lens isn't, as I initially thought, hard plastic. It's soft, and I managed to mar it with the tip of my tweezers when I was trying to mount it. It still works, but it doesn't look great.
The remaining question is battery life. I haven't done any profiling on a rev. 6 board yet (it's a pain to take in and out of the case, so I plan to assemble a second one for testing at some point). My empirical testing has so far indicated that battery life is pretty decent; I've been wearing it nonstop since Thursday evening (when these pictures were taken) without charging it. It's now Saturday afternoon, and the MAX17262 reports 94% remaining (which I don't especially trust), and a battery voltage of 4.0V (which I do), down from 4.2V at full charge.
Now that the watch basically works mechanically, it's time to turn to software. The next few updates, whenever they are, will likely be focused on the watch UI and/or the mobile app rather than the hardware. If I get a good power profiling setup, I may focus on some power optimization too.
After wearing the watch for about a week, I plugged it in to upload some new firmware and immediately started having issues with the built-in USB connection on the chip. My suspicion is that the ESD fairy struck again, this time damaging the MCU rather than a power system. Rev. 5 (and rev. 5.1, which is identical except for adding pads for a current shunt resistor so I can more accurately measure power consumption) includes ESD protection in the form of a TVS diode, so I think I'll take a break for a week or so until the new boards and parts come in rather than continue to destroy components every few days.
The good news: in wearing the watch for a week, I've found that it draws about 8% of the battery per day. This is an extremely rough estimate, but (assuming I can trust the readings from the MAX17252, which I'm not sure of) is a promising sign: that points to an average ~200 uA consumption, pre-battery-optimization but also pre-BLE-enable. I did manage to get ahold of an oscilloscope, so when rev. 5 comes in I'll be able to get much more accurate consumption numbers.
Small update tonight: I just finished routing the rev. 5 PCB for the watch, which has a few small but notable improvements:
I also did a tiny bit of software work to move towards having a real interface. This involved shuffling around a bunch of source files to make PlatformIO's build system happy, but otherwise there's not much to report.
The next few updates will probably be software, since I'll probably get daughterboard and dock prototype board finished tomorrow and sent out for fab over the weekend, then I'll have to wait a week or two before I can start assembling and testing.
A bunch of good progress. In no particular order:
The little bit of bad news: something weird is going on with the power system. I had two MCP73831's (the battery charger IC) go up in proverbial smoke within an hour of each other a few days ago, on two different revisions of the board. The only things in common were the battery, which may (?) have had a loose lead, and the USB cable. Hopefully it was the battery, and now that I've replaced the lead it'll all be fine. Hopefully.
The work continues! I'm approaching the point where the fact that I have no idea how to write an android app is going to bite me, so good tutorials and examples (especially ones that do BLE things in the background) would be highly appreciated in the comments :)
Good news! I've mostly assembled the rev. 4 board, and it seems to work. The biggest change is a boost regulator that drives the LCD at 5V, instead of the previous VIN (which could be as low as the 3V cutoff voltage of the battery). This means that the screen will continue to work even when the battery voltage starts to sag. It comes at a cost -- the TPS60151 is rated at 90uA quiescent current -- but on the whole I think this makes the usable life on a single charge substantially longer (since the whole voltage curve of the battery is usable now). One future optimization might be to use VIN until it sags too low, then enable the boost regulator, but that gain probably isn't worth the complexity.
I say "mostly assembled" because, somehow, I've misplaced my nrf52840 modules. The power systems seem to work, but without disassembling my rev3 prototype (which I've been wearing for the past few days), I don't have brains to test the I2C devices. Hopefully those will be delivered this weekend, and I'll be able to have a working rev. 4 watch next week.
In mechanical news: in the months since my last serious work on this project, I bought some differently-sized nozzles for my 3D printer. This means that I can print the case with an 0.2mm nozzle rather than the 0.4mm stock nozzle and get some much finer details. This lets me cut a little bit of thickness out of the watch! The prototype I'm wearing is 13.00mm thick, and I may be able to cut most of another millimeter off if I figure out a safe way to press the LCD directly against the protective acrylic. 13mm definitely doesn't feel too big, though.
More updates soon. I'm glad to be back at work on the watch!
Good news! Two apparently-intact displays arrived from Digikey today! I'll need a few days to get the rest of the project out of storage and load the project state back into my head, but at long last the project can continue!
Interestingly, these new displays don't have the "NO OPTICAL BONDING" sticker on them. I wonder if this means that I can press them right up against the acrylic... I'll have to find out.
I guess I'll see y'all next year!
I've been waiting patiently for the replacement display module to ship so that I could get working on the watch again. When I ordered the replacement(s) in September, the backorder ship date was November 13th. For those playing along at home, that was Friday of last week. I've put several requests in to Digikey asking why the parts haven't shipped; the impression I get is that the delivery from Flex hasn't come in yet. Hopefully I'll hear something soon. In the meantime, I'm just... waiting.
On the plus side, Sharp's website finally acknowledges the existence of the LS018B7DH02! It's listed as "new" (ignore the fact that I found reference to it in catalogs back to 2018) and still doesn't have a datasheet attached, nor does there seem to be any way to actually get one (I have an email out to my local supplier), but it's a start.
I've given some passing thought to a redesign of the physical layout to use a more available display, but I haven't found one I like. They're all either too big, too small, or too power hungry. In other project news, some time in the last month and a half the battery ran out. I haven't been checking it very often, so I don't have any real sense of when exactly it gave up.
Due to a lack of both motivation (owing to broken hardware) and time (owing to life), I haven't worked on the watch since the last project log 11 days ago. However, in that time, I did leave the board connected to the battery (albeit without a screen). On a whim today, I measured the voltage across the battery, and I got a surprising 3.9 volts. The "full" voltage is 4.2V, and LiPo batteries don't discharge linearly. In fact, based on this chart from Adafruit, I've lost less than 20% of the battery in the last 11 days:
There's no screen connected, no backlight use, and no Bluetooth communications, so this result doesn't really represent a real-life test. However, it does confirm that my estimates of multiple weeks on a single charge weren't completely ridiculous.
It's not all good news, though. When I plugged in my test display (the one that doesn't fit in the case), it had tons of display artifacts that made it unreadable. These cleared up immediately as soon as I connected USB power, which leads me to believe that I do actually need that 5V boost converter after all. I suppose I've got nothing but time to add it...
Become a member to follow this project and never miss any updates