con il connettore ISP presente sui Arduini e con un programmatore ISP o un Arduino usato come quello puoi scaricarti il file HEX dello Sketch. Visto che Arduino HW e SW é common creative il Tuo amico DEVE RICEVERE lo sketch.
Il mio Inglese non é abbastanza forte da capire in fondo quelle righe di inglese. Penso che altri lo sanno leggere.
Can I build a commercial product based on Arduino?
Yes, with the following conditions:
Physically embedding an Arduino board inside a commercial product does not require you to disclose or open-source any information about its design.
Deriving the design of a commercial product from the Eagle files for an Arduino board requires you to release the modified files under the same Creative Commons Attribution Share-Alike license. You may manufacture and sell the resulting product.
Using the Arduino core and libraries for the firmware of a commercial product does not require you to release the source code for the firmware. The LGPL does, however, require you to make available object files that allow for the relinking of the firmware against updated versions of the Arduino core and libraries. Any modifications to the core and libraries must be released under the LGPL.
The source code for the Arduino environment is covered by the GPL, which requires any modifications to be open-sourced under the same license. It does not prevent the sale of derivative software or its inclusion in commercial products.
In all cases, the exact requirements are determined by the applicable license. Additionally, see the previous question for information about the use of the name “Arduino”.
Posso realizzare un prodotto commerciale basato su Arduino?
Sì alle seguenti condizioni:
1- l'inclusione di una board Arduino all'interno di un prodotto commerciale non impone la diffusione o la pubblicazione come opensource di alcuna informazione circa il suo design;
2- l'utilizzo dei files Eagle delle board Arduino come base di partenza per prodotti commerciali richiede che i files modificati vengano rilasciati secondo la medesima licenza Creative Commons Attribution Share-Alike. Puoi produrre e vendere il prodotto risultante;
3- l'utilizzo del core Arduino e delle sue librerie per il firmware di un prodotto commerciale non richiede che venga rilasciato il codice sorgente di tale firmware. La licenza LGPL richiede, comunque, che vengano rilasciati i files oggetto per re-linkare il firmware con versioni aggiornate di core e librerie Arduino. Qualsiasi modifica alle librerie va rilasciata con licenza LGPL.
4- il sorgente dell'ambiente Arduino è coperto da licenza GPL, la quale richiede che ogni modifica sia a sua volta rilasciata opensource secondo la medesima licenza. Questo non vieta la vendita di software derivati da tale ambiente o la sua inclusione in prodotti commerciali.
Per tornare al tema attuale, direi che si ricade nel punto 3... se qualcuno sviluppa un firmware per una applicazione commerciale con Arduino, al massimo deve rilasciare i files oggetto e non il sorgente dello sketch.
albertomomeale:
un mio amico ha un sistema basato su Arduino. Non si fida più di chi gli ha fatto il lavoro. Forse non avrà i sorgenti. Quello che vorrei fare è:
un backup del sistema che è attualmente installato su arduino. Devo per forza smontare il microcontrollore e usare un programmatore?
Se parliamo di Arduino, no. Basta collegare un programmatore alla presa ISP (quei 6 pin a DX del microcontrollore) e con esso prelevare il firmware.
posso riottenere il sorgente mediante un decompilatore?
grazie
Nì. Cioè una volta estratto il firmware, questo è in linguaggio macchina. Usando un disassemblatore è possibile dal codice macchina ricostruire il sorgente in assembly. Non è possibile riottenere lo sketch in C come quello che vedi quando usi l'IDE.
Diciamo che leggendo dalla flash con un programmatore tipo avrisp mkii ottieni un file ascii in formato Intel Hex da questo dovresti ottenere un asm e poi un codice C. Io ho letto di disassemblatori ma non so se lavorano con Intel Hex. Io non ho mai avuto di questi problemi aggirandoli alla base, non mi dai il codice sorgente e io non ti do un soldo, se paghi prima sei fesso, cioè io mi sentirei fesso.
in generale il sunto fatto da lucadentella è corretto.
L'unico modo è di dimostrare che il lavoro è stato fatto su commissione e farsi dare i sorgenti.
Una domanda, ma il prodotto del suo amico ha un'arduino al suo interno oppure è un circuito derivato da Arduino. Nel secondo caso il suo amico deve rilasciare i files eagle della scheda...
innanzitutto vi ringrazio per le risposte, sono tutte molto interessanti.
Abbiamo aperto il dispositivo in oggetto. Non è una scheda Arduino originale, credo sia stata fatta in casa.
Ci sono due chip. Quindi gli arduino sono due.
Non vedo quindi la famosa presa ISP ecc. I sorgenti non ci sono ancora. Vediamo cosa succede
Questo è il rischio che si corre con chi non sviluppa open. Non capisco come mai con tanti frequentatori di questo forum che sviluppano open si sceglie proprio chi sviluppa closed.
Forse perchè alla base c'è l'intenzione di chiudere il progetto e allora mi viene da dire... arrangiati.
Una domanda, ma il prodotto del suo amico ha un'arduino al suo interno oppure è un circuito derivato da Arduino. Nel secondo caso il suo amico deve rilasciare i files eagle della scheda...
Difficile dire se il prodotto è derivato da Arduino. mmm.... si in effetti ci sono dei furbetti che di elettronica e programmazione non ne capiscono una mazza ma hanno uno spiccato senso per gli affari e quindi può essere che si sia limitato a copiare lo schema pari pari o quasi.
Dal pcb si capisce che il tipo in questione non è ferrato in materia di PCB, egli ha disegnato traccie ad angolo retto e non ha previsto un piano di massa, certo può essere che quello è un prototipo di massima che lavora a bassissima frequenza di clock, anche se mi sembra di capire che è stato venduto.
Chiassà, magari è proprio uno di quelli improvvisati a cui mi riferivo.
albertomomeale:
Non vedo quindi la famosa presa ISP ecc. I sorgenti non ci sono ancora. Vediamo cosa succede
Non ci sono i conettori ISP ma visto che i controller sono su zoccoli puoi toglierli e metterli in un Arduino e leggere tramite il ISp di quello. Ricordati come erano messi e fai uno alla volta cosí non c'é pericolo che gli inverti.
Ciao Uwe
Eh, sì. L'avevo già detto infatti anch'io: tirando giù il firmware, poco te ne fai.
leo72:
una volta estratto il firmware, questo è in linguaggio macchina. Usando un disassemblatore è possibile dal codice macchina ricostruire il sorgente in assembly. Non è possibile riottenere lo sketch in C come quello che vedi quando usi l'IDE.
MauroTec:
Questo è il rischio che si corre con chi non sviluppa open. Non capisco come mai con tanti frequentatori di questo forum che sviluppano open si sceglie proprio chi sviluppa closed.
Guarda il retro della medaglia. Se sei uno che ci campa, è giusto che, almeno fino al momento del pagamento, i sorgenti siano tuoi, perchè i furbetti ci sono anche dall'altra parte...
La fattura, sarà grezza, ma dipende da cosa quel circuito deve fare, se è un prototipo, il numero di pezzi da produrre, il tempo impiegato... e ovviamente quanto è costato (che a questo punto dipende anche il lato software, che con 2 atmega O è bello tosto O è davvero una nabbata
uwefed:
con il connettore ISP presente sui Arduini e con un programmatore ISP o un Arduino usato come quello puoi scaricarti il file HEX dello Sketch. Visto che Arduino HW e SW é common creative il Tuo amico DEVE RICEVERE lo sketch.
non é possibile decompilarlo.
Ciao Uwe
comquue c'è una seconda opzione: se ha settato i fuse per bloccare la lettura... se sei un bravo hacker forse ce la fai, ma ci metteresti molto meno a riscrivere il codice, probabilmente
lesto:
comquue c'è una seconda opzione: se ha settato i fuse per bloccare la lettura... se sei un bravo hacker forse ce la fai, ma ci metteresti molto meno a riscrivere il codice, probabilmente
Comunque se ha bloccato l'accesso in scrittura e lettura (attivando cioè la protezione massima) non puoi accedere né alla Flash né alla EEPROM. Per modificare un tale livello di protezione non serve altro che una brasata totale del chip.
Io sono duro d'orecchi e non ho afferrato bene il concetto quindi ricapitoliamo: se mi viene commissionato un circuitino e io faccio la schedina con un atmegaxx8 o attiny in standalone (quindi usando solo l'ide per programmarlo e per di più senza mettere nemmeno il bootloader) dovrei comunque rilasciare il sorgente, lo schema elettrico e il master della schedina?
Non perchè sia un taccagno magari lo rilascio anche volentieri, ma sarei obbligato a farlo?
Ciao