EDIT: Thanks everyone for you help, that has been very instructive. I think I just have a very poor quality cable adapter. Given that Blueretro is mostly an opensource DIY project, I’ll make a cable adapter myself instead of trying to fix what would obviously not function properly.
Hi everyone,
First of all let me say that I’m a total noob in electronics (I really only know the basics) and I’m facing an issue that I really don’t know how to tackle.
I have bought a Blueretro NES adapter on Aliexpress (this one) and it does behave erratically when powered by the console alone (Bluetooth not working, LED indicator down, random outputs to the console).
When I’m powering via USB, everything function properly.
So I guessed that I might have a voltage issue on the NES side. I tested mine and make a few friend test theirs (5 in total including mine) and the result is still the same: the controller ports outputs between 4.6 and 4.8V instead of 5V.
The Blueretro itself apparently uses an AMS1117 (picture here) which, from my understanding, is stepping down 5V to 3.3V (wild guess, I don’t really know what it does, just quickly read the datasheet).
So, sorry for the long intro, here are my questions:
- Is it wise to try to step up the voltage from the NES to the Blueretro from 4.6V to 5V? How would it be possible? Is it even possible?
- Given that the Blueretro is taking 3.3V apparently, is it possible to step down from 4.6V to 3.3V instead? Is it wiser than stepping up?
Thanks in advance and sorry for the long post :)
I don’t have specific experience with game consoles, but the erratic behavior when powered by the console suggests that the port’s voltage is sagging when the Blueretro is attached, possibly lower than what the AMS1117 can tolerate.
A quick search seems to show that the AMS1117 has a minimum dropout voltage of 1v. So for 3.3v output, the input must not drop below 4.3v. Other Low Dropout (LDO) regulators could have a smaller dropout voltage, but that might not be the root-cause.
It’s possible that without load, the port provides 4.6-5v. But when loaded, it dips below 4.3v, producing the behavior you see. The problem then becomes: is it the NES that’s not providing sufficient current on the voltage bus, or is it the Blueretro trying to draw too much current?
Are you able to measure the port’s voltage bus when the Blueretro is attached? That would help prove if the bus is sagging. Does the Blueretro allow you to use USB power when plugged into the console?
What I’ve measured so far:
- from the controller port directly: 4.8V
- from the wires inside the adapter without Blueretro attached: 4.6V
- from the wires inside the adapter with Blueretro attached: 3.9V
There are some active components inside the adapter itself, I guess this could explain the drop 0.2V drop.
So is it sagging?
The 74AHCT125N appears to be a 3v to 5v level shifter, which I wouldn’t expect to be drawing a lot of current. So if just the adapter’s presence is causing 0.2v drop, then yeah, that would suggest the output current of the port’s voltage rail isn’t very high, causing substantial sag.
To be abundantly clear, is the Blueretro meant to work when only powered by the console? It certainly wouldn’t be as convenient – an extra cable and power block to deal with – but everything is functional when externally powered by USB, yes?
Do I understand that your original post is debugging why the console isn’t sufficient to power the Blueretro?
The 74AHCT125N appears to be a 3v to 5v level shifter
I don’t think the cable adapter is using this particular chip. I see two much smaller ones. Maybe that’s the issue.
To be abundantly clear, is the Blueretro meant to work when only powered by the console? It certainly wouldn’t be as convenient – an extra cable and power block to deal with – but everything is functional when externally powered by USB, yes?
That’s right Blueretro is supposed to be powered by the console alone. When powerd by USB, it is perfectly functional.
Do I understand that your original post is debugging why the console isn’t sufficient to power the Blueretro?
That’s correct.
I can respond to at least your second question right now: I can power the Blueretro from USB while on the console that’s how I know it is functioning properly when powered properly (my original post wasn’t clear enough I guess).
I’ll test the voltage while powered on as soon as I can.
Given that the Blueretro is taking 3.3V apparently, is it possible to step down from 4.6V to 3.3V instead? Is it wiser than stepping up?
That’s what the AMS1117 you identified does! One of the pins on that IC will be the 4.6V input, one will be the 3.3V output. Looking at the datasheet it has a dropout (minimum vin-vout) of 1.3V meaning that voltage regulator doesn’t have much margin…
Power issues/brownouts do seem like a possible explanation. Great job at tracking the issue down as far you did, but I think it’s a bit to early to jump to the conclusion that that is definitely the issue.
-
What’s is the voltage you measure on the AMS1117?
-
Does the voltage you measure change when you connect via Bluetooth?
-
Do your measurements change when USB powered?
-
Does the 4.6V output from the controller drop when you connect over Bluetooth?
-
Are you measuring the ports when something is connected or when the ports are open?
-
Does your blueretro work on the ports of the other NES devices?
My hunch is the ports don’t output enough current for reliable Bluetooth which isn’t going to be fixed without some NES surgery… You might be better off just using the USB power.
What’s is the voltage you measure on the AMS1117?
3.53V on input, 2.61V on the output.
Does the voltage you measure change when you connect via Bluetooth?
I can’t even connect via Bluetooth. The adapter is effectively not functioning at all: the green power LED indicator is functional but you can’t connect anything to it.
Do your measurements change when USB powered?
Measurements are 4.54V on input of the AMS1117 when powered through USB, output is 3.35V (which seems « normal »).
Does the 4.6V output from the controller drop when you connect over Bluetooth?
As stated before can’t even connect through Bluetooth.
Are you measuring the ports when something is connected or when the ports are open?
The 4.8V measured on the controller port are when nothing is connected.
Does your blueretro work on the ports of the other NES devices?
I unfortunately can’t test the other NES as I don’t have access to them. But I tested the same Blueretro Core on SNES, N64 & GameCube without any issues. From what I got, the SNES, N64 & GameCube controller ports are outputing 3.3V directly, not 5V.
3.53V on input, 2.61V on the output.
There’s your problem! The BLE chip isn’t getting enough voltage, likely because you’re overloading the port with that device requiring more current than the NES port can supply…
I don’t know enough about the NES to walk you through how to mod it to increase the available current, and I’m unfortunately not seeing any immediately available guides on the problem your facing but your two options would be to see if there’s some current limiting inside the NES for those ports (and risk full device brownouts, overloading, damage to power further upstream) or isolate the existing power rail and essentially replace it with the USB power adapter… Or just use the external power adapter…
From what I got, the SNES, N64 & GameCube controller ports are outputing 3.3V directly, not 5V.
Doing a quick google, this excerpt about the GameCube is enlightening:
There are two power rails on the connector, a 3.43V supply that is probably used for the logic, and a 5V supply that appears to be used to power the rumble motor (and perhaps logic also).
I’m willing to bet the 5V for the rumble is what is being used to power that module as it had significantly higher current capacity and would explain why it works on that device but not the NES.
-
Let me chime in with a few thoughts, can’t go into full detail since I’m currently traveling and on my phone:
- It should be possible to power the BlueRetro using the controller port only. IIRC, the controller pins providing power are directly connected to the internal NES regulator, so with enough headroom to spare, you should be good to go. Eventually, this will depend on the firmware of the ESP-WROOM module used by the BlueRetro (max. current draw for the ESP32 should be around 250mA with all peripherals enabled and transmitting, I’d expect the BlueRetro to use quite a bit less in normal operation). That’s also what the 8BitDo is doing, running at around 100mA.
If you look at YouTube videos, you’ll also find one or two people running the BlueRetro directly off of the port.
-
Where did you get the level shifter cable from?
-
I’d also like to know the results of your voltage measurement in operation
-
If push comes to shove and you decide to replace the LDO, the TLV1117LV made by TI would be a potential candidate, should be a drop-in replacement with better specs (price is about $0.30)
It should be possible to power the BlueRetro using the controller port only. IIRC, the controller pins providing power are directly connected to the internal NES regulator, so with enough headroom to spare, you should be good to go. Eventually, this will depend on the firmware of the ESP-WROOM module used by the BlueRetro (max. current draw for the ESP32 should be around 250mA with all peripherals enabled and transmitting, I’d expect the BlueRetro to use quite a bit less in normal operation). That’s also what the 8BitDo is doing, running at around 100mA.
That’s what I thought too. I originally ordered 4 cables (NES, SNES, N64 & GC). I only had troubles with the NES so I decided to just get a replacement. But the replacement has the exact same behaviour, so this is either an issue with my NES or the cable is not designed properly for PAL NES.
Where did you get the level shifter cable from?
What do you mean by that? The cable itself? It’s from Aliexpress.
I’d also like to know the results of your voltage measurement in operation
As stated below:
- 4.8V on the controller port itself
- 4.6V inside the cable adapter without Blueretro Core attached
- 3.9V inside the cable adapter with Blueretro Core attached
- 3.53V on input, 2.61V on the output of the AMS1117 when powered by the console only (and the Core itself is not functional that way)
If push comes to shove and you decide to replace the LDO, the TLV1117LV made by TI would be a potential candidate, should be a drop-in replacement with better specs (price is about $0.30)
Will it change something when the input power is so low? I feel like I might as well connect the 5V rail directly to the 3.3V input on the Blueretro…
If the controller port is connected to the same +5V rail as the CPU, wouldn’t the NES crash if it only got 4.6V or less?
If only the BlueRetro is affected, maybe something behaves like a resistor in series with it, for example a broken solder joint in the adapter or at the connector on the NES
Only Blueretro is affected. Maybe the Blueretro NES adapter cable has just poor quality components. The other cable adapters I have for other consoles work fine, including the SNES which also operates in 5V.
Could be. The way the voltage sags at the end of the cable with the blueretro connected suggests that someone skimped on copper in the wires.
If you can figure out a way to measure the voltage at the port with the cable attached and powering the blueretro, do that. If it is mostly the same whether the blueretro is connected or not, yep, it’s the cable.
I managed to do that (not an easy fit but I think I’ve achieved the measurement properly) and you’re right: the cable itself it probably of very poor quality. Given that Blueretro is mostly a DIY project I think I’ll make the cable adapter myself instead of trying to fix what is obviously not fixable.
Thanks for the help!