Show Posts
Pages: 1 [2] 3 4
16  Forum 2005-2010 (read only) / Development / Re: TV output Shield on: June 20, 2009, 05:25:45 pm
There has been some interest (hello, The_Bongmaster) in using a bootloader to program a chip for use in a DIY TellyMate (e.g. for breadboarding).
To that end, Release 1.0.10 of the TellyMate source code has pre-compiled .hex files for 4 different chips (with identical functionality):
    Mega8, Mega88, Mega168 and Mega328p.
The Mega168 and Mega328p versions are suitable for programming using bootloaders as they take up a relatively small amount of their chips' flash (50% and 25% respectively). The Mega8 and Mega88 versions are not suitable for use with bootloaders, as they take up nearly all the flash on their chip, meaning there's no room for a bootloader.

Caveats on using a bootloadered TellyMate:
a) There will be an extra delay (depending on your bootloader) before the TellyMate code starts.
b) Resetting the TellyMate using <ESC>Z may cause the bootloader to be entered (I'm not sure though)
c) If you've got a bootloadered TellyMate attached to an Arduino, be sure to disconnect it before uploading a sketch to the Arduino - otherwise it may attempt to upload to the TellyMate at the same time!

The following (hopefully fairly generic) instructions should help in getting a pre-compiled .hex file uploaded to a chip that's already programmed with an Arduino bootloader.


Note: There must be room for the code on the chip! You won't be able to upload an 8k firmware onto an 8k part that's got a 2k bootloader!
Note: The size of the .hex file is not the size of the firmware (the .hex file is padded, encoded, contains checksums etc.)
Note: I've got a windows box - your file locations will probably be very different to mine.
    1. Put the chip you want to program, into your Arduino.

    2. Don't forget to set correct chip/bootloader from the tools->board menu in the IDE.

    3. Turn on the verbose output for uploading:
    a. Find your preferences.txt file for the Arduino IDE. Mine was at

    C:\Documents and Settings\Nigel\Application Data\Arduino\preferences.txt[/list]
    b. Change the line that reads upload.verbose=false to upload.verbose=true.
    [/list]
    4. Upload any simple sketch to the Arduino. You'll find the output is now incredibly wordy.

    5. Find the call to avrdude in the output... mine said:
      C:\arduino-0015-win\arduino-0015\hardware/tools/avr/bin/avrdude -CC:\arduino-0015-win\arduino-0015\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -pm8 -cstk500v1 -P\\.\COM1 -b19200 -D -Uflash:w:C:\Documents and Settings\Nigel\My Documents\Arduino\TellyMateShield_Maze\applet\TellyMateShield_Maze.hex:i

      (yes, my Arduino is M8 based. Stop sniggering. It's not how big it is - it's what you do with it.)
      [/list]
      6. Drop to a command-line (or create a batch file or whatever) and Copy the avrdude command found in step 5, replacing the *.hex path+filename with the .hex file you want to upload and then run the command.
        Note: Just to re-emphasise... Don't copy my avrdude call shown above! Find your own!
        [/list]
        7. Remove the chip from the Arduino.

        8. Straighten the pins (again). [or is that just me?]

        9. Rejoice in your newly programmed chip.
        [/list]

        17  Forum 2005-2010 (read only) / Development / Re: TV output Shield on: May 23, 2009, 06:07:09 am
        Warning: mksimith2's posts = SPAM. Please ignore. Nothing to do with Arduino's.
        18  Forum 2005-2010 (read only) / Development / Re: TV output Shield on: May 17, 2009, 03:27:39 am
        Quote
        So far the only thing that's occurred to me that I wish it did is to have a third colour so you could use chroma-keying and do overlays, but I guess that would up the complexity somewhat.
        Overlaying:
        Video overlaying does increase the complexity somewhat - a LM1881 (or similar) chip would be needed to extract the sync pulses from the input video, and then the scanline generation would need to be hooked into that. Not a problem per-se, but I'm not sure that the market is there.

        Colour:
        Colour is out of the question at the moment. There are three issues:
        a) Memory.
        There is currently one byte per character, meaning 950 of the Mega8's 1024 bytes are used for the display. That doesn't leave much for the TellyMate to play with (in fact every single byte of RAM is used).

        Moving to an AVR with 2k SRAM would solve this problem and allow 2 bytes per character - one for the character, one for the "colour" to display it with. The encumbent increase in flash space would also be beneficial (different character pages?).

        b) Colour signals
        Outputting colour composite signals is beyond the capabilities of an AVR clocked at 16Mhz. It would need the services of something like an AD725. These chips are about £10 each (as far as I can find).

        "Greyscale" is, however, still possible without this chip.

        c) Pixel clocking
        The clocking of the character pixels would have to be moved away from the Mega - even using the SPI output, there just aren't enough clock cycles for the Mega to control colour as well. The addition of a latched PISO shift output and an analog switch would be needed to allow the character pixels to be output with different background/foreground colours.


        Summary:
        Black and White video output is tricky. Colour is even worse!
        19  Forum 2005-2010 (read only) / Development / Re: TV output Shield on: May 12, 2009, 02:34:42 am
        Andrew, that's a brilliant demo - you put that together really quickly!

        We (at Batsocks) are building them as fast as we can at the moment - Appearing on 'Make' was a bit of a surprise (albeit a welcome one!). Fortunately I've now got part-time access to a CNC machine so drilling and shaping the boards is now a lot easier.

        What are people going to be using them for?
        As a general output/debugging device, or does anyone have any more specific plans?
        20  Forum 2005-2010 (read only) / Development / Re: TV output Shield on: April 20, 2009, 04:45:01 am
        Pin spacing:
        I've done a quick "paper" double-check and all the pins are in the right place.
        [Which is good, because it means that my home-made 'parts bin' Arduino is also likely to be correct smiley ]

        Source code, Schematics etc.:
        The TellyMate Schematics and Source Code are already available!
        The "TellyMate Shield" is just a "TellyMate" with a different layout.
        If you want to build your own, feel free! I'd love to see pictures of the board and what it's been used for.

        Pictures:
        Andrew's already pasted the only picture I've got at the moment.
        [edit: I do have a 640x480 version though]
        The final product is likely to look almost identical to the prototype.
        If you're after examples of the output, there are a few more 'during development' pictures at the end of the article that covers its design: Text on TV

        Prices:
        I'm hoping to be able to sell it for £12, rather than the £12.99 that's on the website at the moment.

        Timescales:
        It'll probably be a couple of weeks until it'll be ready for sale.
        21  Forum 2005-2010 (read only) / Development / TV output Shield on: April 16, 2009, 04:25:16 am
        Hi.

        I've made a prototype Arduino TV-out Shield. It's a version of my TellyMate Serial to TV converter.
        Before finalising the layout, I've got a few questions...

        a)
        In the quantities that I'm expecting to produce, long-tailed, straight-through, stackable female headers are too costly.
        As an alternative, I'm using separate pins (below) and sockets (above) by offsetting them by 0.1". This means that shields stacked on top are no longer quite directly above the base arduino.
        Is this an acceptable solution?

        b)
        I've routed the GND pin adjacent to the AREF pin directly to the other GND pins. I did wonder if it was supposed to be a separate AGND, but I can't find anything to confirm this, so I've joined them all on the same net.
        Is this correct?

        c)
        I've got a single, solitary prototype that works very nicely on my "parts-bin" home-made RS232 Arduino.
        My concern is that I may have duplicated assumptions made with the pin-spacing on my "parts-bin" Arduino onto the pin-spacing on my prototype.
        Is there anyone [in the UK] that would be willing to have a play with it on a 'real' Arduino?
        I've got some really simple test code to go with it.

        Example output:
        22  Forum 2005-2010 (read only) / Development / Re: atmega168 won't work outside of arduino on: April 17, 2009, 05:31:47 pm
        Yeah - that's really too small! I can only just work out it's a 28-pin chip!
        Can we have a better picture smiley

        In the mean-time:
        your description of how the pins are wired sounds correct.
        9v VCC is well beyond the maximum for the chip though! It could have fried things.

        Don't you need a couple of 22pF capacitors with the crystal?
        (That might just explain the "won't work", but not the "gets hot")

        Have you got a couple of 0.1uF capacitors that you could pop between VCC/Gnds close to the chip?
        23  Forum 2005-2010 (read only) / Development / Re: Arduino video shield design requirements on: April 01, 2009, 07:45:45 am
        OK, here's a picture of the TellyMate Shield prototype...


        It's an offset stacking design - all the components sit well below the sockets.
        I had to use a low-profile 3.5mm jack socket for the video output, as PCB mounted RCA/Phono connectors are just too tall.
        24  Forum 2005-2010 (read only) / Development / Re: Arduino video shield design requirements on: March 28, 2009, 04:50:00 am
        @halley: I was wondering how much use just sync output would have been!

        I've since had a good look at what's needed for overlaying/compsiting, and it would need a sync separator (LM1881), some sort of analog switch (HCF4053 or similar) and a re-write of the code to sync to external V-sync and H-sync signals. I'm not yet clear on how I'd cleanly handle sync generation when there isn't an incoming video signal to overlay onto, but I believe it's all possible to do [even for a software guy like me].

        Unfortunately, these changes wander significantly away from TellyMate's "very simple hardware" remit, so I'll put them onto the wish-list for TellyMate 2.

        Other things on the wish-list for TellyMate 2 include colour output, but there don't seem to be any cheap RGB to composite chips around. MC1337's are hard to source now, and AD722-725's are expensive (certainly for the quantity I'd use). I was at least hoping for a chip that's cheaper than an AVR... I think I might have to settle for greyscale 'colours'.

        As it stands, I should be getting some parts this weekend to put together a prototype TellyMate Shield. Hopefully I'll post some pictures next week...
        25  Forum 2005-2010 (read only) / Development / Re: Arduino video shield design requirements on: March 23, 2009, 03:35:35 pm
        Overlaying the text onto an existing signal is beyond its capabilities, but there is a chance I could get some sync signals out... What sort of thing might be needed?

        It should be simple to generate a suitable field/v-sync pulse onto a spare pin, and then out (via a jumper?) to maybe Digital pin 2 of the shield.
        An H-Sync pulse might be a little more tricky, but I'd have a stab at getting it out if needed.

        Would you need a true interlaced signal? The TellyMate uses a technique copied from early games consoles and 'home computers' - it outputs a single TV field over and over again (rather than pairs of odd and even fields) - I've got a page of notes on composite video timing that shows this trick.
        26  Forum 2005-2010 (read only) / Development / Re: Arduino video shield design requirements on: March 18, 2009, 12:19:47 pm
        I've got a shield version of my TellyMate project currently on the drawing-board.

        It does 38x25 characters over PAL/NTSC composite video.
        It uses a subset of VT52 and H19 control codes.



        Might that be useful?

        [edit: added link + picture]
        27  Forum 2005-2010 (read only) / Bugs & Suggestions / Re: tone() works for me in 0018, not 0019-0021 on: October 21, 2010, 04:27:10 am
        Yup - it's a known bug.
        There's a simple work-around for the moment;

        Simply call noTone( pin ) just before calling tone( pin ).
        28  Forum 2005-2010 (read only) / Interfacing / Re: connecting arduino and projector on: February 17, 2010, 04:14:16 am
        Hi - this is just a quick note on the above links:

        The correct link for the TellyMate at the SparkFun shop is:
        http://www.sparkfun.com/commerce/product_info.php?products_id=9313

        You could always try turning a spare Arduino into a TellyMate, to see if it's suitable. For examples of the TellyMate in use, see the TellyMate Examples page

        @olesya - where are you based? Are you in the UK?

        [edit: corrected the corrected link!  :-[]
        29  Forum 2005-2010 (read only) / Interfacing / Re: Interfacing with an NTSC TV on: June 05, 2009, 02:22:01 am
        I'm the chap behind the Batsocks TellyMate Shield.

        @bill2009 - you might find that the circuit shown at the top of this thread isn't quite giving you the voltage range you expect because the TV has an (equivalent of) a 75ohm resistor within it. This forms a voltage divider with the other 75ohm resistor (shown in the circuit at the top of the thread) giving a 0.5v p2p signal, rather than the required 1v p2p.

        I've found much better results without the 75ohm resistor in the circuit. Whites are white, rather than grey.

        Having said that, on the more recent design of the TellyMate Shield, I've added a jumper (J7) to optionally connect this 75ohm resistor back in, because I found a small portable telly that wouldn't work otherwise.

        (See this thread over at AVRFreaks)

        @doctorwho8 - There shouldn't be any real problems in reading input to display, but you'll have to bear in mind that you won't be able to use interrupt driven methods because the interrupt routines will interfere with the timing of the sync and display signals - e.g. you don't want a 'USART_RXC' (serial received) interrupt called part-way through outputting your pattern!

        @drspectro - I'm interested in the 'High Res' version!
        30  Forum 2005-2010 (read only) / Exhibition / Re: Arduino Pong on: May 28, 2010, 06:11:46 am
        I don't think it's neccesary for most TVs. The 75ohm resistor is implied as being in the TV.
        See this thread at AVRFreaks for probably more information than you wanted (note that the resistor values are slightly different because of the inline diodes).
        Pages: 1 [2] 3 4