the transcend wifi cards recently got interesting, after an article about root'ing these devices was published.
they contain an ARMv5 instruction set ARM926EJ with somewhere around 400 MHz and 32 MiB RAM.
plus an integrated 16 or 32 GiB SD card
the used operating system is linux with busybox and a bunch of reaaaallllyyy hackish shell scripts.
you can place an 'autorun.sh' and it will get executed on startup... as root...
unfortunately the wifi speed is embarrasing slow - i got 1 MBit/s which is not making any fun with .cr2 files.
(no, dont even ask for raw video!)Magic Lantern - tr_wifi.mo module functionality
- "Enable TrWiFi" / "Disable TrWiFi" - places or removes autorun.sh with magic lantern specific code
- "Mode: DirectShare" / "Mode: Internet" - depending on current mode switch to the other one for either accessing internet or tethering with mobile phoneplus providing these functions to other modules:
- int32_t trwifi_get_file ( char *url, char *dst_file )
the file at given URL is being downloaded and copied from the linux system to camera filesystem.
as we can access the SD from linux, but this will compete with our DryOS filesystem driver, we have to use files like B:/ML/DATA/TR_UPLNK.DAT and B:/ML/DATA/TR_DNLNK.DAT.
both camera and linux will access the files without changing anything in the file structure to transfer data between each other.
possible structure: [payload_size][payload] where payload initially is a shell script that is executed by autorun.sh
these shell scripts can use that comm channel for any arbitrary command specific to the script. the camera has to care for communicating with the right commands.
- char *trwifi_exec ( char *command )
execute any command on linux side and return its stdout as string
i am not sure if it makes sense or fun to implement tcp/udp connect/read/write functionality or even PTP functionality (by forwarding to DryOS PTP handler).
tunneling through these files may be a bit slow and complicated.