The Archos Remote project was published in the May
2004 issue of Nuts & Volts. Click
on the image below for a PDF file containing the original article.
Please note that there appears to have been some slight mangling of the
text before it reached the press so if you spot an error it is probably
due to this.
(Reprinted by permission only from T & L Publications,
Inc., d.b.a., Nuts & Volts, Copyright 2004).
This project implements a remote control for the Archos
series of MP3 jukebox recorders and players, using a PIC12LC508A to provide
the necessary logic. Six buttons allow the user to increase or decrease
the playback volume, Play, Stop, and skip to the next or the previous
song. The remote runs on one 3V CR2032 battery, which should have a life
of more than a year under normal usage. If a PIC12C508A is used, then
a supply voltage of 4.5V should be provided. Note that only certain Archos
products are supported by the remote control. Check on the Archos site
to determine which units are supported by the remote in their travel kit
the same devices should work fine with this design.
Information required to drive the remote port of Archos
devices was gleaned from Tjerk Schuringa, creator of the original REMOCLONE
remote (implemented with a 16LF84), and the authors of Rockbox,
the amazing open source alternative to the Archos' proprietary firmware.
Controlling the Archos players and recorders with the
remote is straightforward. However, in some - hopefully rare - cases,
it may be necessary to adjust the rate at which commands are transmitted.
Refer to the Calibration mode section below for information about how
this is done.
- The user presses the button for the required function
and, when a valid debounced button press is determined, the appropriate
code is sent to the Archos. Only one key can be pressed at a time (with
one exception - see Calibration Mode below), all other combinations
are treated as invalid. Holding a volume adjustment key down sends a
stream of repeat commands to the Archos.
- If Volup and Voldn are pressed simultaneously for
about 2 seconds, the device is put into calibration mode. This allows
you to tweak the serial timing to account for the relatively wide tolerance
of the PIC's internal clock. In limited testing, the tolerance of the
clock is close enough for the serial data to be recognised by the Archos
Jukebox. It is possible, however, that adjustment of the default baud
rate may be necessary.
- While in calibration mode, a test code is sent to the
Archos every 0.5s or so. 16 codes are sent in total - 4 VolDn followed
by 4 VolUp, repeated twice - with the intent that this sequence is least
likely to change the user's setting. Each press of the Next button increases
the baud rate by decreasing the serial bit time by about 1us from the
nominal period of 104us. Pressing the Prev button decreases the baud
rate (increases the bit time) in the same way. Total adjustment is +/-
16 steps away from nominal, which encompasses the specified tolerance
of the PIC oscillator. Making an adjustment when less than 16 test codes
remain to be sent adds another 16 to the number to be sent.
- For optimal performance over an extended temperature
range, use the calibration feature to determine the range of values
over which the Archos recognises commands from the remote at normal
room temperatures, and then set to the middle of this range. If you
get lost during this procedure, pressing Play (while in Calibrate mode)
will return the timing to nominal.
- Calibration mode is exited when the last test code
has been sent, or can be terminated early by pressing the Stop button.
Click on the image for a full-size schematic.
Note that the schematic is for the circuit board
alone. JP1 and JP2 have to be connected to the 4-pole jackplug that
goes into your Archos headphone socket. A normal headphone jackplug
is 3-pole with the following convention:
- Tip: Left audio
- Ring: Right audio
- Barrel: Ground
To allow the remote to work, you need a 4-pole
jackplug connected like this:
- Tip: Left audio out (JP2-1)
- Ring1: Right audio out (JP2-3)
- Ring 2: Serial data in (JP1-1)
- Barrel: Ground (JP2-2)
Note that if you put a normal headphone jack into
the Archos, the serial data input is grounded.
The code was written using the MPLAB 5.70.40 IDE from
here for the assembler file.