Arduino e TV

Sì, ti confermo che quel file .hex contiene tutto. Ho fatto il make dei sorgenti per l'Atmega328 ed ho ottenuto un file IDENTICO byte-per-byte (verificato con diff) a quello contenuto nella cartella Firmware.

Quindi devi flashare quello con avrdude direttamente, usando i parametri contenuti nel file .bat.

Ok, allora provo a mettere questi valori:

avrdude -B 5 -p atmega328p -c usbasp -U lfuse:w:0xff:m -U hfuse:w:0xd9:m -U efuse:w:0x07:m -qq

Mi dici dove posso scaricare avrdude, così sono sicuro di usare la versione giusta?

Io ho Linux per cui era tra le dipendenze richieste per usare l'IDE di Arduino. Su Windows non so dove lo puoi trovare, o se è già compreso nell'IDE anche lì.

Non mi sono arreso sto tentando, ma non mi ci raccapezzo:
errore
avrdude.exe: stk500_getsync(): not in sync: resp=0x00

Ho provato ArduUP, avrdude, winavr, XLoader, ARP Arduino Uploader.

Tutte le prove le sto facendo con Arduino 2009 con sopra ATmega bootloader UNO, dovrei comprare un programmatore??

Non vede l'Arduino come programmatore, secondo me....

Io ho preso l'USBtiny da Adafruit:

Il prezzo è buono ma i tempi di consegna sono biblici! Ordinato il 31/12, ancora non è arrivato... :-/

Ad infamarli poi si svegliano ;D
Mi è arrivato il programmatore proprio ora: peccato che tra un po' debba andare a lavorare, non so ce la farò a montarlo ::slight_smile:

arduino-0022\hardware\tools\avr\bin\avrdude.exe

leo ti stai incastrando? :slight_smile:

Sto aspettando che mi arrivi il quarzo da 16 MHz... mannaggia, credevo di averlo ed invece no ::slight_smile:

Più che giocare a Tetris o a Space Invaders, adesso non posso fare :wink:

Ragazzi, ho nominato il quarzo e stamani me l'hanno consegnato (insieme ad altre cosucce) :wink:

Aggiornamento:
stasera ho provato a replicare il TellyMate su una breadboard. Risultato: NIENTE.
Non so se ho sbagliato qualche collegamento, ho già ricontrollato 2 volte ma proprio non funziona.
Ho caricato sull'Atmega "solitario" il firmware del Tellymate, ho replicato lo schema presente qui ed ho collegato il "finto" Tellymate alla TV ed all'Arduino programmato con lo sketch Life ma nulla.
La TV manco vede il segnale, e l'Arduino, a parte il led ON, non dà segni di vita.

Se invece collego l'Arduino all'alimentazione senza il "finto" Tellymate collegato, dopo qualche istante il led TX inizia a lampeggiare. Se collego l'Arduino al PC e apro un terminale seriale, vedo infatti che lo sketch gira correttamente ed invia i comandi video al terminale.

Ho alimentato il Tellymate da Arduino, non so se cambia qualcosa con un'alimentazione esterna. Riproverò...

Rettifico: se collego l'Arduino con l'alimentatore esterno, non si accende nessun led di TX mentre se collego l'Arduino al cavo USB si accende il led TX.

Però il "finto" Tellymate non dà segni di vita: nulla nulla... boh...
E questo comportamento anomale dell'Arduino, come se si "accorgesse" di non essere collegato ad dispositivo seriale.

Nuovo aggiornamento.
Ho risolto il problema legato al "finto" Tellymate: leggendo un post del suo creatore sul forum internaz. ho scoperto che il chip deve essere cancellato completamente perché il firmware non può stare fianco a fianco con il bootloader.

Adesso continuo con gli esperimenti... almeno finché non mi cala la palebra... :stuck_out_tongue:

Nuovo aggiornamento (l'ultimo per stanotte):
ho dovuto aggiungere i 2 diodi perché, a differenza della libreria TvOut, il TellyMate genera dei disturbi a video senza di essi.

Ora sto litigando con un altro problema. Lo sketch non funziona come dovrebbe, nel senso che a video appaiono tutti caratteri senza senso. Devo capire se è per colpa del fatto che nel 328 vengono caricati solo 10 degli 11 font disponibili (per via del fatto che lo spazio occupato dall'11° viene messo a disposizione di un font programmabile dall'utente) oppure per qualche altro problema.

Ma siccome è tardi, lascio l'investigazione alla prossima giornata.

@Francesco:
tu a che punto sei?
Io, se riesco a risolvere questo problema, vorrei provare a caricare sull'Arduino la libreria PS/2 per vedere se riesco a mandare a video i caratteri scritti su una tastiera collegata alla scheda.

Io francamente sono un po' demotivato, non riesco a programmare sto ATmega, non ho ancora le nozioni necessarie, tante cose non le capisco bene, ho visto il programmatore adafruit, ma credo sia in kit di montaggio e ancora non sono in grado di saldare, ho sentito un amico che ne usava uno, devo capire se andrebbe bene, altrimenti lo acquisto da qualche altra parte..
In questi due giorni non potrò nemmeno lavorare al progetto, seguirò qui i tuoi sviluppi..
Ciao!

L'USBtiny di Adafruit è in kit di montaggio ma i componenti sono pochi e facilmente saldabili: in mezz'ora di lavoro lo assembli. Il problema sono i tempi: conta 3 settimane se lo ordini tramite posta normale (come ho fatto io), altrimenti devi aggiungere una decina di dollari alla spedizione base per averlo via corriere. Non so se è distribuito in Europa da qualcuno.

Per programmare un Atmega con un 2009 non dovrebbe essere molto difficile, però non avendolo non so dirti di più.

Intanto potresti portare avanti una strada che io ho saltato, ma che tu magari riusciresti a seguire senza molti problemi: quella di provare ad integrare la libreria TVout con la libreria PS/2 in un unico chip!
Ho notato una cosa: il TellyMate è sì capace di una risoluzione maggiore ma, per la sua struttura basata su un sistema che legge tramite seriale i dati da visualizzare, risulta lento nell'aggiornamento dell'immagine. Si vede proprio l'apparizione dei caratteri sullo schermo.

TvOut è molto più veloce, basti vedere infatti che è capace di gestire anche giochini grafici come Space Invaders.

All'interno dei sorgenti di arduino ma anche nei binari c'è un file "boards.txt".
Nei sorgenti si trova in arduino-0022/hardware/arduino/
nei binari non so.

Comunque questo è un pezzo di file che riguarda Arduino Uno:
uno.name=Arduino Uno
uno.upload.protocol=stk500
uno.upload.maximum_size=32256
uno.upload.speed=115200
uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05
uno.bootloader.path=optiboot
uno.bootloader.file=optiboot_atmega328.hex
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.core=arduino
Dai quali ti puoi ricavare che lavora ad 115200 e che il protocollo è stk500.

Se hai dubbi io programmo il 2009 al di fuori di Arduino con avrdude-5.10, le versioni precedenti non accettano il parametro arduino.

@leo72.
Arduino usa avrdude e puoi vedere che parametri usa spulciando il sorgente, ora io non ricordo se c'è quel parametro -y, poi dal momento che tutto passa per il bootloader sarebbe conveniente introdurre nel bootloader delle modifiche per gestire il numero di scritture, potrebbe essere una miglioria da richiedere al team.

Ciao.

@Mauro:
ti riferisci all'altro mio post?
Forse bisognerebbe chiedere se qualcosa del genere è già stata inserita. Ti dico questa perché qualche giorno fa quando ho fatto dei test con il linguaggio interpretato Bitlash che è possibile caricare nell'Atmega, ho notato che con il programma con il quale si può stampare a terminale il contenuto della EEPROM veniva fuori che le ultime celle di memoria contenevano alcuni caratteri, tra cui leggevo benissimo "UNO" e poi altri byte che a me sembravano senza senso. Forse già lo hanno previsto, quel parametro.

Nuovo aggiornamento.

Lo sketch Life non funziona perché, come immaginavo, è un problema di font: per farlo andare bisogna compilare un font prelevato dal sito del Tellymate.

Adesso ho un altro problema. Ho provato con lo sketch "Hello World" ma riscontro delle letture casuali sulla porta seriale, come se il Tellymate leggesse dati senza senso anche quando l'Arduino non trasmette. Non so da cosa possa dipendere: forse dalla troppa sensibilità nella lettura della porta? Boh... proverò con una resistenza di pull-up per vedere se riesco ad evitare che l'Atmega si "confonda".

EDIT:
no, non ci siamo... boh, non riesco a capire.

Ho parzialmente risolto mettendo un Serial.end(); dopo la stampa della scritta Hello World.
Ho notato cmq che anche la scritta di saluto alle volte viene stampata male, con l'aggiunta di spazi e/o caratteri senza senso. Temo che sia un problema correlato alla velocità di trasmissione sulla porta seriale, che cioè il Tellymate non riesca a star dietro a ciò che gli manda l'Arduino, vedendo caratteri casuali.
Ciò sembra confermato dal fatto che premendo il reset dell'Arduino, sullo schermo non appare la scritta ma sequenze di spazi intervallate da caratteri qualsiasi.

Penso cmq che molti dei problemi derivino dal fatto che il "finto" Tellymate è assemblato su una breadboard: forse con saldature al posto dei ponticelli le cose andrebbero meglio.