Board scan Visteon Dockable Entertainment Teardown

makho

.
Joined
Apr 6, 2021
Messages
8
Likes
37
Wait a second, this is the handhelds forum? Yeah, well, technically the Visteon *is* a handheld. Let me present my case.

The Visteon Dockable Entertainment is a portable DVD player with a built in Game Boy Advance. It uses real GBA hardware to run actual game paks. Also, you can watch DVDs on it. I think that the wikipedia page can explain this better than I can: Visteon Dockable Entertainment - Wikipedia

I also have a youtube channel and I did a live stream of the teardown but these are the photos I took and some post teardown analysis.

Why did I buy this? Well, if my youtube channel is any evidence, I like modding Game Boys. As far as I can tell, no one has modded one of these "Game Boys" either. Would I recommend anyone get one of these? Oh god no. It is way too rare and expensive and offers very little functionality over other options. Though there is some appeal to being able to basically take your Game Boy Player (Nintendo Game Cube) on the go with you, there are better options for both home console play (gbaHD or even a Game Boy Player) and portable use (perhaps a regular Game Boy Advance or even the Game Boy Micro). You can buy a good portable and a good TV player both for less than the cost of one of these. And mine didn't even have cables or a controller (or a working battery).

On to my analysis. I originally started documenting this as an imgur album so please forgive me if the formatting is a bit strange or hard to follow.

Let's start with an overview of the unit.
1 - vRFqrKM.jpg
2 - aL6K2IQ.jpg

3 - 5Sm1Gk4.jpg
5 - smBqzjx.jpg

There are at least two different variants of this hardware version. Note that no "Visteon" logo is visible on the DVD lid or outside cover. This was likely installed in a car at the time of purchase or as an included option on a new vehicle whereas other models would have been purchased after the vehicle was purchased and installed by the dealer. Note the small black circle to the bottom right of the DVD lid. This is one of the three IR receivers in this unit. The second one is right below the play button on the side of the unit.

Important text on the bottom label reads:
Week/Month 8 of 2007
VP7U6F-19C043-AA
S/N VXG1700S8 0005454
DC Power input 9-18v 3A

4 - sJs0yVa.jpg

Another indication that my unit is a pre-installed dealer unit is that mine has a big MAZDA logo on it when you boot. Other variants show a screen with both the Visteon and Game Boy Advance logos
maxresdefault.jpg


Next up, let's take a look at the battery.

9 - opvUWEa.jpg
11 - tPJnd6R.jpg

10 - IygAxGZ.jpg
12 - fAeIwOK.jpg

Battery, model VP 5KAF-18520-AA DC 7.4v nominal 4400mAh This indicates that the battery is a 2s2p configuration with 2200mAh cells

Battery is held together with small plastic clips on the two halves of the housing and little dabs of silicone to lock everything in place. Disassembly with a plastic spudger was pretty easy but I did still manage to break a few of the plastic clips. This was significantly easier than prying apart a sonically welded battery pack.
Battery uses 4x 18650 SAMSUNG ICR cells configured in a 2s2p arrangement for 7.4v nominal. My cells are completely depleted and unsalvageable.

Batteries are joined with custom flex PCBs welded to the terminals. Replacement of the cells might be difficult without damaging the flex PCBs. Luckily, they can be desoldered quite easily. I intend to recell my battery with new 18650s but I have not started this process yet. I will need to inquire about a spot welder for attaching the battery tabs properly.

Let's start with the teardown of the player. Starting with the top half, the LCD lid comes off after revealing five phillips screws under rubber feet.
13 - lBvB9PK.jpg
15 - STbu8EH.jpg
16 - 0wfVlOM.jpg

The GBA module is held on to the lid with six screws (only four in mine -- refurbished?) Teardown reveals the Nintendo silicon powering the GBA portion of this DVD player. It uses an AGB E CPU in a BGA package, the exact same that appears went into the Micro. This CPU is not known to be capable of running GBC games so the physical lockout on the cart slot makes more sense (ONLY GBA games can be inserted, GB and GBC games do not fit).

Text on the front:
Board Rev PVB14588
VF6U6F-14A608-C8

Starting at the top left --
IC8: LMV824 is an opamp and is likely used to handle the audio out
IC3: Chrontel CH7013B-DF is the main video encoder chip that is interfacing the AGB CPU (IC1) with the DVD player itself
IC5: XILINX XC2C256 CoolRunner II CPLD appears to take the video out from the AGB CPU (IC1) and feed it into the video encoder chip (IC3). Function is not known beyond line doubling to bump the AGB CPU resolution from 240p to 480p.
IC6: IS61LV12816L-10TL is SRAM used by the CPLD as a frame buffer
IC4: Motorola 69HC906 MCU interfaces with the IR receiver in the lid of the DVD player and handles the button encoding and translation, senses cart insertion, and handles power. Specific functions beyond this are not known .
IC1: Nintendo AGB E CPU. This one should be obvious. Datasheets and technical specs are not available for this chip and is the only undocumented chip on this board. HDR has begun reverse engineering the Game Boy Micro PCB, however, and his pinout of the CPU is available here: GitHub - HDR/GB_Micro_Schematic: WIP
IC10 and IC9: 3.3v and 1.8v regulators for board power. Specific regulator specs are unavailable but part itself is rather generic.
IC2: TI CU125C is a quad fet bus switch and specific usage in this circuit is still unknown. It appears that the IC can disconnect the AGB link port from the circuit. Perhaps this part is related to why multiboot is not working properly on my unit? Alternatively, this part may be interfacing with the IR emitter and sensor to reset the GBA board when carts are removed and inserted. This seems more likely, electrically even if the physical proximity is... strange. I'll have to start beeping things out with a multimeter to get more information.

Text on the back:
VXG-1700GAME
E4000609901
R 12-E000001

Originally, I had assumed this chip (IC4) was the PMIC used on the AGS-101 and Game Boy Micro boards but I was mistaken. The markings are different and the supporting components do not make sense for it to be a power regulation chip, especially with the power regulators located on the opposite side of the board.

Curiously, there is an IR emitter and receiver in the path of the cart slot. Inserting a cart will break the connection. This appears to be feeding back into the MCU though the specific function is unknown. Observed behavior is that pulling out or inserting a cart while the GBA is running will cause GBA to reset. I believe the idea is that you can "hot swap" carts without having to power down the console.

Next up is the LCD board

21 - jMBn4Q5.jpg
22 - 8Z2qSMN.jpg
23 - pF3Du9s.jpg

Nothing too interesting but it will later be important when I replace the LCD. Not that there's anything wrong with the LCD in mine but there is a drop in pin compatible and mounting bracket compatible LCD replacement that uses a LED backlight instead of a CCFL. It should significantly increase battery life and I'll share more details on that after I've confirmed it working.

On the back side side, the white cable goes to the Game Boy board and the two pin red/black cable goes to the inverter board for the LCD CCFL backlight. This side only reveals a load of passives. There was a part number sticker, but it appears to have stuck to the shielding tape.

Sticker text:
VXG-1700LCD
E4000609800
R 12-E0606-04

Front reveals something more interesting. From left to right, we have the two LCD FFC receptacles. Mine appeared to be full of flux. I cleaned this out with IPA. Next is a driver IC, VP78L-LF. I haven't found a datasheet for this yet and I can't really speculate on what it is doing. To the right of the IC is the big connector that joins the bottom main board to the LCD board. Last is the IR receiver in the top half of this unit. This is presumably what the Game Boy is connected to and reading inputs on the controller.

Board text:
DVS Korea Co.,LTD (DVS is the OEM that Visteon used for the hardware)
VXG-1700 LCD BD
20060302 Ver 00

Last, let's look at the main board for this thing. Teardown requires removing all of the screws on the bottom, including two under labels and two under feet. One screw is under the large serial number label and the other is under a warranty sticker. The other two hidden screws are under the small round rubber feet near the hinge. The screws in the actual hinge (on the side, not the bottom) do not need to be removed.
18 - g2zLAko.jpg
20 - YfeJFdw.jpg

The top doesn't reveal anything too interesting. The back is where the good stuff is.

On the back, left side of the board contains all the power handling and power rails. Looks to be a 5v and 3.3v rail. Power input and battery charge is in the bottom left, each power rail appears to duplicated right above that. On the right is the main module of the player. I'm not familiar with these types of circuits and I'm not interested at this time in deconstruction so I can't say for certain which chip does what but I believe that the big chip is the main processor for the DVD player. The part number MT1389DE looks to be an older MediaTek part but I couldn't find the specific datasheet with 30 seconds of googling so I can't say for sure. Right below that chip are two more interesting chips, EXCELSEMI ES29LV160ET-70TGI is a 16Mb flash memory module. This likely contains the firmware, boot screen, DVD screensaver, etc. I have not yet dumped mine for comparison. And the other chip right on the bottom is GLT5640L16EP-7TC appears to be SRAM but I couldn't find a datasheet in 30 seconds of google searching either. The only other "big" chip is on the top left of the right side of the board. It is labeled SG28 FAN8728 but I cannot find any info about it. Based on the package and location, I assume it's a driver module of some kind, perhaps for the DVD motor. I'm unsure though.

And after all that, I reassembled it. If I had access to a scanner, you best believe that I would have scanned these boards. If I had better camera equipment and a light booth, I would have popped it in there too. Nonetheless, I cannot find ANY other disassembly pictures of this thing anywhere aside from the ones another user on the Game Boy discord just posted of his.

25 - JMp2l9j.jpg


Careful prodding with tweezers of the MCU on IC4 does indeed confirm that the MCU is handling the button inputs for the AGB CPU (I do not yet have a controller).

I have a lead on more controllers for this thing too since mine did not come with one. It looks like Visteon used a slightly modified "Sky Active" game pad (not "SkyActiv", despite the Mazda affiliation). Really, it looks like all they did was remove two buttons from the mold (they still appear on the PCB itself) and then relabel and paint the rest of the controller. Functionality is presumed to be identical with the two. Like I said, I don't own a Visteon controller but someone did do a teardown of that on neogaf.

Anyway, thoughts? Corrections? Suggestions? I fully intend to mod this thing but I'll probably end up making videos on that. My immediate plans are replacing the LCD (mine does have a rather significant scratch) with the LED version since the CCFL runs hot and hungry. I will be recelling the battery so I can use this thing portably again. Next, I will modify the GB board so that I can use it with another controller. I intend to use insideGadget's wireless TX and RX hardware with it. And last, I will likely be installing a USB C port so I can charge this thing with USB PD instead of having to find a barrel plug that fits. It is not a common size.
 

Attachments

Last edited:

Aurelio

ᕕ( ᐛ )ᕗ
Staff member
.
.
.
.
.
Joined
Mar 3, 2016
Messages
2,219
Likes
2,937
Portables
2
This is so cool, I had no idea this was a thing. Thank you for sharing it!
 
Joined
Dec 28, 2016
Messages
107
Likes
833
I don't have much to add but makho and I apparently have slightly different board revisions. The only differences seem to be a few caps. By the way, there seems to be plenty of info to put a N64 or Wii in the lid too.. or maybe another GBA...

PXL_20210406_043622400.MP.jpg
PXL_20210406_043425880.jpg


The analog tv encoder chip gets quite warm, as does the CCFL inverter and tube...

visteon3.png
visteon.png
 

makho

.
Joined
Apr 6, 2021
Messages
8
Likes
37
there seems to be plenty of info to put a N64 or Wii in the lid too.. or maybe another GBA...
hmm yes. ¿Por qué no los dos? Make a new board to replace the original GBA board with an AGB B E CPU instead of the AGB E CPU so that GB/GBC compatibility is retained then throw something in the open space?

For context since I didn't grab a pic of the inside lid for the thread, the lid is bulged out along the whole back for the GBA board but the board itself is rather small. There is more than enough space for activities in there.

Thanks for replying with those pictures by the way. I wanted to post them but I didn't want to just steal your images. Those thermal images show pretty well where most of the 12 watts is going.
 

Stitches

2 and a Half Dollarydoos
Staff member
.
.
Joined
Feb 5, 2017
Messages
3,773
Likes
2,981
Location
Banana Bender Land, Australia
Portables
6
I knew a guy in school who had one of these. I still think it's one of the coolest things ever made!
 

makho

.
Joined
Apr 6, 2021
Messages
8
Likes
37
So I went ahead and RE'd the pinout for the button inputs into the CPU (IC1) from the MCU (IC4). IR goes into the MCU through some form of magic which I haven't RE'd yet (and probably never will) but from there the MCU directly pulls the button inputs low to trigger the button inputs. My plan is to hijack the outputs of the MCU with a custom flex interfaced to a custom wireless RX board from insideGadgets so I can control it with another GBA wirelessly.

My testing method is the tried and true and highly technical "guess and check method". I have a wire soldered to a ground and I just poked the pins one at a time with a key input tester loaded (autoboot on the Ez Flash Omega DE with the "AGS Aging" ROM loaded)

20210410_221155.jpg


And after a few minutes and a few close calls (which a power cycle managed to fix), I managed to get a pinout I'm confident in.

schematic.png


And from there, I designed a flex PCB and printed it out for testing

pcbnew.png
unknown.png

20210410_234617.jpg


and I just ordered it. I'll publish the board I made once I test everything and make sure it's working as expected. In the meantime, my schematic is included above.
 
Joined
May 12, 2021
Messages
2
Likes
1
Curiously, there is an IR emitter and receiver in the path of the cart slot. Inserting a cart will break the connection. This appears to be feeding back into the MCU though the specific function is unknown. Observed behavior is that pulling out or inserting a cart while the GBA is running will cause GBA to reset. I believe the idea is that you can "hot swap" carts without having to power down the console.
You would be absolutely correct in that it was designed with "hot swapping" in mind! IMG_20210511_201118888.jpg
Here's the relevant page from the manual, describing gba cart functionality.

I picked up one of these new in box years ago. Took me almost 3 years after that to track down the damn controller. Wish I had known about the Sky Active ones then! If you want any other info that you think might be in the manual, let me know! I don't have a scanner, but I can at least take some photos.
 

makho

.
Joined
Apr 6, 2021
Messages
8
Likes
37
FWIW, the Sky Active controllers don't work as well as the Visteon controllers. Pressing multiple buttons simultaneously (like B + Right) seems to cause neither button to work. On the Visteon branded controller, this is not the case.

I'm working on a full writeup on the controller itself too so I'll add more detail to the thread at that time but in the mean time, I did discuss this a bit in my recent stream:
 
Joined
May 12, 2021
Messages
2
Likes
1
That's actually how I found this thread, your videos on the subject! It's nice to see someone willing to mess around with one of these beasts. I may end up following your line of thought and attempt to replace the cells in my battery as well, as while mine was brand new, sitting in a box for years has done nothing to help its battery life, and they really don't hold much of a charge at all anymore. Not sure I'm willing to do anything else to my unit though. I haven't even taken the factory "screen protector" off of mine! Though I did have it up and playable at a local convention a few years back, so people could see it first hand.
 
Joined
Sep 23, 2022
Messages
1
Likes
4
After a little over a year I finally got ahold of a real controller and managed to get the custom IR protocol decoded and replicated. The carrier freq used is 455kHz, presumably so that normal remotes and other IR doesn't affect the game input.
1663953915806.png

This is the "A" button on the real controller, it uses a 4bit MCU thus the data here seems to be in 4 number values (0, 1, 2, 3) all lows are 30us and there are 3 different high values (60us, 90us, and 120us), given this data we can figure out a sort of table to look for similarities, what we know after looking at multiple presses is that the stream of data always starts with "100200" follow that the rest is button data followed by a checksum "100200 | 00 00 00 00 | 00"
1663954735720.png

Given this data we can convert any controller to use as an input for the visteon...here is an example for using the gba itself

C++:
void BuildDataStream(const uint32_t gba_state) {

    //insert the buttons
    coded[6]  = gba_state & (1 << 0);       //put a into the coded stream
    coded[7] = (0xD8 >> ((gba_state >> 7) & 0x06)) & 0x03;  //put L and R trigger into the stream
    coded[8]  = ((gba_state >> 6) & 0x03);  //put up and down into the stream
    coded[9]  = ((gba_state >> 4) & 0x03);  //put left and right into the stream
    coded[10] = gba_state & (1 << 1);       //put b into the coded stream
    coded[13] = ((gba_state >> 2) & 0x03);  //put start and select into the stream

    //calc the checksum
    coded[14] = coded[4] ^ coded[6] ^ coded[8] ^ coded[10] ^ coded[12];
    coded[15] = coded[5] ^ coded[7] ^ coded[9] ^ coded[11] ^ coded[13] ^ 2;

    for (n = 0; n < 16; n++) {
        buffer[k] = 0; k++;
        buffer[k] = 1; k++;
        buffer[k] = 1; k++;
        for (n2 = 0; n2 < coded[n]; n2++) {
            buffer[k] = 1; k++;
        }
    }
    //Add the stop bit
    buffer[k] = 0; k++;
    buffer[k] = 1; k++;
}

void OutputStream() {
    for (n = 0; n < k; n++) {
        buffer[n] ? (GPIOA->BSRR = (1 << 1)) : (GPIOA->BRR = (1 << 1));
        DelayIR();
    }
Given this data it is now easy to make a controller without modifying the console itself in anyway.
Credits to BennVenn for helping figure out and decode the IR protocol!

 
Last edited:
Joined
Jul 3, 2023
Messages
9
Likes
4
Great work in this thread! I actually do have one of these units and I was curious about a few things. One is the wireless headphones. The original package that came with the console and car dock also came with a pair of wireless IR headphones. These headphones never worked with the standalone console and only worked when it was docked. This tells me it probably interfaced with the dock's IR receiver which unlocks communication with the headphones... would it be possible through documentation to find a way to bypass the dock to use the headphones anytime?

Second, the Visteon infamously has the resolution for a perfect 3x scale for GBA games (720 x 480 on an 800 x 480 screen) but doesn't have an option to scale and fill the whole screen. Would it be possible to fix that scaling through like a driver board for the screen or something?
 
Top