This port was made by a combination of mostly 3 hackers to start with:
This 3.5" display frame seems to have the highest potential for hackability so far. When compared to the hacked keychain models, this has a much faster CPU, larger screen, more RAM and is hardly any more expensive. As of Nov 2010, they are on Amazon for a ridiculous £10! (@Biff) I have some theories as to why.
This frame is now "owned" almost entirely and can run linux without needing JTAG or even a uart cable. Here is a screenshot of the 320x240 display running the Linux framebuffer:
The Frame running the 'sdl newvox' demo with wiimote input:
Overall the unit works great now and boots Linux, there are no longer any "major" gotchas. Linux boots with busybox and has about ~3MB RAM remaining, largely enough for an application or two. Unit now has:
% git clone http://oomz.net/git/minifs.git minifs
% cd minifs
% export MINIFS_BOARD=df3120
% ls -l build-df3120/minifs-full-ext.img
-rw-r--r-- 1 8388608 build-df3120/minifs-full-ext.img
NB: For the impatient I've added my version to the bottom of this page, don't forget to decompress it with
bzip2 -d minifs-full-ext.img.bz2 before using!
Once you've build the rootfs, you'll need to copy it to the one and only partition on an SD card, e.g.:
% dd if=build-df3120/minifs-full-ext.img of=/dev/sdb1
Add the toolchain bin directory to your path before compiling anything, e.g.:
% export PATH=$PATH:~/minifs/toolchain/arm-v4t-linux-uclibcgnueabi/bin
Derived from OpenMoko's u-boot, added support for s3c2412 etc. git tree: http://repo.or.cz/w/u-boot-openmoko/parrot-frames.git
Having created the firmware update, install it as follows:
Troubleshooting: If you find that Linux comes up with loads of syslog errors when connecting the frame, try to mount it anyhow. If that fails, do the same thing on a Windows or MAC machine. This worked for some frames that failed under Linux, and you can then create the update folder and copy the file in as under Linux.
Available as a git tree from http://repo.or.cz/w/linux-2.6/parrot-frames.git The minifs script also contains this patch and applies it to a vanilla kernel archive download.
Note: The hardware is not fantastically designed, in fact some of the frames reports lots of problems with the original firmware. It seems mostly due to sub-par power supply.
All the frames I tried (@buserror) works when reflashed to linux, but some of them might /need/ JTAG due to the fact that the frame will not allow you to copy the .plf "soft" upgrade path...
This contains the earlier notes we had on the board, including PCB scans and early JTAG chatter.
This device does run linux, despite the low memory. There are lots of options to use it as a slave:
All is pretty obvious here:
The connector to the display is glued in place for a reason: it can come loose quite easily if the glue-bonds are broken. If your display acts up, you may try reseating it. If you did this and the display still fails with symptoms of a working backlight but no image whatsoever (black screen with just some backlight leaking through) check what happens when you short R132 with e.g. a pair of tweezers. The resistor is located above the display connector and can blow when the display isn't seated correctly. Replace with a resistor of preferably 1.5K, but probably any value from 470 ohm to 2K will work. Shorting the R altogether may work too, but could smoke something else when the problem blowing the resistor in the first place happens again.
J5 is almost certainly a console of some sort, but it's mostly gibberish. I've tested 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 but it always comes out garbage. All these settings were 8N1, so perhaps we need to try different parity settings.
J5 seems to be the UART connected to the Bluetooth chip. J4, next to it, has the same pinout but _does_ actually output something readible at 115200,n,8,1. J5 = UART0, J4 = UART2. That'd imply J6=UART1, but I haven't checked. - Jeroen
Now u-boot and the kernel use J4 (/dev/ttySAC2) as console.
GPB7: usb Vbus detect
GPB8: usb D+ pullup enable
GPG4: SD write protect
GPG9: orientation detect 1
GPG10: orientation detect 2
GPF0: BT BT_WAKE (?)
GPF1: BT nRESET (?)
GPF2: SW15 (inverted)
GPF3: SW16 (inverted)
GPF4: SW17 (inverted)
GPF7: SD card detect
Adding more RAM
It is possible to upgrade the RAM to 32MB or even 64MB(untested), since the address line A12 is connected on both the CPU and the SDRAM.
Desoldering and soldering is best done with a hot air soldering station. Appropriate 32MB chips can be salvaged from old PC133 DIMMs and SO-DIMMs.
PC100 and PC66 are not fast enough!
The original firmware doesn't care if 8MB or 32MB are installed. You need to modify u-boot to take advantage of the expanded RAM in Linux.
Tested Chips :
If you don't fancy doing this you can create a swap file,
dd if=/dev/zero of=/swap bs=1M count=32
When you have the frame running check the tips page for some usefull hints on what to do with it.