platformio / bintray-secure-ota Goto Github PK
View Code? Open in Web Editor NEWOver-The-Air firmware upgrades for the Internet of Things devices with JFrog @Bintray
License: Apache License 2.0
Over-The-Air firmware upgrades for the Internet of Things devices with JFrog @Bintray
License: Apache License 2.0
I tried the example code, and the last days it ran successful.
Today i get certificate X.509 error when trying do download binary.
Maybe bintray changed some of it certificates which are copied in BintrayCertificates.h
?
How can i check this?
How can we change a certificate on a node, after bintray made changes on their server side certificates?
How do we handle certifcate renewals?
I'm trying to setup firmware update via bintray & platformIO, using the example code.
I created user, repository and package, uploaded a .bin file, and gave it a version.
Wifi connection and ssl login to bintray are successful.
But can't download it with the library to my ESP32:
[I][BintrayClient.cpp:121] getLatestVersion(): Error: Could not parse JSON!
[I][SecureOTA.cpp:46] checkFirmwareUpdates(): Could not load info about the latest firmware, so nothing to update. Continue
Any hints what i am doing wrong? Or is it a bug?
I find the video hard to follow, and it doesn't really help me understand what is happening. Is there a proper step-by-step instruction that a script kiddy like me can follow?
Bintray will shutdown soon - see their info here.
What cloud platform should we use instead of Bintray?
When I try to compile, I get the following error:
lib\BintrayClient\src\BintrayClient.cpp:115:11: error: StaticJsonBuffer is a class from ArduinoJson 5. Please see arduinojson.org/upgrade to learn how to upgrade your program to ArduinoJson version 6
StaticJsonBuffer<bufferSize> jsonBuffer;
Now I guess the error is my "wrong" ArduinoJson version, but wouldn't it be nice if your code ran with the latest ArduinoJson version?
I watched the video about JFrog Bintray and tried to make it work here. Follow the steps that I did:
[bintray]
user =
repository = WStation
package = bintray-secure-ota
api_token =
[wifi]
ssid =
password =
release_version = 1
…
When env_default setting (in platformio.ini) is set to release, it uploads the code to bintray. It is working. When I set the env_default to debug and uploaded the firmware to the ESP32, the terminal shows the following log:
Device version: v.0
Connecting to … connected!
IP address: 192.168.100.126
[E][ssl_client.cpp:33] handle_error(): X509 - Certificate verification failed, e.g. CRL, CA or signature check failed
[E][ssl_client.cpp:35] handle_error(): MbedTLS message code: -9984
[E][WiFiClientSecure.cpp:109] connect(): start_ssl_client: -9984
GET request failed, error, connection refused
Error: Could not parse JSON!
Could not load info about the latest firmware, so nothing to update. Continue …
How can I handle this issue?
BintrayClient.cpp is using ArduinoJson 5.x. This makes it difficult to integrate bintray-secure-ota in projects which use/need ArduinoJson 6.x.
And here is another one...
AttributeError: module 'platformio.util' has no attribute 'load_project_config':
This happens when calling
project_config = util.load_project_config()
in publish_firmware.py.
Any hints?
I'm trying to upload firmware files with platformIO, but i always run on error:
CURRENT: upload_protocol = custom
Uploading .pioenvs\release\firmware_v_1.bin
Uploading firmware_v_1.bin to Bintray. Version: 1
Failed to submit package: 401
{"message":"This resource requires authentication"}
API-token is set in platformio.ini
If the upload to bintray fails, there is no return code from publish_firmware causing the overall pio execution to declare SUCCESS, even though it failed. How can publish_firmware return an error?
@ivankravets Thanks for the platformio - bintray enhancement!
I installed bintray-secure-ota by
lib_deps_ota = https://github.com/platformio/bintray-secure-ota.git
in my platformio.ini
It did install after first time building my code
Dependency Graph
|-- <ArduinoJson> 5.13.2
|-- <bintray-secure-ota> #d0899cd
| |-- <Update> 1.0
| |-- <WiFi> 1.0
| |-- <WiFiClientSecure> 1.0
| | |-- <WiFi> 1.0
but the library manager cannot find BintrayClient.h
by inlude in my OTA.h:
#include <BintrayClient.h>
In file included from src\OTA.cpp:18:0:
src\OTA.h:9:27: fatal error: BintrayClient.h: No such file or directory
***********************************************************************
* Looking for BintrayClient.h dependency? Check our library registry!
*
* CLI > platformio lib search "header:BintrayClient.h"
* Web > https://platformio.org/lib/search?query=header:BintrayClient.h
*
***********************************************************************
compilation terminated.
I want to select package name for bintray upload path in platformio.ini by using the current environment name.
e.g.
[env:esp32heltec]
...
[bintray]
package = ${sysenv.PIOENV}
but this does not work this way.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.