I'm making a Pico clock which won't have the ability to update the time via the internet. From doing some investigation, the time goes awry very quickly (over 15 mins in 6 hours) when plugged into the mains.
Is it possible to solder a watch crystal to the Pico? I know it's possible with the Espruino.
Yes, sorry - I haven't documented it very well. The drift is because of the low speed oscillator being really inaccurate compared to the original espruino - I'm actually working on a firmware update that should improve matters by using the high speed oscillator when not in sleep mode. If you use a build from here to flash espruino with then it should be a whole load better when running from mains.
However there is space for an external crystal (the 6 pads at the far end of the board). You'd need to buy a Abracon ABS06-107 (it should work fine without load capacitors, but if you need them then two 0402 4pF ones should do it). The 107 bit is extremely important as the standard ABS06 isn't reliable on the STM32F401 chip - as I found out to my cost (if the standard ABS06 had worked, every Pico would have had one on board, but I found out too late to be able to source the 107 variant for the KickStarter)
On the original Espruino board 1v4, at room temperature, I had 181 s lost on a duration of 6754321 s. The system was logging the stm32 integrated temperature sensor once every 5 minutes. However, in outdoor, icy, conditions, I had much worst results.... Unfortunately, i can't find my figures yet.
So far I did not test the pico as I am concentrating my efforts on Gps provided time...
Hmm, that's frustrating. On the Original 1v4 board I had issues where the LSE on the production prototypes didn't work because of mismatched capacitance. At the late stage of production we found that the crystal worked fine if you just removed the load capacitors, so we just did that.
It is possible that by adding (~4pF?) load capacitors by X3 would increase the accuracy quite a bit on the original board... However getting significantly worse results based on temperature it sounds like the LSE could have stopped and Espruino reverted to the LSI?
If you are concerned about accuracy why not add a DS3231? Pico could check and update its own clock every minute if need be.
While the DS3231 RTC is a nice self-contained thing, the Pico should really be able to do better timekeeping itself... It'd be a lot easier to use just one PCB in things (the Pico) than 2.
Nice, thanks Gordon - I'll give both suggestions a whirl and let you know the results.
Should the Pico be as precise as DS3231?
No, DS3231 will definitely be better.
However the Pico should be accurate enough for a lot of things. I'd be hopeful it'll be off by significantly less than 1 second a day.
I have experimented with many different hobbyist boards over the years and none of them were what I would call accurate time keepers unless they had an external RTC.
Well, the chip has an internal RTC. It's supposed to be really pretty accurate, and I believe the STM32 is used in things like the pebble smartwatch and the original Sony smartwatch without an external RTC.
I think a lot of it comes down to the crystal used - the ABS06-107 only seems to be 20ppm, where the DS3231 is 2ppm though.
Those devices can also sync to another time source.
You are correct about the crystal but I wonder if the internal RTC is temperature compensated like the 3231.
I'm wondering if someone has done this (added a crystal to the Pico) and is willing to share a pic or diagram of where the crystal goes on the board? I've found the Kickstarter Pico v1.3 to not be good with the internal interval (e.g. 1000ms setIntervals are not always accurate) so if I can overcome this with an external crystal, it's worthwhile.
If you update the firmware on the Pico the RTC gets a bit more accurate, but yes, it's not great.
You can add a crystal - you just need:
The arrangement is exactly the same as on the Espruino WiFi (where there is a crystal), so you can see how they're fitted on to the pads on the end of the board there.
Thanks - I can find a 'ABS06-107-32.768kHz-T' (with T at end) - I suppose this version is ok? Also can it be soldered with a regular pencil-tip iron?
Yes, that'll be fine.
If your iron has a relatively fine end on it then it should be fine.
For the best finish, I'd:
It might be hard to get the soldering iron on to the pad, so i'd consider shifting the crystal over a little so you can be sure you have a bit more space to get the tip in
And first try it without the capacitors, because they can be a pain to do with a soldering iron as they're so small :)
Don't worry about formatting, just type in the text and we'll take care of making sense of it. We will auto-convert links, and if you put asterisks around words we will make them bold.
For a full reference visit the Markdown syntax.
© Espruino, powered by microcosm.
Report a problem