So after another $75, all of Marcy 2's brain finally arrived. To be sure, Marcy 2 has gone through a lot of failed iterations & airframes. This time, she's a Wifi monocopter.
As bad as it is for business, the cheapest way to get WiFi in a robot is the $5 USB dongle. It's not as convenient as the Roving Networks products & no-one else does it, but we already reached the same conclusion years ago & implemented a USB dongle in another gadget.
It's amazing how persistent that conclusion has stayed. The mane problem is these dongles are their 1 off, single manufacturing runs. You have to write a new driver every time you order another set of dongles.
As for the Wifi dongle,
It's the RTL8192CU.
It is built on top of the USB pads, so connecting it is hard. It appears to use 3.3V & 1.5V inside. A datasheet for the RTL8188CUS would be nice.
Also, it's finally time to use an ARM. The last ARM attempt died in 2007, when our home made JTAG got it flashed, but it still couldn't toggle a pin. This time, we tried as hard as possible to find an Arduino reference design, but there's still nothing & the chip they're targeting doesn't have nearly the horsepower we need.
ARM is definitely still a jump in complexity. It still needs a ton of connections to get going. It still needs paragraphs of registers to set a pin. The mane improvements are only 1 power supply being needed & no external clock being needed.
So the camera interface on the STM32F407 uses a double buffer. Software can massage small bits of data before storing it in a frame buffer. If the transfer rate was low enough, it could JPEG compress 16 rows at a time. It's going to take some 64 UDP packets to transfer an uncompressed 320x240 greyscale frame. There's not enough room on the aircraft for DRAM.
GCC CROSS COMPILERS FOR ARM
In the quest for Marcy 2's cross compiler, we found exactly 1 guide which worked:
http://cu.rious.org/make/compiling-the-arm-cortex-m4-toolchain-yourself/
The gnuarm toolchain we tried 5 years ago hasn't been updated since 2007. People have moved to commercial tools on Windows. The only build system for ARM we found was https://github.com/texane/stlink. https://github.com/texane/stlink/tree/master/example/blink has a Makefile.
Marcy 2's camera is the 8 year old, famous TCM8230MD. Low volume options in this department are still limited to ancient parts.
Now that the undocumented footprints for the camera & Wifi are available for measuring, we can finally lay it out.
Sparkfun forums told a tale of various attempts to use the TCM8230. People have driven it with clockspeeds down to 12Mhz. They don't know if it can go lower. They get a framerate of 15fps when driving it at 12Mhz, but don't know if it can do full resolution at 15fps or only 1/2 resolution.
They don't know the output data rate with the 12Mhz clock & 320x240 video. They've used discrete logic to store the output in SRAM. 1 guy used an AL440B to buffer the data.
There's also the TCM8240MD, which has JPEG compression but is 8 years old. The hardware JPEG compression makes everything smaller. The thing is no-one's using the JPEG compression.
According to the Sparkfun forum, they're buying it for the JPEG compression but just using it for uncompressed. Neither do they know how fast the JPEG output needs to be captured. It could be 25Mhz, just like the uncompressed data. JPEG cameras are such an exception to the rule of what's sold, they're almost not worth it.
Most important
is the Leo Laporte ball, $15 at Big 5. Theoretically, it should keep us awake & keep us from hunching over while soldering. Who knows how many soldering iron drops & xacto knife drops & it'll withstand. It does transfer whatever is on the floor to your hands & make it hard to fart.
Comments
Atollic Studio for ARM is another way to program your ARM. It is very user friendly and free. The only problem is that it is only for Windows. In fact it is eclipse with preinstalled compiler and cross-toolchain. You can build the same setup for Linux if you want to spend 2-3 days for it.
I also tried using an exercise ball as a chair to keep me from hunching over while coding. Great for some interesting and much more physical eureka moments.. :)
Haha!