Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Pelican

Why not 1.0.0?
Camera-specific Development / Canon EOS R7
June 25, 2022, 11:00:43 AM
I've got an R7 for testing for a few days.
Is there anything I can do to start the exploring/developing of ML on this camera?

General Help Q&A / Re: Is my 7D Fried?
September 16, 2016, 03:40:35 PM
New folder created after 10000 pictures not 1000.
Camera-specific Development / Re: Canon 7D Mark II
August 24, 2016, 02:37:58 PM
Quote from: JagoUK on August 24, 2016, 01:21:56 AM
I have managed to get a 217K dump so far
Haven't you used the dumper which dumps the 0xffff000-ffffffff area? That is only 64 kB.
Camera-specific Development / Re: Canon 7D Mark II
August 24, 2016, 12:44:49 AM
Quote from: JagoUK on August 23, 2016, 08:35:48 PM
Think I may have found the problem! AGC on my mic port. Now to find out if I can turn it off!
Camera-specific Development / Re: Canon 7D Mark II
June 21, 2016, 08:28:59 PM
Quote from: dinissilva on June 21, 2016, 07:26:54 PM
Can you show me your setup so i can do the same with my canon 80D! Please
You need not only the photodiode connected to a serial port but a signed fw for your 80D...
But if a1ex can dump the 7D2 I'm sure the 80D will be the next.
Camera-specific Development / Re: Canon 7D Mark II
June 21, 2016, 05:14:51 PM
Quote from: a1ex on June 18, 2016, 10:07:25 AM
Please let me know once you have the hardware ready.
Camera-specific Development / Re: Canon 7D Mark II
June 17, 2016, 11:56:52 AM
Quote from: a1ex on June 15, 2016, 06:13:44 PM
I'm looking for a 7D2 user able and willing to measure the current from his camera while running this FIR. It can be done easily with an external power adapter and a multimeter, but you may need to sacrifice the cable.

The FIR simply jumps to 0xFE0A0000 on both cores (which I thought it should boot Canon firmware), but gives black screen according to atonal. Firmware version doesn't matter for this test.

00800120: e51ff004 ldr pc, [pc, #-4] ; 00800124 <_start+0x4>
00800124: fe0a0000 .word 0xfe0a0000

I'm looking at this option for two reasons:
- I want to find out whether the camera locks up or shuts down
- if I manage to lock up the camera without starting the main firmware (which was quite hard on the original 7D, as there was a watchdog shutting it down if the other digic was not initialized), I'm thinking to execute two code sequences that result in different power consumption (such as entering powersaving mode vs a busy waiting loop). This will let me dump the ROM bit by bit (probably slow). That's because I know neither the LED address, nor how to drive any other device that could give some sort of output, nor how to start Canon firmware.
So what should I see on the multimeter with this firmware?
Is it oscillating current or not?
Yes, it  is probably locked, it does nothing (black screen no response) until battery remove.
My external power adapter just died :( so I can use the cable of it to play with.
I'm going to photograph butterflies right now but next week I can test if the firmware can produce different current (3-4 sec period could be easy to measure)
Camera-specific Development / Re: Canon 7D Mark II
June 13, 2016, 07:50:58 PM
Camera-specific Development / Re: Canon 7D Mark II
June 13, 2016, 07:30:59 PM
I've just put 1.0.4 to my 7D2 but I cannot find the updater fir
Should I compile it by myself?
If somebody could compile it would save a lot of time for me because I have no gcc on my laptop right now...
Quote from: a1ex on May 26, 2016, 08:07:31 PM
What I need: in arm-mcr.h, we have B_INSTR and BL_INSTR for encoding the two ARM instructions. I need the same macros for Thumb-2 instructions B.W and BLX.W.
I don't know what is .W at the end of B and BLX but uncoditional B is 0b11100ooooooooooo where oo..oo is the offset/2 (+-2KB,-2048 to +2046)
so the macro is something like this
#define B_THUMB(pc,dest) \
    ( 0xE000 \
    | ((( ((uint16_t)dest) - ((uint16_t)pc) - 4 ) >> 1) & 0x7FF) \

the BLX is two 16 bit thumb instructions 0b11110ooooooooooo and 0b11101sssssssssss where oo..oo is the upper 11 bit of offset and is the lower 11 bit of the offset (the last bit must be 0)
#define BLX_THUMB(pc,dest) \
    ( 0xF000E800 \
    | (((( ((uint32_t)dest) - ((uint32_t)pc) - 4 ) >> 12) & 0x7FF) << 16) \
    | ((( ((uint32_t)dest) - ((uint32_t)pc) - 4 ) >> 1) & 0x7FF) \
Duplicate Questions / Re: 7d Mark II
September 15, 2015, 06:31:32 PM
Camera-specific Development / Re: Canon 7D Mark II
September 08, 2015, 12:28:10 PM
Don't hold your breath...
You can find the older firmwares at the end of the EOScard page.
Also you can find the Canon install CD 29 which contains EU on my down folder.
Camera-specific Development / Re: Canon 7D Mark II
June 30, 2015, 10:31:41 AM
Do you know any female ML developer?
Camera-specific Development / Re: Canon 7D Mark II
June 29, 2015, 11:40:17 AM
Unfortunately, nobody is working on the 7D2 ML (as I know).
Not even a firmware dumper is available.
We have only the updater file which contains a big part of the code, so if somebody want to do something he can start with that.
General Development / Re: C expert needed
June 16, 2015, 12:11:42 AM
Thanks for everybody.
Finally I found the solution on another forum where somebody write similar pascal wrapper but he not linked the wiringpi.o directly but just through the installed library:

{$linklib c}
{$linklib libwiringPi}

And this way it is just working.
General Development / Re: C expert needed
June 03, 2015, 08:28:27 PM
I simplified the sources to a minimum level.
As you can see the main unit not even calls any wiringPi functions, only lists the unit in the uses.
For the linker is nothing to do with the wiringPi.o but it fails on it.
If I change the object file path to point to the previous version of the object file then everything is fine.

The main program:
unit Main;

{$mode objfpc}{$H+}


uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,  WiringPi;


  { TfMain }

  TfMain = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    { private declarations }
    { public declarations }

  fMain: TfMain;


{$R *.lfm}

{ TfMain }

procedure TfMain.Button1Click(Sender: TObject);
//  wiringPiSetup;


The wrapper for the wiringPi:

unit wiringPi;
{$link /home/pi/wiringPi/wiringPi/wiringPi.o}
{$linklib c}


  Function wiringPiSetup:longint;cdecl;external;


Quote from: g3gg0 on June 03, 2015, 12:09:06 AM
you could also implement that function on your own.
iirc when googling, you could find some reference implementation of them.
I found some source for these __aeabi functions but what could I do with them? I tried to change the wiringPi makefile and put these sources in it but nothing happened.

Makefile section where I tried to put the __aeabi_idiv.c and other sources
SRC = wiringPi.c \
wiringSerial.c wiringShift.c \
piHiPri.c piThread.c \
wiringPiSPI.c wiringPiI2C.c \
softPwm.c softTone.c \
mcp23008.c mcp23016.c mcp23017.c \
mcp23s08.c mcp23s17.c \
sr595.c \
pcf8574.c pcf8591.c \
mcp3002.c mcp3004.c mcp4802.c mcp3422.c \
max31855.c max5322.c \
sn3218.c \
drcSerial.c \

wiringPi source:;a=snapshot;h=5edd177112c99416f68ba3e8c6c4db6ed942e796;sf=tgz
General Development / Re: C expert needed
June 02, 2015, 02:43:51 PM
Quote from: eduperez on June 01, 2015, 11:57:28 PM
In my humble opinion, it looks like your wrapper is not properly configured.
What do you mean? How can I properly configure my wrapper? I thought the wrapper doesn't do anything but point to a function in an object file.
And also I thought if the object file contains extra functions that I don't link then it doesn't affect my program.

Quote from: g3gg0 on June 02, 2015, 12:32:26 AM
i can recommend NodeMCU (
the processor is the same chip as the wifi chip, so you have a small footprint.
Thanks, I have a wifi module (ESP-03) with that chip, but as far as I know that is not in the same ballpark as the RasPi.
General Development / C expert needed
May 30, 2015, 09:00:25 PM
Hi all,

It's completely not related to ML developing but I hope somebody here can help me with this problem.

There is a mini computer called Rasberry Pi 2. It runs linux (debian wheezy) and I would like to use the hardware IO ports of it from Lazarus (free pascal compiler and ide).
There is guy who developed a software library called wiringPi with C source.
Until now I used the previous model of Raspberry Pi and an old version of wiringPi's object file with a Pascal wrapper I wrote for it.
Right now this old version cannot work because the hardware changes of the Raspberry Pi 2, so I need the new version of wiringPi.
And the problem starts here: If I build the newer wiringPi from the sources the new object file contains several strange symbol like __aeabi_idiv, __aeabi_idivmod, etc.
When I try to use my wrapper with this new object file the pascal linker cannot handles this symbols, so it fails on it:
/usr/bin/ld.bfd: wiringPi.o undefined reference to symbol '__aeabi_idiv@@GCC3.5'
//lib/arm-linux-gnueabihf/ error adding symbols: DSO missing from command line

I peek inside the object file with objdump -t and see this symbol as
00000000    *UND*  __aeabi_idiv

Also I see it in the with objdump -T
0000f950 g    DF .text  00000000  GCC_3.5     __aeabi_idiv

I tried to remove this strange symbols from the object file with objcopy --strip-symbol but it said it not stripped because it is named in a relocation.

I tried to search on the web and find not too much but I feel this is something similar to it:

Is there any way to create this .o file without these __aeabi stuff?

I have no idea how I can solve this so please give me some clue if you are more familiar with these things.
Thanks in advance.

Edit FYI:
I use this Raspi to control a camera through Wifi and not just the camera itself but some servo motor which turns the focus wheel and change the aperture during a long exposition shot and remote control several flash units by radio.
Another interesting strings: hundreds of COCOA functions.

Chucho has just found an interesting string in the fw:
0xfe1a0912 "MemMgr (Rec4K2K) %ld %ld"
Quote from: a1ex on May 15, 2015, 12:33:15 AM
Last night, g3gg0 and I took a quick loook at the firmware update, and here are our first notes:
Thank you! I hope you and g3gg0 can make a dumper for it.
I would be happy to try.

Quote from: a1ex on May 15, 2015, 12:33:15 AM
- instruction set is Thumb-2.
So the Digic6 has an ARMv7-M architecture, isn't it?
No. My fault. Just haven't found the 'gaonisoy' string in the updaters...
It seems they've changed the decipher keys for the updater (or just haven't slept enough). :-(