arthurgleckler
Member since Nov 2022 • Last active Feb 2024Most recent activity
-
- 5 comments
- 152 views
-
I'm wondering whether the problem is just that my code isn't being loaded by the IDE when I hit the
Send to Espruino
button. When I press the button, the left panel flickers, but there's no indication that anything is uploaded to the watch. Also, when I open the console in Chrome Developer Tools, I see this stack trace whenever I hitSend to Espruino
:index.js:93100 Uncaught TypeError: Cannot read properties of undefined (reading '0') at nextCh (index.js:93100:15) at Object.getLexer (index.js:93107:5) at getModulesRequired (index.js:98985:35) at loadModules (index.js:99110:20) at Array.<anonymous> (index.js:98949:7) at cb (index.js:92893:15) at Object.callProcessor (index.js:92898:5) at Object.getEspruinoCode (index.js:95560:14) at index.js:100584:30 at Object.ensureConnected (index.js:100846:7)
-
I updated all the apps on my watch for the first time in months, and now I'm unable to use the web IDE to load the custom Bangle.js 2 watch face I wrote that has been working fine for over a year. I'm probably missing something obvious, but I haven't been able to figure out the problem after hours of trying. The basic problem is that
require("Layout")
fails withUncaught Error: Module "Layout" not found
. When I look at the IDE's "board information" in Settings (see below), it shows the correct board, i.e.BANGLEJS2
, butMODULES
doesn't includeLayout
. But the documentation still talks aboutLayout
, and that library is used in many examples, so it doesn't appear to have been deprecated. Am I missing something obvious?Thanks very much.
VERSION 2v20
GIT_COMMIT fcc9ba4f1
BOARD BANGLEJS2
RAM 262144
FLASH 1048576
SPIFLASH 8388608
HWVERSION 2
STORAGE 8388608
SERIAL 76b4caad-5ff7556e
CONSOLE Bluetooth
MODULES Flash,Storage,heatshrink,crypto,tensorflÂow,locale
EXPTR 495068
APP_RAM_BASE 536884832 -
Wow, I hadn't heard of the Widget Editor app. That is a great idea.
What I ended up doing was to define my own
Bangle.drawWidgets
that makes widgets clear only their own space. Then I made my watch face use the entire display. Since it's circular, there's still room at the corners. All the widgets that I use fit in that space without modification, so I'm done. But with Widget Editor, it will be possible to squeeze even more widgets onto the screen.Thanks.
-
You're absolutely right, of course. I've modified my own app with a modified
drawWidgets
, as you suggest. That's working nicely. In my case, having the widgets clear only the area that they use is great because it leaves the space between them for the top of my clock face, which can now use the full screen area. As long as I don't install too many widgets, there won't be any overlap. -
-
-
I've followed the instructions on uploading modules, but I get
Uncaught ReferenceError: "exports" is not defined
when I try that withwidget_utils.js
.
Thanks for all of your help.
I had already studied the modules README carefully and at length. I had also checked my search path. But those were good ideas.
Over night, I got another idea, and it worked: I cleared all of my cookies from
espruino.com
. After that, I was able to use the IDE to store the app without an error in the Chrome console.However, all
Bangle.http
requests failed without even appearing in the web server's logs. Another form of resetting solved that problem: I rebooted the phone and the watch. The app immediately started communicating.Whew! I don't know how many times I'm going to have to learn this lesson: whenever something doesn't work, just turn it off and on again before trying anything else.