Possible to bypass all hardware decoding?

Hi there,

I am a student of mathematics and I am currently taking a course in coding theory. During a talk, the question was raised, whether one could improve error correction / quality of audio cds with “newer” hardware (After all, when the cdrom and audio-cd standards were made, the decoder-chips in the cd-drives were much slower and less powerful than today’s and perhaps one could use better codes than the two Reed-Solomon-Codes with better error correction ability…). In order to research this topic, it could be interesting to simulate the results with various different codes.
But for doing so, one would need 100% raw access to a cd-recorder.
I know that it is possible to “raw-read” a CD, but do I really get the bits and bytes just as they are burnt? Or is this data already “decoded”? Or is it impossible to completely bypass all ECC-hardware?

I’m not sure, I’m no expert by any means, but could this and this maybe be something of help to you?

Hmm thanks for the links;I have already found the second one; it gives a bit theory about the codes that are used on CDs, but nothing about how one could use other codes (with which results…). The first one is more interesting - at least it has raw reading implemented :slight_smile:
Gotta see if I can find a python geek at my university :wink:

Hi Tantris,

I made a preliminary package that goed a long way toward what you need, I guess; last version is laser2wav 0.0.5. Included is a file containing 288120 raw bits obtained from a commercially pressed widely available CD, and a Python program that decodes this to an audio stream. The program also does Reed-Solomon calculations (just checking; no correction yet). I guess this would make a neat starting point.

FYI: the raw file the was obtained using a hacked CD player with some electronics attached to it. Nothing fancy, and it didn’t allow me to get large fragments (due to stupid bandwidth limitations between the electronics and the PC), but I hope it’s useful… I can guarantee that this is basically a digitized form of what you would see in case you look at the raw laser pickup signal (because I did just that).

I would wholeheartedly recommend that you (anyone, in fact) learn Python. It’s as gentle a programming language as it gets. Especially for a person with a math background such as yourself it would be a useful thing to master.

Just a friendly word of advice from a software engineer … :slight_smile:

If you have any questions on the code just let me know.

It is definitely possible. Several studies have been made to see how the
CD-DA standard could be improved both in terms of capacity (EFM
alternative) and error correction (turbo codes for instance). I´m not sure
if these are public, but a look at citeseer is definitely worth it.

As a math student you should also take extra care that you don´t forget
practical requirements :slight_smile: For instance audio is a stream, thus whatever
algorithm you choose must still deliver a minimum bandwidth. At the time
CD-DA was made this imposed several constraints on the complexity of
the algorithm and the space locality of data and correction bytes on the

Finally I don´t want to discourage you, but unless you have very talented
engineers in your team I would suggest to make a (matlab, C) model to
backup your research, because building a real prototype will be very difficult.

Good luck,

Hi ! I’m quite new to CD technologies (not to electronics and robotics), and I’m looking for informations about how burner work, because I’m thinking about a possible interesting hack.

I’d like to learn more about what kind of hack you used to get raw bit information from a CD ; actually, I’d love to have a burner to
position the beam exactly the way I want. And I dont want it to burn tracks, neither readable CDs. I really need to estimate how one could achieve to have any part of the reachable surface burned.

Sounds stupid, isnt it? :bigsmile:

But this concept sounds sooo interesting that I’d love to waste some time on this. (Unfortunately, I wont tell in public about what application I’m thinking about… so as not to be laughed at too early :stuck_out_tongue: ).

So… If anyone has some information about servocontrol in a burner, by software, firmware or hardware, I’d love to ear from you !
If you are curious about my ‘mysterious’ application (well, you’ll think ‘stupid’ but anyway :bigsmile:), just ask me by email.

I rigged an old audio player - found a test-point-header marked “EFM” (Eight-to-Fourteen Modulated signal) on its circuitboard which showed the “butterfly” pattern, hooked up a voltage converter IC and an FPGA (at least - that’s what I did in my latest setup), and wrote some software to get the data into the PC.

actually, I’d love to have a burner to position the beam exactly the way I want.

Yes, that would be nice. My trick isn’t going to help there though, I was fully piggybacking on the CD’s usual controls… What you propose is much more difficult.

If you are curious about my ‘mysterious’ application (well, you’ll think ‘stupid’ but anyway :bigsmile:), just ask me by email.

Why not just tell us - I promise we’ll be gentle :bigsmile:

Ok, I have to learn some things about how things work in a burner :wink:

I started to look at lightscribe and… the yamaha counterpart (T@t something :lol:).
It seems those burner have a specific sensor to have an angular information… but they rely on rays on specific media. (Seems to be so).

Well… you promised, so I’ll tell you about my crazy/stupid idea :bigsmile:
Do you know about pcb etching?
Have a look here:
and look at the protolaser 100 product.
Basically, those systems etch a thin copper layer, by burning them.
My point is to see if a burner beam would be capable of doing such things, I mean:

  • powerful enough (which is all but certain)
  • positionnable, to etch the pattern you want.
    If this crazy thing could be possible, you’d get a pcb printer thing :slight_smile:
    Of course, you’d get a circular pcb, with a hole in center position, but for prototype purposes, it would be just wonderful :slight_smile:
    And for the beauty of the hack, having a dumb 100$ worth burner acting like a thousands dollar machine would be absolutely unmatched.
    Ok, I already hear you out there, the beam isnt powerful enough. :confused: that’s what I’m thinking on right now, actually…

Interesting idea fabarbuck. You have quite an imagination (which is essential for inventors I guess).

I’d like to mention that the tracks (distance from one spiral to the next) on the CD is average 1.6 microns. This means you could not etch a straight line that was solid since it would have gaps between each rotation.

Not sure this would matter but it seems like it would.

Good luck!

Thank you for the compliment ! :slight_smile:
My point of view is that some ideas seem really stupid when you get them. Then 0,00001% of them change to genial invention… even if on this one I’m quite certain to stay in the 99,99999 % category :bigsmile:

For the gap thing, of course this would matter… that’s why I wanted to control the beam position by myself.

Actually, I learnt about prerecorded tracks on blank CDRs helping beam positionning servos only after having had my etching idea :stuck_out_tongue: I guess I’ll have to do some severe modifications to the hardware if I want to have the beam to go where I want, ie not following this spiral track. I guess the way to go would be to use some more sensors, as it’s done with lightscribe technology.

I also heard some people telling me a burner’s beam hasnt a chance to even scratch a layer of copper. Well, that why I’m more and more conviced this crazy idea will just stay in the 9,99999 % :wink: (if somebody thinks this is untrue, just let me know!).

But hey, laser pcb etching is soooo interesting that I’ll think about this but… more from scratch if a CD burner cannot achieve this. I saw some homemade CO2 laser designs, I guess that’s the way to go (but then it’s really off topic here).

Nonetheless… I’m still interested in precise burner informations, but for other purposes. I read some things about copy protection, and it seems that there’s things to do for a hardware guy like me in this field. I’d be really interested in having homebrew software booting on a console from a cdr without having to use modchip or exploits.

As an electronician involved in chip design and processors things (I work on compilation and design tools as a PhD student) I’ve always been impressed by the ps2 hardware. Recently, a coworker told me he was playing with its console, and we talked about how to have it boot our code ; we thought about some bootchip modification (that is, try to make an open hardware modchip and manage the boot process ourself).

For sure, the idea of being able to make CDR directly bootable on a console (even if those are just PSX ones) seems to be a really smart way to have our software booting. Well… at the moment I definitively have many things to learn about CDs and so on before being able to understand precisely what has to be done to achieve this. I’m really new to your community, and reading many things, but I hope I’ll be able to contribute :slight_smile: So feel free to post any comment and/or contact me by pm if you always dreamt of an hardware guy wasting some time on some problems :wink:

I guess it would be better to start another topic, coz what I’m talking about here is very different from the original discution, but… I’m sure I’ll have some clever question to ask after having read what’s already available here and there :wink: (at the moment I’d be more like asking noob questions :rolleyes:)