This is a continuation of my LCD upgrade series. In this post, I’ve documented my attempt to reuse the Nomad’s existing buttons to adjust a replacement LCD’s brightness. Refer to part one for how to replace and rewire the LCD.
Disclaimer This post is written for informational purposes only. I assume no liability for damage done to your equipment or for any injuries you may incur attempting to emulate this project. Please be careful when working with electricity.
NOTE: It has come to my attention someone is reselling this design as a pre-built kit. While this is not surprising (it’s the internet, after all), and there is little I can do as a private hobbyist to stop them, please note I will not be offering support for any questions/problems with their builds, despite them leaving my initials/website on the circuit board.
There’s no shortage of tutorials for replacing the Nomad’s LCD (1, 2, 3, 4, 5, 6, 7, 8, 9, 10), but what there aren’t many guides for is controlling a replacement’s brightness. Of the few I could find, each has its own issues.
The first guide I found was a 2014 post by Torben Ross, which was designed for an LCD that has no controls/menu system. His design was to replace a resistor on the LCD’s driver board with the Nomad’s existing brightness dial to manually reduce power to the LCD itself, thus dimming it. This is a nice and simple idea, but unfortunately this specific driver board doesn’t seem to be available anymore. I’ve tried a few different sellers on eBay, AliExpress, and DealExtreme, but each time I received an updated model of the driver board that doesn’t have this resistor (even though their listings used a stock image of the old version). I also had no success adapting this design to other boards.
The second guide was a 2013 post on the blog No Bit Left Behind. This unnamed poster uses the brightness dial and an additional resistor to intercept the video signal the Nomad delivers to the LCD, and manually attenuate it. Their design is simple, but unfortunately it doesn’t allow for a gradual brightness change. By their report, the dial acts like a toggle switch between full brightness and very dim.
Finally, I found a few instances of people using LCDs that have built-in menu systems with physical buttons, and simply drilling holes in their Nomads to make the buttons accessible (for example, this image in a 2011 forum post by user “omp”). Since I want to avoid physically putting new holes in my Nomad, this would be less-than-ideal
This mod was inspired by my “reset button” mod design, where I used a BJT transistor to short the cartridge “!RESET” pin to ground, causing the system to soft reset. My thought then became, why couldn’t I do the same thing to short across the physical buttons of a replacement LCD to control it’s menu?
Wiring diagram for my previous “reset button” mod.
The first step was to find an LCD with a suitable menu system & physical controls. I went through several LCDs before settling on this one. The first model I tried didn’t end up being compatible with the Nomad (bad video syncing), the second model arrived DOA (twice!) and once I finally got one that worked it turned out it didn’t save settings between power cycles (which I didn’t realize until after installing it… doh!), but third time was the charm.
My LCD of choice has four adjustable settings: brightness, contrast, saturation, and tint, and it saves settings after powering off and on. Unlike the second model, it does display an AV1/AV2 in the corner for a few seconds… but I can live with that.
This LCD has two AV inputs, but we’ll only need one.
There are three buttons on the back of the unit: the “Menu” button cycles through the options, and the “+” and “–” buttons adjust the selected setting. On the inside, the buttons are on a separate PCB connected by a single signal line. The way this control pad works is each button is shorted to ground through a different valued resistor, and the LCD’s driver board distinguishes between buttons by the different voltage levels created by each resistor – this is called a voltage divider circuit.
Since the buttons are on a separate PCB, I decided to discard it and just copy its design into my new circuit. The rub, however, is that BJT transistors make this a little difficult. They add a voltage drop to the circuit (as well as additional resistance), so to the LCD, the apparent resistance (and measured voltage) will be wrong if I simply match the existing resistor values.
While researching how to counteract this, an alternate solution was suggested to me: use an analog switch. While BJT transistors can be circuited to function as a switch, analog switches are built to be non-mechanical relays, and are better suited for this project (on a side note, BJTs are also less power efficient than the MOSFETs typically used to build analog switches).
Analog switches work on digital logic, and only measure the voltage at their control pin, unlike BJT transistors where the current passing through the collector/emitter is a function of the current at the base. Analog switch input/outputs are also (usually) bidirectional, which can make wiring them much easier.
To detect when two buttons are simultaneously pressed, I used a 2-input logic gate. All of the Nomad’s buttons work by shorting their respective 5v signal line to ground when the button pressed, so the gate needs to only output voltage-high when it detects both inputs (buttons) are shorted to ground (i.e. voltage-low), thus the choice is a “NOR” gate.
This design only needs three gates, but the only through-hole style chip I could find is a 4-in-1, which leaves us with an extra.
The output of each logic gate connects to the control pin of its corresponding analog switch. Optionally, you could use the extra set to incorporate my “reset button” mod, but I won’t for this build. We’ll discuss what to do with it later.
You can use whichever D-Pad buttons you like for the LCD’s controls, but this is how I’ll be wiring them.
Bill of Materials
Not including tools & misc parts I already owned
1x . . . 3.5” TFT LCD [ bought and installed in part one ]
There are a few options for assembling this circuit:
Method 1 – This is the easiest method: have a cheap “prototype” PCB made with all the traces etched into the board. All you have to do is solder the pieces in place. See the bill of materials for the milling files and a recommended manufacturer. This is the option I used, and what I’ll be covering below.
Method 2 – Use a prototyping board (a “blank” PCB with pre-drilled holes, with or without plating). Follow the wiring diagram in the design summary section and lay out the components on your own. See the bill of materials for a product link.
Method 3 – If you’re brave (and skilled enough), you could wire it “dead bug” style (i.e. sans-board). This is definitely not recommended for beginners. Follow the wiring diagram in the design summary section to assemble the circuit on your own.
Using method 1, the bill of materials has a download link for the PCB’s milling files (Gerber X2 file format). I used the manufacturer OSH Park, but feel free to shop around. If you do use OSH, simply upload this zip file (don’t unzip it) to their website and go through the checkout using all the default manufacturing settings (1oz copper, 1.6mm thickness). No special options are required unless you want to pay extra for rushed production/shipping. It took about 11 days from the file upload to its arrival, but it only cost $5 for three boards (the minimum order size).
The software render vs the final product. It measures ~ 22mm x 28mm. Check out that branding! ^_^
On a side note, if anyone wants one of my two leftover boards, send me a message through the contact form and I can send it to you for the cost of shipping.
With the PCB made, do the following:
Insert the NOR gate chip (SN74AHC02N) into the board at the spot labeled U1. Orient it by aligning the semi-circle cutout on top of the chip with the outline on the board.
Insert the analog switch chip (SN74HC4066N) into the board at the spot labeled U2. Orient it the same as above.
Solder all 14 legs for both chips on the reverse of the board and trim the excess lengths of the legs.
Put the 2kΩ resistor in the spot labelled R2 (orientation doesn’t matter) – this is for the “Menu” control. Note: There is no R1 on this board. I numbered the resistors to correspond with the gate/switch # they’re connect to. Gate/switch #1 are the extras and have no resistor.
Put the 4.7kΩ resistor in the spot labelled R3 (orientation doesn’t matter) – this is for the “–” control.
Put the 1kΩ resistor in the spot labelled R4 (orientation doesn’t matter) – this is for the “+” control.
Solder all three resistors on the reverse of the board and trim the excess lengths of the legs.
If you haven’t installed the LCD yet, go back and complete this guide first. Otherwise, since all points of connection are in the Nomad’s upper shell, we’ll put the control interface board below the LCD, to the side of the Start/Mode buttons. Take the button pad from the new LCD (that we set aside earlier) and the control board we just finished soldering and do the following:
Cut the connector cable off of the button pad (green dashed line), keeping as much wire as you can – save the connector cable and throw out the button pad.
Connect the connector cable’s red wire to terminal LCD#3 – this is the LCD’s control signal line.
Connect the connector cable’s black wire to LCD#1 – this is the ground wire.
Cut and connect a ~5” wire to LCD#2 – this is the power wire for the control board.
On the other end of the control interface board, make the following connections:
Cut and connect a ~10” wire (blue) to NOMAD#1 – this is for the LCD’s “–” control.
Cut and connect a ~10” wire (blue) to NOMAD#2 – this is for the LCD’s “+” control.
Cut and connect a ~10” wire (blue) to NOMAD#4 – this is for the LCD’s “Menu” control.
Cut and connect a ~4” wire (green) to NOMAD#3 – this is for the Nomad’s “Mode” button.
Note: The 10” wires can be cut to 6” if you want, the only reason I made them so long was to make taking the Nomad apart easier if I wanted to work on it more in the future.
The remaining pins only need to be connected if you want to do the reset button mod:
NOMAD#5 – This goes to the Nomad’s “Start” button.
XTR#1 – This goes to the Nomad’s cartridge !RESET pin #B27.
XTR#2 – This goes to the Nomad’s cartridge ground pin #A32.
If not, they can be left unconnected EXCEPT FOR NOMAD#5 (the unused NOR gate input). If left unconnected, it will become a floating input (a mistake I made in my reset button mod). Floating inputs are dangerous as they can cause the chip to have an abnormally high power draw, can affect the operation of the chip’s other gates, or even overheat and destroy the chip. To avoid this, use a little solder to bridge NOMAD#5 and #4. This gate’s other input is already connected to the Mode button via traces in the PCB, so it’s all set.
Installing The Control Interface
Connect the remaining control interface board wires to the Nomad’s upper board as follows:
Connect the (blue) wire from NOMAD#1 (the LCD “–” control) to pad TP215 on the Nomad’s upper board (the pad for D-pad Left).
Connect the (blue) wire from NOMAD#2 (the LCD “+” control) to pad TP216 on the Nomad’s upper board (the pad for D-pad Right).
Connect the (blue) wire from NOMAD#4 (the LCD “Menu” control) to pad TP213 on the Nomad’s upper board (the pad for D-pad Up).
Optional – Instead of connecting the (blue) wire from NOMAD#4 (“Menu”) to TP213 (D-Pad UP), you can connect it to pad TP214 on the Nomad’s upper board (the pad for D-pad Down).
Tape these three (blue) wires to the board as shown with a little electrical tape.
Connect the (green) wire from NOMAD#3 to pin #2 on the Nomad’s Start/Mode board (the pin for the Mode button).
Connect the (red) wire from LCD#3 to One of the following: the anode of the “COUT” capacitor (red circle), the input of the voltage regulator (green circle), pin #3 of XL1509 (blue circle), or the input pin of a nearby diode (purple circle). I chose the diode pin since it’s not obstructed by nearby components.
Plug the control interface board’s red/black cable connector into the LCD’s board.
The control board is now fully wired!
Now to install the control board and route the wires. Do the following:
Cut out a small piece of paper and place it underneath the LCD’s circuit board to insulate it from the LCD’s metal casing.
Place the LCD’s circuit board as close to the top of the shell as you can and cover it with a few strips of electrical to insulate it from the Nomad’s circuit board.
Pull the LCD’s power/video wires (red/black/yellow) over the top center edge of the shell and let them hang outside for now.
Place the control board in the Nomad’s shell below the LCD, to the side of the Start/Mode buttons.
Use a small piece of electrical tape to pin down the control board’s connector cable (red/black) and power wire (red).
Reattach the Start/Mode button pad (make sure to put the rubber buttons back in first!). Tuck the control board’s green wire between the button pad and the bottom of the Nomad’s shell.
Use a small piece of electrical tape to pin down the control board’s blue wires along side the LCD.
Use a few pieces of electrical tape to pin down (and insulate) the control board itself.
And the control interface board is installed!
Note: Don’t put the security screw inside the system like I did – I had to put it there due to my internal battery mod (I removed the screw post from the shell).
To reassemble the system, do the following:
Replace the A/B/C/X/Y/Z buttons and their membranes (the gray rubber pads) if you took them out (orange circles).
Put on the red cap for the power switch and carefully reinstall the Nomad’s upper circuit board (pink outline) – make sure the gray/red/black power connector wraps under the board as shown.
Reinsert the three screws to finish attaching the board (blue circles).
Reinsert the white ribbon cable (red outline) that connects the Nomad’s upper and lower circuit boards – grasp it by the center of the blue tape and just push it straight in.
Reconnect the cable connectors for the speaker (purple outline) and Start/Mode button pad (green outline).
Tuck up the red, black, and yellow wires in the slot along the upper edge of the shell (cyan outline) – put a piece of electrical tape over the spot to secure the cables.
Go slow while reinstalling the Nomad’s upper board. You shouldn’t have to put pressure on the board to re-seat it. If it doesn’t lay flat, something’s in the way. First check to be sure the it’s not the LCD itself, and if not that, it might just be a loose wire caught between the Nomad’s circuit board and the screw posts it sits on. Use a flashlight and something long and thin to help shift wires around until it sits flat.
And that’s it! If you’ve done everything right, you should now be able to control the LCD’s menu using the Mode button & D-Pad.
Testing & Conclusions
Testing this mod is simple. With the Nomad reassembled, simply connect a power source (either a battery pack or DC adapter), and test the button combinations:
Mode and D-pad Up (or optionally Down) should cycle through the menu.
Mode and D-pad Left/Right should adjust the selected menu setting.
One thing to note: when you’re adjusting the settings, the D-pad will still affect regular gameplay, so make sure you pause first.
Hopefully this guide has been helpful, and if you have any questions, don’t hesitate to leave a comment or shoot me a PM (through the form on the left-hand side). Happy gaming!