AMD Geode/Video 1/Script

This is a textual description of the video.

TODO: Clean up

Introduction
My DOS Programming playlist on YouTube scrolls down the screen.

Voice: "I've been writing a DOS program for a while now"

The DOSBox-X home page scrolls down the screen.

Voice: "I've been using DOSBox but it would be nice to use real hardware"

A taken by Ruben de Rijcke is shown on the screen with big green "IBM" text on it.

Voice: "Ideally I'd use a period accurate IBM PC"

A screenshot of expensive eBay listings scrolls past. One is shown to cost $500 AUD.

Voice: "But these are really expensive"

An eBay listing titled "Vintage Advantech PCM-9375 REV. A1 SBC Single Board Computer - AMD Geode LX800" is shown. Its status is marked as "For parts or not working, sold as-is with no guarantees." It's listed as $50 AUD.

Voice: "Checking eBay I found an industrial single-board computer for $50"

The listing description is shown. It clarifies: "For sale here is an Advantech PCM-9375 REV. A1 single board computer. Previously, I was able to boot Windows 98SE from a Compact Flash card and everything worked fine. It currently refuses to output a video signal that any of my monitors can recognise, so it's being sold as-is for parts with no guarantees. For a full spec sheet, see Advantech's site."

Voice: "The very low is because the video output is broken. Without video output this computer is effectively useless."

A receipt showing payment for the board is shown. It cost $50 AUD with free shipping. It was paid on 7 November 2021 and delivered on 12 November 21.

Voice: "I decided to buy it anyway in hopes of fixing it."

A hand is shown placing the board on a table. It is an unprotected circuit board with its chips, connectors and pin headers exposed. One large heatsink covers the CPU and another smaller heatsink covers the companion chip.

Voice: "So here it is: The PCM-9375. It stars a Geode LX800 CPU and CS5536 companion chip."

A small stick of RAM is shown.

Voice: "512 megabytes of DDR1 RAM."

An empty CompactFlash connector is shown.

Voice: "CompactFlash for storage."

The side of the board is shown with four ports: A DB9 serial port, an Ethernet port, a PS/2 keyboard port and a VGA port.

Voice: "A serial port, an Ethernet port, a PS/2 port, VGA port"

A daughterboard connected to the main board is shown, with an Ethernet port on it as well as a mini USB connector. The board is unplugged already, and pliers are used to remove it entirely.

Voice: "As well as a mini USB port and a second Ethernet port. We're going to remove those for now while we troubleshoot."

Initial powering
A power supply with growing green LEDs flicker showing 0 volts and the word "off". Connected to it are two long bunched up wires that clip in to two pins on the board.

Voice: "The first thing I did was hook the board up to a current limited power supply."

A hand is shown turning the power supply on. The camera zooms closer and shows the text jumping on the display changing to 5 volts 1 amps. The amperage jumps between 0.9 amps and 1.1 amps.

Voice: "It pulled a stable load so it's not dead."

A small lapel microphone is shown next to the board's corner. A single short beep is heard.

Voice: "It made a beep! That's a good sign."

A hand is shown plugging a VGA cable in to the board.

Voice: "I connected a monitor to see what it would display."

A computer monitor is shown. Grey text appears in a box with the text "Input Not Supported" slowly moving diagonally down the screen.

Voice: "And... Input not supported."

An oscilloscope probe is shown being attached to the power wire clip followed by a rapid zoom in to an oscilloscope's view.

Voice: "So I checked the power rail with a scope."

The oscilloscope draws a flat line at 0 volts that suddenly jumps up to 5 volts and continues at 5 volts for 15 seconds.

Voice: "A major voltage drop could signal that the machine isn't booting properly. I don't see that here."

The oscilloscope draws a thin line from the bottom of the screen up to 5 volts then thickens it showing around 20 millivolts of noise.

Voice: "Likewise, no drop at all could mean the machine is dead. I don't see that here either."

The camera pans to the power supply displaying 5 volts and a steady around 1.065 amps.

Voice: "Everything looks fine power-wise."

RAM testing
A hand pulls out a stick of RAM and places another in.

Voice: "Bad memory can cause all kinds of issues so I tried another stick of RAM."

A different monitor is shown with the text "Input Not Support" appearing after a second of being blank.

Voice: "Same result. Input not support."

A hand is shown removing the RAM stick without placing another in.

Voice: "I removed the RAM to see if it was being used at all."

The video cuts to the microphone pointed at the buzzer again.

Voice: "The BIOS gave these beeps."

A set of long beeps can be heard.

The monitor is shown again with the text "No Signal" displayed.

The board is shown with a chip marked 'V1.18' removed from its socket.

Voice: "I removed the BIOS chip to see if it would still beep. It didn't."

Battery testing
A screwdriver forcefully removing a coin battery is shown, making the battery jump across the board. A hand using pliers attempts to pick up the battery but it keeps slipping away.

Voice: "Next I looked at the clock battery."

A multimeter is shown with its probes touching the positive and negative sides of the battery. It displays the value 198mV.

Voice: "My multimeter showed it was around 200mV. Completely dead."

A close up of the battery being held by pliers is shown. The brand name RAYOVAC and the text "LITHIUM 3V BR1632 USA" is engraved on the chip.

Voice: "Perhaps a dead battery corrupted the BIOS settings somehow?"

The second monitor is shown again, this time with an orange plastic frog glowing on the desk near it. The monitor still says "Input Not Support"

Voice: "Running without the battery didn't help."

Keyboard testing
The board is shown powered in the background as a dusty and grimy keyboard comes in to frame and laid on the desk.

Voice: "I wanted to know if the machine was frozen or just waiting for me to do something. So I connected a keyboard to see what would happen."

A finger presses the caps lock key and the caps lock key light on the keyboard is shown to turn on and off.

Voice: "It handled toggling caps lock."

A finger rapidly presses the F1 key.

Voice: "It even made noises when I pressed keys."

The finger keeps pressing the F1 key but slower.

With each keypress heard a small beep can be heard in response from the computer.

Voice: "So it must be doing something."

A ginger female cat is shown on the desk with only one eye. She makes a high pitched meow and moves towards the camera.

Voice: "Surprise cat visit!"

The cat jumps up on to the window sill behind the desk and looks out the window curiously.

Voice: "This is my brother's ginger cat. While we appreciate the cat I'd like to talk about the sponsor of this video."

The cat peers out the window then jumps back down on to the desk to leave the room.

Voice: "Just kidding, I wanted to fill time in the voice-over to show off the cat. Back to troubleshooting."

Ethernet testing
A hand plugs an Ethernet cable in to the board. After a second or two a green light on the port lights up.

Voice: "I plugged in an Ethernet cable. Maybe if the machine was booting over the network I'd see some packets."

Wireshark is shown on a computer monitor. The only incoming packets come from fe80::250:b6ff:fe1d:d419.

A terminal is shown on the monitor. It lists the machine's IP address on enp2s0f0u4 as the IP from before.

Voice: "I did see packets but they were from my machine. Not very helpful."

Serial testing
A breadboard is shown with jumper wires connected to various ports on the DB9 serial port.

Voice: "I made a null modem cable on my breadboard using jumper wires."

An oscilloscope probe goes in to one of the breadboard holes.

The oscilloscope screen shows a signal at 0v raising to 5v briefly then dropping down to -5v.

Voice: "Probing it showed that the transmit line was being held properly. But it wasn't outputting any bytes."

Broken off jumper wire connectors are shown stuck attacked to the serial port. The wires they belong to are shown with their copper strands exposed at the end. Pliers come in to frame and pull them out.

Voice: "I also broke a few breadboard wires in the process. That sucks."

VGA probing
An oscilloscope probe is shown entering a hole on the VGA connector.

Voice: "Okay time to check the VGA signals."

An oscilloscope screen shows a 0v signal with shorts jump between 6.80v and -2.56v.

Voice: "First up is vertical sync. This signal pulses once every frame."

The camera zooms in to show the frequency of the signal is 60.00Hz and the period is 16.67ms.

Voice: "In this case it's 60hz."

The oscilloscope shows a a 5V wide square wave with cursors measuring the wave. The wave is around 5v, peaking at 5.57v on the leading edge and dropping down to some unknown voltage on the trailing edge. The time a pulse of the wave takes is 40 microseconds, or 24.75KHz.

Voice: "Zooming in to a single pulse we can see that's a 5v square wave lasting for around 40 microseconds."

The oscilloscope shows the leading edge of the square wave. It peaks at 6.64v and takes 228ns to settle to 4.64v.

Voice: "The pulse seems to peak around 6.6v and takes around 230 nanoseconds to settle. This all look fine to me."

An oscilloscope probe is shown entering another hole on the VGA connector.

Voice: "Next horizontal sync."

The oscilloscope shows a 0v signal with longer jumps between 6.64v and -2.40v. The camera zooms in to show frequency is 75.02KHz and the period is 13.33 microseconds.

Voice: "The signal pulses every row of pixels and this looks to be around 75KHz."

The oscilloscope shows a 5V wide square wave with cursors measuring the wave. The wave peaks at 6.55v at the leading edge and -2.41v on the trailing edge. The time a pulse takes is 1.45 microseconds, or 692.0KHz.

Voice: "Zooming in the pulse is the same voltage as the vertical sync and it lasts around 1.45 microseconds."

The oscilloscope shows the leading edge of the square wave. It peaks at 6.60v and takes 197ns to settle to 4.86v.

Voice: "The pulse takes 197 nanoseconds to settle high"

The oscilloscope shows the trailing edge of the square wave. It drops to -2.51v and takes 307ns to settle to -51.20mV.

Voice: "and 307 nanoseconds to settle low. This looks fine to me too."

An oscilloscope probe is shown entering another hole on the VGA connector.

Voice: "Next up: Red signal"

The oscilloscope shows a flat line with a max voltage of 280mV and minimum of -360mV.

Voice: "Uh-oh. Nothing"

The camera zooms to show a max voltage of 200mV and minimum of -120mV.

Voice: "It just stays around 200 millivolts."

An oscilloscope probe is shown entering another hole on the VGA connector.

Voice: "Okay, green"

The oscilloscope shows a flat line with a max voltage of 160mV and minimum of -80mV.

Voice: "Same thing but around 160 millivolts."

An oscilloscope probe is shown entering another hole on the VGA connector.

Voice: "Okay, blue?"

The oscilloscope shows a flat line with a max voltage of 280mV and minimum of -160mV.

Voice: "Same thing as green, what? These should all be much higher."

The underside of a PCB is shown with the VGA connector's solder joints visible.

Voice: "Just to be sure I took a look at the VGA section of the board."

The top of the PCB is shown with a probe pointing at an area containing various tiny components next to the connector.

Voice: "But it didn't show any visible issues."

SD card adapter
An IDE to SD card adapter is shown on the table, with an SD card inserted. Its circuit board is black and yellow and the main chip on the board has a 'QC Passed' sticker that changes color based on the angle.

Voice: "I tried to attach an IDE to SD card adapter and boot from it."

A single Molex to two Molex cable is shown with the power supply's wires attached to the single connector.

Voice: "I managed to power it using a Molex splitter."

The board computer and SD card adapter are shown next to each, each with LEDs on indicating power.

One end of a green and blue IDE cable is shown next to the IDE port on the board. The IDE cable is slightly larger than the port on the board. A hand tries to plug it in without success.

Voice: "But unfortunately the IDE connector on the board was too small."

Molex USB adapter
An eBay page showing a cable with a Molex end and a USB end is visible. The item is listed as '5V USB Power to 4Pin Molex(2Pin Wired) Cable 50cm'. The price is listed as $8.59 AUD. The image has arrows pointing to the USB and Molex end, subtitled 'USB Power 5V' and 'Molex(2Pin wired) 5V' respectively.

Voice: "As an aside I bought a USB to Molex adapter for powering the board."

The adapter plugged in to the Molex splitter is shown. A screwdriver gestures at how when connected the 5V red wire of the adapter is connected to the 12V yellow wire of the splitter, instead of the 5V red wire on the splitter.

Voice: "Unfortunately it had the 5V pins connected to the 12V Molex rail."

A hand is shown holding the adapter and pushing one of the female metal contacts out of the adapter by sliding the screwdriver between the plastic of the adapter and the metal contact. The hand then pulls the contact out from the back of the connector.

Voice: "Fixing it is quite easy though. Step one: Use a screwdriver to unlock the pins and pull them out through the back."

A hand holds the removed female contact and uses a screwdriver to bend back out the small locking hooks that were pushed in by the previous removal step.

Voice: "Step two: Bend the side locks on the pins back in to shape using a screwdriver."

A hand hold the end and the end of some pliers is being forced in to the female contact.

Voice: "Step three: Use pliers to make the pin round again."

A hand is holding the adapter while a screwdriver pushes the contact back in to the adapter in a different hole.

Voice: "Step four: Push the pins in to the correct sockets."

The adapter is held front on showing the female contacts.

Voice: "Step five: Check that it looks good."

A hand plugs the adapter in to the single-board computer and the USB end in to a USB power supply. It has a screen showing the current voltage of the port which is 5v, but quickly switches to 1A when the board powers on.

Voice: "As a test I plugged the cable in to the board and a USB supply. It booted up just fine from what I saw."

A hand holds the adapter which is still plugged in to the supply. Pliers are inserted in to the pins on the adapter. The screen on the power supply is blank. Removing the pliers causes the screen to turn back on. The pliers are re-inserted which turns off the screen.

Voice: "By the way make sure to use a decent USB power supply, something that can handle short circuits without exploding is a good start."

USB power meter
The power supply is shown upside down. A USB power meter is inserted with the adapter cable connected to it. The meter shows the voltage 4.97V and amperage around 1.1A.

Voice: "Just for fun I plugged the board in to a USB power meter."

The meter shows a graph of the current consumption. The graph starts at 0.9A and fluctuates between 1A and 1.4A before settling down to 1A.

Voice: "It verified the system hangs around 1A with 1.5A peaks."

Reading manuals
A manual is shown titled "PCM-9375 3.5" SBC w/AMD LX800, VGA, LCD, LAN, USB2.0 and SSD User Manual"

Voice: "Without obvious hardware faults it was timed to look at the user manual."

A page is shown mentioning section 2.1.5 TV "enable (J5)" with a table showing that you can enable or disable the TV setting with a jumper, but by default it is enabled.

Voice: "It mentions a TV enable jumper, but all that did was stop the machine booting."

A page with section 4.4.1 "Display type" is shown, explaining that the board can be configured as a CRT, flat panel, or both. Dual display is default. Changing the setting requires entering the BIOS or contacting Advantech's technical support center.

Voice: "The VGA section says I need to use the BIOS to configure the display."

A page with default BIOS settings is shown, with the "Output Display" option defaulting to "CRT".

Voice: "The BIOS section says that it's configured to use the VGA connector by default."

A page with a table for connecting wires between a Sharp LQ121S1DG31 LCD and PCM-9375 board to get LCD output is shown.

Voice: "The LCD section says I should connect a Sharp display, but that's about it."

A manual is shown titled "AMD Geode LX Processors Data Book".

Voice: "Okay let's look at the Geode data book."

A page of the manual shows a complex block diagram explaining how the video processor module works, with arrows exiting the module and pointing to an 'output devices' block with the elements "VIP, TV Encoder, CRT DAC (3x8 bit), TFT Panel, AMD Geode Companion Device" listed in it.

Voice: "The VGA display seems to be driven by the video processor block."

Another page of the manual shows that YUV444 or RGB888 or RGB data is mixed and blended then send to the DAC then to the CRT.

Voice: "The video signal is output by an 8-bit digital to analog converter."

A page shows a table of signals and their types, including HSYNC, VSYNC, DVREF, DRSET, DAVdd, DAVss, RED, GREEN.

Voice: "The DAC needs a 1.235 voltage reference and a 1.21K current setting resistor."

A page shows a download page of the file XO-1-Schematics.pdf with the description "Schematics for the C2 version of the XO-1 Laptop".

Voice: "I looked up a schematic for another Geode board. I found the One Laptop Per Child XO-1."

A screenshot of schematics relating to the DVREF, DRSET and DAVdd and DAVss pins is displayed. In order to generate 1.235V a resistor divider is used based on the 3.3v rail, with various bypass capacitors smoothing out the 3.3v rail and feeding it to the DAV pins. The DRSET pin has a 1.21K resistor connected between it and ground.

Voice: "After staring at it for a while I figured if anything was going to break it would be the voltage divider used for VREF."

Finding VREF
Various shots of multimeter probes touching ends of resistors on the board are shown.

Voice: "I spent a few days searching for the resistor divider. On a board of resistors. With values that might not be the correct value."

Tweezers pull back a sticker containing the MAC address of an Ethernet chip. Underneath is the Realtek logo that looks like a crab.

Voice: "I even checked in the Realtek crab logo."

Some components near the board are shown, including resistors and a shunt. A multimeter probe touches the shunt.

Voice: "Eventually I didn't find a resistor divider but I found a zener diode. It had the correct voltage and everything."

A diagram showing how the components fit together is shown. DVSS which is 3.3v connects to the 1.22v regulator. From the 1.22v regulator a 0.25nF cap and 10k resistor in parallel run to DVREF. The 1.21k resistor follows from the DVREF capacitor and resistor to the DRSET pin.

Voice: "Here's a badly drawn diagram showing the shunt and the other DAC resistors."

Probing BGA signals
A manual page is shown of the BGA pins under the Geode chip. Along the left outer edge is a series of pins: DAVdd, DAVdd, DVREF, DRSET, VAVdd, DOTREF.

Voice: "I did notice that most of these components just run to outer BGA balls."

A mess of junk is shown on a desk. A lamps shines light on the board. The power supply runs cables to a molex splitter which run to the board. A contraption used to hold things has a circuit board of a webcam attached pointing at the board, with plastic to insulate the holder and a USB wire trailing away. A pair of tweezers pokes under the CPU on the board with one end and connects to an oscilloscope probe from the other end. The tweezers are held open by a plastic craft knife cap. The scope probe balances on a spool of magnet wire, with its ground wire connected to the Molex splitter too. All of this is cramped and barely holding together.

Voice: "So I set up a makeshift BGA probe on my desk and scoped the available signals."

A close up webcam shot of tweezers poking a ball under the chip is shown. An oscilloscope shows a line with a voltage around 3.36v DC, the RMS value being 3.28v.

Voice: "The first DAVdd ball hung around 3.3v which is correct."

The tweezers move to an adjacent ball under the chip. An oscilloscope shows a line with a voltage around 3.44v, the RMS value being 3.28v.

Voice: "The second DAVdd ball did about the same."

The tweezers move to the next ball. An oscilloscope shows a line with a voltage around 1.32v, the RMS value being 1.22v.

Voice: "The DVREF ball hung around 1.22v which is about right."

The tweezers move yet again. An oscilloscope shows a line with a voltage around 40mV, the RMS value being 0mV.

Voice: "The DRSET ball had no voltage which is probably correct."

The tweezers move again. An oscilloscope shows a line with a voltage around 3.36v, the RMS value being 3.32v.

Voice: "The VAVdd ball hung around 3.3v which is correct."

The tweezers move again. An oscilloscope shows a 48.08mhz sine wave peaking at 3.92v, the RMS varying being 2.40v and 1.92v.

Voice: "The DOTREF ball had a 3.3v 48mhz sine wave on it. That seems kind of weird but might be a scope artifact."

A somewhat close up shot of the board is shown with a focus on the area just inspected.

Voice: "Overall though everything seems fine."

Booting Linux
A CompactFlash card is held to the camera. On one side it says 'Memory Card' with space to write the description, on the other side it says 'CompactFlash Digital Memory Card 16 GB Memory Card'. No branding is visible aside from 'Copyright 2003 Memory Technology Company' is shown.

Voice: "Eventually the CompactFlash card arrived."

A DB9 cable is shown connected to the board with the text 'NULL' scribble on it in marker.

A screen shows the text 'Loading bzImage... ok' and '' Loading initramfs-fc2+...ok'

Voice: "With the help of a null modem cable I was able to boot Linux."

The screen starts to print a bunch of text, such as 'Linux version 5.16.0-rc2+ (jookia@titan) (gcc (GCC) 11.1.0, GNU ld (GNU Binutils) 2.36.1) #1 SMP PREEMPT Mon Nov 29 17:34:47 AEDT 2021'

Voice: "Specifically, Alpine Linux with a custom built kernel with the Geode video driver enabled."

Another screen is black but then blinks on, with the text 'Welcome to Alpine Linux 3.15', 'Kernel 5.16.0-rc2+ on an i586 (/dev/tty1)' and 'localhost login: _' visible in the bottom left, with the first few letters of each line cut off.

Voice: "After a little white booting we get... VGA output?"

The camera cuts closer to show the bright white text.

Voice: "It's a wrongly positioned login prompt?"

A shot from later shows the text barely visible against the screen's backlight black color. The text shimmers with analog interference of some kind.

Voice: "Thought after a few minutes it starts to fade."

A shot from even later shows a faint outline of the text despite the image being manipulated heavily to show the text.

Voice: "Eventually it becomes invisible to the human eye."

Probing VGA again
A scope probe touches a soldered pin under the VGA connector.

Voice: "I took a look at the red signal under an oscilloscope."

An oscilloscope shows a flat line with a voltage peak of 180mV and RMS of 0.

Voice: "At first I saw there was no signal at all, just like before."

A hand zooms the oscilloscope to view things at the millivolt level, showing some signal that has noise and regular pulses.

Voice: "But zooming in there's clearly something there, just very very weak."

The scope shows the signal has a peak voltage of 15.60mV and an RMS of 6.80mV. The signal regularly jumps up and down. The scope zooms out to show a larger length of the signal revealing a square wave.

Voice: "It looks like it's bouncing but changing the timescale shows it's actually a square wave."

The scope pauses on a snapshot of the square wave. The frequency is 51.58Hz, with a peak of 15.20mV.

Voice: "A 10 millivolt square wave that runs at 51.58Hz. Wow."

Soldering disaster
TODO

Outro
TODO