Disassembling that MP3 player

Almost everyone has one of them. They are cheap, they are convenient, they are a good way to show off. I had one from years ago but rarely use it since I hate anything that isn’t rechargeable (the ISO-14000 kind of guy). The button are a little off since I move it around a lot and must have broken something :/

So, when I have a new set of screwdrivers, it became my first victim :P.

I got off on the wrong foot: I tried to crack open the top side (the side with the screen) when actually I should do it otherwise. I found out eventually, but the casing suffered heavy scratches; and I acidentally peeled of a capacitor too 🙁

The rest is only a few screws, loose them and here are the results

Back

Battery side

Front

Screen side

Nice look inside Chinese manufacturing “technology”. All they’ve been doing is make a cheap (I mean really cheap) processor and bridge between the storage and the USB interface. It’s the Processor you see in the middle. AT is for Actions semiconductor. The storage chip is Samsung’s and the Radio is from Phillips.

It turned out what I’ve worried about this poor thing’s quality doesn’t matter that much. As long as the computer can recognize it, the thing will just work fine, the rest of the parts are from more qualified manufactures 😛

IMO, when stripped bare, the LCD looks a lot sexier, you can see the bright LED illuminating the fiber optics plate beneath. They look pretty good but is covered by the original casing. My guess is they make color by blending 4 LEDs: red, green, blue and white as they seem to be the strongest colors and have only one dot of light to the left side.

Pict0008

Blue

Pict0009

Red

It works fine even when disassembled (and lose a certain capacitor :”>). I guess that control screen brightness, since that’s the only setting not working.

In the end I’m too lazy to reassemble the thing. Furthermore, the buttons are off because the plastic handle inside is swollen and broken. Cheers to Chinese plastic! I can hold it back with glue but why do so when I can hit the circuits directly? So now I have the weirdest MP3 player I’ve ever seen. At least it does not electrocute me 😛 and is about 30% smaller from the original one (the case is damn big =__=).

Also, it’s not until I completely disassembled the thing I found many have disassembled their MP3s too; anh this website. They have a nice guide how to do what I’ve done to recover dead player. The site is a community run by owners of the MP3s. It turns out that they are pretty popular around the world. They have everything you’ll ever need related to these things (circut map, specs, firmware etc.)

The MP3s came under a variety of brands and forms but the internals are just the same. Some folks even made a computer out of it. There are also a resource editor and (code) disassembler so you can modify your MP3’s animation, logo and strings.

Report @ localhost

I was developing an automated report maker. Its mission is to collect data from various sources (MSSQL, Excel and Access) to create a summary of the numbers. Things hit a few bumps along the way but finally after 2 days, the collecting phase (the one I thought was hard) is complete.

On to the “easy” part…

C# is such a great environment that they could have offered you with two report solution: the standard report control that comes with the framework and Business Object’s Crystal Report. I was looking for something that could accept parameters, use that for some SQL queries and display the result with a couple groupings.

Crystal report as overtly complex for the purpose, heh, and adding parameter to the query is not that easy as it depends on the project’s datasource.

The report control is even worse. I vividly recall from the last time I worked with such reports they have three tabs in the designer for me to edit data, layout and preview the result. But to my surprise, I can’t even find the preview command anywhere after I created a report in a Winform application. Not on the toolbar, not in the menu, nowhere to be found!

After a little twiddling around, I found another kind of project dedicated to report: the report wizard from the Business Intelligence studio (I happen to have SQL Server Express installed on the development machine). Exactly what I’m looking for! I just paste in the query, choose the groupings and voilà! Report to print! And they have three tabs…

I thought to myself it was all Microsoft stuff, and maybe the report viewer back from the winform project could view this, so I copied it over, point the control to the report, and execute it.

“Data source not found” is all I get.

It turned out that the world isn’t all pink like Microsoft thought (see the “just rename your file and it’ll work, we are Microsoft!” article). The business intelligence’s report is to be and only to be deployed on a report server, which is really not convenience for me since my version of SQL is Express and does not include the report server :(. From a winform application, the report viewer control will just ignore the queries you spent hours crafted in the .rdl report when you rename it to .rdlc (Because they name it report for different meanings on different tiers – A total solution on the server and a mere viewer on the client). They say you have to rebind the datasource. Easy for them to say when they aren’t binding a lot of queries together – by hand since Microsoft’s great data designer won’t allow you to create a new table with schema based on your queries, the situation is even worse for parameterized queries! =__=

Queries are naughty, so no rows for you!

Queries are naughty, so no rows for you!

I'm too lazy to parse that text (the same query run just fine from SSMS)

I'm too lazy to parse that text (the same query run just fine from SSMS)

Folks on the ‘net have not been helpful this time. All they did was point back to the article, It’s surprising to see that something not impossible as viewing .rdl locally is impossible to do with what Microsoft allow you to use. (Yes, they allow you to preview the report locally just fine but they hid the damn report viewer!)

Who needs Microsoft when we have the Apache license? 😛

Somebody did it the hard way: they created a new parser and render the report from scratch. It have evolved for sometime: 0.5 from the like above to 4.0 latest. But still I does have limitations: some attributes are yet to be parsed and are ignored (for example, tables will not expand to accomodate the records) so the report may look a little off, but that could be fixed with a simple moving of parts. After all, this is open source software: if you wanted it to be better, dig in! 🙂

Anyways, it gets the job done. My reports are displaying expected numbers and passing parameters are painless. Cheers to the author!

RDL reports being viewed locally

RDL reports being viewed locally

Latest version of project RDL is available at FYIReporting’s homepage.

UPDATE: And don’t think you can just bind your data with the dataset designer, it won’t tell you anything when you choose the data set as the data source, but when you run it you get an ugly “not bind to an instance” error. In the end you’ll have to do things manually with Microsoft.
reportViewer1.LocalReport.DataSources.Clear();
reportViewer1.LocalReport.DataSources.Add(
                new ReportDataSource("Table name", new DataSetName.TableAdapter().GetData(Parameters))
);