Go Down

Topic: backup e sorgente (Read 1 time) previous topic - next topic

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 è:
1) un backup del sistema che è attualmente installato su arduino. Devo per forza smontare il microcontrollore e usare un programmatore?
2) posso riottenere il sorgente mediante un decompilatore?
grazie

uwefed

1) 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.
2) non é possibile decompilarlo.
Ciao Uwe

lucadentella

Ciao Uwe,

nelle FAQ di Arduino si legge

Quote
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.


solo se modifichi le librerie (essendo LGPL) devi

Quote
Any modifications to the core and libraries must be released under the LGPL.
lucadentella.it

uwefed

#3
Mar 21, 2012, 10:07 pm Last Edit: Mar 21, 2012, 10:12 pm by uwefed Reason: 1
Il mio Inglese non é abbastanza forte da capire in fondo quelle righe di inglese. Penso che altri lo sanno leggere.

Quote
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".


Ciao Uwe

lucadentella

Ciao

dice appunto...

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.
lucadentella.it

leo72


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 è:
1) 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.

Quote

2) 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.

Ciao.
AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Massimo Banzi

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

m

albertomomeale

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.

Quote
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.

Ciao.
AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

albertomomeale

tanto per capirci, questo è il presunto doppio Arduino: http://imageshack.us/photo/my-images/585/arduino2.jpg/

leo72

Quel circuito non ha niente a che spartire con un Arduino. Sono 2 chip in standalone.

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.




AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

uwefed


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

leo72

Eh, sì. L'avevo già detto infatti anch'io: tirando giù il firmware, poco te ne fai.

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.

Go Up