Jump to content

Photo

Bird's nest...


49 replies to this topic

#1 JohnPCAE OFFLINE  

JohnPCAE

    Moonsweeper

  • 379 posts

Posted Thu Jun 8, 2017 6:28 PM

Someone has hacked into my Inty! Could they be sending a message?

Attached Thumbnails

  • Birds_nest.jpg
  • Video_overlay.jpg

Edited by JohnPCAE, Thu Jun 8, 2017 6:35 PM.


#2 Keatah ONLINE  

Keatah

    Quadrunner

  • 18,701 posts

Posted Thu Jun 8, 2017 7:21 PM

What are you doing to that poor console?



#3 grips03 ONLINE  

grips03

    River Patroller

  • 3,368 posts
  • Location:New England

Posted Thu Jun 8, 2017 7:21 PM

is that the new video mode thing?



#4 nanochess OFFLINE  

nanochess

    River Patroller

  • 4,894 posts
  • Coding something good
  • Location:Mexico City

Posted Thu Jun 8, 2017 7:31 PM

Nothing like playing with some wires in a Thursday afternoon.



#5 pimpmaul69 OFFLINE  

pimpmaul69

    River Patroller

  • 4,834 posts
  • INTV Brotherhood Technician
  • Location:Colorado

Posted Thu Jun 8, 2017 7:56 PM

All the extra jumpers lying around scares me. :lol: might i ask what this awesome mad science experiment is for?

#6 JohnPCAE OFFLINE  

JohnPCAE

    Moonsweeper

  • Topic Starter
  • 379 posts

Posted Thu Jun 8, 2017 8:04 PM

I'm feeding its video overlay pin 8. The massive circuit reads from a FIFO chip and an Arduino is filling the chip with pixel data. It's still noisy as heck, so I'm waiting on some more parts and breadboards so I can try to cut the noise down and finalize a PCB design. I'm pretty sure I've got the timing down save for a potential boundary condition at the end of each scan line. The crosstalk-induced noise from all these wires is making it hard to determine the exact point to stop reading from the FIFO on each scan line, so I need to lower the noise so I can nail it down. The circuit is operating at about 7MHz (specifically, double the Inty's MCLK frequency). There's a little PLL buried under the wires doing the work of doubling the clock.

Attached Thumbnails

  • IMG_2067.JPG

Edited by JohnPCAE, Thu Jun 8, 2017 8:16 PM.


#7 JohnPCAE OFFLINE  

JohnPCAE

    Moonsweeper

  • Topic Starter
  • 379 posts

Posted Fri Jun 9, 2017 12:30 AM

In case anyone is interested, this is my current "target" design...that I'll be testing once my parts come in. It lets the Arduino pump in 8 pixels at a time. The one I currently have wired up is nearly the same but only lets it pump in 4 pixels at a time. I'm testing with an IDT7208 64kx9 FIFO, which is really overkill. It has the same pinout and usage as the 7205 in the schematic. I made a notional board layout that fits within the maximum board size allowed in the free version of Eagle, but it's only tentative until I validate the design.

Attached Thumbnails

  • Video_overlay_schematic.png
  • Video_overlay_board.png

Edited by JohnPCAE, Fri Jun 9, 2017 12:38 AM.


#8 m-crew ONLINE  

m-crew

    River Patroller

  • 3,646 posts
  • Location:Toronto -Canada

Posted Fri Jun 9, 2017 3:05 AM

So whats that translated into basic English. ;) lol

#9 mr_me OFFLINE  

mr_me

    River Patroller

  • 2,123 posts
  • Location:Ontario

Posted Fri Jun 9, 2017 4:32 AM

He's mixing hi resolution (monochrome) graphics with Intellivision graphics. Its similar to what the keyboard component did. With game applications you could display text information eg. scores in smaller high res fonts. You could have fixed text displayed during scrolling. The only limitation is it has to be white, I suppose it could be other colours but it will mix with Intellivision colours.

#10 JohnPCAE OFFLINE  

JohnPCAE

    Moonsweeper

  • Topic Starter
  • 379 posts

Posted Sat Jun 10, 2017 3:03 AM

Getting closer :-D

 

I still need to clean out more noise (if I fill the screen with text it goes crazy), but it's a lot more stable than it was yesterday. The circuit had to undergo lots of changes, and there are surely more to come as I fine-tune the timing. This has the Arduino pumping out 8 pixels at a time, and I have 127 character bitmaps stored in flash. This leaves plenty of space for more character bitmaps.

 

The reason the left half of the screen is blurry is because of the way my Dell monitor is interpreting the composite video coming from the Inty. It expects standard NTSC video, which begins and ends with half-scanlines. The Inty generates noninterlaced video that begins and ends with full scanlines, which is confusing the monitor.

Attached Thumbnails

  • IMG_2068.JPG


#11 JohnPCAE OFFLINE  

JohnPCAE

    Moonsweeper

  • Topic Starter
  • 379 posts

Posted Sun Jun 11, 2017 8:10 PM

Lots of design changes later, it's down to just noise suppression :grin:

Attached Thumbnails

  • IMG_2070.JPG


#12 carlsson OFFLINE  

carlsson

    Quadrunner

  • 5,034 posts
  • Location:Västerås, Sweden

Posted Mon Jun 12, 2017 9:45 AM

If you pump data fast enough, could you make a monochrome Doom game, and can the external video source be timed to the main CPU?



#13 mr_me OFFLINE  

mr_me

    River Patroller

  • 2,123 posts
  • Location:Ontario

Posted Mon Jun 12, 2017 11:05 AM

If you pump data fast enough, could you make a monochrome Doom game, and can the external video source be timed to the main CPU?

That would be similar to the Intellivision "System Changer".

#14 Lathe26 OFFLINE  

Lathe26

    River Patroller

  • 3,006 posts

Posted Mon Jun 12, 2017 11:27 AM

Looks like you are using the old DOS character set. Are you planning to stick with that one?

#15 JohnPCAE OFFLINE  

JohnPCAE

    Moonsweeper

  • Topic Starter
  • 379 posts

Posted Mon Jun 12, 2017 11:01 PM

I plan to include several fonts. The Arduino Uno has 32k flash, so there's room (the CGA font here is already being read from flash). I'd like to have some be programmable, but I can't make any guarantees. An Arduino has only 2k RAM and I'm using 960 up just for the 40x24 video buffer.

 

One question re: fonts is whether we need all 256 glyphs for internationalization purposes or if I should stop at 128. There are lots of potential ideas for expanding the design, but it comes down to RAM space as well as the speed of the Arduino. Right now it pumps the pixel data out in about 45% of a 1/60 second frame, and it will need some time to service requests from the Inty CPU (which will have to be implemented on a separate board, with probably a FIFO to take as much of the load off the Arduino as possible).

 

The FIFO chip I'm using is 9 bits wide, so for every 8 pixels I'm pumping out there is the potential to push out an extra bit. I'm leaning toward an intensity bit that would allow for two brightness settings, but then there's the issue of storing a 16-bit wide screen buffer instead of an 8-bit one in only 2k of RAM. Also speed is an issue here, so the video buffer has to be organized such that it can rapidly get the information it needs. It might be possible to store attributes in a separate bit-packed array but I won't know if I can access it efficiently without testing it.

 

One thing that worries me is that if Inty requests are queued up in a FIFO, the Arduino will have to be able to drain that FIFO as fast as the Inty can fill it.

 

My board design is well underway, but I still have to load it up with vias between the two ground planes and then go over it with a fine-toothed comb. I've tried to maximize the amount of shielding between traces and I've added provisions for up to three large caps to keep the power stable. I don't think they will all be required, but who knows.

Attached Thumbnails

  • Video_overlay_board.png

Edited by JohnPCAE, Mon Jun 12, 2017 11:01 PM.


#16 JohnPCAE OFFLINE  

JohnPCAE

    Moonsweeper

  • Topic Starter
  • 379 posts

Posted Sat Jun 17, 2017 4:33 PM

Final board layout, and just ordered it from OSH Park! It runs at 2x MCLK (roughly 7MHz), but also provides a 4x clock output and output pixel and enabled taps to allow for future experimentation. It takes 9 data inputs, with the last bit acting as an intensity bit (1 = full brightness, bright, 0 = half-brightness). Now I just have to wait for the boards so I can try them out.

Attached Thumbnails

  • Video_overlay_board.png
  • Video_overlay_schematic.png


#17 JohnPCAE OFFLINE  

JohnPCAE

    Moonsweeper

  • Topic Starter
  • 379 posts

Posted Sun Jun 25, 2017 12:48 PM

Finally got my boards and all the parts!

 

I had two resistor values backwards in the schematic. R12 should be 3.3k and R13 should be 10k, but otherwise I'm getting the same results as with the breadboard. It's still somewhat noisy, though. I'll have to figure that out.

 

I'll also have to tweak the board design a little: two of the chips are too close together and it took a lot of pin bending on one of them to get it to fit.

 

In the screenshot I'm alternating the intensity bit for each character, which is why the columns are varying in intensity.

Attached Thumbnails

  • Video_overlay_assembled.png
  • Video_overlay_3_from_board.png

Edited by JohnPCAE, Sun Jun 25, 2017 12:49 PM.


#18 JohnPCAE OFFLINE  

JohnPCAE

    Moonsweeper

  • Topic Starter
  • 379 posts

Posted Sat Jul 1, 2017 6:37 PM

So close...

 

There's a tiny amount of noise left, and while I can eliminate 99% of it by moving a flip-flop chip to a breadboard, I still have to figure out what PCB changes will achieve the same thing.

Attached Thumbnails

  • IMG_2074.JPG


#19 JohnPCAE OFFLINE  

JohnPCAE

    Moonsweeper

  • Topic Starter
  • 379 posts

Posted Tue Jul 4, 2017 10:50 AM

Getting there! Most of the noise is coming from signal reflections at the three clock taps (1x, 2x, and 4x MCLK). I can eliminate it by adding small capacitors in series with small resistors connecting them to ground (basically adding impedance terminators). I still have to identify the source of the remaining noise.



#20 JohnPCAE OFFLINE  

JohnPCAE

    Moonsweeper

  • Topic Starter
  • 379 posts

Posted Sun Jul 9, 2017 6:36 PM

Well, I give up trying to synthesize MCLK * 4 from the MCLK pin: the signal from the Inty is just too noisy. It turns out that 5V oscillators that give me MCLK * 4 are plentiful (14.318180 MHz). Since the counters reset every scanline, I don't expect any glitches. Once the oscillator arrives, I'll give it a try.



#21 JohnPCAE OFFLINE  

JohnPCAE

    Moonsweeper

  • Topic Starter
  • 379 posts

Posted Mon Jul 10, 2017 2:40 AM

Huh. This is what I get for having insomnia. On a hunch I added a simple 2N3904 amplifier circuit before the comparator and a 7408 AND after generating the clock (to isolate the generation circuitry) and now the display is rock-stable. So, there is at least one potential solution :-D


Edited by JohnPCAE, Mon Jul 10, 2017 2:42 AM.


#22 JohnPCAE OFFLINE  

JohnPCAE

    Moonsweeper

  • Topic Starter
  • 379 posts

Posted Mon Jul 10, 2017 6:05 PM

Now we're cooking! It turns out that using an AND gate to stabilize the clock is a bad idea as it's highly dependent on the particular chip and type of chip (HCT, ACT, etc.). All I needed was better filtering and a tweak to the amount of hysteresis in my Schmitt trigger. At some point in the near future I'll upload my Eagle files and Arduino proof-of-concept code.

Attached Thumbnails

  • IMG_2077.JPG

Edited by JohnPCAE, Mon Jul 10, 2017 6:05 PM.


#23 JohnPCAE OFFLINE  

JohnPCAE

    Moonsweeper

  • Topic Starter
  • 379 posts

Posted Wed Jul 12, 2017 8:26 PM

No guarantees here, but I'm shooting for 2048 character glyphs in Arduino flash memory: I think it might be readily possible to implememt a 12-bit wide character array in the Arduino's RAM, with one bit reserved as a brightness/intensity bit (though I wonder if reverse-video might be more useful instead). I haven''t worked out whether or how to have a RAM area for glyphs yet, but I suspect it might have to reside in external memory since an Arduino Uno only has 2k RAM. At any rate, here are the glyphs I have so far. The CGA font is heavily expanded for internationalization, and the following two fonts less so. Now I'm looking at adding some bare-bones stylized glyphs, but there's enough space available that I think it would be a good idea to post what I have so far and solicit some feedback.

Attached Files



#24 bradhig1 OFFLINE  

bradhig1

    Dragonstomper

  • 629 posts
  • Location:Olathe Kansas

Posted Wed Jul 12, 2017 9:03 PM

LOL!! circuit bending the Intellivision.



#25 carlsson OFFLINE  

carlsson

    Quadrunner

  • 5,034 posts
  • Location:Västerås, Sweden

Posted Thu Jul 13, 2017 5:19 AM

Font wise, don't be afraid to have the accents, umlauts, circumflex, rings etc hit into the main character. I am referring to letters such as à, è, ì, ò, ù, á, í, ó, ú (where did é go?). Also letters like ü, ô, ö, û, ÿ, ñ etc really don't need to be one pixel shorter than their non decorated counterparts. The ring/dot on capital Å could melt into the base letter instead of having a very distinct look. The same could be said about capital Ö.

 

Though it might be for technical, visual reasons you make sure that every dot is two pixels wide and that single width dots and lines will just smear and become inlegitimate. However on your Intellivision style font, the ring on Šand tilde on à (among others) are at higher resolution than most of the others.

 

Bruce Abbott extracted a number of C64 fonts for his Aquarius. Though these are two entirely different designs and fill different purposes, you might find some usable fonts there. He didn't put in as many letters for internationalization though.

http://atariage.com/...-6#entry3438658






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users