Re: Raspberry Pi 3B USB Printing Issue

From: Archimedes Gaviola <archimedes.gaviola_at_gmail.com>
Date: Sun, 13 Mar 2022 06:27:09 UTC
On Sun, Mar 13, 2022 at 12:38 AM Hans Petter Selasky <hps@selasky.org>
wrote:

> On 3/12/22 16:31, Archimedes Gaviola wrote:
> >>
> >> IOERROR usually means an electrical error. The RPI3B will use a
> >> transaction translator for the FULL speed traffic, which is driven by
> >> software.
> >
>
> Hi Archimedes,
>
> > Hi Hans,
> >
> > I'm curious about the transaction translator you've mentioned, any idea
> why
> > there's a need for translation and what is being translated?
>
> When the High Speed USB HUB was invented, there was a need to support
> FULL and LOW speed USB transactions. Because FULL and LOW speed
> transactions are slow and take up much bandwidth, a transactions
> translator was invented which translates between High Speed USB and
> FULL/LOW speed USB. That means the RPi 3B consists of a single USB HIGH
> speed port, followed by a USB HUB. These transactions are not visible in
> usbdump .
>
>  >Does this only
> > happen when RPi 3B (acting as host controller) is transmitting data to
> the
> > Epson printer? Are translation events visible in the usbdump? In this
> case
> > there's a way to possibly track what's going on and how to identify any
> > info that is being translated?
>
> By turning on the HC debugging, you can possibly track via debug
> messages what is going on. Maybe it is a timing issue, that the SW is
> too slow serving the micro transactions.
>
> Any idea also if translation is being
> > performed in RPi 4B?
>
> The later RPi's do the transaction translator bits in HW or via the XHCI
> block.
>
> As I have conducted several printing cases with my
> > Epson printer without any issues with either of the 4 ports.
> >
> > Sorry for these questions as I am catching-up to the USB technology
> > internal workings under the hood.
>
> You are welcome!
>


Thank you so much Hans for answering my questions, really appreciate it! I
have a much better understanding now.

I came from testing with 13.0-RELEASE having the same RPi 3B hardware and
setup and it's very stable. I haven't encountered any IOERROR and
incomplete printed outputs that were encountered with 14.0-CURRENT
(February 24, 2022). By the way, I found in the repository here
https://download.freebsd.org/snapshots/arm64/aarch64/ISO-IMAGES/14.0/ that
there were two latest snapshots released dated March 3 and March 10,
respectively. I need to take printing tests first, especially the latest to
check if it also manifests before I go back to the Feb. 24 snapshot and do
a thorough test with debugging. I'll provide updates for any observations.

Thanks,
Archimedes