Reference design
MG35 is probably based on the EM8510 Portable Media Player Development Kit, which contains a reference design. Or maybe on DVD-8500 Reference Design.
Is my player a Mediagate MG-35 clone?
We know some clones, ans it looks like the firmwares are interchangeable between these units (but if you are updating, you're doing it on your own risk!!! ):
- Network Media Player-35 by Freecom - firmware here.
- Movie Cowboy DC-MC35UL/N by Digital Cowboy - firmware here.
- This is the model that comes with the USB host controller.
Main board chips
Note that some chips may be different to your MG-35, particularly flash and SDRAM, but the base configuration is the following:
1x Sigma Dev - EM8511-Rev.A = Digital media processor with MPEG-2/4 and DVD decoding.
The heart of this board is the Sigma Designs EM8511, a digital media processor incorporating a 200MHz ARM CPU, an integrated IDE controller, and the audio and video decoders. According to product brochure, 8511 it's a non-Macrovision version of EM8510. If you google for "em8510 datasheet", among a lot of useless sites, you'll find a leaked datasheets (hint: it's on a wiki). On the same product brochure you can find the block diagram.
Other info:
200MHz CPU clock
100MHz System bus clock
The CPU info, as in /proc/cpuinfo is:
Processor : ARM pt110 rev 0 (v4l)
BogoMIPS : 80.69
Hardware : JASPER
Revision : 0000
Serial : 0000000000000000
|
Documentation for the ARM core is here.
The following info courtesy of Mark Hotchkiss:
> The source code is compiled with -mtune=arm7tdmi -march=armv4 options. Aren't they
> contradictory?
[...]I think the confusion comes from the crazy ARM version numbers and names.
The ARM architectures have different versions, and one of the "v4" implementations is the ARM7TDMI (which EM8510 is, I believe). So those switches seem more redundant than contradictory, as both of those switches select the same instruction set, 4T (which I'm told means that it is v4 with the additional "thumb" instructions). And then there are the marketing names, like "Cortex", in case it wasn't already confusing enough. The confusing part is that Arm7 is a "v4".
2x Samsung - K8D1716UTC = Flash Memory
2x Spansion - MBM29LV160TM = Flash Memory
16M Bit (2M x8/1M x16) Dual Bank NOR Flash Memory. Total 32Mbit = 4MB. PDF for Samsung and Spansion. The two flash chips are both in word mode with each handling 16-bits of the 32-bit bus. OE and We are fired to both chips no matter which word is accessed. This is fine for reads but requires care when writing - see the source of the mgnv utility for more information.
Notice the paint dots on the flash chips at the top right of the picture in the [JTAG section]. Both chips have a yellow dot and one has a dot of a different colour. These dots are to let the manufacturers track which chips are programmed and which are high word versus low word. This suggests that the manufacturers don't use in-circuit JTAG programming!
2x Samsung - K4S641632H-TC60 = SDRAM
8MB 166mHz SDRAM module. (16MB total).
1x Hynix - HY57V643220DT-6 = SDRAM
8MB 166mHz SDRAM module. Probably the video+overlay memory.
1x Wolfson - WM8728S = 192kHz Stereo DAC.
1x Davicom - DM9000E = 10/100 Ethernet Controller.
1x Altera - EPM3032A = CMOS EEPROM-based CPLD with JTAG-ICD support.
Programmable logic , 32 macrocells, 2 logic array blocks, 34 I/O pins. PDF here
1x Prolific - PL-2507 = USB2.0 to IDE bridge controller.
Functional description here
Front panel board - FIP
The FIP panel gets the keypreses from the device and remote buttons (it decodes the IR signals itself, through the INT0 pin) and sends them as commands to the main board over a I2C serial link.
Here are the signals on the J2 conector which connects the FIP panel to the main board:
Pin |
Signal |
Voltage [V] |
Notes |
1 |
VCC_3.3V |
|
3.3 volt supply |
2 |
VCC_5V |
|
5 volts, ALWAYS ON |
3 |
VCC_USB |
|
5 volts from USB |
4 |
|
|
5 volts, switched |
5 |
|
|
(unknown) Sigma EM8511 PIO0(1) to/from Samsung S3C9454 P2.0/T0 |
6 |
EXT_IR |
|
IR input from external IR jack |
7 |
I2C-SCL |
|
serial clock from EM8511 |
8 |
I2C-SDA |
|
serial data to/from EM8511 |
9 |
|
|
(unknown, possibly power-up control) Samsung S3C9454 P2.3 to/from strange 5-pin U29 |
10 |
GND |
|
|
11 |
INT_IR |
|
IR sensor to external IR jack |
12 |
PWR LED |
|
from EM8511 PIO0(12) |
13 |
NET LED |
|
from DM9000E LINKACT# |
14 |
HDD LED |
|
from IDE interface, pin 49 |
15 |
GND |
|
|
FIP is ALWAYS powered on from a 5 volt supply on J2 pin 2. When the POWER button is pressed, or a POWER IR code is received, the mcu powers-up the rest of the MG35, probably through J2 pin 9 (I can't see any other way). While operating, the EM8511 needs to poll the front panel for commands through the serial I2C interface.
The 5 volts from the USB connector is brought in through J2 pin 3 so that the S3C9454 mcu knows when the MG35 is acting as a USB device. Nothing on the front-panel is powered from the USB.
The PWR, NET and HDD LEDs are controlled directly from the main PCB by the EM8511, the Ethernet controller and the disk-drive, respectively. There are three pins in J2 for this purpose. The "blue ring" LEDs are controlled by the S3C9454 mcu.
1x Samsung - S3C9454 = 8-bit single chip CMOS microcontroller
This MCU chip was found on a board with revision number P.1.3.5 Datasheet PDF here.
FIP commands to the main processor
The commands are two bytes binary, with the second byte being the ones-compliment of the first byte. Here are the command codes, as defined in the firmware:
// FIP keys
#define FIP_KEY_ENTER 0xEA15
#define FIP_KEY_LEFT 0xEB14
#define FIP_KEY_UP 0xED12
#define FIP_KEY_DOWN 0xEC13
#define FIP_KEY_RIGHT 0xE916
#define FIP_KEY_POWER 0xFF00
#define FIP_KEY_PLAY 0xB649
#define FIP_KEY_STOP 0xB748
#define FIP_KEY_MENU 0xA758
#define FIP_KEY_TITLE 0xE817
#define FIP_KEY_SETUP 0xEE11
#define FIP_KEY_ANGLE 0xA659
#define FIP_KEY_REPEAT 0xA857
#define FIP_KEY_AB 0xF40B
#define FIP_KEY_SLOW 0xB24D
#define FIP_KEY_FILE_INFO 0xF609
#define FIP_KEY_TIME_SEARCH 0xA55A
#define FIP_KEY_BR_CONT 0xF30C
#define FIP_KEY_MEDIA_TYPE 0xA35C
#define FIP_KEY_MAIN_PAGE 0xE41B
#define FIP_KEY_REW 0xEF10
#define FIP_KEY_FF 0xB14E
#define FIP_KEY_PREV 0xE01F
#define FIP_KEY_NEXT 0xBc43
#define FIP_KEY_VIDEO 0xF906
#define FIP_KEY_AUDIO 0xF807
#define FIP_KEY_SUBTITLE 0xFD02
#define FIP_KEY_SCRSIZE 0xFC03
#define FIP_KEY_1 0xE31C
#define FIP_KEY_2 0xE21D
#define FIP_KEY_3 0xE11E
#define FIP_KEY_4 0xBF40
#define FIP_KEY_5 0xBE41
#define FIP_KEY_6 0xBD42
#define FIP_KEY_7 0xBB44
#define FIP_KEY_8 0xBa45
#define FIP_KEY_9 0xB946
#define FIP_KEY_0 0xB847
#define FIP_KEY_VOL_UP 0xB54A
#define FIP_KEY_VOL_DOWN 0xF708
#define FIP_KEY_MUTE 0xA956
#define FIP_KEY_CANCEL 0xFA05
Serial header J9
There are TWO console interfaces on connector J9. We don't know yet if the second serial port is supported by the firmware, but there is no reason why it couldn't be.
We can connect a RS232 level converter to this header, to have console access to the bootloader. For this purpose, use serial port 0 (pins 1 and 5, and probably 3 and 4 for power). This is important to de-brick a dead device, but only if the flash bootloader is still intact.
This are the voltages on the header (pin 1 is the one with the silk screen arrow on the top, it's nearest the corner of the PCB, and it has a square pan on the bottom side. The other pins are then numbered alternatively, so pin 9 and 10 are the two on the far end of the connector.):
Pin |
Signal |
Voltage [V] |
1 |
TxD0 |
3.27 |
2 |
TxD1 |
3.27 |
3 |
Vcc |
3.27 |
4 |
NC |
|
5 |
RxD0 |
0.00 |
6 |
RxD1 |
0.00 |
7 |
Gnd |
0.00 |
8 |
NC |
|
9 |
NC |
|
10 |
NC |
|
Note: different board revisions seem to have different layouts, search for a pin labeled J9 - it is the pin 1 of the header.
Since the serial interface on the MG35 uses 0/3.3V logic, you'll need a level converter. DON NOT CONNECT J9 SIGNALS DIRECTLY TO THE SERIAL INTERFACE OF YOUR PC!!! YOU'LL PROBABLY DESTROY THE MG35!
A good converter to use is the one found here. it costs from about $10.00 USD (bare board) to about $25.00 USD (assembled and tested). The one offered comes with a max232 chip that needs a 5V supply, and since the MB connector provides 3.3V, you will want to populate the board with a MAX3232E IC since it operates at both 5V and 3.3V.
The following picture is not the above mentioned connector, but a connector purchased from e-bay on a sale that has since expired. Note that pin 1 on the MG-35 header is an Output and the cable shows the blue wire as RxD (meaning the converter input).
It is also possible to use a serial data cable from a mobile phone as a level converter. You can use the nice list of cell phone cable pinouts or dig for more pinouts . There is even a small tutorial for using a Nokia data cable to connect to WRT54G router, which has a serial interface similar to MG35. Another good resource for level converters is the NSLU2 serial port page.
Chances are that if you're interested in your MG35's serial interface, you'll also want to read the debricking page :-).
JTAG
Thanks to heiko.berner's work, we now know a little more about JTAG on MG35. EM8511's pinout is the following:
Signal |
Pin |
Type |
Description |
Routed to |
TCK
|
B8
|
I
|
JTAG port clock input
|
B13 (Buffered crystal oscillator output) via R82
|
TDI
|
B6
|
I |
JTAG port serial data input
|
GND
|
TDO
|
B7
|
O |
JTAG port serial data output
|
? |
TMS
|
A5
|
I |
JTAG port test mode select
|
GND
|
RST#
|
B5
|
I |
JTAG port test reset input
|
GND
|
The last column shows that, unfortunately, most of the JTAG inputs are grounded. The serial output pin goes somewhere, but gets routed via an inner layer so it's difficult to find its destination. So the JTAG and scan-port have been disabled. JTAG can only be enabled by putting a carrier-card between the EM8511 chip and the PCB.
For those interested, below is the picture of the MG35 board, with the processor removed.
Old information follows (kept just for reference):
It is not yet sure we can de-brick the device using the JTAG connector. We don't know much about JTAG on this unit yet.
A wiggle cable can be built using the instructions found here. You can also try to use this one found on eBay (the link will eventually expire).
The plan is to use a JTAG wiggler to wiggle potential TCK and TMS pins while hunting for TDO. Once we find this, TDI should be easy. If we get the lot, we should be able to use openOCD and/or JTAG tools to explore the flash and (hopefully) reflash the bootloader.
J7 header
J7 is the JTAG interface for the Altera EPM3032A programmable logic device. Both TDI and TDO pins of CPLD connect directly to J7, so the processor is not on this scan chain. It's probably of no use for us, and I can't see why we would want to change the PLD, even if we had the source code. Here are the pinouts and voltages:
Pin |
Signal |
Voltage [V] |
Notes |
1 |
TCK |
3.05
|
test clock |
2 |
GND |
0 |
|
3 |
TDO
|
0.04 |
test data out |
4 |
Vcc |
3.27 |
3.3 volt supply |
5 |
TMS |
3.03 |
test mode select |
6 |
NC |
|
|
7 |
NC |
|
|
8 |
NC |
|
|
9 |
TDI |
3.03 |
test data in |
10 |
GND |
0 |
|
Pin 1 is the one with the silk screen arrow on the top, it's nearest the corner of the PCB, and it has a square pan on the bottom side. The other pins are then numbered alternatively, so pin 9 and 10 are the two on the far end of the connector.):
Test points
Many thanks to Mark Hotchkiss who compiled the complete list of testpoints.
Many functions, like the Audio-Input port, are available through the test points. The "groups" (D and E) are only for the sake of labeling the test points, and not related to the functions on the test points. I have also traced all of the GPIO signals.
The vacuum-fluorescent display interface is available to anyone that can tack four wires onto test-points. Then again, the second serial port may be simpler for adding a display.
Group |
Test point
|
Route to |
Name |
Type |
Description |
D
|
TP57 |
Y14 |
I2S_SCLK |
B |
Audio clock generator master clock |
D |
TP48 |
W14 |
VFD_DOUT |
O |
VFD interface serial data out |
D |
TP52 |
Y13 |
VFD_STB |
O |
VFD strobe output |
D |
TP51 |
W13 |
VFD_DIN |
I |
VFD interface serial data in |
D |
TP47 |
Y12 |
UART1_DSR |
B |
UART1 DSR |
D |
TP53 |
W12 |
UART1_RIN |
B |
UART1 Ring Indicator |
D |
TP45 |
Y11 |
UART_DCD |
B |
UART1 DCD |
|
|
|
|
|
|
E |
TP28
|
A14
|
PIO0(5) |
B |
|
E |
TP4
|
A10
|
UART0_CTS |
B |
also GPIO port 2 bit 1 |
E |
TP34
|
A9
|
UART0_RIN |
B |
also GPIO port 1 bit 0 |
E |
TP65
|
B15
|
PIO0(9) |
B |
|
E |
TP18
|
B14
|
PIO0(4) |
B |
|
E |
TP16
|
B10
|
UART0_DSR |
B |
also GPIO port 2 bit 2 |
E |
TP37
|
B9
|
UART0_RTS |
B |
also GPIO port 2 bit 6 |
|
|
|
|
|
|
|
TP40
|
Y10
|
UART1_CTS |
|
also GPIO port 2 bit 9 |
|
TP55
|
W9
|
I2CS_SDA |
|
|
|
TP42
|
K1
|
SC_IN |
I |
I2S serial bit clock |
|
TP25
|
A4
|
PIO1(8) |
B |
|
|
TP24
|
A7
|
UART0_DTR |
B |
also GPIO port 2 bit 5 |
|
TP30
|
A16
|
PIO0(13) |
B |
|
USB interface
It seems that the USB interface has direct access to the HDD, without passing through the firmware. We suspect the Prolific USB->IDE chip is wired directly onto the IDE bus and acts as sole master when USB is connected. It probably holds the EM8511 in reset at this time.
A small (16 MB !) Compact Flash can be mounted and accessed in the console, so we suspect that the 6GB minimum HD limitation might be due to the Prolific chip.
External IR receiver
There is a IR Remote Control Extender available from www.divxtech.com that works perfectly with the MG-35...Comes with a sixteen foot cord and costs $15.00 with free shipping to the U.S. Also, Ewaggle (the retail arm of Anywhereus) are now selling the "official" IR receivers for the MG-35. This one is on eBay, but will probably expire sometime in the future. A bit expensive, at 29USD + shipping ...
But before you rush out and buy one, I have just made my own for about £1.80 (3.50 USD). You need an IR receiver photodiode (Sharp GP1UX511QS, Farnell order code 1243868) and a 3.5mm stereo jack and lead (I cannibalized a 5m 3.5mm to phono lead, Farnell order code AV02584).
The IR receiver is about 6mm square with 3 wires; orientate this with the bulge to the front and the wires pointing down. Left is “signal”, middle “ground” and right is “5v supply”. Solder the leads from the plug so that the front contact of the plug is wired to the signal, the middle contact to the 5v supply and the rear contact to the ground. Tape up any exposed contacts to avoid shorts and you are done. The manufacture’s technical notes suggest you need a capacitor placed across 5v supply and ground to stabilize the supply. As yet mine works without this.
Plugging-in the remote IR does not disable the onboard receiver, and they appear to work fine in tandem. The finished device lacks the IR housing of the commercial device but it is light and tiny so it can be taped anywhere convenient as long as you have line of sight to the remote. I think this will be risk free even if you get the wiring wrong, but no guarantees.
As for remote, AmazonUK are currently offering a OneForAll Kameleon 6 way universal remote for £28.99 including shipping. OneForAll technical support say there is a setup code for the “Freecom mediaplayer”. You can probably use other types of universal learning remotes.
IR codes
These are codes for the MG-35, KM format and work well with my URC-8910 remote.
http://www.hifi-remote.com/forums/dload.php?action=file&file_id=2684
To do: post here the remote control codes read using Girder
Power supply
Specs: 5V 1.5A /12V 1.5A
There are some power supplies which similar specs, but nobody tried them yet. They are here and here.
Somebody also reported that the car adapter for the Modix HD-3510 works well, but we are not sure if it works for MG35.
The power connector type is Kycon KPP-4P and its spec sheet is here.
As posted at the Altech Q and A forum by Simon_the St:
"After going through 3 power supplies (not bad for a problem that's supposed not to exist) and a dealer that no longer wants to discuss power supply problems with anybody I decided to track down a third party replacement. The Power supply to the Lacie D2 and D2 Bigdisk is an exact match for the MG-350HD/MG-35
The Australian Part number is 710448A and a google search on that part number will show you the stockists.
I paid $46 which included same day delivery. After getting it home and checking the configuration one last time I plugged her in and everything works perfectly. I've been running it for over three weeks
now without any problems.
For those outside Australia I believe the corresponding part number is 710199 and a google search using that part number brings up retailer botn in North America and Europe."
Also, Rolf found the UK source.
No-case mod
Mark Hotchkiss removed the case and placed the MG35 on the back of hid TV. Here are his notes:
"Currently I have the two bare MG35 boards velcro-ed to the back of a TV. The component connectors protrude the most. I use a home-made IR extender. I have found that the main MG35 board will power-up without the front panel board. However, the IR doesn't work without the front panel, as it is decoded by the front panel's microcontroller.
My goal is to have a diskless MG35 board that can be mounted behind or inside a flat panel tv and is controlled through the Ethernet. Then I won't need the front panel, and everything can be controller remotely."
This page has been viewed times.
Comments (0)
You don't have permission to comment on this page.