Permalink
Browse files

Added warning for uncertified boards

  • Loading branch information...
Federico Fissore
Federico Fissore committed Mar 6, 2015
1 parent 25ddcb8 commit 39d1dfc9995e75e858fa238c7c8881ee2d7679c6
@@ -0,0 +1,57 @@
/*
* This file is part of Arduino.
*
* Arduino is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2015 Arduino LLC (http://www.arduino.cc/)
*/
package cc.arduino.view;
import java.awt.event.ActionEvent;
import java.util.HashMap;
import java.util.Map;
public class Event extends ActionEvent {
private final Map<String, Object> payload;
public Event(Object source, int id, String command) {
super(source, id, command);
this.payload = new HashMap<String, Object>();
}
public Map<String, Object> getPayload() {
return payload;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(super.toString());
sb.append("\n").append(payload.toString());
return sb.toString();
}
}
@@ -0,0 +1,36 @@
/*
* This file is part of Arduino.
*
* Arduino is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2015 Arduino LLC (http://www.arduino.cc/)
*/
package cc.arduino.view;
public interface EventListener {
void eventHappened(Event event);
}
@@ -0,0 +1,59 @@
/*
* This file is part of Arduino.
*
* Arduino is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2015 Arduino LLC (http://www.arduino.cc/)
*/
package cc.arduino.view;
import processing.app.Preferences;
import java.awt.*;
public class ShowUncertifiedBoardWarning implements Runnable {
private final Frame parent;
public ShowUncertifiedBoardWarning(Frame parent) {
this.parent = parent;
}
@Override
public void run() {
UncertifiedBoardWarning uncertifiedBoardWarning = new UncertifiedBoardWarning(parent, new EventListener() {
@Override
public void eventHappened(cc.arduino.view.Event event) {
if (!"uncertified_board_warning_ok_pressed".equals(event.getActionCommand())) {
return;
}
Preferences.set("uncertifiedBoardWarning_dontShowMeAgain", event.getPayload().get("dontShowMeAgain").toString());
}
});
uncertifiedBoardWarning.setLocationRelativeTo(parent);
uncertifiedBoardWarning.setVisible(true);
}
}
@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
<Properties>
<Property name="defaultCloseOperation" type="int" value="2"/>
<Property name="title" type="java.lang.String" value="_(&quot;Not supported board&quot;)"/>
<Property name="modal" type="boolean" value="true"/>
<Property name="name" type="java.lang.String" value="uncertifiedBoardWarning" noResource="true"/>
<Property name="resizable" type="boolean" value="false"/>
</Properties>
<SyntheticProperties>
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>
<SyntheticProperty name="generateCenter" type="boolean" value="false"/>
</SyntheticProperties>
<AuxValues>
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
</AuxValues>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jLabel1" pref="0" max="32767" attributes="0"/>
<Group type="102" attributes="0">
<Component id="dontShowMeAgain" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="206" max="32767" attributes="0"/>
<Component id="ok" min="-2" pref="82" max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel1" min="-2" pref="87" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="dontShowMeAgain" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="ok" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JLabel" name="jLabel1">
<Properties>
<Property name="text" type="java.lang.String" value="&lt;html&gt;&lt;body&gt;This board comes from an non certified manufacturer.&lt;br&gt;We won&apos;t be able to provide any support if it doesn&apos;t work as expected.&lt;/body&gt;&lt;/html&gt;"/>
<Property name="verticalAlignment" type="int" value="1"/>
</Properties>
</Component>
<Component class="javax.swing.JCheckBox" name="dontShowMeAgain">
<Properties>
<Property name="text" type="java.lang.String" value="Don&apos;t show me again"/>
<Property name="name" type="java.lang.String" value="dontShowMeAgain" noResource="true"/>
</Properties>
</Component>
<Component class="javax.swing.JButton" name="ok">
<Properties>
<Property name="text" type="java.lang.String" value="OK"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="okActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Form>
@@ -0,0 +1,146 @@
/*
* This file is part of Arduino.
*
* Arduino is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As a special exception, you may use this file as part of a free software
* library without restriction. Specifically, if other files instantiate
* templates or use macros or inline functions from this file, or you compile
* this file and link it with other files to produce an executable, this
* file does not by itself cause the resulting executable to be covered by
* the GNU General Public License. This exception does not however
* invalidate any other reasons why the executable file might be covered by
* the GNU General Public License.
*
* Copyright 2015 Arduino LLC (http://www.arduino.cc/)
*/
package cc.arduino.view;
import javax.swing.*;
import java.awt.*;
import static processing.app.I18n._;
public class UncertifiedBoardWarning extends javax.swing.JDialog {
private final EventListener listener;
public UncertifiedBoardWarning(Frame parent, EventListener listener) {
super(parent);
initComponents();
this.listener = listener;
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
dontShowMeAgain = new javax.swing.JCheckBox();
ok = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle(_("Uncertified board"));
setModal(true);
setName("uncertifiedBoardWarning"); // NOI18N
setResizable(false);
jLabel1.setText("<html><body>" + _("This board comes from an uncertified manufacturer.") + "<br>" + _("We won't be able to provide any support if it doesn't work as expected.") + "</body></html>");
jLabel1.setVerticalAlignment(javax.swing.SwingConstants.TOP);
dontShowMeAgain.setText("Don't show me again");
dontShowMeAgain.setName("dontShowMeAgain"); // NOI18N
ok.setText("OK");
ok.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
okActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(dontShowMeAgain)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 206, Short.MAX_VALUE)
.addComponent(ok, javax.swing.GroupLayout.PREFERRED_SIZE, 82, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(dontShowMeAgain)
.addComponent(ok))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void okActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okActionPerformed
Event event = new Event(evt.getSource(), evt.getID(), "uncertified_board_warning_ok_pressed");
event.getPayload().put("dontShowMeAgain", dontShowMeAgain.isSelected());
listener.eventHappened(event);
this.dispose();
}//GEN-LAST:event_okActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) throws Exception {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
/* Create and display the dialog */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
UncertifiedBoardWarning dialog = new UncertifiedBoardWarning(new javax.swing.JFrame(), new EventListener() {
@Override
public void eventHappened(Event event) {
System.out.println(event);
}
});
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JCheckBox dontShowMeAgain;
private javax.swing.JLabel jLabel1;
private javax.swing.JButton ok;
// End of variables declaration//GEN-END:variables
}
Oops, something went wrong.

5 comments on commit 39d1dfc

@rubypanther

This comment has been minimized.

Show comment
Hide comment
@rubypanther

rubypanther Apr 7, 2015

I'm concerned that you're cutting your nose to spite your face here.

Are you sure it is correct and true advertising to say that this is Free Software, "without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE" and then also to claim that some uses are "certified" and some are not? Which is it? Is it suitable only for certified uses, or is it not suitable for any particular purpose?

rubypanther replied Apr 7, 2015

I'm concerned that you're cutting your nose to spite your face here.

Are you sure it is correct and true advertising to say that this is Free Software, "without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE" and then also to claim that some uses are "certified" and some are not? Which is it? Is it suitable only for certified uses, or is it not suitable for any particular purpose?

@DraakUSA

This comment has been minimized.

Show comment
Hide comment
@DraakUSA

DraakUSA Apr 15, 2015

Check this article as to why this is happening. http://hackaday.com/2015/03/12/arduino-v-arduino-part-ii/

DraakUSA replied Apr 15, 2015

Check this article as to why this is happening. http://hackaday.com/2015/03/12/arduino-v-arduino-part-ii/

@juj

This comment has been minimized.

Show comment
Hide comment
@juj

juj Apr 28, 2015

As a professional PC world software developer and an absolutely beginner Arduino developer, I bought an Arduino Uno two weeks ago (this product: http://www.verkkokauppa.com/fi/product/37663/dnsqv/Arduino-Starter-Kit-Arduino-aloituspakkaus ), which worked like a charm in the Arduino IDE. Last week I realized that for a project I was doing (remote control PC via USB), I'd need a board without an FTDI, e.g. an Arduino Leonardo board, so I ordered this product from the same store: http://www.verkkokauppa.com/fi/product/37584/dnsmk/Arduino-Leonardo-kehitysalusta .

Today, when I plugged in the Arduino Leonardo, I am getting this warning dialog "uncertified", which gave me the chills. Everything seemed to work, but the dialog got me very worried:

  • My first understanding was that I had installed an uncertified (by Microsoft) Windows 8 driver for Arduino. I uninstalled and reinstalled the IDE and went looking on google about certification.
  • Then I thought if my online retailer sell me a cheap manufactured clone copy? The online site of the vendor does show really authentic looking Arduino logos and everything, which made me feel doubtful, as the retailer is a large one and quite esteemed in my country. I was about to call the store to ask about it, had it not been past office hours.
  • Then I realized that the warning only appears on my desktop computer, and on my laptop Arduino IDE it does not. I did see the new donate button appear on the web page when I downloaded Arduino IDE today for my desktop, which made me think whether I should have donated in order to get the IDE to certify my board?
  • Then I finally happened to stumble to this git commit and the above url.

As a customer I have not been at all aware up until today that there are two different companies calling themselves Arduino, and that other would be clone hardware. When I saw the warning dialog, it did not explain why my board is uncertified, how I could verify the situation, where could I read more about the situation, and what actions should I take, if any, in order to get my board certified, or how to get new certified boards if necessary. I was uncertain whether I (or my vendor) had done something illegal in the form of buying pirated merchandise, and how I should act in this situation.

Now after reading the above link, I understand at least a little more about this unfortunate situation. Whatever happens there, I think the message dialog would really benefit to be improved to educate the user much better so that the abovementioned confusion can be avoided, e.g. at minimum a "For more information, visit ..." link to a web page that explains the situation.

I am just a customer who went to the store, bought what I thought was an official authentic Arduino, and then got called out somewhat vaguely that everything might not be legit here. I don't think that is very nice.

juj replied Apr 28, 2015

As a professional PC world software developer and an absolutely beginner Arduino developer, I bought an Arduino Uno two weeks ago (this product: http://www.verkkokauppa.com/fi/product/37663/dnsqv/Arduino-Starter-Kit-Arduino-aloituspakkaus ), which worked like a charm in the Arduino IDE. Last week I realized that for a project I was doing (remote control PC via USB), I'd need a board without an FTDI, e.g. an Arduino Leonardo board, so I ordered this product from the same store: http://www.verkkokauppa.com/fi/product/37584/dnsmk/Arduino-Leonardo-kehitysalusta .

Today, when I plugged in the Arduino Leonardo, I am getting this warning dialog "uncertified", which gave me the chills. Everything seemed to work, but the dialog got me very worried:

  • My first understanding was that I had installed an uncertified (by Microsoft) Windows 8 driver for Arduino. I uninstalled and reinstalled the IDE and went looking on google about certification.
  • Then I thought if my online retailer sell me a cheap manufactured clone copy? The online site of the vendor does show really authentic looking Arduino logos and everything, which made me feel doubtful, as the retailer is a large one and quite esteemed in my country. I was about to call the store to ask about it, had it not been past office hours.
  • Then I realized that the warning only appears on my desktop computer, and on my laptop Arduino IDE it does not. I did see the new donate button appear on the web page when I downloaded Arduino IDE today for my desktop, which made me think whether I should have donated in order to get the IDE to certify my board?
  • Then I finally happened to stumble to this git commit and the above url.

As a customer I have not been at all aware up until today that there are two different companies calling themselves Arduino, and that other would be clone hardware. When I saw the warning dialog, it did not explain why my board is uncertified, how I could verify the situation, where could I read more about the situation, and what actions should I take, if any, in order to get my board certified, or how to get new certified boards if necessary. I was uncertain whether I (or my vendor) had done something illegal in the form of buying pirated merchandise, and how I should act in this situation.

Now after reading the above link, I understand at least a little more about this unfortunate situation. Whatever happens there, I think the message dialog would really benefit to be improved to educate the user much better so that the abovementioned confusion can be avoided, e.g. at minimum a "For more information, visit ..." link to a web page that explains the situation.

I am just a customer who went to the store, bought what I thought was an official authentic Arduino, and then got called out somewhat vaguely that everything might not be legit here. I don't think that is very nice.

@rubypanther

This comment has been minimized.

Show comment
Hide comment
@rubypanther

rubypanther Apr 28, 2015

@juj The problem is that there is a company trying to pretend they're the real arduino. Read the hackaday link that DraakUSA posted above. You'll probably want to downgrade your Arduino IDE. There is not any problem with your hardware, there are just some problems with one of the companies that Arduino used for the official manufacturing; that company is playing a bunch of crazy games and trying to steal the name.

The warning just tells you that the company that makes the IDE doesn't support your board. So for example, when you come here to ask about it, that is what you're not supposed to do. ;) Instead you're supposed to get support from whoever made the device. But it should just work normally, and you can follow all the normal documentation.

Don't trust links to info from the parties, the lawsuit isn't finished yet. Until that happens, nobody knows what is or isn't actually made with a legal trademark. But note that the designs are open source and the actual hardware isn't going to be "illegal" in any way. It is only the name "arduino" that is actually in dispute. Everybody still gets to make compatible boards. Your vendor may or may not have been allowed to use that name, but they're allowed to clone the board itself in most cases.

rubypanther replied Apr 28, 2015

@juj The problem is that there is a company trying to pretend they're the real arduino. Read the hackaday link that DraakUSA posted above. You'll probably want to downgrade your Arduino IDE. There is not any problem with your hardware, there are just some problems with one of the companies that Arduino used for the official manufacturing; that company is playing a bunch of crazy games and trying to steal the name.

The warning just tells you that the company that makes the IDE doesn't support your board. So for example, when you come here to ask about it, that is what you're not supposed to do. ;) Instead you're supposed to get support from whoever made the device. But it should just work normally, and you can follow all the normal documentation.

Don't trust links to info from the parties, the lawsuit isn't finished yet. Until that happens, nobody knows what is or isn't actually made with a legal trademark. But note that the designs are open source and the actual hardware isn't going to be "illegal" in any way. It is only the name "arduino" that is actually in dispute. Everybody still gets to make compatible boards. Your vendor may or may not have been allowed to use that name, but they're allowed to clone the board itself in most cases.

@juj

This comment has been minimized.

Show comment
Hide comment
@juj

juj Apr 29, 2015

Today I realize that on my desktop where the warning does occur I had installed Arduino 1.6.3 from http://www.arduino.cc/en/Main/Software , and on my laptop where the warning does not occur, I had installed Arduino 1.7.2 from http://arduino.org/downloads . So I now replaced that Arduino.cc 1.6.3 with Arduino.org 1.7.2 on my desktop as well and the warning went away. Perhaps that means that I in fact own an Arduino.org device and not a Arduino.cc device? Or perhaps I was just using an old version (1.6.3 < 1.7.2)? (likely not, given the above, but I can see how someone could be led to think that).

Anyways, this was just drive-by commenting to inform what kind of thoughts can pop up to the head of a first time user seeing that dialog. I don't know which Arduino is the "good guy" and the "bad guy" here and gladly I'm not obliged to care, but as far as corporate takeovers go, this one looks like one of the more amateur ones that I've ever seen. Italians, sigh...

I'll just stick to the Arduino.org IDE for now, as apparently that was intended to be compatible with the same side of the fence that the board I purchased is on. Thanks for the reply here @rubypanther.

juj replied Apr 29, 2015

Today I realize that on my desktop where the warning does occur I had installed Arduino 1.6.3 from http://www.arduino.cc/en/Main/Software , and on my laptop where the warning does not occur, I had installed Arduino 1.7.2 from http://arduino.org/downloads . So I now replaced that Arduino.cc 1.6.3 with Arduino.org 1.7.2 on my desktop as well and the warning went away. Perhaps that means that I in fact own an Arduino.org device and not a Arduino.cc device? Or perhaps I was just using an old version (1.6.3 < 1.7.2)? (likely not, given the above, but I can see how someone could be led to think that).

Anyways, this was just drive-by commenting to inform what kind of thoughts can pop up to the head of a first time user seeing that dialog. I don't know which Arduino is the "good guy" and the "bad guy" here and gladly I'm not obliged to care, but as far as corporate takeovers go, this one looks like one of the more amateur ones that I've ever seen. Italians, sigh...

I'll just stick to the Arduino.org IDE for now, as apparently that was intended to be compatible with the same side of the fence that the board I purchased is on. Thanks for the reply here @rubypanther.

Please sign in to comment.