-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 67f859a
Showing
368 changed files
with
17,152 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
*_build/ | ||
*__pycache__/ |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# .readthedocs.yaml | ||
# Read the Docs configuration file | ||
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details | ||
|
||
# Required | ||
version: 2 | ||
|
||
# Set the OS, Python version and other tools you might need | ||
build: | ||
os: ubuntu-22.04 | ||
commands: | ||
- mkdir -p $READTHEDOCS_OUTPUT/html/ | ||
- cp -r docs/* $READTHEDOCS_OUTPUT/html/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# XDial web pages | ||
|
||
zh-cn [![Documentation Status](https://readthedocs.org/projects/xdial/badge/?version=latest)](https://xdial.readthedocs.io/zh-cn/latest/?badge=latest) | ||
|
||
en [![Documentation Status](https://readthedocs.org/projects/xdial-en/badge/?version=latest)](https://xdial.readthedocs.io/en/latest/?badge=latest) |
Empty file.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
<!DOCTYPE html><html><head> | ||
<title>xDial</title> | ||
<meta charset="UTF-8"><meta name='viewport' content='width=device-width, initial-scale=1'/> | ||
<meta http-equiv="Content-Security-Policy" content="connect-src http:" /> | ||
</head><script src="util.js"></script> | ||
<style> | ||
*{font-size:1em;margin:.25em} | ||
h1{font-size:1.25em;text-align:center;margin-top: 1em;} | ||
div:has(h2){border-top:1px solid #ccc; | ||
h2{ | ||
font-weight: normal; display: flex;justify-content: space-between; | ||
a{text-decoration: none;margin-right:0.5em;} | ||
} | ||
div{overflow: auto;white-space: nowrap; | ||
img{width:64px;height:64px;border-radius:50%;} | ||
} | ||
} | ||
</style><body> | ||
<div style="float:left;margin:0;">📦<select oninput="update_asset_ln()" id="server"><option value="github" data-fmt="https://github.com/r-cute/xdial-cf-gallery/releases/download/${ver}/${name}.bin">github</option><option value="gitee" data-fmt="https://gitee.com/r-cute/xdial-cf-gallery/releases/download/${ver}/${name}.bin">gitee</option></select></div> | ||
</body><script> | ||
str_fmt=(template,args)=>Object.entries(args).reduce((result, [arg, val]) => result?.replace(`$\{${arg}}`, `${val}`),template); | ||
qry=new URLSearchParams(location.search); | ||
if(qry.get('asset_fmt')) { | ||
q('#server').parentNode.style.display="none"; | ||
} else if(qry.get('server')) { | ||
q('#server').value=qry.get('server'); | ||
} | ||
make_asset_url=(ver,name)=>str_fmt(qry.get('asset_fmt')??q('#server>option:checked').dataset.fmt,{ver:ver,name:name}); | ||
prev_num=4; | ||
ver="1.0.0"; | ||
multi_lang(); | ||
range=x=>Array(x).keys(); | ||
( | ||
ml('h1')(['Clock Face Gallery','表盘广场']) | ||
+j2h({'<>':'div','[]':split,html:[{'<>':'h2',html:[ml('span'),{'<>':'div',html:x=>`<a href='#0' onclick='cpy_ln("${x[2]}")'>🔗</a><a data-name='${x[2]}' onclick='return confirm(selang("New clock face will overwrite the current one, continue?/新表盘将覆盖当前的可选表盘, 是否继续?"))' target='_blank'>⬇️</a>`}]},{'<>':'div',html:x=>[...range(parseInt(x[3]))].map(i=>`<img src="assets/${x[2]}/${i}.png" loading="lazy" />`).join('')}]}).batch([ | ||
'iKun/iKun/ikun/7', | ||
'Abstract/抽象/abstract/5', | ||
'Puppies/小狗/puppies/5', | ||
'Paris Olympics 2024/巴黎奥运 2024/paris_olympics/18', | ||
'Emoji/Emoji/emoji/14', | ||
'Pokémon/宝可梦/pokemon/8', | ||
'Rick and Morty/瑞克和莫蒂/rick_and_morty/6', | ||
'SpongeBob/海绵宝宝/spongebob/4', | ||
'Capybara/卡皮巴拉/capybara/2', | ||
]) | ||
).dom(); | ||
qa_ln=s=>qa('a').filter(e=>e.textContent==s); | ||
cpy_ln=n=>{navigator.clipboard.writeText(`${make_asset_url(ver,n)}`);alert(selang("Copied to clipboard/链接已复制"));}; | ||
update_asset_ln=()=>qa_ln('⬇️').forEach(e=>e.href=decodeURIComponent(str_fmt(qry.get("dl"),{url:make_asset_url(ver,e.dataset.name)}))); | ||
update_asset_ln(); | ||
qry.get('dl')?.length||qa_ln('⬇️').forEach(e=>{e.style.opacity=0.5;e.style['pointer-events']='none';}); | ||
</script></html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
q=(s,e)=>(e??document).querySelector(s); | ||
qa=(s,e)=>[...(e??document).querySelectorAll(s)]; | ||
zip=(x,...y)=>x.map((v,i)=>[v,...y.map(j=>j[i])]); | ||
get_json=s=>fetch(s).then(r=>r.text()).then(r=>eval(`(${r})`)); | ||
a2b=(a,b)=>[...range(b-a)].map(x=>x+a); | ||
b2i=b=>b?1:0; | ||
is_num=s=>/^-?\d+$/.test(s); | ||
is_str=s=>typeof(s)=='string'; | ||
ver_cmp=(x,y)=>zip(...[x,y].map(o=>o.split('.').map(x=>parseInt(x)))).reduce((o,[a,b])=>o||a-b,0); | ||
partial=(f,...a)=>(...b)=>f(...a,...b); | ||
_split=s=>x=>x.split(s);split=_split('/'); | ||
dash2Camel=i=>{var o=i.split('-');return o[0]+o.slice(1).map(x=>x[0].toUpperCase()+x.slice(1)).join('');} | ||
sel_lang=(i,e)=>qa('[data-en]',e).forEach(x=>x.attr(x.hasAttribute('placeholder')?'placeholder':'innerHTML',x.dataset[dash2Camel(i)])); | ||
selang=x=>split(x)[q("#_ml_sel").selectedIndex]; | ||
attr=(o,a,v)=>{if(typeof(a)=='object')return Object.assign(o,a);if(v==undefined)return o[a];o[a]=v;return o;}; | ||
(function(){ | ||
var add_meth=(cls,nf)=>Object.entries(nf).map(([n,f])=>{cls.prototype[n]=f}); | ||
add_meth(HTMLElement,{'attr':function(s,v){return attr(this,s,v)},'css':function(s,v){if(typeof(s)=='object'){Object.entries(s).forEach(([k,v])=>{this.style[k]=v});return this};if(v==null)return this.style[s];this.style[s]=v;return this}}); | ||
add_meth(String,{'dom':function(){document.write(this)}}); | ||
add_meth(Object,{'merge':function(x){return Object.assign(this,x)},'str':function(){return JSON.stringify(this)},'has':this.hasOwnProperty,'get':function(s,f){return this.has(s)?this[s]:f},'pop':function(s,f){var r=this.get(s,f);delete this[s];return r;}}); | ||
|
||
arr2tab=(hdr,arr)=>arr.map(a=>Object.fromEntries((is_str(hdr)?hdr.split('/'):hdr).map((k,i)=>[k,a[i]]))); | ||
var no_tail_el=['input','br']; | ||
var binary_attr = ['selected', 'checked']; | ||
var special_prop=['html','{}','<>','[]']; | ||
var if_fn=(f,...d)=>typeof(f)=='function'?f(...d):f; | ||
var j2h_fn=(tmpl,data,index)=>{ | ||
if(Array.isArray(tmpl))return tmpl.map(t=>j2h_fn(t,data)).join(''); | ||
if(typeof(tmpl)=='object'){ | ||
var ndata=tmpl.get('{}',o=>o)(data); // new data | ||
var idata=tmpl.get('[]',o=>ndata)(data); // inner data | ||
var html=tmpl.get('html',''); | ||
var tag=if_fn(tmpl.get('<>',''),ndata); | ||
if(tag==='') return j2h_fn(html,idata); | ||
var attr_list=Object.entries(tmpl).filter(([k,v])=>!special_prop.includes(k)).map(([k,v])=>{v=if_fn(v,ndata,index);return binary_attr.includes(k)?(v?k:''):`${k}='${v}'`}).join(' '); | ||
return '<' + tag + (attr_list.length? (' '+attr_list): '') + (no_tail_el.includes(tag)? '/>': `>${j2h_fn(html,idata,index)}</${tag}>`); | ||
} | ||
return ''+if_fn(tmpl,data,index); | ||
}; | ||
j2h=tmpl=>{ | ||
var fn=data=>j2h_fn(tmpl,data); | ||
fn.batch=data=>data.map((d,i)=>j2h_fn(tmpl,d,i)).join(''); | ||
return fn; | ||
}; | ||
_id=o=>o.id;_txt=o=>o.text;_val=o=>o;_i=(o,i)=>i;_0=o=>o[0];_1=o=>o[1];_2=o=>o[2];_3=o=>o[3]; | ||
ml=(tag,opt)=>j2h(({'<>':tag,'data-en':_0,'data-zh-cn':x=>(x[1]??x[0])}).merge(opt)); | ||
}()); | ||
multi_lang=()=>{ | ||
j2h({'<>':'div',style:'text-align:right',html:['🌐',{'<>':'select',id:'_ml_sel',oninput:'sel_lang(this.value)',html:j2h({'<>':'option',value:_0,html:_1}).batch}]})([['en','English'],['zh-cn','中文']]).dom(); | ||
addEventListener("load", e=> { | ||
var query = new URLSearchParams(location.search); | ||
var s=q('#_ml_sel'); | ||
s.value=query.get('lang')??'zh-cn'; | ||
s.oninput(); | ||
}); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
<html><script>location.pathname=location.pathname.replace(/\/+$/, '')+'/manual/zh-cn';</script><body></body></html> | ||
<!-- <html><head><title>xDial</title><meta charset="UTF-8"><meta name='viewport' content='width=device-width, initial-scale=1'/></head><style> | ||
</style><body style="text-align: center;"> | ||
<h1>xDial</h1> | ||
<h3 style="margin-top:-1em;">天气时钟创意桌摆</h3> | ||
<img style="border-radius: 6px;max-width:90%" src="splash.png"> | ||
<ul style="margin-left:auto;margin-right:auto;width:14em;text-align: left;"> | ||
<li><a href="./manual/zh-cn">使用说明</a></li> | ||
<li><a href="./manual/zh-cn/faq.html">常见问题</a></li> | ||
<li><a href="https://github.com/r-cute/xdial/discussions">讨论 / 建议 / 问题</a></li> | ||
</ul> | ||
</body></html> --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# Sphinx build info version 1 | ||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. | ||
config: f7ecfb36f28e516ecc6ae9121778f3e7 | ||
tags: 645f666f9bcd5a90fca523b33c5a78b7 |
Empty file.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
Alarms | ||
================ | ||
|
||
The alarms behave similarly to alarms on phones. | ||
|
||
Snooze mode | ||
--------------- | ||
|
||
With snooze mode on, the alarm will ring at set time for 10 minutes, followed by a 9 minute break, and repeat this pattern till next day (24 hours). | ||
|
||
.. figure:: _static/alarm.dev.png | ||
:class: dev | ||
|
||
Press left button for snooze, or right button to turn it off. | ||
|
||
|
||
If snooze mode is disabled, it will ring at most 10 minutes then go off. | ||
|
||
Repeat | ||
---------------- | ||
|
||
You can select what days in the week you want the alarm to repeat. If none is selected, it becomes an one-off alarm. | ||
|
||
.. important:: | ||
Don't forget to hit the save button after alarm settings are changed | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
Clock Face customization | ||
============================ | ||
|
||
|
||
.. figure:: _static/menu_cf.dev.png | ||
:class: dev | ||
|
||
Go to "Clock faces" selection interface | ||
|
||
.. figure:: _static/cf_list.dev.png | ||
:class: dev | ||
|
||
Choose from built-in clock faces and optional ones. | ||
|
||
|
||
Built-in clock faces | ||
-------------------------- | ||
|
||
| In settings web page, select relevant clock face from drop down menu. | ||
| Color or style of built-in clock faces are customizable. | ||
.. image:: _static/clock_faces.web.png | ||
:class: web | ||
:align: center | ||
|
||
\ | ||
|
||
|
||
Optional clock faces | ||
------------------------- | ||
|
||
Optional clock faces can be downloaded. | ||
|
||
Select "optional N" from drop down menu. then click the "gallery" link | ||
|
||
.. image:: _static/cf_opt.web.png | ||
:class: web | ||
:align: center | ||
|
||
\ | ||
|
||
Download clock face of choice by clicking the ⬇️ button. | ||
|
||
.. image:: _static/gallery.web.png | ||
:class: web | ||
:align: center | ||
|
||
\ | ||
|
||
.. raw:: html | ||
|
||
<div class="ver"> | ||
<b>Video guide</b> | ||
<iframe src="https://www.bilibili.com/blackboard/html5mobileplayer.html?aid=1206308138&bvid=BV1Sf421q7bu&cid=1628971459&p=1&high_quality=1&danmaku=0" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe> | ||
</div> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
coincap assets | ||
================== | ||
|
||
.. raw:: html | ||
|
||
<style> | ||
#assets{ | ||
border-collapse: collapse; | ||
th,td{border:1px solid grey;text-align: center;} | ||
th{background-color: lightgrey} | ||
} | ||
</style> | ||
<table id='assets'><thead><tr><th>id</th><th>symbol</th><th>name</th></tr></thead><tbody></tbody></table> | ||
<script> | ||
fetch('https://api.coincap.io/v2/assets').then(r=>r.json()).then( | ||
assets=>document.querySelector('#assets tbody').innerHTML += assets.data.map(({id,name,symbol})=>`<tr><td>${id}</td><td>${symbol}</td><td>${name}</td></tr>`).join('') | ||
); | ||
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
FAQ | ||
============ | ||
|
||
Firstly, make sure you `update firmware <ota.html>`_ to latest version. | ||
|
||
How to re-configure WiFi settings? | ||
--------------------------------------- | ||
|
||
When the device failed to access WiFi network on startup, it will enter WiFi provision mode. | ||
|
||
It can also be manually set it to WiFi provision mode, by: | ||
|
||
#. Hold down **left button**, then power on device, until a beep. | ||
#. Follow instructions on device's screen, connect to its WiFi hotspot, then re-configure WiFi settings. | ||
|
||
Settings web page can't be accessed | ||
---------------------------------------- | ||
|
||
#. Make sure your phone is in the same WLAN as the device, and the WiFi is 2.4GHz, not 5GHz. | ||
#. Check that the device's `settings server is turned on <settings.html>`_ | ||
|
||
Weather interface shows no data | ||
------------------------------------ | ||
|
||
#. Follow instructions on how to `setup weather data <weather.html>`_ | ||
#. In the device's weather interface, click right button to force a manual update, see if any :xref:`error code <https://dev.qweather.com/en/docs/resource/status-code/>` shows up. | ||
|
||
|
||
Cryptocurrency prices not showing | ||
----------------------------------- | ||
|
||
#. Check that :xref:`https://coincap.io <https://coincap.io>` is accessible via your router. | ||
#. In the settings web page, make sure you input correct `ids <coincap_assets.html>`_ in the "Others" textbox, if any. | ||
|
||
Device fails to reboot after after firmware update | ||
------------------------------------------------------ | ||
|
||
This happens occasionally when newly updated firmware cannot read previous settings, please try delete previous settings by :ref:`factory reset <How to factory reset?>` | ||
|
||
Device repeatedly reboots after downloading new clock face | ||
--------------------------------------------------------------- | ||
|
||
If errors occur when downloading optional clock faces, or the downloaded resource is malformed, the device may have problem loading the resources on startup, then it reboots, and then fail again... | ||
|
||
You can force device to skip loading clock face resources on startup, then delete them: | ||
|
||
#. Hold down **right button**, then power on device, until a beep. | ||
#. After device starts, go to the settings web page → *Clock Faces* → select *(Optional N)* from dropdown menu → click *delete* button. | ||
#. Check for `firmware updates <ota.html>`_. | ||
#. If the problem remains, try :ref:`factory reset <How to factory reset?>` | ||
|
||
|
||
|
||
How to factory reset? | ||
------------------------- | ||
|
||
* Click the *reset* button in settings web page. | ||
|
||
* Or, you can hard reset device on startup by: | ||
|
||
#. Hold down **both buttons**, then power on device, until you hear 2 beeps. | ||
#. Now the device will delete all custom settings, including QWeather KEY and any optional clock faces, but WiFi settings will be kept. | ||
|
||
|
||
|
||
Can I design my own clock face (and share it)? | ||
--------------------------------------------------- | ||
|
||
It's currently impractical for users to design custom clock faces, due to lack of a user-friendly software with graphical interface to facilitate this. | ||
|
||
|
||
Can I flash 3rd party firmware? | ||
------------------------------------ | ||
|
||
No, the serial port is disabled. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
User Manual | ||
================= | ||
|
||
.. toctree:: | ||
:maxdepth: 1 | ||
|
||
wifi_provision | ||
input | ||
settings | ||
ota | ||
clock_faces | ||
alarms | ||
weather | ||
perfmon | ||
faq | ||
|
||
|
||
Product parameters | ||
-------------------- | ||
|
||
.. csv-table:: | ||
|
||
"Shell", "Resin 3D printed" | ||
"Size", "52×47×54 mm" | ||
"Screen", "Ø 32 mm, 240×240 px" | ||
"Power", "5V, USB Type-C" | ||
"Processor", "ESP32-C3" | ||
"WiFi", "2.4 GHz, 802.11 b/g/n" | ||
"Flash", "32 Mbit" | ||
"Language", "En/中文" | ||
|
||
.. | ||
.. warning:: | ||
The shell is 3D printed with resin, it may soften and deform in high-temperature environment. | ||
.. | ||
Indices and tables | ||
================== | ||
* :ref:`genindex` | ||
* :ref:`modindex` | ||
* :ref:`search` |
Oops, something went wrong.