Posts Tagged ‘RS-232’

UART also for Archos101 (gen8)

Monday, March 21st, 2011
UART pads for the A101, picture courtesy av500

UART pads for the A101, picture courtesy av500

TX is green

RX is blue

Ground is wherever you find it ;-)

more info

How to wire up an Archos70 (gen8) for UART access.

Friday, March 18th, 2011

A quick info how to wire up your gen8 Archos 70 for UART access.

The reservations from the previous guide for gen6/gen7 do apply. Don’t connect this directly to RS-232!

UART pads on the A70, picture courtesy AV500

UART pads on the A70, picture courtesy AV500

And AV500 adds this information: “this is the back side of the PCB, to get to it disconnect LCD and TSP and remove PCB from the case…”

This should prove useful for those that want to work on gen8 up-stream kernel support or just need reliable console access without blocking up the USB port.

Debugging Archos devices just got a lot easier.

Monday, July 12th, 2010

UPDATE:

This guide is outdated, please do not use it anymore! There is a new and updated procedure that is easy to follow and integrates g_serial debugging. The files linked to in this guide will be no longer available.


I’ve been talking about this idea for a while now, but today I finally had the right mood to work on it and I think I’ve found a sufficiently flexible solution for now.

I’m loading the kernel modules (musb_hdrc and g_serial) in the initramfs. Fortunately there was enough space left for that.

I’ve created 3 separate serial interfaces using g_serial.

  1. /dev/ttyGS0 – unused (root shell on Archos Android firmware)
  2. /dev/ttyGS1 – unused
  3. /dev/ttyGS2 – kernel messages. this is simply ‘cat /proc/kmsg’

You can now attach terminals or logs to this in your images. Usually by editing /etc/inittab and adding a line like:

s2:235:respawn:/sbin/mingetty --autologin root ttyGS0

If you need to disable this you can just kill the ‘cat’ process and if running stop the getty’s. After doing that you can remove the g_serial and then the musb_hdrc module. You can then e.g. reload musb_hdrc to have it act as a host controller again.

The important changes are in the initramfs. The zImage is only needed if you want the root shell for Android. Get the files here.

Enjoy your easy debugging! No need for serial dongles anymore!

Cheers

Thomas, your friendly neighborhood ArchDruid
PS: As a bonus this zImage will boot Archos 2.0.x firmwares. There will be some problems with transparencies though. We’re going to fix that in the long run though.

PPS: If there is demand I can generate a set for gen6 too.

Serial console on gen6 and gen7 using the Archos DVR Station

Wednesday, April 21st, 2010

The serial console is an extremely powerful tool while working on embedded systems on an low level. Rewriting the init process to enable the openAOS Boot-Menu would have been virtually impossible without this.
So, due to some requests for information on how to access the serial console on Archos generation 6 and 7 devices I put together this posting. Thanks also to those who contributed the Pictures to make this post possible!
What will you need?

  • A soldering iron with a fine tip (capable of soldering SMD parts)
  • Some thin, insulated wire
  • A level converter 1,8V ⇄ RS232 (this is very important, more on that later)
  • An Archos DVR station for gen6/7

Once you have everything prepared on a clean surface:

  1. First open the DVR-station. The screws on the back are not important, the ones hidden below the pads on the bottom are.
  2. You should now see something like this:
    Overview of the DVR-station PCB, click for larger version

    Overview of the DVR-station PCB. Click image for larger version

    Notice how some parts are highlighted in red. Those are convenient spots to grab the serial TX, RX signals and an nearby ground pad.

  3. To have an interference free serial interface you will have to sacrifice the IR receiver and transmitter. Or to fit a switch; though this goes beyond the scope of this guide so that design and implementation are left to the discretion of the interested reader.The following picture shows the two resistors that need to be removed while hilighting the appropriate solder pad to attach an wire. To the Right you also can see an easily accessible large ground pad which needs no further preparation.
    Closeup of the DVR-station PCB, with resistors, click for larger version

    Closeup of the DVR-station PCB, with resistors still in place. Click image for larger version

  4. After unsoldering the resistors you can proceed to soldering on the three wires.

    Closeup of the DVR-station PCB, with wires, click for larger version

    Closeup of the DVR-station PCB, with wires soldered on and resistors removed. Click image for larger version

    Notice how the TX and RX wire are soldered to the lower of the two pads where once the SMD resistor was located.

  5. Apply some tape so there is no mechanical stress on the solder joints
  6. Find a way to route the wires outside the case
  7. Please notice that TX and RX is respective to each device, this means you need to wire: TX → RX and RX → TX!
  8. Attach your 1,8V ⇄ RS232 converter to the three wires!I will emphasize this once again:
    This converter is a MUST! If you connect your Device directly to an RS-232 port you are going to cause irreversible damage to it!

    Alternatively you could use one of these USB converters. I heard that you can get away without modifying VCCIO for 1,8V and just leaving it at the 3,3V default.

  9. Congratulations! You can now directly debug your Archos running an custom kernel!

Some further notes on this topic:

  • This does not work with the original Archos firmware!
  • Advanced users can connect an USB-to-serial converter chip that is capable of 1,8V directly to the port. This is not something you can buy off the shelf. Regular converters use RS232 levels → irreversible damage!
  • If you are connecting an cheap USB-to-serial converter to the level converter use a “moderate” baud rate! Cheap converters usually contain an prolific-2303 chip. It works ok for 115k2 but won’t work reliable at 1M. I can recommend FTDI converters, they work just fine at 1M.
  • A similar modification should be possible using the HDMI-Dock as I’ve been told it has two docking connectors (TX is on the left, RX on the right).

I will add some more notes here later on.

And once again. NEVER connect RS232 directly to the bare wires! You have been warned.