Today I dumped Canon PowerShot A570 IS 1.01A firmware using tricks from CHDK website. Here’s a little bit tech detail for my own record.
- Receiver: Thorlabs DET110 + 10k terminating resistor.
- Recording: 48 kHz sampling, 8 Bit, Mono. Delay settings I used:
#define DELAY_SYNC 200 #define DELAY_SPACE 50 #define DELAY0 50 #define DELAY1 100
I slowed down the blinking to make my sound card happy. However, the following faster setting:
#define DELAY_SYNC 45 #define DELAY_SPACE 50 #define DELAY0 1 #define DELAY1 25
does give very clean waveform (even with the shortest 5 us pulse) on the scope, so it should work with good sampling device (say a better sound card).
- LED: I used the least-frequently-used blue LED
#define LED_BLUE 0xc02200c4
- Recording level set at about -5dB to -3dB
- Decoder setting:
#define LEVEL_THRES_HI 0xa0 #define LEVEL_THRES_LO 0x80 #define LEN_SYNC 10 #define LEN_SPACE 1 #define LEN_0 3 #define LEN_1 6
- Total dump time is about 2.5 hours. (about 3700 bits per second)
- I did not have any CRC error! I added an md5 checksum at the end. The camera took about 17 seconds to calculate md5sum of the 4MB firmware. Of course, no surprise, md5sum matches.
- Starting part of the dump:
Decoded as 00110000, 00110001, 00110010, in other words, ASCII ’0′, ’1′, ’2′. Also, for some reason the waveform is inverted (compared with CHDK website), so I have to manually invert the waveform for adc.
- The camera freezes about 3 milliseconds every few seconds. Here’s typical behavior:
Since the protocol is decently robust, this extra delay is not a problem at all.
- Dumper code available for download: a570is dumper (based on code from CHDK website and kxn’s modification.).
Brilliant kxn ported CHDK to A570 IS 1.01A within two days.
Sorry, the comment form is closed at this time.