Rockbox Development > New Ports

Rockbox Player - Project to design and build a Free/Open hardware audio player

<< < (93/144) > >>

casainho:
EDIT on 2008.09.14:
There is a new developer working actively on the project, is the Thomas Lloyd.
Thomas were ill during almost 3 years when he lost about 80% of his sight. He have 25 year old, is an embedded developer, did completed his Computing for Real Time Systems degree in late 2005.

Thomas wrote about his motivation: "Having lost my sight I want to see a reasonably priced unit that takes into account the visually impaired. The experience gain would be valuable in working in the embedded industry again."

Thomas bought the Development board - Olimex SAM9-L9260 -- we are now two developers with the same development hardware.

We both did commit the initial port (in very, very early stage) to SVN on code.google project page.

I am stuck now on C startup code (boot.ld and crt0.S)... reading a lot of examples to try to understand :-)

---
EDIT:
I got a script to quick use Sam-ba, now it loads the code using the USB connection and put it on SDRAM and finally jumps to ti - it's very quick for development, no need to flash it :-)

I also tested the flash LED code from Atmel, which uses a timer to flash the LED :-) -- so now I have code that initialize the ARM and the SDRAM, uses one timer.

My next step is putting Rockbox kernel working and flashing the LED using kernel tick functions.

---
EDIT:
I created a new page explaining and giving the status of a more simpler version: Rockbox Player Little - Prototype.

The idea is to simplify to get Rockbox working on a simple base hardware - no need to have the "special" LCD with x and y colors and size, no need to have the USB High-Speed, etc.

---
Finally I got some advances :)

Yesterday I managed to build the bootstrap. Before I had to also build the toolchain - I am working on GNU/Linux Ubuntu and with one ultra portable and cheap pc, the Acer Aspire one.

After I use the Sam-Ba Atmel utility to flash the bootstrap on DataFlash memory. Even after I flashed the flash_LED code to test and It did run ok :-)

Next efforts will be to optimize the process of flashing the application to DataFlash memory in a quick way - I must do a script on Sam-Ba and also I must add one switch on hardware to DataFlash chip select line and board reset line.

After I will start working on Rockbox bootloader - which will be the substitute of actual flash_LED code :) -- nice to being use this MCU from Atmel because there is of drivers to all peripherals and other examples application codes from Atmel :) - I think will be quick to develop the Rockbox bootloader.

Image at the end of flashing the flash_LED application:

rtruninger:
Hi

I'm new to this forum and I've only been reading part of this forum, so please excuse me if I cover something that's already been talked about... I am an embedded engineer with 15+ years experience in high speed embedded design including audio encoding/decoding for commercial applications. I would like to build a network media player, I know this is not exactly what you guys are doing, but the hardware could be very similar anyway (I think the only difference is that I need an Ethernet interface). I could help with hardware and low level firmware design and I might even be able to get a few 4 layer bare boards made for free.

Here are a few toughts:

Integrated IDE HD: IDE is on it's way out, I just discovered this when I tried to get a high capacity IDE drive for my old server (ended up getting a new server with SATA, was cheaper). I think in a few years it would be very hard to get IDE drives. Has anyone thought of implementing an SATA interface? I know this might not be a trivial task, but a quick search revealed at least one MCU that has intergrated SATA: OXE810SE (has 367Mhz ARM core and a lot of other gimmicks). An easier option may be to use an USB2.0 hi-speed host IF and stick an USB-HD in it (or memory stick).

CPU selection: I agree that a dual core will be complete overkill. I also think that an ARM9 core is the way to go. I think the main design goal should be to make the hardware as cheap as possible (it's a consumer product). I know the imx27 gives a lot of bangs for bucks, but routing a 400+BGA would at least require a 6 Layer board (most probably 8 layers), which increases price significantly. Also it would be good to know how much grunt we really need. I integrated MP3 decoding on a C6413 DSP from TI, running at 300Mhz, and from memory it took only about 10% CPU (mind you the C6413 can execute up to 8 instructions per cycle). It would be great if we could figure out how many MIPS the most CPU intense decoder (which might be AAC?) would use on an ARM9. Anyone has some data on this?

This would be my requirements on the hardware (please feel free to discuss):

ARM9 CPU fast enough to handle all decoders with ease (probably less than 30% CPU utilization, to make it future proof)
A couple of MB ram and flash
USB hi-speed host or SATA for storage
SD card interface (may be optional)
USB hi-speed device interface
Bluetooth (can be used for headphones and/or remote control (Audio/Video Remote Control Profile (AVRCP)))
LCD Display if
Button if
Audio codec's
I would also need 100Mbit LAN and one extra USB host for an optional WIFI dongle
Battery mangement (which I wouldn't use)


Tricky stuff:

There are not many CPU's with integrated HI-speed USB host, the ones I found that have are all high density BGA.
SATA might be too complicated (hardware and software)
Finding any CPU that can be routed on a 4 layer board (must be LQFP or similar, BGA would most certainly need more layers)
Getting a cheap evaluation board for it, that is supplied with Linux and all drivers (we don't want to reinvent the wheel)

If the CPU does not implement a required peripheral, we can put an external Chip on, drawback additional cost and probably have to write device driver for it from scratch.


Hope my input helps.

casainho:

--- Quote from: rtruninger on September 14, 2008, 10:51:18 PM ---I would like to build a network media player, I know this is not exactly what you guys are doing, but the hardware could be very similar anyway (I think the only difference is that I need an Ethernet interface). I could help with hardware and low level firmware design and I might even be able to get a few 4 layer bare boards made for free.
--- End quote ---
Hello :-)

Why not joining forces? The actual development board we are using have Ethernet :-)

I am not sure, but Rockbox firmware don't have any Ethernet code, so you would have to start coding it.

About the suggestions you gave, I think most of them are important If we were doing a player optimized for production, but we are not on that phase ;-) -- now we just want to make a very simple, minimal hardware, and later we can work on all of that.

For now, our simple hardware setup is:
http://www.rockbox.org/twiki/bin/view/Main/RockboxPlayerLittlePrototype

You can add me to GTalk ou MSN: casainho _gmail.com.

casainho:
Me and Thomas, we are trying to make a flash_led code working on Rockbox bootloader.

We had working on tools to flash the code and to run it to SDRAM... and we are now investigating about hardware debugger, as JTAG.

Our main problem should be on errors on C startup assembly file and linker script of GCC... it's all new to me, ARM, etc :-)

All our work is being done here: http://code.google.com/p/rockboxplayer/

:-)

notlistening:
Hi,

Thomas here thought that i would jump in here and get involved in the forum. My partner in crime is ahead of me in the learning process but I need to understand as three eyes are better than two. To get there I am working through an embedded systems with GNU toolchain book to help me get an overall understanding of what has happened already, and in part verify the existing work.

Just of recent I have done the same and taken a mini break from coding. Back after the weekend and should submerge myself yet again till i need to take another breath.

JTAG & LCD will be on order next week.

Tom

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version