+mytek Posted September 14, 2019 Share Posted September 14, 2019 Although this was originally discussed in the 1088XLD topic, I felt this needed a topic of its own in order to not derail the XLD discussion more than I already have. So I decided to branch this off into its own topic. Let's talk about a GBS-8200 (HD 9800) XLD carrier board for high quality almost zero lag RGB to VGA output conversion, with RGB sourced from either a Sophia or VBXE. In fact I'll be calling this board RGB2VGA-XLD from this point forward to keep things simple. To obtain optimum results from the GBS-8200 which is a Chinese produced off the shelf Arcade Video Conversion board, it'll need to have the original firmware in the TV5725 video scaler chip replaced with custom presets (video parameters). Luckily the GBS-8200 pretty much comes ready to do this right out of the box, only requiring the addition of a 4-pin header (P5) and a jumper (P8), and some sort of external processor to poke in the new presets. Edit: my intentions are to create this in a carrier/mounting board version for the XLD, as well as a small I2C plug-in only version to just modify the GBS-8200 presets, thus keeping the target system this is aimed at more generic (i.e., XE, XL). There are some very nice 3D print designs that can be used to house a GBS for external use. The first attempt at creating custom presets for the GBS-8200 that I am aware of, was done by a guy with the alias of dooklink over at the schmups forum. His project revolved around the use of a Raspberry Pi to reprogram the presets via a bit-banged I2C interface. Later a guy by the name of Bruce Abbot at bhabbot.net.nz figured out how to get this working on a ATTiny681 chip, which is what I ran my initial tests with. However recently I decided that I wanted to transition this over to a different embedded processor chip called the PIC, which would allow for re-flashing via a JOY2PIC, just like all the other PICs currently being used on the 1088XLD. However my endeavours to do this have not faired well, and I have hit a wall which I have yet to climb over. Basically I think my scaler preset tables are correct and my I2C routines seem to be working properly when checked on a scope, but thus far no dice on getting a proper image to appear from the VGA output. My PIC code is being written in Great Cow Basic which is a free code development package, thus allowing it to work for either an AVR or PIC chip, while being done in an easy to understand syntax allows modifications to be easily made by others that chose to do so. Well assuming I can get this work in the first place . Here's my code... Initially I only have it targeting a PAL display, but once I get this working it'll be a simple matter to add a switch to change to NTSC mode. I also I plan to migrate this into a PIC12F1572 8-pin PIC, which sells for around $0.71 a piece. #chip 16F1847 ;Define I2C settings #define I2C_MODE Master #define I2C_DATA PORTA.0 #define I2C_CLOCK PORTA.1 ; #define I2C_BIT_DELAY 200 us ; #define I2C_CLOCK_DELAY 20 us ; #define I2C_END_DELAY 20 us #define I2C_ADDRESS 0x2E ;address of the slave device ;Define Switch and LED ports #define LED PORTA.2 ;==================================================== ; Main Program Loop ;==================================================== Dir LED Out LED=0 ;turn ON LED wait 500 ms for segment = 0 to 5 I2CStart I2CSend I2C_ADDRESS I2CSend 0xF0 ;access Bank Register I2CSend segment ;set to New Bank (point to segment) I2CStop I2CStart I2CSend I2C_ADDRESS if segment=0 then I2CSend 0x40 ;register start address for Segment 0 else I2CSend 0x00 ;register start address for Segment 1-5 end If index = segment+1 readtable Slen, index, Nbytes ;retrieve segment length ;send the presets for register = 1 to Nbytes Select Case segment Case 0 readtable P0, register, data Case 1 readtable P1, register, data Case 2 readtable P2, register, data Case 3 readtable P3, register, data Case 4 readtable P4, register, data Case 5 readtable P5, register, data End Select I2CSend data next register I2CStop next segment ;all done - flash LED Do Forever: wait 500 ms LED=1 wait 500 ms LED=0 Loop ;==================================================== ; Preset Tables ;==================================================== ;Define Segment Lengths Table Slen 32 144 64 128 96 112 End Table ;288p 50Hz 1280x1024 Preset Tables Start Here ; Bank 0 --------------------------------------------------------------------- Table P0 ; 40-5F: misc. data 7, 0, 0, 0, 0, 0, 174, 223, 4, 5, 195, 163, 26, 1, 97, 0 144, 12, 62, 0, 0, 100, 2, 179, 6, 123, 0, 56, 1, 0, 0, 0 End Table ; Bank 1 --------------------------------------------------------------------- Table P1 ; 00-2F: input format 96, 224, 100, 255, 255, 255, 255, 255, 255, 255, 255, 79, 134, 5, 89, 203 18, 0, 71, 0, 44, 3, 92, 0, 87, 3, 135, 0, 111, 2, 16, 0 56, 0, 146, 3, 155, 6, 159, 6, 4, 0, 0, 0, 0, 0, 0, 0 ; 30-5F: HD bypass 202, 0, 128, 0, 63, 0, 128, 44, 204, 0, 0, 0, 0, 1, 192, 0 0, 1, 192, 0, 0, 1, 192, 0, 0, 1, 192, 0, 0, 1, 192, 0 0, 1, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; 60-8F: Mode detect 208, 34, 32, 39, 65, 62, 178, 154, 78, 214, 177, 142, 124, 99, 139, 118 112, 98, 133, 105, 83, 72, 93, 148, 178, 70, 198, 238, 140, 98, 118, 156 0, 0, 53, 0, 0, 12, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0 End Table ; Bank 2 --------------------------------------------------------------------- Table P2 ; 00-3F: deinterlace 255, 3, 204, 0, 0, 0, 5, 5, 7, 0, 76, 4, 204, 152, 255, 73 33, 136, 142, 0, 0, 0, 124, 35, 214, 208, 0, 16, 0, 0, 0, 16 81, 2, 4, 15, 0, 0, 76, 12, 0, 0, 0, 0, 0, 0, 0, 0 0, 0, 52, 0, 136, 71, 3, 11, 4, 100, 11, 4, 143, 0, 0, 0 End Table ; Bank 3 --------------------------------------------------------------------- Table P3 ; 00-6F: Video processor 244, 164, 194, 176, 164, 6, 23, 124, 194, 150, 0, 0, 6, 8, 128, 226 164, 15, 16, 172, 128, 152, 194, 35, 2, 0, 0, 0, 0, 0, 0, 0 0, 0, 0, 96, 3, 0, 207, 38, 32, 220, 17, 224, 47, 32, 240, 64 26, 0, 0, 0, 125, 31, 44, 0, 0, 0, 0, 0, 0, 144, 0, 2 3, 0, 0, 248, 31, 248, 31, 248, 30, 208, 32, 248, 10, 142, 30, 48 0, 56, 8, 36, 10, 11, 234, 26, 0, 0, 26, 0, 196, 63, 4, 4 155, 128, 9, 233, 239, 127, 64, 210, 13, 216, 223, 63, 0, 0, 0, 0 ; 70-7F: PIP 8, 0, 180, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 End Table ; Bank 4 --------------------------------------------------------------------- Table P4 ; 00-1F: memory 130, 48, 0, 0, 48, 17, 66, 48, 1, 148, 17, 127, 0, 116, 0, 6 0, 146, 1, 1, 150, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; 20-5F: capture/playback + FIFOs 0, 43, 3, 31, 255, 255, 207, 255, 255, 31, 0, 164, 30, 0, 128, 0 0, 0, 0, 8, 0, 0, 16, 180, 204, 179, 0, 2, 0, 4, 3, 0 4, 0, 105, 0, 255, 255, 7, 255, 255, 7, 0, 68, 0, 224, 40, 62 192, 0, 0, 0, 104, 1, 192, 180, 204, 90, 204, 76, 0, 0, 0, 0 End Table ; Bank 5 --------------------------------------------------------------------- Table P5 ; 00-1F: ADC 216, 0, 87, 241, 0, 0, 63, 63, 63, 127, 127, 127, 0, 0, 0, 0 0, 144, 179, 198, 0, 0, 32, 206, 133, 130, 0, 0, 0, 0, 128, 4 ; 20-6F: Sync processor 208, 32, 15, 0, 64, 0, 5, 0, 0, 0, 15, 0, 0, 4, 0, 4 0, 47, 0, 40, 3, 21, 0, 4, 4, 15, 10, 0, 0, 0, 192, 3 11, 39, 6, 126, 6, 0, 192, 5, 192, 4, 192, 52, 192, 103, 192, 103 192, 0, 192, 5, 192, 192, 33, 192, 5, 192, 1, 200, 6, 0, 0, 0 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 End Table Here's the register map for the TV5725 video scaler chip on the GBS-8200: TV5725 Register Map.pdf The full document describing the registers: TV5725 Registers Definition v1.1.pdf And the programming Guide: TV5725 Programming Guide.pdf The TV5725 is one very capable chip, but as such, it is also very complicated. So I wasn't about to write the new preset tables from scratch, and instead copied this over from the original ATTiny681 project, although for test purposes I divided it up into the different segment (bank) assignments and functions. The following describes the I2C communication for updating the TV5725's internal registers. With an I2C read being done by using a slave address of 0xAE, and a write uses a slave address of 0x2E. To set a base address (also called a segment), 0xF0 is sent following the 'write' slave address, with the next byte sent equal to segment 0-5 which sets the register bank you'll be talking to. Finally the register address within the segment is sent, then followed by the new preset data. 10.2 I2C writing When writing to 5725, the slave address is AE/2E H . A control sequence as following: • Write to One Control Register Start Signal Slave Address Byte (R/W Bit = Low) Base Address Byte Data Byte to Base Address Stop Signal • Write to Consecutive Control Registers Start Signal Slave Address Byte (R/W Bit = Low) Base Address Byte Data Byte to Base Address Data Byte to (Base Address + 1) Data Byte to (Base Address + 2) Data Byte to (Base Address + 3) .................. Stop Signal If any of you coders see where I'm going wrong please feel free to point it out . The original ATTiny681 code: GBS_Control-ATTINY681.tar.gz 6 Quote Link to comment Share on other sites More sharing options...
ivop Posted September 14, 2019 Share Posted September 14, 2019 (edited) From the source: #define GBS_I2C_ADDRESS 0x17 // 0x2E why's that? Edit: Oh I see, the I2C bitbanger does this: (slaveAddr << 1) | I2CBB_SEND 0x2e is 0x17 * 2 Edited September 14, 2019 by ivop 1 Quote Link to comment Share on other sites More sharing options...
+DrVenkman Posted September 14, 2019 Share Posted September 14, 2019 Any idea if this will work with the 8220? (Dual-VGA output). I accidentally bought that version a few months back and would like to eventually put it into use. Quote Link to comment Share on other sites More sharing options...
ivop Posted September 14, 2019 Share Posted September 14, 2019 (edited) 10 hours ago, mytek said: index = segment+1 readtable Slen, index, Nbytes ;retrieve segment length You sure this is correct? Is this an Arrays Start At One language? Edit: and could you explain what exactly is not working? Can you read back the values you wrote and compare? Edited September 14, 2019 by ivop Quote Link to comment Share on other sites More sharing options...
+mytek Posted September 14, 2019 Author Share Posted September 14, 2019 1 hour ago, DrVenkman said: Any idea if this will work with the 8220? (Dual-VGA output). I accidentally bought that version a few months back and would like to eventually put it into use. Besides the added redundant VGA connector , I believe there is a difference in the board size. They both use the same TV5725 chip, and will respond the same to the preset change. However the RGB2VGA-XLD is going to be planned around the GBS-8200 and not the 8220, so I can't guarantee that the 8220 will mount up properly. For a non-XLD application either board will work without problems. 26 minutes ago, ivop said: You sure this is correct? Is this an Arrays Start At One language? If I recall correctly, arrays and tables are treated differently in GCB regarding index '0'. However In tables the '0' index holds the length of the table, thus the reason to start at an index of '1' to retrieve the first data value. So theoretically I could have eliminated the length table and done something like this instead, with the x in Px being a value between 0-5. readtable Px, 0, Nbytes ;retrieve segment length To really be effective and keep the code simple and short, I would need to do something more like this. readtable P(segment), 0, Nbytes ;retrieve segment length That way only one readtable statement is required to cover all instances. But I don't know if the name of the table can be modified in this way, or if it can, what the syntax really needs to look like. More info Quote Edit: and could you explain what exactly is not working? Can you read back the values you wrote and compare? With this latest code all I see is a black screen. To be honest I haven't tried doing a read after the write to see if the data actually got stored. I guess that should be my next move . Quote Link to comment Share on other sites More sharing options...
+mytek Posted September 14, 2019 Author Share Posted September 14, 2019 I did do a verification that the slave address being sent is being accepted by the TV5725 chip using a scope. After all the bits of the address are sent from the Master to the Slave a low ACK bit response from the Slave means it was accepted. I did see such a response when sending 0x2E, but saw the opposite for anything else Diagram from: https://learn.sparkfun.com/tutorials/i2c/all Quote Link to comment Share on other sites More sharing options...
Mr Robot Posted September 14, 2019 Share Posted September 14, 2019 I got this far with my reprogrammer and just haven't had time to work on it since. It is still in my active projects list so I will be watching this thread with interest. 1 Quote Link to comment Share on other sites More sharing options...
+mytek Posted September 15, 2019 Author Share Posted September 15, 2019 Yes imagine how much smaller that board can be made with an 8 pin chip (PIC12F1572) . Quote Link to comment Share on other sites More sharing options...
+Stephen Posted September 16, 2019 Share Posted September 16, 2019 The crowd at VCFMW sure loved the 1088XLD. I spoke to as many people as 8-but-guy did for his something or other Commodore conversion. We have no Youtube presence. I lost my voice by mid-day Saturday. What a crowd! BTW - Claus B sure likes the 1088 stuff. What a pleasure and an honour talking to him earlier this morning. 3 Quote Link to comment Share on other sites More sharing options...
+mytek Posted September 16, 2019 Author Share Posted September 16, 2019 Stephen I know you said there was no YouTube presence, but will there be video and/or photos posted at some point down the road? Glad to see that people were interested ? . Quote Link to comment Share on other sites More sharing options...
+Stephen Posted September 16, 2019 Share Posted September 16, 2019 31 minutes ago, mytek said: Stephen I know you said there was no YouTube presence, but will there be video and/or photos posted at some point down the road? Glad to see that people were interested ? . Videos - I am sorry, I couldn't. I did not even get to look at, nor take pictures of any other areas because I was literally sat at my booth and talking to people the entire 2 days. This is all I can offer: Here's a link from Gozar - showing me talking to Claus B: 5 1 Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted September 16, 2019 Share Posted September 16, 2019 7 hours ago, Stephen said: Here's a link from Gozar - showing me talking to Claus B Claus touched my menu! [swoons] 3 3 Quote Link to comment Share on other sites More sharing options...
+mytek Posted September 16, 2019 Author Share Posted September 16, 2019 11 hours ago, Stephen said: Videos - I am sorry, I couldn't. I did not even get to look at, nor take pictures of any other areas because I was literally sat at my booth and talking to people the entire 2 days. This is all I can offer: Your setup looked nice, simple, and to the point this year. Pretty cool that you got a couple pics with Ben Heck and David Murray next to you. Couldn't ask for better company, or celebrity status. Also very cool that you got to spend time with Claus. Its still soon after the festival, likely a few more days passing will bring out more photos and perhaps some video taken at the show. Quote Link to comment Share on other sites More sharing options...
Mr Robot Posted September 16, 2019 Share Posted September 16, 2019 There's this album, posted on twitter. Just the odd photo here and there apart from that so far. 1 Quote Link to comment Share on other sites More sharing options...
+orpheuswaking Posted September 16, 2019 Share Posted September 16, 2019 Stephen, this is why I am bummed I didn't make it this year, we could have tag teamed the demo Quote Link to comment Share on other sites More sharing options...
Faicuai Posted September 16, 2019 Share Posted September 16, 2019 14 hours ago, Stephen said: Videos - I am sorry, I couldn't. I did not even get to look at, nor take pictures of any other areas because I was literally sat at my booth and talking to people the entire 2 days. This is all I can offer: Here's a link from Gozar - showing me talking to Claus B: Oh WoOoW! Well, I am also a "silent" fan of Claus, and what a nice occasion it should have been to share some time with him, while interacting with the "boss" (800). I do wonder if he ever saw the 800/Incognito before this meeting... I also wonder what was on his mind, at that very moment... THANKS for sharing! 1 Quote Link to comment Share on other sites More sharing options...
+Stephen Posted September 16, 2019 Share Posted September 16, 2019 1 hour ago, Faicuai said: Oh WoOoW! Well, I am also a "silent" fan of Claus, and what a nice occasion it should have been to share some time with him, while interacting with the "boss" (800). I do wonder if he ever saw the 800/Incognito before this meeting... I also wonder what was on his mind, at that very moment... THANKS for sharing! I am not sure if he saw the Incognito before, but I made very sure to demo the features of it and U1MB, and also let him know of @flashjazzcat amazing work on the loader, his GUI, and Last Word. Everyone that saw the GUI was well impressed. @ClausB did mention that he had not seen Rasta converted images on real hardware, and we discussed his pre-production serial number 26 800. I was glad to get to demo this stuff, that's for sure. 1 Quote Link to comment Share on other sites More sharing options...
ClausB Posted September 18, 2019 Share Posted September 18, 2019 It was a pleasure to see Stephen again and to play with the cool new stuff he had on display. He had the best explanations and his enthusiasm was inspiring. 2 1 Quote Link to comment Share on other sites More sharing options...
+mytek Posted October 9, 2019 Author Share Posted October 9, 2019 (edited) Making progress... GBS-8200 I2C reprogramming now being done by a PIC12F1572 and completely rewritten in Great Cow Basic. Now that's it's been ported over to a PIC chip, it can be flashed with a JOY2PIC, same as all the other custom MCU's on the 1088XLD. Here's the code where it stands thus far... ; Default to 8 Mhz internal factory calibrated oscillator #chip 12F1572, 8 ; Enabling Weak Pull-Ups OPTION_REG.7 = 0 ;enabling Port A pull-ups in general. Set WPUA2 = 1 ;Port A input 2 (switch) pulled up ; Define I2C settings #define I2C_MODE Master #define I2C_DATA PORTA.5 ;SDA Port #define I2C_CLOCK PORTA.4 ;SCL Port #define I2C_ADDRESS 0x2E ;address of the GBS slave device ; Define Switch and LED ports #define GRN PORTA.0 ;Green LED = NTSC Dir GRN Out #define RED PORTA.1 ;RED LED = PAL Dir RED Out #define SW PORTA.2 ;Mode select switch (PAL or NTSC) Dir SW In Dim SW_old as Bit ;stores switch state for comparision ; I2C Sub Routine to Set which Bank (segment) will be active ; Calling Parameters: 1 ; Bank: 0-5 (specifies 1 of 6 possible TV5725 segments) Sub SetBank (In Bank) Repeat 3 I2CStart I2CSend I2C_ADDRESS I2CSend 0xF0 I2CSend Bank End Repeat I2CStop End Sub ; I2C Sub Routine to 'Write One Byte' to specified register ; Calling Parameters: 3 ; Bank: 0-5 (specifies 1 of 6 possible TV5725 segments) ; Reg: 0-159 (specifies a specific register within the segment) ; Value: 0-255 (specifies a byte value to write into the register) Sub WriteByte (In Bank, In Reg, In Value) GoSub SetBank (Bank) I2CStart I2CSend I2C_ADDRESS I2CSend Reg I2CSend Value I2CStop End Sub ;==================================================== ; Main Program Loop ;==================================================== GRN=1 ;Turn on both LEDs initially to indicate I2C transfer RED=1 wait 100 ms ;small pause to allow GBS to fully power-up ; Set segment bank address, and then punch in the presets for that segment For segment = 0 to 5 GoSub SetBank (segment) ;Set Bank Address = Segment I2CStart I2CSend I2C_ADDRESS If segment=0 Then I2CSend 0x40 ;register start address for Segment 0 Else I2CSend 0x00 ;register start address for Segment 1-5 End If readtable Slen, segment+1, length ;retrieve segment length ; Send the Presets For register = 1 to length Select Case segment Case 0 readtable P0, register, data Case 1 If SW Then readtable N1, register, data ; use NTSC Presets Else readtable P1, register, data ; use PAL Presets End If Case 2 readtable P2, register, data Case 3 If SW Then readtable N3, register, data ; use NTSC Presets Else readtable P3, register, data ; use PAL Presets End If Case 4 readtable P4, register, data Case 5 readtable P5, register, data End Select I2CSend data Next register I2CStop Next segment ; Activate !!! GoSub WriteByte (0, 0x46, 0x00) ;Soft Reset GoSub WriteByte (0, 0x46, 0xFF) GoSub WriteByte (0, 0x47, 0x00) ;Soft Reset GoSub WriteByte (0, 0x47, 0xFF) GoSub WriteByte (5, 0x11, 0x12) ;Latching PLLAD for Pixel Clock GoSub WriteByte (5, 0x11, 0x92) SW_old=SW ;store switch state ; All Done - Loop while flashing LED w/color based on switch setting Do Forever: wait 1 s If SW<>SW_old Then RESET ;Soft Reset if switch state changes If SW Then GRN=1 ; NTSC Mode Selected Else RED=1 ; PAL Mode Selected End If wait 1 s If SW<>SW_old Then RESET ;Soft Reset if switch state changes RED=0 GRN=0 Loop ;==================================================== ; Preset Tables ;==================================================== ; Define Segment Lengths Table Slen 32 144 64 128 96 112 End Table ; 288p_50Hz_1280x1024 PAL Preset Tables === Start Here === ; Misc Table P0 124, 164, 0, 0, 37, 1, 95, 7, 63, 0, 0, 0, 0, 42, 0, 48 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 End Table ; Input Formatter, HD-Bypass, Mode detect Table P1 96, 224, 100, 255, 255, 255, 255, 255, 255, 255, 255, 79, 134, 5, 89, 203 18, 0, 71, 0, 44, 3, 92, 0, 87, 3, 135, 0, 111, 2, 16, 0 56, 0, 146, 3, 155, 6, 159, 6, 4, 0, 0, 0, 0, 0, 0, 0 202, 0, 128, 0, 63, 0, 128, 44, 204, 0, 0, 0, 0, 1, 192, 0 0, 1, 192, 0, 0, 1, 192, 0, 0, 1, 192, 0, 0, 1, 192, 0 0, 1, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 208, 34, 32, 39, 65, 62, 178, 154, 78, 214, 177, 142, 124, 99, 139, 118 112, 98, 133, 105, 83, 72, 93, 148, 178, 70, 198, 238, 140, 98, 118, 156 0, 0, 53, 0, 0, 12, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0 End Table ; De-Interlace Table P2 255, 3, 204, 0, 0, 0, 5, 5, 7, 0, 76, 4, 204, 152, 255, 73 33, 136, 142, 0, 0, 0, 124, 35, 214, 208, 0, 16, 0, 0, 0, 16 81, 2, 4, 15, 0, 0, 76, 12, 0, 0, 0, 0, 0, 0, 0, 0 0, 0, 52, 0, 136, 71, 3, 11, 4, 100, 11, 4, 143, 0, 0, 0 End Table ; Video Processor, PIP Table P3 2, 244, 164, 194, 176, 164, 6, 23, 124, 194, 150, 0, 0, 6, 8, 128 226, 164, 15, 16, 172, 128, 152, 194, 32, 2, 0, 0, 0, 0, 0, 0 0, 0, 0, 0, 96, 3, 0, 207, 38, 32, 220, 17, 224, 47, 32, 240 64, 26, 0, 0, 0, 125, 31, 44, 0, 0, 0, 0, 0, 0, 144, 0 2, 3, 0, 0, 248, 31, 248, 31, 248, 30, 208, 32, 248, 10, 142, 30 48, 0, 56, 8, 36, 10, 11, 234, 26, 0, 0, 26, 0, 196, 63, 4 4, 155, 128, 9, 233, 239, 127, 64, 210, 13, 216, 223, 63, 0, 0, 0 0, 8, 0, 180, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 End Table ; Memory, Capture/Playback, FIFO Table P4 130, 48, 0, 0, 48, 17, 66, 48, 1, 148, 17, 127, 0, 116, 0, 6 0, 146, 1, 1, 150, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 0, 43, 3, 31, 255, 255, 207, 255, 255, 31, 0, 164, 30, 0, 128, 0 0, 0, 0, 8, 0, 0, 16, 180, 204, 179, 0, 2, 0, 4, 3, 0 4, 0, 105, 0, 255, 255, 7, 255, 255, 7, 0, 68, 0, 224, 40, 62 192, 0, 0, 0, 104, 1, 192, 180, 204, 90, 204, 76, 0, 0, 0, 0 End Table ; ADC, Sync Processor Table P5 216, 0, 87, 241, 0, 0, 63, 63, 63, 52, 52, 52, 0, 0, 0, 0 0, 144, 179, 198, 0, 0, 32, 206, 133, 130, 0, 0, 0, 0, 128, 4 208, 32, 15, 0, 64, 0, 5, 0, 0, 0, 15, 0, 0, 4, 0, 4 0, 47, 0, 40, 3, 21, 0, 4, 4, 15, 10, 0, 0, 0, 192, 3 11, 39, 6, 126, 6, 0, 192, 5, 192, 4, 192, 52, 192, 103, 192, 103 192, 0, 192, 5, 192, 192, 33, 192, 5, 192, 1, 200, 6, 0, 0, 0 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 End Table ; 240p_60Hz_1280x1024 NTSC Preset Tables === Start Here === ; Input Formatter, HD-Bypass, Mode detect Table N1 96, 224, 100, 255, 255, 255, 255, 255, 255, 255, 255, 79, 134, 5, 89, 203 18, 0, 71, 0, 44, 3, 92, 0, 87, 3, 135, 0, 0, 2, 4, 0 56, 0, 146, 3, 155, 6, 159, 6, 4, 0, 0, 0, 0, 0, 0, 0 202, 0, 128, 0, 63, 0, 128, 44, 204, 0, 0, 0, 0, 1, 192, 0 0, 1, 192, 0, 0, 1, 192, 0, 0, 1, 192, 0, 0, 1, 192, 0 0, 1, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 208, 34, 32, 39, 65, 62, 178, 154, 78, 214, 177, 142, 124, 99, 139, 118 112, 98, 133, 105, 83, 72, 93, 148, 178, 70, 198, 238, 140, 98, 118, 156 0, 0, 53, 0, 0, 12, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0 End Table ; Video Processor, PIP Table N3 2, 244, 164, 194, 176, 164, 6, 22, 108, 194, 150, 0, 0, 6, 8, 128 226, 164, 15, 16, 172, 128, 152, 18, 30, 2, 0, 0, 0, 0, 0, 0 0, 0, 0, 0, 96, 3, 0, 207, 38, 32, 220, 17, 224, 47, 32, 240 64, 26, 0, 0, 0, 125, 31, 44, 0, 0, 0, 0, 0, 0, 144, 0 2, 3, 0, 0, 248, 31, 248, 31, 248, 30, 208, 32, 248, 10, 142, 30 48, 0, 56, 8, 36, 10, 11, 234, 26, 0, 0, 26, 0, 196, 63, 4 4, 155, 128, 9, 233, 239, 127, 64, 210, 13, 216, 223, 63, 0, 0, 0 0, 8, 0, 180, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 End Table Edited October 10, 2019 by mytek Modified GCB Source Code enabling weak pull-up 3 1 Quote Link to comment Share on other sites More sharing options...
Mr Robot Posted October 9, 2019 Share Posted October 9, 2019 Fantastic! 1 Quote Link to comment Share on other sites More sharing options...
+mytek Posted October 10, 2019 Author Share Posted October 10, 2019 (edited) Updated schematic (PRELIMINARY)... click on image to enlarge Edited October 10, 2019 by mytek Simplifed PIC circuit in schematic and added notes Quote Link to comment Share on other sites More sharing options...
+mytek Posted October 10, 2019 Author Share Posted October 10, 2019 BTW, I plan to also make a very small I2C plug-in board to simply reprogram the GBS for non-XLD applications. Well that is, unless someone beats me to it . Quote Link to comment Share on other sites More sharing options...
Mr Robot Posted October 10, 2019 Share Posted October 10, 2019 36 minutes ago, mytek said: unless someone beats me to it I've already decided to wait for you to do it 1 2 Quote Link to comment Share on other sites More sharing options...
+mytek Posted October 10, 2019 Author Share Posted October 10, 2019 39 minutes ago, Mr Robot said: I've already decided to wait for you to do it So you guessed who I was talking about , It won't take me long, since it uses very few parts. The final design will eliminate yet another resistor. Just need to enable the internal pull-ups in the PIC for the mode switch input. And of course there will be no need for the RGB switching or the 12V power filtering circuit. Quote Link to comment Share on other sites More sharing options...
Mr Robot Posted October 10, 2019 Share Posted October 10, 2019 Need to mod the code for 240p/480p to switch between VBXE modes, I won't ever want to switch NTSC/PAL. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.