-
Sorry for the lack of reply, I've been really busy and away.
I've just got home and tried two other USB adapters (2.1A and 2.5A) and neither has done anything different. It's still just sitting there flashing the LED constantly.
I could send it back if you want to have a look at it? I think I've reached the limit of what I can do without taking it apart, which I'd rather not do if you want to see the malfunction.
-
I've tried it about 10 times (on charge and not) and still nothing.
I've noticed the LED only flashes (fast and regularly) when it's on charge, and when I start pressing any buttons the flashing becomes very erratic. When I disconnect the charger it turns off completely.
The screen never turns on whether it's charging or not. No errors, no messages, no animations. As it's OLED it could be off or just no data/image I guess.
-
The USB cable is perfectly intact, the pogo pins are free and there's nothing on the pads at all.
The LED is still just flashing irregularly and very fast, but nothing else is happening. I tried all the different combos again and it's just as lifeless.
I've tried charging it directly from my laptop and now it's been sitting on a high power USB mains plug for a few hours. I know the plug is fine because I use it for my phone.
This is normally where I'd re-flash the firmware, but I don't think it's simple (or possible?) to flash them without the OTA part working. I know it's a beta version, so I'm not expecting it to be 100% right away. Hopefully someone will have a winning idea soon.
-
Thanks for the help, I've also tried that combo several times too. Nothing displays on the screen so I can't do the second part of it.
After ~2 hours of charging it's just started flashing the green LED on the back (HR monitor?) randomly but there's still no display/beeps/vibration. I'm going to leave it for a while longer and see what happens.
WRT to the GPS, that makes sense, I was inside when I tried it. I was probably expecting too much of it.
-
Thanks for all the suggestions. I think I've tried them all already.
I've tried all the button combos on the getting started page, and nothing.
After I noticed the tag that says about correct orientation of the charger I made sure it was always the right way round.
I'll try leaving it plugged in again and see if it eventually comes back to life. Maybe it needs more time to get to a state where it can turn on at all. There's just no indication it's doing anything (no charging light etc.), but I'm also not sure there's supposed to be a charging light/animation?
I'd guess the battery died so quickly because something was running still. I think I left it on the clock (screen off) which I assumed was the idle state, but thinking about it that is probably still executing JS. That part I'm not worried about, it was more for context in case it helped.
-
I've just started playing with my Bangle.js and so far I can't seem to get it to charge. It arrived with about 50% battery and within 2 days on idle it got to 0% and turned off, which is a faster discharge than I expected. It's not turned back on at all since.
A green light flashed when I initially connected the charger but now nothing happens. I didn't see the tiny label about orienting the charger so I tried it both ways round initially.
Is there a trick to it? Can I do a soft/hard reset? I don't mind opening it up if I need to.
Also the demo GPS app never seemed to acquire satellites or get a time. Is this a known bug?
-
-
-
Hi,
I'm trying to connect 330 WS2812B LEDs to an ESP8266, using neopixelWrite. However it doesn't seem to work above around 200 LEDs, it starts behaving oddly and turning off earlier LEDs. It looks like it might be an overflow error, could that be possible?
I'm testing it with a really long array, which could also be the problem if Espruino has a maximum array length.
Thanks!
-
-
@MaBe it would seem I included the access point creation after all, I think it must have just about fitted after the increase from 1200 to 1400 jsvars on the ESP8266. The code runs from line 7 in ub.wifi.js and is called if the device fails to connect to the hard coded access point 5 times in a row. It'll create an AP which has a name the same as the ID of the device.
Currently you have to connect to the AP it creates, go to the IP for the device, and enter (in plain text (unfortunately) the new AP and password. It should save the new AP and password once you've submitted them on the page, but it won't survive a reboot.
However, in my tests I can't seem to connect to the AP of the ESP8266 once it's created. I don't know if it's a bug in the code or the hardware misbehaving, or (less likely) a bug in Espruino.
-
@MaBe, I'll get it up once I have a chance to test it and see if it fits with the new build. If it doesn't I'll PM the changes to you so you can give it a shot yourself.
@the1laz, thanks, CSS(D) is a WIP for sure, but hopefully it's useful. I've looked at Node-RED a while ago, but it seems to have come on a lot since then. Thanks for the suggestion, I'll take another look.
If you end up using ub then please let me know, and also if you decide not to for any reason (even if it's one I can't fix. Any feedback will help immensely with my PhD (which is what this is largely in aid of at the moment).
@DrAzzy, it's like @the1laz said, it's designed to hopefully make things a bit simpler after the initial deployment while still retaining the ability to script everything to the minutest detail if you want to. It's also looking forward to when there are potentially hundreds of connected devices in an environment, in which case controlling them from a webpage becomes cumbersome. Instead you can control sets of devices which you can define using CSS selectors, which are already pretty standard.
It's also about integrating with the Web, so in your example you've created a resource (launch.cmd) behind a URI, which works for direct control, but with CSS(D) and ub you don't need to know that the resource exists. You can send a command to an environment and anything that understands it will respond and react. It's a loose vs strong coupling thing.
You can also easily to M2M so you never need to interact with the system at all.
An example of where it's good is one I have working in my room as we speak. I have a Web page where I can set a temperature range, then when the temperature drops below the lower limit, anything that has the 'heater' class turns on and warms the room up until it reaches the upper limit, then turns off. Because the devices are stored as DOM objects it's easy to add a CSS(D) property to say, for example, how powerful each heater is (e.g. power: 3000w). Then if I want to keep my energy usage below a certain level I can only turn on anything that has a 'heater' class and has a power level below 2 kilowatts.
However this also highlights one of the things that needs to be worked out with CSS(D), which is when I use the 'power' attribute do I mean on/off or a power rating, and can some objects be half on. As I said it's a WIP and any contributions to the code or design choices are greatly appreciated.
-
-
To explain a bit more, it has all the tools to make an Espruino (or Node.sj) based device like a light, which you then give an ID and a number of classes, like you would if you were adding an image to a Web page.
Then you can make a Web page or app that controls that light using the ub.js Web UI library, so all you have to do in your JavaScript is initialise ub.js and call ub('#light_id').css('power', 'on') and the light turns on. All the connectivity and messaging is taken care of by the Node.js app.
That kind of implementation is fairly simple for most people here to do (or at least figure out how to do), but ub scales well. So you could instead do ub('.light').css('power', 'on') and control thousands of lights if you wanted to. You can also do things like ub('.light:not(.ceiling)') to select all the lights not on the ceiling.
ub also uses formats, protocols and approaches which make it more compatible with the Web as it already is. Rather than connecting to a device, the device integrates with the Web as it is. It's a subtle difference, but I think it's an important one.
I hope that makes it a bit clearer. There are also a few working examples in the GitHub and I plan to add more when I can.
-
All the details are in the link (I hope). It passes messages between devices, so say you want to turn on all the lights in your house (for example), you can send a single message to the hub with a CSS selector in it to turn them all on.
It's deliberately very versatile. It's a framework and a few libraries to enable you to build large projects in a relatively simple way, in a way that is at least semi standard and open.
-
Hi everyone,
I've spent the last (long) while designing and building some Node.js based software that works as a Web of Things hub. It's designed to connect lots of devices (built or bought) and services together using Web standards (WebSockets, TCP sockets, JSON, HTTP, etc.) as opposed to proprietary formats and APIs.
Why not Internet of Things? Because it's not about the underlying connections (WiFi, Zigbee, serial); they can be anything. ub is a layer on top of that.
The best feature is that its main client is based on Espruino! Espruino allows you to have JavaScript from the browser to the device, so messages don't need to be reformatted or translated to go from one end of the system to the other. It's also free, open source and actively seeking contributions.
That sounded a lot more like an advert than I wanted it to! It's part of my PhD project so while it works, it's not bug free yet. I'd be really interested in your feedback as it's primarily aimed at people like you, and was originally built for Espruino devices.
Here's the link and please let me know what you think: https://github.com/ub-js/ub.js
Thanks!
-
I've just got around to testing this with my DHT22 (uploaded to an ESP-01 10 minutes ago) and I'm also occasionally getting negative numbers. As well as that I'm getting a lot of checksum errors that I wasn't getting with the old library.
Here are some results, in case they're useful:
{
"raw": "010000000110010101000000001110001001111000",
"rh": 40.5, "temp": 22.6 }
{
"raw": "010000000110010100000000001110000101110110",
"rh": 40.4, "temp": 22.5 }
{
"raw": "010000000110010101000000001110000101110111",
"rh": 40.5, "temp": 22.5 }
{
"raw": "010000000110010101000000001110000101110111",
"rh": 40.5, "temp": 22.5 }
{
"raw": "010000000110010101000000001110000101110111",
"rh": 40.5, "temp": 22.5 }
{
"raw": "010000000110010101000000001110000101110111",
"rh": 40.5, "temp": 22.5 }
{ "err": true, "checksumError": true,
"raw": "0100000001100101110000000011100001",
"temp": -1, "rh": -1 }
{
"raw": "010000000110010111000000001110000101111001",
"rh": 40.7, "temp": -22.5 }
{ "err": true, "checksumError": true,
"raw": "010000000110010111000000001110",
"temp": -1, "rh": -1 }
{
"raw": "010000000110010111000000001110000101111001",
"rh": 40.7, "temp": -22.5 }
{
"raw": "010000000110010111000000001110000101111001",
"rh": 40.7, "temp": -22.5 }
{
"raw": "010000000110010111000000001110000101111001",
"rh": 40.7, "temp": -22.5 }
{
"raw": "010000000110010111000000001110000001111000",
"rh": 40.7, "temp": -22.4 }
{ "err": true, "checksumError": true,
"raw": "010000000110010111000000001110000",
"temp": -1, "rh": -1 }
{ "err": true, "checksumError": true,
"raw": "010000000110011001000000001110000",
"temp": -1, "rh": -1 }
{
"raw": "010000000110011000000000001110000001111001",
"rh": 40.8, "temp": 22.4 }
{ "err": true, "checksumError": true,
"raw": "01000000011001100000000000111000",
"temp": -1, "rh": -1 }
{
"raw": "010000000110011000000000001110000101111010",
"rh": 40.8, "temp": 22.5 }
{ "err": true, "checksumError": true,
"raw": "010000000110011001000000001110000",
"temp": -1, "rh": -1 }
{
"raw": "010000000110011001000000001110000001111010",
"rh": 40.9, "temp": 22.4 }
-
Those extra 200 jsvars are a lifesaver. Amazing work. Thanks!
I have a couple of sensors running 24/7 and I'll feedback any problems I find (if any). One of the old builds was resetting after around 48-72 hours of being on, but without any large non-volatile memory to log to I don't know if it's the build or my code not handling an exception.
-
-
-
-
I managed to solve it! I was assuming the library would set the pinMode, but it doesn't (maybe it should?). Here's the working code:
pinMode(2, 'output');
pinMode(4, 'output');
pinMode(5, 'output');
pinMode(12, 'output');
pinMode(13, 'output');
pinMode(14, 'output');
var lcd = require("HD44780").connect(4,5,12,13,14,2);
lcd.print("Hello World");
@DrAzzy, setting the debug mode seems to have no effect, but I've added it in just to cover all bases, thanks for that.
@Wilberforce, my setup was on veroboard and working last time I used it, but thanks for the suggestion.
@Gordon, thanks for your input as always (I still think it's amazing that you put so much time and effort into this). I'm not sure if the driver should set the pinMode or if the Espruinos have different defaults to the ESP8266.
-
-
Just an update, this turned out to be a manufacturing defect with the watch. Gordon replaced it (very quickly) and the new one seems to be doing great.