Firmware Updater

Post Reply
ripper121
Posts: 97
Joined: Mon Jan 28, 2019 7:00 pm
languages_spoken: english
Has thanked: 16 times
Been thanked: 11 times
Contact:

Firmware Updater

Unread post by ripper121 » Thu Feb 14, 2019 4:31 pm

Odroid Go FW Updater

1. Add the WIFI.TXT to the root of your SD-Card and change the SSID and PSK for your WIFI
2. Add the URLLIST.TXT to the root of your SD-Card. If you want you can add more Sources to the list
3. Start the Odroid Go and Boot the OdroidGOFWUpdater
4. Wait for the Update process to finish
5. Now your Odroid Go is up to date

If you want that your App is compatible to the OdroidGOFWUpdater you need to use Github.
Create a release with your latest FW and use the version numbering YYYYMMDD.
Now you can add your release to the URLLIST.TXT https://api.github.com/repos/YourName/Y ... ses/latest

How it works:
1. Read the link from the textfile
2. Use the Github API to get the latest release
3. Check if there is a older Version on the SD card and remove it
4. Check if there is already the latest Version
5. Check if the latest version if >0 Byte (last download is failed)
6. Download the FW to the SD Card /odroid/firmware/release_firmwarename.fw


Download latest: https://github.com/ripper121/odroidgoupdater/releases
Download source: https://github.com/ripper121/odroidgoupdater

WIFI.TXT and URLLIST.TXT: https://github.com/ripper121/odroidgoup ... master/bin
Last edited by ripper121 on Wed Feb 27, 2019 9:36 pm, edited 1 time in total.

ripper121
Posts: 97
Joined: Mon Jan 28, 2019 7:00 pm
languages_spoken: english
Has thanked: 16 times
Been thanked: 11 times
Contact:

Re: Firmware Updater

Unread post by ripper121 » Wed Feb 27, 2019 1:18 am

Yeah its working :)
Two files on SD Card to Config.
WIFI.TXT with SSID and PSK.
URLLIST.TXT with Github release pages.

Still something to do...


First sketch:

Code: Select all

#include <odroid_go.h>
#include <WiFi.h>
#include <HTTPClient.h>
#include "FS.h"
#include "SD.h"
#include "SPI.h"

String githubSources[100];
int sourceCount = 0;
bool httpError = false;

void deleteFile(fs::FS &fs, const char * path) {
  Serial.printf("Deleting file: %s\n", path);
  if (fs.remove(path)) {
    Serial.println("File deleted");
  } else {
    Serial.println("Delete failed");
  }
}

void listDir(fs::FS &fs, const char * dirname, const char * fileToRemove, uint8_t levels) {
  Serial.printf("Listing directory: %s\n", dirname);

  File root = fs.open(dirname);
  if (!root) {
    Serial.println("Failed to open directory");
    return;
  }
  if (!root.isDirectory()) {
    Serial.println("Not a directory");
    return;
  }

  File file = root.openNextFile();
  while (file) {
    if (file.isDirectory()) {
      Serial.print("  DIR : ");
      Serial.println(file.name());
      if (levels) {
        listDir(fs, file.name(), fileToRemove, levels - 1);
      }
    } else {
      String fileName = file.name();
      if (fileName.indexOf(fileToRemove) > 0) {
        deleteFile(SD, fileName.c_str());
      }
    }
    file = root.openNextFile();
  }
}

String escapeParameter(String param) {
  param.replace("+", " ");
  param.replace("%21", "!");
  param.replace("%23", "#");
  param.replace("%24", "$");
  param.replace("%26", "&");
  param.replace("%27", "'");
  param.replace("%28", "(");
  param.replace("%29", ")");
  param.replace("%2A", "*");
  param.replace("%2B", "+");
  param.replace("%2C", ",");
  param.replace("%2F", "/");
  param.replace("%3A", ":");
  param.replace("%3B", ";");
  param.replace("%3D", "=");
  param.replace("%3F", "?");
  param.replace("%40", "@");
  param.replace("%5B", "[");
  param.replace("%5D", "]");
  param.replace("&amp;", "&");
  return param;
}

String midString(String str, String start, String finish) {
  int locStart = str.indexOf(start);
  if (locStart == -1) return "";
  locStart += start.length();
  int locFinish = str.indexOf(finish, locStart);
  if (locFinish == -1) return "";
  return str.substring(locStart, locFinish);
}

void setup() {
  GO.begin();
  pinMode(25, OUTPUT);
  digitalWrite(25, LOW);
  GO.lcd.setTextWrap(false);

  Serial.println();
  Serial.println();
  Serial.println();

  if (!SD.begin()) {
    Serial.println("Card Mount Failed");
    GO.lcd.println("Card Mount Failed");
    return;
  }
  uint8_t cardType = SD.cardType();

  if (cardType == CARD_NONE) {
    Serial.println("No SD card attached");
    GO.lcd.println("No SD card attached");
    return;
  }

  Serial.print("SD Card Type: ");
  GO.lcd.print("SD Card Type: ");
  if (cardType == CARD_MMC) {
    Serial.println("MMC");
    GO.lcd.println("MMC");
  } else if (cardType == CARD_SD) {
    Serial.println("SDSC");
    GO.lcd.println("SDSC");
  } else if (cardType == CARD_SDHC) {
    Serial.println("SDHC");
    GO.lcd.println("SDHC");
  } else {
    Serial.println("UNKNOWN");
    GO.lcd.println("UNKNOWN");
  }

  uint64_t cardSize = SD.cardSize() / (1024 * 1024);
  Serial.printf("SD Card Size: %lluMB\n", cardSize);
  GO.lcd.printf("SD Card Size: %lluMB\n", cardSize);

  String path = "/URLLIST.TXT";
  Serial.print("Reading file: ");
  Serial.println(path);
  GO.lcd.print("Reading file: ");
  GO.lcd.println(path);
  File sourceFile = SD.open(path);
  if (!sourceFile) {
    Serial.println("Failed to open file for reading");
    GO.lcd.println("Failed to open file for reading");
    return;
  }
  Serial.println("Read from file: ");
  GO.lcd.println("Read from file: ");
  while (sourceFile.available()) {
    githubSources[sourceCount] = sourceFile.readStringUntil('\n');
    githubSources[sourceCount].replace("\r", "");
    sourceCount++;
  }
  sourceFile.close();

  for (int i = 0; i < sourceCount; i++) {
    Serial.println(githubSources[i]);
    GO.lcd.println(githubSources[i]);
  }
  Serial.println();
  GO.lcd.println();


  String WifiSSID = "";
  String WifiPSK = "";

  path = "/WIFI.TXT";
  Serial.print("Reading file: ");
  Serial.println(path);
  GO.lcd.print("Reading file: ");
  GO.lcd.println(path);
  File wifiFile = SD.open(path);
  if (!wifiFile) {
    Serial.println("Failed to open file for reading");
    GO.lcd.println("Failed to open file for reading");
    return;
  }
  Serial.println("Read from file: ");
  GO.lcd.println("Read from file: ");
  while (wifiFile.available()) {
    WifiSSID = wifiFile.readStringUntil('\n');
    WifiSSID.replace("\r", "");
    WifiPSK = wifiFile.readStringUntil('\n');
    WifiPSK.replace("\r", "");
    break;
  }
  wifiFile.close();
  Serial.print("SSID: ");
  Serial.println(WifiSSID);
  Serial.print("PSK: ");
  Serial.println(WifiPSK);
  GO.lcd.print("SSID: ");
  GO.lcd.println(WifiSSID);
  GO.lcd.print("PSK: ");
  GO.lcd.println(WifiPSK);
  GO.lcd.println();
  Serial.println();

  WiFi.begin(WifiSSID.c_str(), WifiPSK.c_str());
  Serial.print("Connecting Wifi");
  GO.lcd.print("Connecting Wifi");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    GO.lcd.print(".");
  }
  GO.lcd.println();
  Serial.println();
  delay(3000);



  for (int i = 0; i < sourceCount; i++) {
    // wait for WiFi connection
    if ((WiFi.status()  == WL_CONNECTED)) {
      httpError = false;
      HTTPClient http;
      String latestURL = "", releaseStr = "", fileName = "";

      GO.lcd.clearDisplay();
      GO.lcd.setCursor(0, 0);

      Serial.print("Get Latest FW link from Github API\n");
      Serial.println(githubSources[i]);
      GO.lcd.print("Get Latest FW link from Github API\n");
      GO.lcd.println(githubSources[i]);
      http.begin(githubSources[i]); //HTTP
      int httpCode = http.GET();
      if (httpCode > 0) {
        Serial.printf("[HTTP] GET... code: %d\n", httpCode);
        GO.lcd.printf("[HTTP] GET... code: %d\n", httpCode);
        if (httpCode == HTTP_CODE_OK) {
          String payload = http.getString();
          releaseStr = midString( payload, "\"tag_name\":\"", "\"" );
          latestURL = midString( payload, "\"browser_download_url\":\"", "\"" );

          char *str;
          char sz[256];
          char *p = sz;
          latestURL.toCharArray(sz, 256);
          while ((str = strtok_r(p, "/", &p)) != NULL)  // Don't use \n here it fails
          {
            fileName = str;
          }

          Serial.println(releaseStr);
          Serial.println(fileName);
          Serial.println(latestURL);
          GO.lcd.println(releaseStr);
          GO.lcd.println(fileName);
          GO.lcd.println(latestURL);
        } else if (httpCode == HTTP_CODE_FORBIDDEN ) {
          Serial.println("You reached the rate_limit from Github API, please wait 30 Minutes");
          GO.lcd.println("You reached the rate_limit from Github API, please wait 30 Minutes");
          httpError = true;
        } else {
          httpError = true;
        }
      } else {
        Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
        GO.lcd.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
        httpError = true;
      }
      http.end();

      String path = "/odroid/firmware/" + releaseStr + "_" + fileName;
      listDir(SD, "/odroid/firmware/", fileName.c_str(), 0);
      if (!SD.exists(path)) {
        if (!httpError) {
          Serial.print("Get Latest FW URL\n");
          GO.lcd.print("Get Latest FW URL\n");
          http.begin(latestURL);
          int httpCode = http.GET();
          if (httpCode > 0) {
            Serial.printf("[HTTP] GET... FW: %d\n", httpCode);
            GO.lcd.printf("[HTTP] GET... FW: %d\n", httpCode);
            String payload = http.getString();
            if (httpCode == HTTP_CODE_FOUND || httpCode == HTTP_CODE_OK) {
              latestURL = escapeParameter(midString( payload, "You are being <a href=\"", "\">redirected" ));
              Serial.println("URL-Decode:");
              Serial.println(latestURL);
              GO.lcd.println("URL-Decode:");
              GO.lcd.println(latestURL);
            } else {
              httpError = true;
            }
          } else {
            Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
            GO.lcd.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
            httpError = true;
          }
          http.end();


          if (!httpError) {
            Serial.print("Download latest FW from Github.\n");
            GO.lcd.print("Download latest FW from Github.\n");
            http.begin(latestURL);
            int httpCode = http.GET();
            if (httpCode > 0) {
              Serial.printf("[HTTP] GET... code: %d\n", httpCode);
              GO.lcd.printf("[HTTP] GET... code: %d\n", httpCode);
              int len = http.getSize();
              uint8_t buff[2048] = { 0 };
              WiFiClient * stream = http.getStreamPtr();
              Serial.print("Downloading FW to SD Card:");
              Serial.println(path);
              GO.lcd.print("Downloading FW to SD Card:");
              GO.lcd.println(path);
              File file = SD.open(path, FILE_WRITE);
              if (!file) {
                Serial.println("Failed to open file for writing");
                GO.lcd.println("Failed to open file for writing");
              } else {
                Serial.print("Size:");
                Serial.println(len);
                GO.lcd.print("Size:");
                GO.lcd.println(len);
                int lenLoad = len;
                // read all data from server
                while (http.connected() && (len > 0 || len == -1)) {
                  // get available data size
                  size_t size = stream->available();
                  if (size) {
                    // read up to 128 byte
                    int c = stream->readBytes(buff, ((size > sizeof(buff)) ? sizeof(buff) : size));
                    if (!file.write(buff, c)) {
                      Serial.println("Write failed");
                      GO.lcd.println("Write failed");
                      break;
                    }
                    Serial.print("Loading:");
                    Serial.print(abs(lenLoad - len));
                    Serial.print(" / ");
                    Serial.println(len);
                    GO.lcd.setCursor(0, 200);
                    GO.lcd.print("                                        ");
                    GO.lcd.setCursor(0, 200);
                    GO.lcd.print("Loading:");
                    GO.lcd.print(abs(lenLoad - len));
                    GO.lcd.print(" / ");
                    GO.lcd.println(len);
                    if (len > 0) {
                      len -= c;
                    }
                  }
                }
              }
              file.close();
              Serial.print("[HTTP] connection closed or Download Finished.\n");
              GO.lcd.print("[HTTP] connection closed or Download Finished.\n");
            } else {
              Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
              GO.lcd.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
            }
            http.end();
          }
        }

        if (httpError) {
          Serial.println("Error downloading Firmware!");
          GO.lcd.println("Error downloading Firmware!");
        }
      } else
      {
        Serial.println("File is already up to date!");
        GO.lcd.println("File is already up to date!");
      }
    }
    else
    {
      Serial.println("No Connection!");
      GO.lcd.println("No Connection!");
    }

    Serial.println("");
    Serial.println("");
    Serial.println("");
    GO.lcd.println("");
    delay(1000);
  }
  Serial.println("Everything is Updated!");

  GO.lcd.clearDisplay();
  GO.lcd.setCursor(0, 0);
  GO.lcd.println("Everything is Updated!");
}

void loop() {
  GO.update();
}
URLLIST.TXT

Code: Select all

https://api.github.com/repos/OtherCrashOverride/go-play/releases/latest
https://api.github.com/repos/OtherCrashOverride/bt-keyboard-go/releases/latest
https://api.github.com/repos/OtherCrashOverride/frodo-go/releases/latest
https://api.github.com/repos/OtherCrashOverride/MicroPython_ESP32_psRAM_LoBo-odroid-go/releases/latest
https://api.github.com/repos/OtherCrashOverride/stella-odroid-go/releases/latest
https://api.github.com/repos/OtherCrashOverride/prosystem-odroid-go/releases/latest
https://api.github.com/repos/ripper121/odroidgowifisniffer/releases/latest
https://api.github.com/repos/mad-ady/doom-odroid-go/releases/latest
https://api.github.com/repos/mad-ady/doom-ng-odroid-go/releases/latest
https://api.github.com/repos/asirinelli/odroid-go-bb8/releases/latest
https://api.github.com/repos/vbrusca/FlappyBirdCloneOdroidGo/releases/latest
https://api.github.com/repos/Schuemi/c64-go/releases/latest
https://api.github.com/repos/Schuemi/fMSX-go/releases/latest

WIFI.TXT

Code: Select all

YourSSID
YourPSK

Serial Output:

Code: Select all

SD Card Size: 7580MB
Reading file: /URLLIST.TXT
Read from file: 
https://api.github.com/repos/OtherCrashOverride/go-play/releases/latest
https://api.github.com/repos/OtherCrashOverride/bt-keyboard-go/releases
https://api.github.com/repos/OtherCrashOverride/frodo-go/releases/latest
https://api.github.com/repos/OtherCrashOverride/MicroPython_ESP32_psRAM_LoBo-odroid-go/releases/latest
https://api.github.com/repos/OtherCrashOverride/stella-odroid-go/releases/latest
https://api.github.com/repos/OtherCrashOverride/prosystem-odroid-go/releases/latest
https://api.github.com/repos/OtherCrashOverride/nes-mp-go/releases/latest
https://api.github.com/repos/ripper121/odroidgowifisniffer/releases/latest
https://api.github.com/repos/mad-ady/doom-odroid-go/releases/latest
https://api.github.com/repos/mad-ady/doom-ng-odroid-go/releases/latest
https://api.github.com/repos/asirinelli/odroid-go-bb8/releases/latest
https://api.github.com/repos/vbrusca/FlappyBirdCloneOdroidGo/releases/latest
https://api.github.com/repos/Schuemi/c64-go/releases/latest
https://api.github.com/repos/Schuemi/fMSX-go/releases/latest
 

Reading file: /WIFI.TXT
Read from file: 
SSID
PSK


........

Get Latest FW link from Github API
https://api.github.com/repos/OtherCrashOverride/go-play/releases/latest
[HTTP] GET... code: 200
20181004
Go-Play.fw
https://github.com/OtherCrashOverride/go-play/releases/download/20181004/Go-Play.fw
Get Latest FW URL
[HTTP] GET... FW: 302
URL-Decode:
https://github-production-release-asset-2e65be.s3.amazonaws.com/137759166/b8044e80-c7b8-11e8-88a7-2215f147170d?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A/20190226/us-east-1/s3/aws4_request&X-Amz-Date=20190226T161236Z&X-Amz-Expires=300&X-Amz-Signature=69cbd455251d7dde002f45cbdb9039e06495d1003d16974334cb974e8bf7b06b&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment;%20filename=Go-Play.fw&response-content-type=application/octet-stream
Download latest FW from Github.
[HTTP] GET... code: 200
Downloading FW to SD Card:/20181004_Go-Play.fw
Size:3471764
[HTTP] connection closed or Download Finished.


User avatar
odroid
Site Admin
Posts: 31394
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 54 times
Been thanked: 186 times
Contact:

Re: Firmware Updater

Unread post by odroid » Wed Feb 27, 2019 9:15 am

Very interesting project. :o
Smart idea to get the latest firmware binaries automatically from the WiFi connection.

User avatar
mad_ady
Posts: 6180
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1, H2, N2
Location: Bucharest, Romania
Has thanked: 124 times
Been thanked: 91 times
Contact:

Re: Firmware Updater

Unread post by mad_ady » Wed Feb 27, 2019 3:50 pm

Now all that is needed is an "official" store with curated links to all projects.

ripper121
Posts: 97
Joined: Mon Jan 28, 2019 7:00 pm
languages_spoken: english
Has thanked: 16 times
Been thanked: 11 times
Contact:

Re: Firmware Updater

Unread post by ripper121 » Wed Feb 27, 2019 4:45 pm

I would say Github is a good Option, because there is everything in one place (code and binarys).
But if you have better suggestions :).
We need also a standard in Version naming.
Maybe we could implement that updater directly into the Odroid Go FW.

crashoverride
Posts: 4471
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 53 times
Contact:

Re: Firmware Updater

Unread post by crashoverride » Wed Feb 27, 2019 6:35 pm

mad_ady wrote:
Wed Feb 27, 2019 3:50 pm
Now all that is needed is an "official" store with curated links to all projects.
ODROID-GO should be on everyone's list of essential items to pack in their "Zombie Apocalypse Bugout-bag". It is actually part of my software design rules that it not require or use the internet. As an added safety feature, my software designs do not include multiplayer either. Multiplayer 'friends' are just zombies waiting to turn and eat your brains!
:D

ripper121
Posts: 97
Joined: Mon Jan 28, 2019 7:00 pm
languages_spoken: english
Has thanked: 16 times
Been thanked: 11 times
Contact:

Re: Firmware Updater

Unread post by ripper121 » Wed Feb 27, 2019 6:42 pm

Speaking of Zombies and ESP: https://www.youtube.com/watch?v=TjCUs_oYcsY
That's really cool idea :)


User avatar
mad_ady
Posts: 6180
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1, H2, N2
Location: Bucharest, Romania
Has thanked: 124 times
Been thanked: 91 times
Contact:

Re: Firmware Updater

Unread post by mad_ady » Wed Feb 27, 2019 10:20 pm

Your firmware should be part of the urllist.txt file :D

ripper121
Posts: 97
Joined: Mon Jan 28, 2019 7:00 pm
languages_spoken: english
Has thanked: 16 times
Been thanked: 11 times
Contact:

Re: Firmware Updater

Unread post by ripper121 » Wed Feb 27, 2019 10:22 pm

yes it is already on the github page :)

Schuemi
Posts: 36
Joined: Mon Aug 13, 2018 12:45 am
languages_spoken: english, german, Plattdüütsch
ODROIDs: Odroid Go
Has thanked: 0
Been thanked: 0
Contact:

Re: Firmware Updater

Unread post by Schuemi » Sun Mar 03, 2019 7:20 am

Hi,

the Schuemi repos schould work now. The problem was, I marked the releses as pre-release. So they were not listed.

Very cool updater!

ripper121
Posts: 97
Joined: Mon Jan 28, 2019 7:00 pm
languages_spoken: english
Has thanked: 16 times
Been thanked: 11 times
Contact:

Re: Firmware Updater

Unread post by ripper121 » Sun Mar 03, 2019 7:24 am

Ah nice to know that this was the problem :)

ripper121
Posts: 97
Joined: Mon Jan 28, 2019 7:00 pm
languages_spoken: english
Has thanked: 16 times
Been thanked: 11 times
Contact:

Re: Firmware Updater

Unread post by ripper121 » Mon Mar 11, 2019 4:49 pm

Update:
- added Super Go-Play

Code: Select all

https://api.github.com/repos/ripper121/odroidgoupdater/releases/latest
https://api.github.com/repos/OtherCrashOverride/frodo-go/releases/latest
https://api.github.com/repos/OtherCrashOverride/MicroPython_ESP32_psRAM_LoBo-odroid-go/releases/latest
https://api.github.com/repos/OtherCrashOverride/stella-odroid-go/releases/latest
https://api.github.com/repos/OtherCrashOverride/prosystem-odroid-go/releases/latest
https://api.github.com/repos/OtherCrashOverride/go-play/releases/latest
https://api.github.com/repos/OtherCrashOverride/bt-keyboard-go/releases/latest
https://api.github.com/repos/asirinelli/odroid-go-bb8/releases/latest
https://api.github.com/repos/vbrusca/FlappyBirdCloneOdroidGo/releases/latest
https://api.github.com/repos/mad-ady/doom-odroid-go/releases/latest
https://api.github.com/repos/mad-ady/doom-ng-odroid-go/releases/latest
https://api.github.com/repos/ripper121/OdroidGoOSMGPSOffline/releases/latest
https://api.github.com/repos/ripper121/odroidgowifisniffer/releases/latest
https://api.github.com/repos/mattkj/super-go-play/releases/latest

derpjosh
Posts: 4
Joined: Wed Mar 13, 2019 4:09 am
languages_spoken: english
ODROIDs: 1
Has thanked: 0
Been thanked: 0
Contact:

Re: Firmware Updater

Unread post by derpjosh » Wed Mar 13, 2019 4:11 am

After selecting the FW updater it begins to write and goes to a black screen shortly after. Is there a correct syntax on how the SSID and PSK need to be added in the wifi text file?

ripper121
Posts: 97
Joined: Mon Jan 28, 2019 7:00 pm
languages_spoken: english
Has thanked: 16 times
Been thanked: 11 times
Contact:

Re: Firmware Updater

Unread post by ripper121 » Wed Mar 13, 2019 5:04 pm

After repower it should work.

derpjosh
Posts: 4
Joined: Wed Mar 13, 2019 4:09 am
languages_spoken: english
ODROIDs: 1
Has thanked: 0
Been thanked: 0
Contact:

Re: Firmware Updater

Unread post by derpjosh » Thu Mar 14, 2019 3:28 am

ripper121 wrote:
Wed Mar 13, 2019 5:04 pm
After repower it should work.
That worked but for my it just shows connecting to wifi and the progress bar filling the screen. How long does it take until there is a time out or a response that the connection was successful?

ripper121
Posts: 97
Joined: Mon Jan 28, 2019 7:00 pm
languages_spoken: english
Has thanked: 16 times
Been thanked: 11 times
Contact:

Re: Firmware Updater

Unread post by ripper121 » Thu Mar 14, 2019 4:41 pm

"1. Add the WIFI.TXT to the root of your SD-Card and change the SSID and PSK for your WIFI
2. Add the URLLIST.TXT to the root of your SD-Card. If you want you can add more Sources to the list"

Please try to add a new line at the end of the Textfiles
Like that.

Code: Select all

SSID
PSK

Is your SSID and PSK shown correctly on the screen?
'SSID' 'PSK' (your PSK and SSID should match with the textfile without any extra chrakters)

I Have now added Wifi.disconnect() which will remove old Wifi credentials. So please test it with this FW:
https://github.com/ripper121/odroidgoup ... Updater.fw
Last edited by ripper121 on Thu Mar 14, 2019 5:02 pm, edited 1 time in total.

ripper121
Posts: 97
Joined: Mon Jan 28, 2019 7:00 pm
languages_spoken: english
Has thanked: 16 times
Been thanked: 11 times
Contact:

Re: Firmware Updater

Unread post by ripper121 » Thu Mar 14, 2019 4:42 pm

Update:
- added c64-go

the Github version of these file is always up to date.

Code: Select all

https://api.github.com/repos/ripper121/odroidgoupdater/releases/latest
https://api.github.com/repos/OtherCrashOverride/frodo-go/releases/latest
https://api.github.com/repos/OtherCrashOverride/MicroPython_ESP32_psRAM_LoBo-odroid-go/releases/latest
https://api.github.com/repos/OtherCrashOverride/stella-odroid-go/releases/latest
https://api.github.com/repos/OtherCrashOverride/prosystem-odroid-go/releases/latest
https://api.github.com/repos/OtherCrashOverride/go-play/releases/latest
https://api.github.com/repos/OtherCrashOverride/bt-keyboard-go/releases/latest
https://api.github.com/repos/asirinelli/odroid-go-bb8/releases/latest
https://api.github.com/repos/vbrusca/FlappyBirdCloneOdroidGo/releases/latest
https://api.github.com/repos/mad-ady/doom-odroid-go/releases/latest
https://api.github.com/repos/mad-ady/doom-ng-odroid-go/releases/latest
https://api.github.com/repos/ripper121/OdroidGoOSMGPSOffline/releases/latest
https://api.github.com/repos/ripper121/odroidgowifisniffer/releases/latest
https://api.github.com/repos/mattkj/super-go-play/releases/latest
https://api.github.com/repos/Schuemi/c64-go/releases/latest

derpjosh
Posts: 4
Joined: Wed Mar 13, 2019 4:09 am
languages_spoken: english
ODROIDs: 1
Has thanked: 0
Been thanked: 0
Contact:

Re: Firmware Updater

Unread post by derpjosh » Fri Mar 15, 2019 1:13 am

ripper121 wrote:
Thu Mar 14, 2019 4:41 pm
"1. Add the WIFI.TXT to the root of your SD-Card and change the SSID and PSK for your WIFI
2. Add the URLLIST.TXT to the root of your SD-Card. If you want you can add more Sources to the list"

Please try to add a new line at the end of the Textfiles
Like that.

Code: Select all

SSID
PSK

Is your SSID and PSK shown correctly on the screen?
'SSID' 'PSK' (your PSK and SSID should match with the textfile without any extra chrakters)

I Have now added Wifi.disconnect() which will remove old Wifi credentials. So please test it with this FW:
https://github.com/ripper121/odroidgoup ... Updater.fw
yep, both are added to the root directory and urllist.txt is untouched. I created a test ssid and can connect to the ssid through my phone. Wifi.txt is

examplewifi
password123

Also, does it allow ssid with a space? If it was "example wifi" as and ssid would it read it just fine?

ripper121
Posts: 97
Joined: Mon Jan 28, 2019 7:00 pm
languages_spoken: english
Has thanked: 16 times
Been thanked: 11 times
Contact:

Re: Firmware Updater

Unread post by ripper121 » Fri Mar 15, 2019 4:41 pm

did you tried the new FW?

do you have a new line at the end of your wifi.txt file?

Code: Select all

SSID
PSK
NEWLINE

derpjosh
Posts: 4
Joined: Wed Mar 13, 2019 4:09 am
languages_spoken: english
ODROIDs: 1
Has thanked: 0
Been thanked: 0
Contact:

Re: Firmware Updater

Unread post by derpjosh » Fri Mar 15, 2019 11:54 pm

Looks like the issue has to do with the hardware. Currently using a 5ghz/2.5 ghz mesh wifi setup and after having it to connect to an access point that's just the 2.5ghz frequency I was able to update and just fine.

User avatar
mad_ady
Posts: 6180
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4, C1+, C2, N1, H2, N2
Location: Bucharest, Romania
Has thanked: 124 times
Been thanked: 91 times
Contact:

Re: Firmware Updater

Unread post by mad_ady » Sat Mar 16, 2019 12:10 am

Esp32 supports only 2.4GHz wifi

Post Reply

Return to “Projects”

Who is online

Users browsing this forum: No registered users and 1 guest