# Abuse of Intellectual Property Rights

• News

jedishrfu
Mentor
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.

jack action and berkeman
Staff Emeritus
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.

Gold Member
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.

BillTre
Gold Member
2020 Award
Where there is a lawyer, there is a way for some money making argument to be made.

Bystander, Rive and Astronuc
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.​
**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:

the 'main' subdirectory:

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*/
{
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*/
{
File spiffTextFile = SPIFFS.open(textFilePath, "r");
if(spiffTextFile)
{
int i;
for(i=0;i<spiffTextFile.size();i++) //Read upto complete file size
{
}
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.
*/
{
if(SPIFFS.exists(textFileUrlPath))
{
const char* _url = "";
File configFile = SPIFFS.open(textFileUrlPath,"r");
if(configFile)
{
//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
//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)
{
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:

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.

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 lets the calculator use the battery for power instead of its no-longer-present solar cell.

Ophiolite