Hey @peekay123 just following up on this one… it is already noted that pinMode() should be used before calling the fast GPIO functions:
https://docs.particle.io/reference/firmware/photon/#low-level-input-output
I think something has stuffed up. Tried recompiling and flashing my user code to Electron this morning and it runs with flashing magenta, sign that you have changed the default firmware on the cloud build and my local version is out of date. Inspect cloud build, no sign as to what default version is but 0.5.3 is mentioned but not as pre release. No hint in the Firmware Update thread on forum. Decided to just to a particle update in CLI and see what happens, it did update to 0.5.3 even though no mention on the forum. However compiled a test program and flashed it and nothing works, I suspect there are some links missing,
Anyone out there to help???
@pNrie - did you get this resolved? If so it would be interesting to know what the resolution was. If not, can you confirm the firmware target selection for your device in the WebIDE is still set to what you had selected.
Is it the intended behaviour with 0.6.1-rc.1 to get a spark/status/safe-mode
event on each wake from deep sleep on Electrons?
The funny thing is, that I get the expected spark/device/last_reset power_management
event in consold, but then a second or so after I get the spark/status/safe-mode
event inserted below the already present spark/device/last_reset power_management
line.
Where can I find the description of the additional flags for System.sleep()
?
Even in
https://prerelease-docs.particle.io/reference/firmware/electron/#sleep-sleep-
I can only finde SLEEP_NETWORK_STANDBY
but no mention of SLEEP_MODE_SOFTPOWEROFF
- and are there any more?
10 posts were split to a new topic: Problems flashing system firmware to Electron
Does Cloud API increase the publish length?. Since Firmware 0.8.0 onward it should be 622, but I am getting only 255 when subscribing to the events.
I don’t think the change for the API has been deployed yet. Devices running 0.8.0-rc.3 and later can publish 622 characters, but publishing from the API is currently limited to 255 characters until the cloud side change is released.
That's news to me!
So I can now Particle Publish 622 bytes of data in a single publish event?
Yup!
API Field | Prior to 0.8.0 | Since 0.8.0-rc.4 | Comment |
---|---|---|---|
Variable Key | 12 | 64 | |
Variable Data | 622 | 622 | |
Function Key | 12 | 64 | |
Function Argument | 63 | 622 | |
Publish/Subscribe Event Name | 64 | 64 | |
Publish/Subscribe Event Data | 255 | 622 | Cloud API currently still limits to 255, but Device OS can publish 622. Will change Cloud API to accept 622. |
Number of registered Functions or Variables | limited by memory available | limited by memory available |
Is there a release date for the cloud side changes yet? Also, what is the best list/place to get the most up-to-date release information? The release notes on GitHub?
The cloud side changes are done - you can publish 622 bytes from the API to a device now.
I’ve been trying to publish more than 240 bytes but it fails everytime. I noticed the documentation online says the cloud-side changes haven’t been fixed yet - which is the correct answer?
The documentation is wrong. It appears to work, as long as the device being sent the event supports it:
rickkas7:~ rickkas7$ particle publish electron1 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
Published private event: electron1
rickkas7:~ rickkas7$ particle publish electron1 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
Server said event data must be less than623bytes
Could not publish event: [object Object]
Update: I removed the warning about the cloud side not being implemented from the docs.
I have an Argon running 0.8.0-rc.27. I am trying to send ~450 bytes of event data. Particle.publish event data is clearly being truncated at 255 bytes, however sending the same data via Mesh.publish does not suffer this limitation.
Yup, I can confirm that.
As it seems the device OS fork for mesh devices was taken before the extension of the publish buffer.
@rickkas7, can you forward that?
Test code
const char txt[] =
"123456789112345678921234567893123456789412345678951234567896123456789712345678981234567899123456789A"
"123456789112345678921234567893123456789412345678951234567896123456789712345678981234567899123456789B"
"123456789112345678921234567893123456789412345678951234567896123456789712345678981234567899123456789C"
"123456789112345678921234567893123456789412345678951234567896123456789712345678981234567899123456789D"
"123456789112345678921234567893123456789412345678951234567896123456789712345678981234567899123456789E"
"123456789112345678921234567893123456789412345678951234567896123456789712345678981234567899123456789F"
"123456789112345678921234567893123456789412345678951234567896123456789712345678981234567899123456789G";
bool done = false;
void setup() {
Particle.subscribe("send", pubLen, MY_DEVICES);
}
void loop() {
if (done) return;
Particle.publish("send", txt, PRIVATE);
done = true;
delay(5000);
}
void pubLen(const char *event, const char *data) {
char len[6];
snprintf(len, sizeof(len), "%5d", strlen(data));
Particle.publish("len", len, PRIVATE);
done = false;
}
(Photon 1.0.0 reports len == 622
, Argon 0.8.0-rc.27 reports len == 255
)
Yes, thanks for mentioning this, I also ran into this problem.
Besides the data also the variable key and function key are limited by 12 characters for the Mesh devices (tested on Xenon and Argon 0.8.0-rc.27) instead of the 64 mentioned in the docs for devices on 0.8.0.
Compiler says:
In Particle.variable, name must be 12 characters or less
Hope this will be fixed in the next release candidate
I see the same 255 limit on 0.9.0 using Argon.
I have now filed that issue
https://github.com/particle-iot/device-os/issues/1744
This looks to be resolved in 1.1.0-rc.1 and 1.2.0-beta.1
https://github.com/particle-iot/device-os/releases/tag/v1.1.0-rc.1