The device I'm using uses a Dot Matrix LCD and I would like to find the bmp it's using to draw things on the screen. I've checked for a standard bmp header but didn't see it.
Is there any tool out there that will do this conversion for me so I can see what's stored.

I don't know if the data is compressed or not nor do I know how to figure that out. First time dealing with one of these.

3 Answers 3


You leave a lot of questions unanswered. What architecture of microprocessor is this? Is everything in one binary firmware blob, or is there storage with a filesystem?

Most likely the image data is in a raw format embedded in the firmware binary. For a small embedded system, I would be surprised to find a "BM" header. What I would do, is disassemble the firmware, and look for references to large "blobs" of data. They could be drawing smaller sprites, or it could be copying a large image (you haven't really specified.)

The details about the LCD will be helpful here also. Most likely a datasheet will tell you what format the LCD expects its data in (how many bits/pixel, etc.) If you can figure out (electrically) how the LCD is connected, then you can possibly figure out what I/O ports the firmware will access to write to the LCD. Then you can work backwards to see how it is transforming the image data (if at all) before writing it to the LCD.

  • Thanks. I have the data sheets for the LCD (122x32) and driver and know how it is connected. It's connected to a PIC and it has some stored data but I also have a nearby flash that has some unknown data stored on it so I'm not really sure where the bmp would be stored. I was hoping I could just display the data as a bmp somehow without having the header. I was hoping there was a tool that could go from data->bmp since there are ones the go bmp->data. I think you are right though, working backwards from the pins connected on the PIC may be the best thing to do. Unfortunately this PIC isn't supp
    – gigawatt
    Commented Jun 28, 2013 at 11:47

As for converting to a byte array, you can use a tool like this: http://code.google.com/p/bmp2txt/ to get the pixel data and then convert the output to a byte array using a bin2hex .

bmp2txt is a fairly old app I made while learning c and it only works on 24bit bitmaps and it's coded pretty poorly, it's just an example to show you how to rip the bytes.

  • Thanks, I ended up just messing around with it by hand in excel and got it figured out. It wasn't sexy but it's done and it worked.
    – gigawatt
    Commented Jul 5, 2013 at 11:41

I am the editor of the bitmap2lcd shareware tool for Dot Matrix LCD programming. It converts images/fonts to arrays , but unfortunately not arrays to images ...

Recently a customer asked me if it is planned in the future to implement this kind of reverse conversion and now I read this article...

I begin to question myself if I finally should code this feature ?

Any comments ?

regards Bernie

  • Welcome to Stack Exchange. This is a questions and answers site, not a discussion forum. Please do not use the answer section for tangential discussions, only to answer the question. This isn't the type of question you could ask here, either, as we focus on objective, answerable questions (though judging by this question you'd have at least one potential customer). Once you get 20 reputation points from questions and answers participation, you can join us in chat for such discussions. Commented Aug 27, 2013 at 8:08
  • @Bernie I believe I downloaded your software at some point to see if it had this feature but had to uninstall it since my IT department found that it was 'calling home' each time it was used. Needless to say, they didn't like that. Anyways, I ended up just doing the translation myself and will soon have a Python script that will do it automatically. I'll try to remember to post it here once it is finished.
    – gigawatt
    Commented Aug 27, 2013 at 11:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.