dmiddlecamp / particle_arducam

Apache License 2.0
13 stars 9 forks source link

Does not work on Mesh devices (Argon, Xenon): would this be possible? #3

Open jbrichau opened 5 years ago

jbrichau commented 5 years ago

I've been trying to get this project to work on an Argon device, but the Arducam library definitely does not compile for that platform.

I'm not familiar to what effort it would take to do this, but does it make sense to try?

dmiddlecamp commented 5 years ago

It should definitely be possible, either by modifying the library, or by Particle adding more wiring support for the new mesh hardware, I'll look into it! :)

jbrichau commented 5 years ago

I made some progress in the meantime: the program works but the jpg images are corrupt. Although you can probably catch up with what I did ten times as fast, I can post and report what I already have as soon as I find some time in the next few days.

Thanks for the heads up :)

zzasada commented 5 years ago

If I remember correctly you can decrease the chances of a corrupted photo by reducing the size of the TX_BUFFER_MAX. TX_BUFFER_MAX of 168 worked well for me on the photon.

jbrichau commented 5 years ago

@dmiddlecamp After a lot of poking around, I discovered the corrupted images were entirely due to bad wiring connections. After making better connections, the images are coming through perfectly.

So, in retrospect, the delta is small.

For now, I committed my changes to your project in my local fork, see the small list of changes required

There is a caveat: I cannot make it work by compiling in the cloud. I must use the local compiler from within Workbench to compile the project as follows:

Open the Workbench local compiler shell and execute:

./build-local.sh tcp_photographer
particle flash <devicename> target/firmware.bin

This is also why there is the .vscode and project.properties files in my fork./

When I compile the code in the cloud and flash it to the Argon, I'm getting a red sos signal with 10 beeps (aka 'assertion error'). I tried to use the debugger to find out what is happening where, but although I got the debugger stepping (following a community post), I was not able to discover what is going on.