Abuse of Intellectual Property Rights

  • News
  • Thread starter jack action
  • Start date
  • Tags
    Property
No JSON file found, indicating that the URL is not accessible { Serial.println("URL not accessible"); } }In summary, a hacker modified a cheap Casio calculator with code he says he wrote from scratch. Casio came down on him claiming he used proprietary Casio
Physics news on Phys.org
  • #2
So basically, a hacker modded a cheap CASIO calculator with code he says he wrote from scratch using publicly available resources. Someone commented in the article that the mod could be used to cheat on exams. The hacker said he hoped that's not the case.

Casio came down on him claiming he used proprietary Casio code and then used the DMCA to take down his project on Github. He is fighting back.

I think Casio used the DMCA to protect their brand especially in light of the potential for cheating mentioned earlier which could get Casio banned from the educational world out of fear that it could happen and teachers wouldn't know how to combat it without a Casio ban. That could cost them a lot of money I'm sure.
 
  • Like
  • Skeptical
Likes jack action and berkeman
  • #3
Casio claims the repository contains its source code. The repo owners claims it doesn't. Shouldn't take too long to see who is right.
 
  • #4
Vanadium 50 said:
Casio claims the repository contains its source code.
How do you access private source code within the calculator? That would be pretty absurd to put it there in the first place.
 
  • #5
Where there is a lawyer, there is a way for some money making argument to be made.
 
  • Like
Likes Bystander, Rive and Astronuc
  • #6
Vanadium 50 said:
Casio claims the repository contains its source code. The repo owners claims it doesn't. Shouldn't take too long to see who is right.
It's prima facie a false complaint.

The DMCA complaint (available at https://github.com/github/dmca/commit/1e533a25356944db37d238361989ec1ceb2cc215) says in pertinent part:
**Please provide a detailed description of the original copyrighted work that has allegedly been infringed. If possible, include a URL to where it is posted online.**
It came to our attention that the below-mentioned repository is using copyrighted source code in order to modify Casio's copyrighted program.​
Link to the original content:​
**What files should be taken down? Please provide URLs for each file, or if the entire repository, the repository’s URL.**
The entire repository is infringing. In accordance with your Guide, I explicitly confirm that all of the content at the URL infringes.​

The code that is cited as the copyrighted code is completely unrelated to the code in the repository, which is all .ino (Arduino) files, and contains no Casio proprietary code.

The guy changed the project name and description to:
esp-oled-firebase-Integration
0.91" inch OLED and a esp8266-12E, which is integrated to firebase to fetch text file and send and receive text message.​
Here's the file list:

1594861547755.png


the 'main' subdirectory:

1594860035986.png


Two candidates that I looked at for possible infringement are the firebase code, and the data management code.

Here's firebase:
Code:
//To fetch data from firebase, User2 should be your patners user name
String fetchStringData()
{

   if (Firebase.getString(firebaseData,"/User2/chat"))
     {
        if(firebaseData.stringData())
        {
          return firebaseData.stringData();
        }
        else
        {
          return "No Text!";
        }
     }
     else
     {
      Serial.println(firebaseData.errorReason());
     }
}

//To send data to firebase, User1 should be where you send the data
  void insertData(String value)
  {
    if (Firebase.set(firebaseData, "/User1/chat", value))
    {
      return;
    }
    else
    {
      Serial.println(firebaseData.errorReason());
    }
  }
and here's data management:
Code:
/*This function writes the data to the file system*/
void writeDownloads()
{
  File spiffTextFile = SPIFFS.open(textFilePath, "w");
  if(spiffTextFile)
  {
    spiffTextFile.print(textFile);
    spiffTextFile.close();
  }
}

/*This reads the data from the file system and store it in textFile variable*/
void readDownloads()
{
  File spiffTextFile = SPIFFS.open(textFilePath, "r");
  if(spiffTextFile)
  {
    int i;
    for(i=0;i<spiffTextFile.size();i++) //Read upto complete file size
      {
        textFile += (char)spiffTextFile.read();
      }
      spiffTextFile.close();  //Close file
  }
}

/*
  To read JSON file form flash
  this setup is not necessary if you have to read single URL, u can get away with above function
  but this helps us to get multiple fields in the esp hosted server to enter multiple data.
*/
void readFlashJson()
{
    if(SPIFFS.exists(textFileUrlPath))
  {
    const char* _url = "";
    File configFile = SPIFFS.open(textFileUrlPath,"r");
    if(configFile)
    {
      Serial.println("Reading to file");
      //getting the size of the file
      size_t size = configFile.size();
      //using buffer to get the data
      std::unique_ptr<char[]> buf(new char[size]);
      //store it in buffer
      configFile.readBytes(buf.get(), size);
      //closing the file
      configFile.close();
      //json buffer to store the json
      const size_t capacity = JSON_OBJECT_SIZE(1);
      //json buffer to store the json
      DynamicJsonDocument doc(capacity);
      //parsing the json object
      DeserializationError error = deserializeJson(doc,buf.get());
       if(!error)
      {
        _url = doc["link"];
        textFileUrl = _url;

  /*More debugging*/

//        Serial.println(textFileUrl);
//        Serial.println();
      }
    }
  }
}
Downloading the Casio code from the link in the DMCA complaint requires agreeing to their license, and especially given that it's the subject of a DMCA complaint, I won't post it here. It's 59 lines of sample code for a fx-FD10 Pro that imports fields from a CSV file (using a USB connection) ##-## here's what that file looks like in Excel:

1594862664298.png


The Casio code clearly has no contributory relationship whatsoever to the project code. None of the project code has anything to do with the calculator. The project doesn't even use any of the fx-991MS calculator's hardware other than the case.

1594861237437.png

Everything runs in the wifi processor, input is entirely from the Hall Effect sensors, and output is only to the OLED screen that sits where the solar cell was. The project uses a battery, and let's the calculator use the battery for power instead of its no-longer-present solar cell.
 

Suggested for: Abuse of Intellectual Property Rights

Back
Top