Rock64 Boot-up Bug with Serial Console Cable

The Rock64 often will not boot-up with a serial console connected to the console uart pins (6, 8, & 10).

Symptom:  lights come on, nothing happens at all.

Solution:  unplug the Tx line coming in on pin(10) prior to applying power for boot-up.

The Tx line often (if not always) has 3v3 on it when the other end is powered up, even in the idle state.  This voltage present on pin(10) of the Rock64 prevents it from booting, sadly.  I have reliably verified that unplugging the Tx line in on pin(10) of the Rock64 will allow the boot-up to start...  as it boots up , carefully plug the Tx line back onto pin(10).

Also noticed that the Tx line (if left connected to pin[10] on Rock64 power-down) will back-feed into the board, which will dimly light the red LED (small glow) !  This back-feed is preventing boot-up.

Fortunately the serial console monitor does not need this line connected to monitor as long as it has the Rx connection and a good ground,  so unplugging the line from pin(10) does not prevent monitoring the boot-up messages on the serial console.

Note:   This problem occurs on both of my boards;  dev board pre production, and the production master-piece which came last week !

Note:   At this point I don't know if the current draw on the Tx line might damage the monitor ; currently I'm using my PineA64 desk machine as the serial monitor for my Rock64 boards.

marcushh777    Cool

please join us for a chat @   or ssl

( I regret that I am not able to respond to personal messages;  let's meet on irc! )
(08-24-2017, 04:33 PM)MarkHaysHarris777 Wrote: Greetings,

The Rock64 often will not boot-up with a serial console connected to the console uart pins (6, 8, & 10).

Symptom:  lights come on, nothing happens at all.

Solution:  unplug the Tx line coming in on pin(10) prior to applying power for boot-up.

The async serial standard dictates a "marking" or "1" condition as idle which is a negative voltage on ancient RS232 circuits, but positive 3.3 or 5 volts on TTL so the serial line will idle at that level - and placing ANY voltage on a SOC's input pins prior to proper power up is very bad juju since it can result in SCR latchup of the SOC frying the chip - so you are lucky that it's just causing a recoverable boot issue.

This is tough to fix in software since it involves direct current leakage at the hardware level.

There are several simple fixes to safely prevent this while maintaining full serial console functionality.

1)  Hardware - use a USB - TTL adaptor cable with an open collector TX driver (may also need 10k pullup to the Rock64 3.3 volt rail if the SOC internal pullup is not enabled on pin 10)

2) Hardware  - add a simple 2n2222 or similar NPN switching transistor (or logic level n-channel mosfet) buffer.  The NPN transistor collector is connected to the Rock64's Serial Console IN on pin 10, the base is connected to the Rock64 3.3 volt supply rail through a 4.7K resistor, and the emitter goes to the TX OUT of your USB-TTL serial converter (depending on whether software on-chip pullup is enabled on pin 10, may also need a 10k pullup from pin 10 to the Rock64's GPIO to the Rock64 3.3volt supply rail).

3) Hardware/Software  - and lastly, the simplest fix from a hardware point of view, but one that may require  minor software patches is to add a 10k series resistor between the USB-TTL converter TX OUT and Rock64 pin 10 UART2_RX console input - and then make sure that the console port has no pullup enabled in software and is set to 56k or lower baudrate. Serial port configuration changes may be needed for this to work because the serial port won't work reliably with a series resistor at high data rates or when working against a strong on chip pullup.  Big downside to this is that the port will oscillate or pick up noise if not terminated with a pullup if there is no console connected. Some SOC's provide a 'weak pullup' to get around this type of situation, but I am not sure that this is available with the RK3328.

If you are handy with a soldering iron the 2n2222 or equivelent low level switching transistor fix is probably simplest.  All these fixes assume that the issue is purely a power up sequence current leakage issue that can be fixed by limiting current flow into the serial port prior to the Rock64 powering up.

All bets are off if there is also a software issue regarding the port seeing a ttl "1" condition too early in the boot sequence.

Possibly Related Threads…
Thread Author Replies Views Last Post
  Are HW design files available for ROCK64? irenek 3 5,501 12-11-2023, 09:31 PM
Last Post: tllim
  Rock64 is unreliable after 3 years of service - power problem? ReleaseTheGeese 0 441 11-23-2023, 05:05 AM
Last Post: ReleaseTheGeese
  Rock64 PoE compatbility with Pi4 Hatt recent Single Board Computer offering from PINE kharak 1 1,242 04-26-2023, 11:38 PM
Last Post: tllim
  Case for the rock64 that supports the POE hat. o1CRiMSON1o 0 716 03-21-2023, 03:48 PM
Last Post: o1CRiMSON1o
Brick Rock64 usb2.0 Power Control Floating GPIO Tutorial Files & Notes MarkHaysHarris777 6 13,740 01-15-2023, 10:36 AM
Last Post: ds00
  rock64 totally brick dakobg 2 1,965 11-07-2022, 05:45 PM
Last Post: olivercfc
  3D-Printable Button Pegs for the ROCK64 Aluminium Case CounterPillow 2 3,730 08-04-2022, 01:31 AM
Last Post: Vicky Weimann PhD
  Where can I find the ROCK64 POE HAT Zoz 2 2,887 06-08-2022, 12:44 AM
Last Post: Zoz
Smile wooden case for ROCK64 killor 13 17,306 03-04-2022, 06:56 AM
Last Post: killor
  1wire DS18b20 on Rock64? mypineme 6 7,479 09-28-2021, 03:07 PM
Last Post: TRS-80

Forum Jump:

Users browsing this thread: 1 Guest(s)