CD Emu Web Site


For updated info / status please goto the official site Will keep you posted when updates are available.


CD Emulator Features and Specifications

Concept/Test unit:

USB 2.0 Full-Speed interface
Teens++ development board
40 x 4 LCD screen
4 button control
Hard disk drive for massive ISO storage
Standard fat32 format for easy ISO copying from most OS's
Self Powered through USB
Bootable from systems supporting USB boot

Production unit:

USB 2.0 High-Speed interface
Avr32 atmel soc
4x20 lcd display
4 Button control
SD for ISO MassStorage and Easy swapping
format from within firmware
Standard Fat32 format for easy ISO copying from most OS's
Self Powered through USB
Bootable from systems supporting USB boot

Monday, November 1, 2010

Tracking waisted time on cd's

Over at the official site the next 60 days of wasted time playing with cd's will be recored. Every time a cd is looked for plus the load time for each cd's.

This way once the production unit is up and running then will start to compare times - I bet I'll even be surprised at the saved time.

line to page: Tracking info here

Friday, October 29, 2010

Well I have time on my hands...

Nothing to do but wait for the board..... Started a full revamp of Hope to have alot more info hosted there as this project continues.

Friday, October 22, 2010

ordering board this weekend

The layout looks good will be ordering my first prototype board this weekend. If everything goes as planned will be assembling the fist avr32 high speed cd emulator within a few weeks. The boards from takes a few weeks to process. Then some firmware tweak and ill be up and running!

Thursday, October 7, 2010

Current progress

Ordering the parts for my first fully assembled prototype. Ended up deciding on a 4x20 lcd screen, sd card (iso storage) interface, 4 pushbutton interface input, AVR32 cpu (for the high speed interface), including a misc assortment of pcb parts. As soon as the parts come in i'm going to compare placement with the eagle pcb printout. If everything lays out correctly then I'll get the board printed through

Ordered a decent soldering station and all the misc items - good magnifying desk lamp, solder wick, solder paste, couple kinds of fluxes, etc... Been practicing soldering qfp packages. Its easer than I thought. The qfp144 pin package of the AVR32 scared me at first. Been mostly working with through hole. But hey now I know I can assemble the boards.

Currently parts and pcb cost for 1 off runs are about $120, but once It's all working I'll start making them in bigger batches to bring cost down.

Also tossing around the idea of bringing out the unused io pins for a cheap devel kit working with Atmels AVR32 framework - just modified to work with the lcd and switches the rest of the layout is based off of the EVK1104 (avr32, sd interface, usb hs, jtag, reset / gp - DFU Bootloader). Once the project is done, ill be deciding how far I want to explorer this route. If interested drop me an email:

Till next time, thanks for your interest...

Monday, June 28, 2010

To open source - or - To Not open source

I don't know, would like some input. I really think this needs to be developed - and open to everyone.
There has already been a device realeased to the public for purchase( search iodd ). I'm thinking that selling something new like that would just slow the spread of knowledge - give it away.

New devices or new thoughts patterns should be shared. And being that all of the code used in this project is either created by me or code borrowed from public domain....... Why not share this?

I'm not 100% there yet - it's kinda my baby... I would like some input - Please share your thoughts.


Friday, June 4, 2010

I'm still here.

Have not worked on the project for about a month now. Got a little burned out! But in the next couple of days I will start again. I got to the point where there where only a couple of bugs left to figure out. One big bug is within atmels MassStorage framework code. On certain op codes combinations it would cause an infinite loop within the usb out stall routine, unfortunately I don't have a 100% knowledge of the inner workings of the usb  protocol and just putting some sort of counter within the loop to drop out fixed it - or I should say patched it. Being a patch I have noticed a couple of glitched where the scsi op codes that should have processed correctly doesn't here and there. unfortunately being who I am - I cannot live with "mostly" working code.... I need to dive deeper into this bug. The other minor bugs are just cleanup from within my code no biggie. It sure would be nice to have a couple people working on this project with me, but for the time being I would like to keep this closed source.

Saturday, April 17, 2010

It's that time again.

Haven't posted in a while. Well figured out where I had a major slowdown. The qtouch routine to read buttons was slowing down USB comms. Rewrote the routine and gained some speed - alot of speed. Average throughput went from 4MB per second to 13MB per second. Running a benchmark program the cdrom's raw i/o went from around 20x cdrom to 85x cdrom speed. Booted Ubuntu Live in about 40 seconds flat!

Remember even though the raw i/o is 85x speed there is no mechanical overhead - no moving parts so seek speed is way faster than a normal cdrom drive. Equivelant speed probably ends up well over 100x cdrom speed.

Thursday, April 1, 2010

Emulation on new EVK1104 board going good

Have almost all the code done on the X2 version of the emulator. Once I'm done I'll start working on the hardware end - Will be developing an AVR32 devel board of my own, Without all the extra hardware not needed. So it will be cheaper to sell these things. Besides It's next to impossible to find avr32 devel boards for under $100.00 - I figure the board itself will sell for anywhere between $40 and $65. Where else can you get a USB High-Speed AVR32 devel board for that price! Once the board is done, then I'll add the qtouch and video interfaces. I can see the light at the end of the tunnel.... It's been a long ride so far so good.

Friday, March 26, 2010

Emulation running on evk1104

Well got the emulation running a few minuts ago. the code i'm using for the sd card is not the fastest about 4mb per second. I have played around with faster, but already started down the path with this. but it's booting cd's faster that the fastest internal cdrom I have played with. good sign so far. will post back once tested further......

Monday, March 8, 2010

I'm still here

Figured I'd post something, it's been a while.

Still working on the EVK1104 board, if anyone tells you it's easy to switch from AVR 8bit to AVR32 bit processors they are lying!

I'm finaly getting the hang of the internals of the processor. It takes alot of read of spec sheets and reading the framework code to get a grasp of things.

The current dev is going to use the SD card slot for MassStorage, the LCD for display and the QTouch buttons for input. So far I have the MassStorage portion of the CD Emulator and some menu commands working. Within a couple of days I'll have the CD emulation code working.

Tuesday, February 23, 2010

Got the new EVK1104 dev board

Received the new board on sunday, awsome device - Full graphics LCD, sd/mmc/ce-ata interfaces and tones of ram. oh yeah - high-speed usb interface and on-the-go usb hosting support. The qtouch buttons are kinda cool too.

But unfortunatly the DFU bootloader is corrupted - so I have to use a jtag programmer to get the bootloader reloaded. From what I read it's a common problem. BUT I don't have a jtag progammer! Well ordered that yesterday. (I feel like a kid at christmas that got that awsome new bike, only to realize that I cannot ride it till sommer!)

PS: this board is overkill for this project, but once I have it running on this platform and find out what I don't need i'll make my own boards for a fraction of the price.

Thursday, February 18, 2010

EVK1104 AVR32

Well I pulled the trigger tonight. I ordered an EVK1104 dev board. It's pricy but will give me alot more growth.

Alot more memory and program space.
Plus as an added bonus - High-Speed USB 480mb/s !! Can you say fast cd rom emulation!
The graphic display is an added bonus.
SD memory card - maybe I could do something with that.
CE-ATA interface - interesting, That would use alot less data lines than the HDD IDE interface.

I'll post info once I get this board and do some testing. It will take a little while to get fully operational. Code porting from the 8 bit will take some work, i'll have to check out Dean's site and see if LUFA is ported to avr32 - I though I cought somewhere where someone was working on it.

Tuesday, February 16, 2010

Website up and running

Well started a web site - I am not a web site designer! The site sucks right now but it will get better.

Sense Data - Thorn in my side!

Ok, figured out how to handle the switching of cdroms the proper way.
Now instead of programming a usb disconnect / reconnect to have the system scan for a cdrom change, I handle it through sense keys -  Unit requiers attention / No media / Tray open, Media has changed.
Able to switch cdroms in Windows in about 2 seconds. And no more cdrom disconnects.

This issue was bugging me!

Wednesday, February 10, 2010

Found the lockup boot issue w/ random systems

On boot some systems would issue the Read TOC with a SCSI allocation length of less then the 20 or so bytes i'd normaly output. So adjusted output to transfer only the allocation length of  bytes and not all by default.

One less bug to think about...

Monday, February 8, 2010

Just in case anyone is wondering...

The USB dev board I'm using is a Teensy++ from:

In the video the blob over half the board is JB Weld. Broke the usb interface twice - second time I ripped the interface right off the board. Ended up having to rebuild the Power, Ground traces and had to replace one of the usb resisters. But it still works!

PS: The interface breaking was my stupidity, the board is well designed and works wonderfuly. I don't want to send the wrong message. These boards are great and I would by another one without a second thought.

Sunday, February 7, 2010


Added video of CD Emu in action. And found a bug in the code that caused files past the 32 gig limit to not load (DUH!) forgot to add the lba + lbahighbits for the file start address. But all in all testing is going good so far.

Tuesday, February 2, 2010

Debug routine

Added Debug routine to save all scsi commands to a Session file on the USB HDD.

That way next time I run into a system that won't boot or read correctly from the CD emualtor, I just enable debug mode with session save turned on. Repeat the exact senario that caused the issue. Wait for system lockup then turn session save off and read the file at home when I have time.

Next time I'll have a full snapshot of all commands including the one just before lockup.

I suspect the problem I'm running into is a few systems request TOC on bootup with one of the other TOC format bits set. With all the testing I have been doing for the most part its Read TOC - LBA (0x43,0x00,0x00, ...) but I haven't fully tested any of the other Read TOC formats.

Monday, February 1, 2010

Some testing today

Well had an opertunity to test at the shop today.
Tested on 5 systems today.

4 worked good, booted up shop utility cd's without mishap. The 5th didn't work, it supported usb booting but would lockup when the Emulator was pluged in. Didn't have any time to toubleshoot, busy day.
When I get a chance i'll try again, I have a debug mode built in where I can watch the scsi cmd's and slow them down to read the bytes. That should at least let me know where I'm off track.

But for a start 4 out of 5 isn't bad.

Sunday, January 31, 2010

Beta testing

Well, have all the basic routines done.

Now I'm loading a bunch of cd's and testing both within a virtual machine and on my laptop.
So far so good. Everything work the way it was intended.

CD Emulation - ok
MassStorage - ok
CD Boot - works good.
CD changing on the fly - good. but needs to change some scsi sense data - More Reading...

Will report back after bench tests at work.

(Still need to rebuld CD Emulator in some sort of box - still all spread as parts!)

Pictures and Video of it in action comming soon......

Friday, January 29, 2010

Where it all started.....

About 3 years ago .....

I'm on this service call, the service call is about one hour drive from the shop. I get there find out the registry is corrupted on the computer. OK, no biggie, I'll just boot UBCD, manually copy over a restore point and be one my way.

!!@#$ - my UBCD was scratched! No Boot!
Ok, take system to shop, repair there, bring back to clients place. Time and Expense for both me and client could have bought 2 CD Writers and a 2 100 pack of CD R's. Roms Suck! They get scratched in the field. They get left in clients systems, never to be seen again. Or the computer being repaired has bad CD Drive and cannot read CD's.

As a computer tech. CD Roms are like a scalpel to a surgeon or a hammer to a carpenter.
Every Diag, Fix or install Usually start with loading a Rom.

Thought it over for a few days and decided to look into anyone offering some sort of CD Rom emulator that was portable, other that U3 I couldn't find anything on the market.

Whats wrong with U3? Limited number of CD's per device and not enough storage.

...... Dropped idea for a couple of years .... family life work .......
...... 5 Months Ago

Started to think about I again. I need an easy way to find 100+ roms used daily.
But not leave in systems by accident.
Not have to worry about scratches.
Not have to replace a dirty cdrom drive just to fix a computer OS.
NO DRIVERS a must! Working on too many systems daily to have to worry about leaving software/drivers on customers systems - just lurking around.

1) USB interface - standard USB cdrom. Alot of systems are able to boot from ext. cdroms now.
2) Emulation - Emulate the CD Rom functions.
3) MassStorage - Standard IDE HDD. no MMC,SD,USB,CF interface. Meeds mass storage for ISO storage. FAT32 file system for compatibility across the multiple platforms.
4) Interface to Switch between devices.
    a)CD Rom Emulation
    b)MassStorage Emulation
      - CD Rom Emulation: CD / DVD / BlueRay device support - support for common ISO format files.
      - MassStorage Standard Fat32 file system for being able to drag and drop files.
5)Interface to Switch between ISO files just like switching CD's

Current: been programming firmware and testing for a few months now.
Read read read read...... and then read some more. I thought I'd never get enought info to start the project.

Wow alot of stuff goes on with simple cdroms and ide hdds. Squeeze it into an 8bit usb avr dev board, through a couple of library at it like LUFA and a generic FAT32 library.

(LUFA the one and only way to program usb devices with 8bit avrs, Dean's LUFA code is simply awesome! Without his code I would still be figuring how to talk usb.... save yourself, use LUFA!)

IDE with avr's easy, just google search.

CD Rom's what can I say.... Just search, search and then search some more. Plenty of info. TOO much info. Not enough of the right info.
(scsi,spc,mmc,t10,ata,atapi <- just a few key words.)(Google is your friend)

 Write allot of code to glue it all together and we have a portable cdrom emulator to hook to a USB port.

Full emulation.(need to test some with more ISO's and platforms, but good so far)
Speed is ok, a little slow on the long files read compared to most CD Roms, but allot faster on smaller, random reads.

Need to be ported over now to something with USB 2.0 (High-Speed) on Full-Speed now. (MassStorage mode: 850kb-950kb / sec. , CD Rom Emu mode: 300kb-800kb / sec)
-Single speed rom is around 174kb sec. / Emulator 300-800kb not too bad.

Once ported over to High-Speed USB it should act like a 150x speed Rom! (minimum) - if my math and best guess of software overhead is right.

No pictures yet - Still in raw form - dev board, on breadboard, with lcd(40x4) , 80GIG 2.5in HDD, and 4 buttons - all taped to a cardboard backing. leaning up next to my laptop. ugly! Will be moving to some sort of black box and taken on the road with me here in a week or two.


Life's Good! C. Reno