Linksys WRT-1900ACS won't boot with serial TX connected

I have a weird hardware problem with my new Linksys WRT-1900ACS v2. It won't boot when serial TX pin is connected. When I power it on, the power white LED and eSATA LED turn on without blinking and it remains frozen like this. There is no serial output. All types of booting are affected: cold power on, reset from uboot, reboot from OpenWrt. If I keep just the TX pin disconnected for just a moment while powering on, it boots pefectly fine and the serial works fine after I connect it again. If I re-connect it fast enough, I can even see bootloader messages - so I suspect there is a hardware problem that intereferes with the very first stages of booting, before the bootloader and uboot.

I'm using a RS232-TTL adapter powered by the router's 3.3V. The same adapter works perfectly with my old Linksys WRT-1900ACv1. On that router I had this serial line connected constantly for years without any problems.
There are no other devices and cables connected, except for power and LAN1 network cable. I'm using the original power adapter.

Did anyone encountered this kind of problem before?

  • If this means you connected the VCC+ pin, this is usually inaccurate, you only need Tx, Rx and Ground - power is usually supplied externally if needed
  • The instructions don't say to connect +3.3 V
  • Is there some external power? Usually the VCC (+3.3 V) is not connected

Need a resistor?

  • That is correct. I connected the VCC pin.
  • I don't have an external 3.3V power source available.
  • Why is it wrong to use the router's 3.3V? I always thought this is more safe than an external power source.

@anomeome
On VCC wire? That would lower the voltage. Why should I do that?

No, TX, as stated, do not connect VCC

I still don't understand. Resistor between router's TX and serial-TTL adapter's RX, or between router's TX and ground (as a pull-down resistor)?

This could be a feature, not a bug... perhaps that TX line is being used by the processor as an input during the early boot process, and connecting it to the adapter is pulling it up or down.

I’ve seen this on kirkwoods when there’s insufficient shielding / leakage on the ground on the uart board.
Cheap clone uarts can be poor quality

For the 3.3v, the uart devices are usually usb powered, you risk sending too much voltage through the 3.3v pin having it connected to a powered board.

Adaptor confusion between OP and everyone else

It looks like there is some confusion as to the type of serial adaptor you are using @m95d

"RS232-TTL" or "RS232 to low voltage serial" will have a DB9 (DE9) serial connector and some sort of voltage translation chip (eg MAX232). There will be NO usb connector. Methods of powering these will vary quite a lot, the way you are doing it might be right.

"USB serial" or "USB UART" adaptors have a USB port. These are the most common solution these days, as few people have laptops with RS232 ports. You do NOT connect the 3.3V wire on the TTL/3.3V/sim side of these.

(Pedants beware: both "DB9" and "ttl" are redefined and misused in the world of UARTs!)

.

Possible explanations & testing routes

There are a few ways that the router could be detecting that you have something connected to the serial port.

(1) Pullup on the router's RX line. Normally this is done by the router itself anyway, but perhaps not and maybe the router can't handle this during boot (eg it might be an interrupt pin. Silly design). Test by wiring a 1K resistor between this pin and 3.3V on the router, see if the router boots or not.

(2) You have RX and TX the wrong way around (some devices mislabel them, it's not uncommon) which is forcing the TX pin into an undefined state. This could be anything from harmless to chip init blocking (to damaging in rare situations)

(3) Your RS232 to 3.3V adaptor is outputting garbage over the RX and TX lines when it gets powered on. Test by trying a different model/brand of adaptor. Some router bootloaders couldn't give a damn, others will halt boot (and present you a menu of options to choose from) because they think you have typed something over the serial line.

(4) Your RS232 to 3.3V adaptor isn't. Maybe 3.3V is too low for it to work properly and it's designed for 5V. Maybe it's just a passive connector adaptor without voltage translation chips (eek!) that just barely worked on your old router but doesn't here. Test by looking for the chips on the board (eg MAX232 clone) and lookup up their datasheets, possibly also by measuring voltages output by the adaptor (eg TX pin) with a multimeter.

2 Likes

My adapter is a true serial port DB9 RS232 12V on the host side. There is no USB. It is not powered by the RS232. There are vcc and ground pins which must be connected to some power source. I always used the vcc from the target device serial ttl port. There are no voltage markings on it. I used it with 3.3V on various routers and SBCs and with 5V on devboards.

    • will test
  1. I'm sure this is not the case. It works ok after, without changing the wires.
  2. Not possible. The same thing happens during a soft-reboot, when the power is not interrupted.
  3. It looks like one, clone or not. I'll test voltages too, but since all power comes from the router, I don't expect any issues.
1 Like

3.3V is stable (at least, as viewed on a digital multimeter)
Adding a pullup or a pulldown resistor makes the router boot, but then the console isn't usable.
I can't figure it out. I'll leave it as it is until I'll have another TTL adapter to test with.

1 Like

Adding a pullup or a pulldown resistor makes the router boot, but then the console isn't usable.

It should become usable if you remove the resistor (whilst the system is running, so be careful not to short it against nearby things).

New adapter, USB-TTL with jumper to select voltage. Booting/rebooting works with this one.

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.