Library problem which is not recognized

good news now the code "works" it does not show me an error however it shows me this

avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\v.dubourg\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"

         Using Port                    : COM9
         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\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395/SteveTV.ino.hex"
avrdude: writing flash (20862 bytes):

Writing | ################################################## | 100% 3.20s

avrdude: 20862 bytes of flash written
avrdude: verifying flash memory against C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395/SteveTV.ino.hex:
avrdude: load data flash data from input file C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395/SteveTV.ino.hex:
avrdude: input file C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395/SteveTV.ino.hex contains 20862 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 2.46s

avrdude: verifying ...
avrdude: 20862 bytes of flash verified

avrdude done.  Thank you.

What wrong with it?
It is means that you device flashed successfully.

the ide displays that all and well my editing is good too so I don't understand ?

here is my wiring Arduino TV out cable - Hackster.io

here are the logs when I upload it

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\v.dubourg\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\v.dubourg\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\v.dubourg\Documents\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=1A86_7523 -ide-version=10818 -build-path C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395 -warnings=none -build-cache C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_cache_689891 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avrdude.path=C:\Users\v.dubourg\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17 -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Users\v.dubourg\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17 -prefs=runtime.tools.arduinoOTA.path=C:\Users\v.dubourg\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.3.0 -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Users\v.dubourg\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.3.0 -prefs=runtime.tools.avr-gcc.path=C:\Users\v.dubourg\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7 -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Users\v.dubourg\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7 -verbose C:\Users\v.dubourg\Desktop\SteveTV\SteveTV.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\v.dubourg\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\v.dubourg\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\v.dubourg\Documents\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=1A86_7523 -ide-version=10818 -build-path C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395 -warnings=none -build-cache C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_cache_689891 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avrdude.path=C:\Users\v.dubourg\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17 -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Users\v.dubourg\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17 -prefs=runtime.tools.arduinoOTA.path=C:\Users\v.dubourg\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.3.0 -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Users\v.dubourg\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.3.0 -prefs=runtime.tools.avr-gcc.path=C:\Users\v.dubourg\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7 -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Users\v.dubourg\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7 -verbose C:\Users\v.dubourg\Desktop\SteveTV\SteveTV.ino
Using board 'uno' from platform in folder: C:\Users\v.dubourg\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6
Using core 'arduino' from platform in folder: C:\Users\v.dubourg\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6
Detecting libraries used...
"C:\\Users\\v.dubourg\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10818 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Users\\v.dubourg\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\v.dubourg\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\standard" "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395\\sketch\\SteveTV.ino.cpp" -o nul
Alternatives for TVout.h: [TVout@1.0.2]
ResolveLibrary(TVout.h)
  -> candidates: [TVout@1.0.2]
"C:\\Users\\v.dubourg\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10818 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Users\\v.dubourg\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\v.dubourg\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\standard" "-IC:\\Users\\v.dubourg\\Documents\\Arduino\\libraries\\TVout" "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395\\sketch\\SteveTV.ino.cpp" -o nul
Alternatives for fontALL.h: [TVoutfonts]
ResolveLibrary(fontALL.h)
  -> candidates: [TVoutfonts]
"C:\\Users\\v.dubourg\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10818 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Users\\v.dubourg\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\v.dubourg\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\standard" "-IC:\\Users\\v.dubourg\\Documents\\Arduino\\libraries\\TVout" "-IC:\\Users\\v.dubourg\\Documents\\Arduino\\libraries\\TVoutfonts" "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395\\sketch\\SteveTV.ino.cpp" -o nul
Using cached library dependencies for file: C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395\sketch\font4x6.cpp
Using cached library dependencies for file: C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395\sketch\font6x8.cpp
Using cached library dependencies for file: C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395\sketch\font8x8.cpp
Using cached library dependencies for file: C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395\sketch\font8x8ext.cpp
Using cached library dependencies for file: C:\Users\v.dubourg\Documents\Arduino\libraries\TVout\TVout.cpp
Using cached library dependencies for file: C:\Users\v.dubourg\Documents\Arduino\libraries\TVout\TVoutPrint.cpp
Using cached library dependencies for file: C:\Users\v.dubourg\Documents\Arduino\libraries\TVout\video_gen.cpp
Generating function prototypes...
"C:\\Users\\v.dubourg\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10818 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Users\\v.dubourg\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\v.dubourg\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\standard" "-IC:\\Users\\v.dubourg\\Documents\\Arduino\\libraries\\TVout" "-IC:\\Users\\v.dubourg\\Documents\\Arduino\\libraries\\TVoutfonts" "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395\\sketch\\SteveTV.ino.cpp" -o "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395\\preproc\\ctags_target_for_gcc_minus_e.cpp"
"C:\\Program Files (x86)\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395\\preproc\\ctags_target_for_gcc_minus_e.cpp"
Compilation du croquis...
"C:\\Users\\v.dubourg\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10818 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Users\\v.dubourg\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\v.dubourg\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\standard" "-IC:\\Users\\v.dubourg\\Documents\\Arduino\\libraries\\TVout" "-IC:\\Users\\v.dubourg\\Documents\\Arduino\\libraries\\TVoutfonts" "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395\\sketch\\SteveTV.ino.cpp" -o "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395\\sketch\\SteveTV.ino.cpp.o"
Utilisation du fichier déjà compilé : C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395\sketch\font8x8ext.cpp.o
Utilisation du fichier déjà compilé : C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395\sketch\font6x8.cpp.o
Utilisation du fichier déjà compilé : C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395\sketch\font8x8.cpp.o
Utilisation du fichier déjà compilé : C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395\sketch\font4x6.cpp.o
Compiling libraries...
Compiling library "TVout"
Utilisation du fichier déjà compilé : C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395\libraries\TVout\TVout.cpp.o
Utilisation du fichier déjà compilé : C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395\libraries\TVout\video_gen.cpp.o
Utilisation du fichier déjà compilé : C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395\libraries\TVout\TVoutPrint.cpp.o
Compiling library "TVoutfonts"
Compiling core...
Using precompiled core: C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_cache_689891\core\core_arduino_avr_uno_3dd043389c78bf8b0b53d9873acecbde.a
Linking everything together...
"C:\\Users\\v.dubourg\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -w -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395/SteveTV.ino.elf" "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395\\sketch\\SteveTV.ino.cpp.o" "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395\\sketch\\font4x6.cpp.o" "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395\\sketch\\font6x8.cpp.o" "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395\\sketch\\font8x8.cpp.o" "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395\\sketch\\font8x8ext.cpp.o" "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395\\libraries\\TVout\\TVout.cpp.o" "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395\\libraries\\TVout\\TVoutPrint.cpp.o" "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395\\libraries\\TVout\\video_gen.cpp.o" "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395/..\\arduino_cache_689891\\core\\core_arduino_avr_uno_3dd043389c78bf8b0b53d9873acecbde.a" "-LC:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395" -lm
"C:\\Users\\v.dubourg\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395/SteveTV.ino.elf" "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395/SteveTV.ino.eep"
"C:\\Users\\v.dubourg\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -R .eeprom "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395/SteveTV.ino.elf" "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395/SteveTV.ino.hex"
Utilisation de la bibliothèque TVout version 1.0.2 dans le dossier: C:\Users\v.dubourg\Documents\Arduino\libraries\TVout 
Utilisation de la bibliothèque TVoutfonts prise dans le dossier : C:\Users\v.dubourg\Documents\Arduino\libraries\TVoutfonts (legacy)
"C:\\Users\\v.dubourg\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-size" -A "C:\\Users\\V4C29~1.DUB\\AppData\\Local\\Temp\\arduino_build_39395/SteveTV.ino.elf"
Le croquis utilise 20862 octets (64%) de l'espace de stockage de programmes. Le maximum est de 32256 octets.
Les variables globales utilisent 417 octets (20%) de mémoire dynamique, ce qui laisse 1631 octets pour les variables locales. Le maximum est de 2048 octets.
C:\Users\v.dubourg\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CC:\Users\v.dubourg\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -patmega328p -carduino -PCOM9 -b115200 -D -Uflash:w:C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395/SteveTV.ino.hex:i 

avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\v.dubourg\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"

         Using Port                    : COM9
         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\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395/SteveTV.ino.hex"
avrdude: writing flash (20862 bytes):

Writing | ################################################## | 100% 3.20s

avrdude: 20862 bytes of flash written
avrdude: verifying flash memory against C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395/SteveTV.ino.hex:
avrdude: load data flash data from input file C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395/SteveTV.ino.hex:
avrdude: input file C:\Users\V4C29~1.DUB\AppData\Local\Temp\arduino_build_39395/SteveTV.ino.hex contains 20862 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 2.45s

avrdude: verifying ...
avrdude: 20862 bytes of flash verified

avrdude done.  Thank you.


The question still the same - what's wrong with it?
It is a normal IDE output

the ide has no problem the connection either I even changed the arduino and cable but it doesn't work

It is a completely different question.
It is means that there are errors in the code. The success of the compilation is not the guarantee that the code will work properly. The compiler can check the code for syntax errors only. The most difficult programming errors are the errors of the logic.

ok, could you help me sort this out?

First of all, you must post your code and connections according to the forum rules. After that, describe in detail what exactly is not working for you.

Then there is a chance that someone will help.

I'm not in the right one?

You didn't show the code and the connections - so you can hardly expect anyone to answer anything useful.

yes I know but since I am new to the forum I cannot yet publish files so that is why I gave you the exact link of the tutorial that I followed with all the code and all the details of the connections

You don't need that.
Just insert the code as text in the message, using the code tags.
Every novice able to do that.

Read the forum guidelines to see how to properly post the code.
Also please describe what the hardware do you use.
Photos that clearly show your wiring can also be very helpful.

Following external links is not in the traditions of the forum. In addition, it is extremely important to see exactly your code and your connections, and not those of the author of the tutorial.

ok I understand thank you very much I will do that and send it to you

here is my code to get started (this is the example code available with the tvout library)

#include <TVout.h>
#include <fontALL.h>




TVout TV;

uint8_t h=120;
uint8_t v=96;


// ball types
const uint8_t BALL_TYPE=0;
const uint8_t SNOW_TYPE=1;
const uint8_t QIX_TYPE=2;
const uint8_t RAIN_TYPE=3;
const uint8_t BUBBLE_TYPE=4;
const uint8_t FIRE_TYPE=5;
const uint8_t WARP_TYPE=6;
const uint8_t GRID_TYPE=7;
const uint8_t CLOUDS_TYPE=8;
const uint8_t MAX_TYPE=CLOUDS_TYPE;

const uint8_t COUNTER_TYPE=9;
uint8_t ballType=FIRE_TYPE;

// ball
const uint8_t MAX_BALL_R=8;
const uint8_t BOUNCE_LEN=100;
const uint8_t BSIZE=20;

float x[BSIZE];
float y[BSIZE];
float xadd[BSIZE];
float yadd[BSIZE];
uint8_t r[BSIZE];

uint8_t BALLS=10;

uint8_t loopcount=0;
uint8_t loops=100; // # loops until reset

// snow
const uint8_t FLAKE_HEIGHT=6;
const uint8_t FLAKE_WIDTH=3;
const uint8_t FLAKETYPES=4;
char flakes[FLAKETYPES];    
uint8_t flakesLanded = 0;
uint8_t driftHeight=1;
const uint8_t FLAKES_PER_DRIFT=40;
const uint8_t MAX_DRIFT=8;


// rain
const uint8_t SPLASHTYPES=4;
char splashes[SPLASHTYPES];

//bubbles
const uint8_t BUBBLE_GRPH=h/60;
const uint8_t BUBBLE_GRPV=v/2;
const uint8_t BUBBLETYPES=4;
char bubbles[BUBBLETYPES];


// fire
const uint8_t MIN_SPARKSIZE=0;
const uint8_t MAX_SPARKSIZE=18;
const uint8_t FIRE_WIDTH = 26;
uint8_t fire_center;

// counter
const uint8_t FONT_SIZE=3;
const uint8_t COUNTER_SPEED=7;//  more = slower


// warp 
const uint8_t STAR_DIV=20;

// grid
const uint8_t HORIZON=v/2;
const uint8_t BG_HEIGHT=10;
const uint8_t BG_WIDTH=25;
const uint8_t NUM_GRID_LINES=6;
const uint8_t NUM_PEAKS=6;
const uint8_t NUM_STARS=5;
const uint8_t MOON_R=10;

// bg types
const uint8_t MOUNTAIN=1;
const uint8_t GRIDLINE=2;
const uint8_t MOON=3;
const uint8_t STAR=4;


int BUTTON_PIN = 2;   // input pin for pushbutton

void setup() {  // this is run only once
  TV.begin(NTSC,h, v);

  randomSeed(analogRead(0));
 
  // initialize the pushbutton pin as an input
  pinMode(BUTTON_PIN, INPUT_PULLUP);


  // set up characters used as graphics
  bubbles[0]='.';
  bubbles[1]='*';
  bubbles[2]='o';
  bubbles[3]='O';

  flakes[0]='.';
  flakes[1]='.';
  flakes[2]=',';
  flakes[3]='\'';

  splashes[0]='+';
  splashes[1]='@';
  splashes[2]='+';
  splashes[3]='%';
   
  mySetup();

} // end of setup



void mySetup() { // this resets everything


  loops=10; // # loops until reset

  TV.clear_screen();



  
  if (ballType==BALL_TYPE ) {
    BALLS=10;
    loops=15; // # loops until reset
  }
  
  if (ballType==QIX_TYPE ) {
    BALLS=2;
  }
  
  if (ballType==SNOW_TYPE ) {
    BALLS=20;
    flakesLanded = 0;
    driftHeight=1;
    loops=MAX_DRIFT*4;
  }

  if (ballType==RAIN_TYPE ) {
    BALLS=20;
    
  }

  if (ballType==FIRE_TYPE ) {
    BALLS=20;
    fire_center = random( (h/2)-FIRE_WIDTH,(h/2)+FIRE_WIDTH-MAX_SPARKSIZE);
  }

  if (ballType==BUBBLE_TYPE ) {
    BALLS=15;

  }

  if (ballType==COUNTER_TYPE ) {
    BALLS=4;
  }

  if (ballType==WARP_TYPE ) {
    BALLS=20;
  }

  if (ballType==GRID_TYPE ) {
    BALLS=NUM_GRID_LINES+NUM_PEAKS+1+NUM_STARS;
  } // end of if grid


  if (ballType==CLOUDS_TYPE ) {
    BALLS=5;
  } // end of if CLOUDS_TYPE

  //char errcode;
  //errcode= 
  
  TV.select_font(font4x6);
    
  /*
  String text=String("Tv.begin:");
 if (errcode == 0) {
      text=text+"no error.";
 }
  if (errcode == 1) {
      text=text+"X is not a multiple of 8.";
  }
 if (errcode == 2) {
      text=text+"Y is too large";
 }
 if (errcode == 4) {
      text=text+"there is not enough memory for the frame buffer.";
  }
  Serial.begin(57600);
  Serial.println(text);
  

 */





 
  // set up balls  
  for (uint8_t b = 0; b < BALLS; b++) {


    
   if (ballType == BALL_TYPE) {
    xadd[b]=.001*random(100,1000);
    yadd[b]=.001*random(100,1000);
    r[b]=random(0,MAX_BALL_R);
    y[b]=0;
    x[b]=random(0,h-r[b]);
    if (random(0,2) == 1) {  // randmonly opposite diretion
      xadd[b]=xadd[b]*-1;
    }
   }

   if (ballType == BUBBLE_TYPE) {
       r[b]=random(0,BUBBLETYPES);
       x[b]=random(0,h*BUBBLE_GRPH)/BUBBLE_GRPH;  // group bubbles closer toger on x by only allowing multiples of n
       y[b]=random(0,v*BUBBLE_GRPV)/BUBBLE_GRPV;  // group bubbles closer toger on y by only allowing multiples of n
       xadd[b]=0;       
       yadd[b]=-1;
       xadd[b]=.001*random(10,200);
       if (random(0,2) == 1) {  // randmonly opposite diretion
          xadd[b]=xadd[b]*-1;
       }
   }
   
   if (ballType == SNOW_TYPE) {
       xadd[b]=.001*random(10,200);
       if (random(0,2) == 1) {  // randmonly opposite diretion
          xadd[b]=xadd[b]*-1;
       }
       yadd[b]=0;//.001*random(10,200);
       x[b]=random(0,h-FLAKE_WIDTH);    
       y[b]=random(0,v-1);
      r[b]=random(0,FLAKETYPES-1);
   }

   if (ballType == QIX_TYPE) {
        x[b]=random(0,h-r[b]);
        y[b]=random(0,v-1);
        r[b]=1;
        xadd[b]=.003*random(500,1000);
        yadd[b]=.003*random(500,1000);
        if (random(0,2) == 1) {  // randmonly opposite diretion
          xadd[b]=xadd[b]*-1;
        }
   }

   if (ballType == RAIN_TYPE) {
        x[b]=random(0,h-1);
        y[b]=random(0,v-1);
        r[b]=1;
        yadd[b]=10;
        xadd[b]=0;
   }

   if (ballType == FIRE_TYPE) {
        r[b]=random(1,MAX_SPARKSIZE);        
        if ( (b%2) == 1) {  // put half of fire at center area
          x[b]=random(fire_center-FIRE_WIDTH/2,fire_center+FIRE_WIDTH/2);
        } else {
          x[b]=random(fire_center-FIRE_WIDTH-1,fire_center+FIRE_WIDTH);
        }
        
        
        y[b]=v-(r[b]/2);
        yadd[b]=-2;
        xadd[b]=0.6;
   }


   if (ballType == COUNTER_TYPE) {
      switch (FONT_SIZE) {
      case 0:
        TV.select_font(font4x6);
      break;
      case 1:
        TV.select_font(font6x8);
      break;
      case 2:
        TV.select_font(font8x8);
      break;
      case 3:
        TV.select_font(font8x8ext);
      break;
   }
   }

   
   if (ballType == WARP_TYPE) {
      xadd[b]=.01*random(0,500);
      yadd[b]=.01*random(0,500);
      r[b]=0;
      switch (random(1,5)) {
        case 1:
          xadd[b]=xadd[b]*-1;
        break;
        case 2:
          yadd[b]=yadd[b]*-1;
        break;
        case 3:
          xadd[b]=xadd[b]*-1;
          yadd[b]=yadd[b]*-1;
        break;
      }
      
      y[b]=v/2+2*yadd[b]; // start them off-center
      x[b]=h/2+2*xadd[b];
  } // end of warp



    if (ballType == GRID_TYPE) {

      if (b<NUM_GRID_LINES) {
        xadd[b]=0;
        yadd[b]=1;
        // set up grid-lines evenly-spaced.  Lines will only be shown /sped up below the horizon
        y[b]=HORIZON-(NUM_GRID_LINES*3)+(b*3);
        r[b]=GRIDLINE;
      }
      if (b>=NUM_GRID_LINES and b<(NUM_GRID_LINES+NUM_PEAKS) ) {
        xadd[b]=1;
        yadd[b]=0;        
        y[b]=HORIZON-BG_HEIGHT;
        x[b]=(b-NUM_GRID_LINES+1)*BG_WIDTH;
        r[b]=MOUNTAIN;
      }

      if (b>=(NUM_GRID_LINES+NUM_PEAKS) and b<(NUM_GRID_LINES+NUM_PEAKS+NUM_STARS)) {
        xadd[b]=.02;
        yadd[b]=0;        
        y[b]=random(0,HORIZON-BG_HEIGHT);
        x[b]=random(0,h-1);
        r[b]=STAR;
      }

      // put moon last so it will cover stars
      if (b ==(NUM_GRID_LINES+NUM_PEAKS+NUM_STARS)) {      
        xadd[b]=.1;
        yadd[b]=0;        
        y[b]=random(MOON_R,HORIZON-BG_HEIGHT-MOON_R-1);
        x[b]=random(MOON_R,h-MOON_R-1);
        r[b]=MOON;
      }
      
    
    } // end of grid


   if (ballType == CLOUDS_TYPE) {
        xadd[b]=random(1,5)*.1;
        yadd[b]=0;        
        r[b]=random(9,21);
 
        x[b]=random(r[b]+1,h-r[b]-1);
        y[b]=random(r[b]+1,v-r[b]-1);  
   }
    

  
  }//  end of for balls

  loopcount =0;
}  // end of mySetup


void loop() { // this does the main display

 for (uint16_t l=0; l < loops*100; l++) {

 for (uint8_t b = 0; b < BALLS; b++) {
   boolean restart=false;
  
  if  (digitalRead(BUTTON_PIN) == LOW)  { // check pushbutton 
    ballType++;
    if (ballType > MAX_TYPE ) {
      ballType =0;
    }

    TV.delay_frame(50);
    mySetup();  
   }

      // erase previous cloud
      if (ballType == CLOUDS_TYPE) {  
        TV.draw_circle(x[b],y[b],r[b]/3,BLACK, BLACK);
        TV.draw_circle(x[b]+r[b]/3,y[b],r[b]/3+1,BLACK, BLACK);
        TV.draw_circle(x[b]+r[b]/3*2,y[b],r[b]/3,BLACK, BLACK);
        TV.draw_circle(x[b]+r[b]/2,y[b]-r[b]/3,r[b]/4,BLACK, BLACK);
      }


      // show counter
      if (ballType == COUNTER_TYPE) {
        TV.print(h/2,v/2, b+1);
        TV.delay_frame(10*COUNTER_SPEED);
      }

      // erase previous grid element
      if (ballType == GRID_TYPE) {     
  
        switch (r[b]) {
            case MOUNTAIN:
              if ( (x[b]+BG_WIDTH/2) < h-1) {
                TV.draw_line(x[b],y[b],x[b]+BG_WIDTH/2,y[b]+BG_HEIGHT,BLACK);
              }
              if ((x[b]-BG_WIDTH/2)< h-1) {
                TV.draw_line(x[b],y[b],x[b]-BG_WIDTH/2,y[b]+BG_HEIGHT,BLACK);
              }
            break;

            case MOON:
                TV.draw_circle(x[b],y[b],MOON_R,BLACK,BLACK);
            break;

             case STAR:
                TV.set_pixel(x[b],y[b],BLACK);
             break;
        } // end of switch
                
            
        if (r[b] == GRIDLINE) {          
          if (y[b] > HORIZON) {   //will only be shown /sped up below the horizon         
            TV.draw_line(0,y[b],h-1,y[b],BLACK);        
            // accelrte toward bottom
            yadd[b]=yadd[b]+.3;
          }
        } // end of gridline
        
      }  // end of grid

      // erase previous star
      if (ballType == WARP_TYPE) {
        TV.draw_circle(x[b],y[b],r[b]/STAR_DIV,BLACK, BLACK);

        // accelrte toawrd edge
        const float accel=.02;
        if (yadd[b]<0) {
          yadd[b]=yadd[b]-accel;  
        } else {
          yadd[b]=yadd[b]+accel;  
        }

        if (xadd[b]<0) {
          xadd[b]=xadd[b]-accel;  
        } else {
          xadd[b]=xadd[b]+accel;  
        }
        
        r[b]++;
        
      }


      
   // erase the previous ball 

      if (ballType == BALL_TYPE) {
        TV.draw_circle(x[b],y[b],r[b],BLACK);
        yadd[b]=yadd[b]+.02;  // gravity
      } 

      
      if (ballType == BUBBLE_TYPE) {
           TV.print_char(x[b],y[b], ' ');
        yadd[b]=yadd[b]-.02;  // accelation upward
        if (random(0,v/5) == 1) {  // randmonly flip direction
          xadd[b]=xadd[b]*-1;
       }
      }
   

   // erase the previous spark
   if (ballType == FIRE_TYPE) {
    // linger sparks at center-bottom
      if (
        (r[b]!=MAX_SPARKSIZE) or
        (x[b]<fire_center-FIRE_WIDTH/2) or
        (x[b]>fire_center+FIRE_WIDTH/2 ))  {        
         TV.draw_rect(x[b],
          y[b],
          r[b],r[b],
          BLACK, BLACK);
        }
     
       yadd[b]=yadd[b]-.02;  // accerlation upward
       //gets smaller
       r[b]=r[b]-1;                
       if (r[b] <= MIN_SPARKSIZE) {
        if (random(0,2) == 1) {  // random extra spark at top
          r[b]=1;
          if (random(0,60) == 1) {
            // fire-crackle sound
            TV.tone(1,20); 
          }
        } else {
         restart=true;
        }
       } 

   } //end of if fire

  
   // erase previous flake/handle drift
   if (ballType == SNOW_TYPE) {
      yadd[b]=yadd[b]+.006;// gravity

 
      if (y[b]>(v-driftHeight-FLAKE_HEIGHT/2))  {        // bottom
        restart= true;
        flakesLanded++;
        TV.draw_circle(x[b],v, driftHeight-1,WHITE,WHITE);  

        if (flakesLanded > FLAKES_PER_DRIFT) {
          flakesLanded =0;
          if (driftHeight <MAX_DRIFT) {
            driftHeight++;
          }
        }
        
      } else {           
        TV.print_char(x[b],y[b],' ');          
      }

      
   } // end of snow

 



  // erase the previous QIX
   if ( (ballType == QIX_TYPE) and (b==0) ){
        TV.draw_line(x[0],y[0],x[1],y[1],BLACK);
   }

   
   // move the ball
   x[b]=x[b]+xadd[b];
   y[b]=y[b]+yadd[b];

  // draw cloud
  if (ballType == CLOUDS_TYPE) {
    // right
    if (x[b]>(h-r[b]-1)) {
      // reset cloud
        xadd[b]=random(1,5)*.1;
        r[b]=random(9, 21);
        x[b]=r[b]/2;
        y[b]=random(r[b]+1,v-r[b]-1);        
      
    } else {
        TV.draw_circle(x[b],y[b],r[b]/3,WHITE, WHITE);
        TV.draw_circle(x[b]+r[b]/3,y[b],r[b]/3+1,WHITE, WHITE);
        TV.draw_circle(x[b]+r[b]/3*2,y[b],r[b]/3,WHITE, WHITE);
       TV.draw_circle(x[b]+r[b]/2,y[b]-r[b]/3,r[b]/4,
        WHITE, WHITE);

      TV.delay_frame(1);
    }
  }



  if (ballType == GRID_TYPE) {
    // background elememts
    if ( (r[b]==MOUNTAIN)
      or (r[b]==MOON)
      or (r[b]==STAR)
      ) {
      // detect left/right
      if (x[b] <0) {
          x[b]=h-1;          
          restart=true;
        }
        if (x[b] > h-1) {
          // reset       
          x[b]=0;
          restart=true;
        }        

        if (!restart) {
          switch (r[b]) {
            case MOUNTAIN:        
              if ( (x[b]+BG_WIDTH/2) < h-1) {
                TV.draw_line(x[b],y[b],x[b]+BG_WIDTH/2,y[b]+BG_HEIGHT,WHITE);
              }
              if ( (x[b]-BG_WIDTH/2) < h-1) {
                TV.draw_line(x[b],y[b],x[b]-BG_WIDTH/2,y[b]+BG_HEIGHT,WHITE);
              }
             break;
                   
             case MOON:
                if (x[b] > h-1-MOON_R) {
                  // reset       
                  x[b]=MOON_R;
                  y[b]=random(MOON_R,HORIZON-BG_HEIGHT-MOON_R-1);        
                  restart=true;
                } else {
                  TV.draw_circle(x[b],y[b],MOON_R,WHITE,BLACK);
                }
             break;
             
             case STAR:
                TV.set_pixel(x[b],y[b],WHITE);
             break;
             
             
          } // end of switch
          
        } // end of !restart
        
    } // end of bg elements


    // line elememts
    if (r[b] == GRIDLINE) {
      // detect bottom
       if (y[b]>(v-1)) {
        // reset line
        y[b]=HORIZON;
        yadd[b]=1;
       } else {      
        //will only be shown /sped up below the horizon
        if (y[b] > HORIZON) {
          // draw gridline
          TV.draw_line(0,y[b],h-1,y[b],WHITE);
        }
        TV.delay_frame(1);        
      }
    } //end of gridline
    
  } // end of grid
 

           

  if (ballType == WARP_TYPE) {
    
    // detect edges
    if (
      // right
      (x[b]>(h-1-(r[b]/STAR_DIV)))
       or
       //left
      (x[b]<(r[b]/STAR_DIV)) 
          or
       //top   
      (y[b]<(r[b]/STAR_DIV)) 
          or
      // bottom
      (y[b]>(v-1-(r[b]/STAR_DIV)))
      ) {  
        // restart star
        xadd[b]=.01*random(0,500);
        yadd[b]=.01*random(0,500);
        r[b]=0;
        switch (random(1,5)) {
          case 1:
           xadd[b]=xadd[b]*-1;
          break;
          case 2:
            yadd[b]=yadd[b]*-1;
          break;
          case 3:
            xadd[b]=xadd[b]*-1;
            yadd[b]=yadd[b]*-1;
          break;
        }
      y[b]=v/2+2*yadd[b]; // start them off-center
      x[b]=h/2+2*xadd[b];

    } else { // show star
        TV.draw_circle(x[b],y[b],r[b]/STAR_DIV,WHITE,WHITE);
    }
    
  } // end of if warp

  if (ballType == SNOW_TYPE) {
    
    // detect edges

    // right
    if (x[b]>=(h-(FLAKE_WIDTH/2))) {
      restart=true;
    }

    //left
    if (x[b]<0) {
      restart=true;
    }


    if (restart) {
      // restart flake
      xadd[b]=.001*random(10,200);
      if (random(0,2) == 1) {  // randomly opposite diretion
        xadd[b]=xadd[b]*-1;
      }
      yadd[b]=.001*random(10,200);
      y[b]=0;
      x[b]=random(0,h-FLAKE_WIDTH);    
      r[b]=random(0,FLAKETYPES-1);
    } else { // show flake
      TV.print_char(x[b],y[b],flakes[r[b]]);
    }
    
  } // end of if SNOW


  if ( (ballType==FIRE_TYPE) ){          
      if (restart) {
        // restart spark
        if ((b%2) == 1) {  // put half of fire at center area
          x[b]=random(fire_center-FIRE_WIDTH/2,fire_center+FIRE_WIDTH/2);
          r[b]=MAX_SPARKSIZE;
        } else {
          r[b]=MAX_SPARKSIZE/2;
          x[b]=random(fire_center-FIRE_WIDTH-1,fire_center+FIRE_WIDTH);

        }
               
        y[b]=v-(r[b]/2);
        yadd[b]=-2;
        xadd[b]=0.6;
        

      } else {
        // show spark
       TV.draw_rect(x[b],
        y[b],
        r[b],r[b],
        WHITE, WHITE); 
        
      }

  }// end of FIRE 

  if ((ballType==BALL_TYPE) or (ballType==QIX_TYPE) or (ballType==RAIN_TYPE) or (ballType==BUBBLE_TYPE)
  ) {
   // detect bounce

   // right
   if (x[b]>(h-r[b]-1)) {
    x[b]=h-r[b]-1;
    xadd[b]= xadd[b]*-1;   
    if (ballType!=BUBBLE_TYPE) {
      TV.tone(MAX_BALL_R-r[b]+1,BOUNCE_LEN);
    }
   }

   // left
   if (x[b]<(r[b]+1)) {
    x[b]=r[b]+1;
    xadd[b]= xadd[b]*-1;  
    if (ballType!=BUBBLE_TYPE) {
      TV.tone(MAX_BALL_R-r[b]+1,BOUNCE_LEN); 
    }
   }

    // bottom
   if (  (y[b]>(v-r[b]-1)) and (ballType!=BUBBLE_TYPE))  {
    y[b]=v-r[b]-1;
    if (abs(yadd[b]) > 0.1) { // only make bounce noice if its still moving up/down
      TV.tone(MAX_BALL_R-r[b]+1,BOUNCE_LEN);
    }
    if (ballType != QIX_TYPE) {
      float p = 100-(4*(r[b]+1));  // the larger the ball, the less % of energy returned 
      yadd[b]= yadd[b]*-1*(p/100);    
    } else {
      yadd[b]= yadd[b]*-1;
    }


   
    if (ballType == RAIN_TYPE) {
      // rain has reached bottom, erase and reset
      TV.draw_line(x[b],0,
        x[b],v-1,
        BLACK);
        
        // draw splash
        TV.print_char(x[b],v-3,splashes[random(0,SPLASHTYPES-1)]);
        TV.delay_frame(1);
        TV.print_char(x[b],v-3,' ');
       
        
        x[b]=random(0,h-1);
        y[b]=0;
        r[b]=1;
        yadd[b]=10;
        xadd[b]=0;
        restart=true;
    } // end of rain

    
   } // end of bottom

   // top
   if(y[b]<(r[b]+1)) {
    if (ballType==BUBBLE_TYPE) {
      // reset bubble
      r[b]=random(0,BUBBLETYPES);
      x[b]=random(0,h*BUBBLE_GRPH)/BUBBLE_GRPH;  // group bubbles closer toger on x by only allowing multiples of n
      y[b]=v-1;
       xadd[b]=0;       
       yadd[b]=-1;

       xadd[b]=.001*random(10,200);
       if (random(0,2) == 1) {  // randmonly opposite diretion
          xadd[b]=xadd[b]*-1;
       }
       // bubble pop sound
       TV.tone(1,5); 
    } else {
      y[b]=r[b]+1;
      yadd[b]= yadd[b]*-1;    
      TV.tone(MAX_BALL_R-r[b]+1,BOUNCE_LEN);
    }
   } // end of top

    // draw the ball
    if ((ballType == BALL_TYPE) ) {
        TV.draw_circle(x[b],y[b],r[b],WHITE);
    }
    if (ballType==BUBBLE_TYPE) {
        TV.print_char(x[b],y[b], bubbles[r[b]]);
    }

    // show the QIX
    if (ballType == QIX_TYPE) {
      if (b==1){
        TV.draw_line(x[0],y[0],x[1],y[1],WHITE);
        TV.delay_frame(1);
      }
    }


    // draw raindrop / trail
    if ((ballType==RAIN_TYPE) and !restart) {
  
      TV.draw_line(x[b],y[b]-random(10,30),
        x[b],y[b],
        WHITE);

    }  // end of rain


  }// end of BALL or QIX or rain or bubble


        
 }// end of for




}// end of loops

// reset verything
mySetup();

}// end of loop()

here is my connection



and I used 2 resistors as indicated in the tutorial of 470 ohms and 1k ohms

and I'm using arduino IDE version 1.8.18 and 2.2.1

Why did you start with such complicate code? First test the example from the library itself.
Or even more simple - the code with just a one-two outputs:

#include <TVout.h>
#include <fontALL.h>


TVout TV;

void setup() {
  TV.begin(NTSC,120,96);
  TV.select_font(font6x8);
 
  TV.println("I am the TVout\nlibrary running on a freeduino\n");
  TV.delay(2500);
  TV.println("I generate a PAL\nor NTSC composite  video using\ninterrupts\n");
  TV.delay(2500);
}

void loop() {
}
2 Likes