Per il momento non mi trovo a lavoro dove ho l'UNO il MINI PRO e lo sketch che mi da il problema..quindi non vi posso incollare in dettaglio l'errore che mi da l'ide (versione 1.6.10)
Intanto premetto che con altri sketch (quelli di esempio dell'ide) non danno il problema, quindi è una cosa legata solo allo sketch su cui lavoro da un po di tempo.
Per ragioni di praticità sviluppo su Uno e li ha sempre caricato e funzionato alla grande.
Arrivato a buon punto con il programma, carico sul mini pro lo stesso sketch e funziona tutto perfettamente anche li..
Ad inizio Agosto ho fatto qualche ritocchino a qualche "client.print" nel codice e nell'uno ad oggi continua a caricare e funzionare correttamente.
Oggi provo a ricaricare sul mini lo sketch (senza fare nessuna modifica e senza aver fatto nessuna modifica al pc ne all'ide di arduino) e compila correttamente ma arrivato all' upload fa il suo dovere, dopo il writing 100% fa la verifica e appena terminata mi da un errore relativo al "non matching"
Ho provato più volte e per scrupolo ho provato anche un'altro mini pro e stessa cosa...mentre su uno carica sempre perfettamente.
Ho provato anche tramite un programmatore usb diverso --> stessa cosa!
Mai successo a nessuno qualcosa di simile ?
Il processore avendo optiboot caricato, non dovrebbe essere identico tra Uno e Mini Pro ?
Ciao Guglielmo e grazie per la tua più che celere risposta di ieri sera
Oggi appena arrivato a lavoro ho subito seguito il tuo consiglio, aggiornato IDE e provato a caricare di nuovo il mio sketch sul mini.. purtroppo però il problema rimane:
Arduino:1.6.11 (Windows 7), Scheda:"Arduino Pro or Pro Mini, ATmega328 (5V, 16 MHz Optiboot)"
.....cut.......
avrdude: Version 6.3, compiled on Jun 22 2016 at 16:05:21
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Users\LeonardoSrv\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino2/etc/avrdude.conf"
Using Port : COM7
Using Programmer : arduino
Overriding Baud Rate : 115200
AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : Arduino
Description : Arduino
Hardware Version: 3
Firmware Version: 4.4
Vtarget : 0.3 V
Varef : 0.3 V
Oscillator : 28.800 kHz
SCK period : 3.3 us
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file "C:\Users\LEONAR~1\AppData\Local\Temp\build035fd880dbf40617fa65feacd28bf77f.tmp/WakeThroughArduinoMiniZ3.ino.hex"
avrdude: writing flash (32250 bytes):
Writing | ################################################## | 100% 5.20s
avrdude: 32250 bytes of flash written
avrdude: verifying flash memory against C:\Users\LEONAR~1\AppData\Local\Temp\build035fd880dbf40617fa65feacd28bf77f.tmp/WakeThroughArduinoMiniZ3.ino.hex:
avrdude: load data flash data from input file C:\Users\LEONAR~1\AppData\Local\Temp\build035fd880dbf40617fa65feacd28bf77f.tmp/WakeThroughArduinoMiniZ3.ino.hex:
avrdude: input file C:\Users\LEONAR~1\AppData\Local\Temp\build035fd880dbf40617fa65feacd28bf77f.tmp/WakeThroughArduinoMiniZ3.ino.hex contains 32250 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 3.98s
avrdude: verifying ...
Errore durante il caricamento dello sketch
avrdude: verification error, first mismatch at byte 0x7800
0xff != 0x01
avrdude: verification error; content mismatch
avrdude done. Thank you.
Mmmm ... purtroppo quell'errore ti indica che ha caricato tutto il programma, è andato a verificarlo e ... una cella di memoria contiene un valore diverso da quello che ci ha scritto caricandolo ...
Brutta cosa ... sembrerebbe che la Flash di quel Pro Mini, al byte 0x7800 (byte 30720) sia morta e non prenda la programmazione (0xff != 0x01) ... da dove arriva quel Pro Mini ?
Guglielmo
P.S.: La Pro Mini NON usa Optiboot, tanto è vero che nel file "boards.txt" è chiaramente indicato: ATmegaBOOT_168_atmega328.hex ... ma non significa nulla, non è un problema di bootloader.
Uso optiboot perché lo sketch non entrava von il bootloader normale... ho provato anche un altra mini pro...entrambe provenienti dalla cina.. stesso errrore
Il guaio è che prima di editare lo sketch l ultima volta, l avevo caricato con successo e lo spazio occupato era simile se non uguale...la modifica infatti era un inezia
Aspetta ...
... non avevo notato le dimensioni del tuo codice ... 32250 :o ... mi sa che con Optiboot sei veramente al limite, con il bootloader std. sicuramente non c'entra ...
Ora, se hai cambiato tu il bootloader, hai corretto il file "boards.txt" ed hai modificato i FUSE specificando le nuove dimensioni ? Perché l'errore, se non sbaglio, è proprio dove finiva il vecchio bootloader ... mentre il tuo codice richiede di più ... qundi, se non hai fatto tutte le modifiche necessarie, è ovvio che arrivato a 30720 da errore !
Si, ho caricato io il bootloader optiboot utilizzando questa scheda aggiunta da me nel file board.txt
## Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328 Optiboot
## -------------------------------------------------
pro.menu.cpu.16MHzatmega328optiboot=ATmega328 (5V, 16 MHz Optiboot)
pro.menu.cpu.16MHzatmega328optiboot.upload.maximum_size=32256
pro.menu.cpu.16MHzatmega328optiboot.upload.maximum_data_size=2048
pro.menu.cpu.16MHzatmega328optiboot.upload.speed=115200
pro.menu.cpu.16MHzatmega328optiboot.bootloader.low_fuses=0xFF
pro.menu.cpu.16MHzatmega328optiboot.bootloader.high_fuses=0xDA
pro.menu.cpu.16MHzatmega328optiboot.bootloader.extended_fuses=0x05
pro.menu.cpu.16MHzatmega328optiboot.bootloader.file=optiboot/optiboot_atmega328.hex
pro.menu.cpu.16MHzatmega328optiboot.build.mcu=atmega328p
pro.menu.cpu.16MHzatmega328optiboot.build.f_cpu=16000000L
Sempre che io non stia quindi sbagliando qualcosa, non mi spiego se il max spazio per lo sketch è 32256 se il mio codice è 32250 non dovrebbe starci dentro ?
Alla fine UNO ha lo stesso bootloader e lo stesso spazio disponibile e ci sta dentro il programma !
Ci sono 3 FUSE che indicano l'occupazione del bootloader, e tu NON li hai cambiati ...
... alla MCU glie ne frega poco di quello che scrivi nel file boards.txt, devi cambiare i FUSE.
Quanto occupa OptiBoot per la Pro Mini? 512 bytes mi pare (VERIFICA), allora devi mettere :
P.S.: Ahahahahahahahah ... Astro ... ormai è accertato ... siamo in contatto telepatico ... P.P.S: Mi pare che l'OptiBoot per la Pro Mini stia in 512 Bytes ...
Grazie per l aiuto...pensavo fosse giusta quella modifica al file board anche xke l avevo trovata sul forum in un altra discussione.. correggo provo e ringrazio ancora
No devi "ascoltare" né uno né l'altro ... come ti ho scritto ... DEVI VERIFICARE quanto occupa il bootloader ...
Se mi ricordo bene, sulla Pro Mini, Optiboot occupa meno di 512 byte (ne ho modificate alcune tempo fa) e quindi dovresti usare il mio settaggio, ma è un vago ricordo e potrei benissimo sbagliare; se invece occupa di più devi usare quello di Astro ... e comunque ribadisco DEVI VERIFICARE !!!
ok, in ogni caso dopo aver "corretto" il file board.txt dovrò prima riscrivere il bootloader optiboot e poi ricaricare lo sketch oppure mi basta caricare lo sketch ?
Devi riscrivere i FUSE nella MCU ... quindi, se usi l'IDE di Arduino, devi ricaricare il bootloader così programma il tutto, se usi un'altro strumento (es. avrdudess) puoi solo riprogrammare i FUSE (Solo L, H ed E, senza toccare i LB, mi raccomando).
Guglielmo mi dici di verificare ma non ho la più pallida idea del COME
Comunque darei per scontato che visto che Arduino/Genuino UNO usano l'optiboot e hanno high_fuses=0xDE
penso sia giusto mettere lo stesso valore anche per la mini pro essendo lo stesso 328 no ?
Prima di scrivere e chiederti (male..lo so..) ho comunque provato come consigliatomi da astrobeed e ora funge, ho scritto il bootloader e ricaricato lo sketch senza problemi !
Però mi rimane la curiosità di sapere come calcolare lo spazio usato dal bootloader...oppure semplicemente lo dice nell'output al momento in cui lo si scrive ?
... emmm ... quindi ne deduco che lo hai copiato bello che pronto e non lo hai compilato tu partedo dai sorgenti di "Optiboot" e vedendo cosa ti diceva il compilatore vero ?
Lascia stare, se funziona va bene il valore che ti ha detto Astro
Guglielmo
P.S.: Io, all'epoca, l'ho dovuto compilare per ottenerne uno funzionate bene sulle Pro Mini a 3.3V 8MHz
Sul web si trovano parecchie guide su come mettere optiboot nei mini (tutte diverse l'una dall'altra) quindi ho seguito quella più semplice..
ho semplicemente scritto lo stesso bootloader dell'UNO sulla mini, sempre basandomi sul fatto che il processore è lo stesso e che lo sketch nell' UNO ci entrava e girava bene...
non so se può dipendere dal bootloader o dai fuses...dopo aver fatto la suddetta operazione...anche caricando uno degli esempi della libreria ethernet, web server classico, il mini non capisco cosa fa ma sicuramente non quello che dovrebbe...
controllato 3 volte tutti i collegamenti...carico lo sketch di esempio e va a buon fine (come quando carico il mio sketch)... ma poi non ottiene l'ip e non si collega!
prima sul serial monitor mi ha stampato: "Server is at 255.0.0.0"
Quindi qualcosa dello sketch di esempio sta facendo...ma perchè non riesce a collegarsi ? Ha sempre funzionato prima...