09/21/2018 at 01:38 •
Hey everyone, I would like to introduce you to our next generation cameras, the OpenMV-H7. First, apologies are due for not updating this project more frequently, but it's been really hard keeping track of everything from the website to forums and emails, while keeping the software/firmware releases on schedule. Anyway, the new OpenMV-H7 is our latest and greatest camera, designed to support prototyping multiple sensors, including the OV7725, MT9V03x Global shutter sensor and the FLIR 1, 2 and 3 thermal sensors!
Additionally, we're using a better uSD card socket, a high efficiency switching regulator (up to 1A), a low noise LDO for sensor analog supply and we've added a LiPo battery connector on board. The new OpenMV-H7 is still backward compatible with all the shields designed for OpenMV-F4 and OpenMV-F7. Software-wise, we now have neural network support, WiFi programming support, generally more stable firmware/software and a new UVC (webcam) firmware is coming soon.
The new OpenMV-H7 will be release in March, if you'd like to support OpenMV and pre-order the new OpenMV-H7 please back our Kickstarter: https://kck.st/2ps2Pgx
01/26/2015 at 17:54 •
The OpenMV Kickstarter is finally live! Check it out http://bit.ly/openmvcam
09/16/2014 at 22:18 •
We're making a small batch of OpenMV1 prototypes for beta testing, if anyone's interested, they're available now for preorder on Tindie:
We're only making a few of them (10-30) so the costs are higher, hopefully there will be a bigger run in the future.
09/13/2014 at 15:11 •
Just got my hands on a small quad, I was think this would be the perfect application for a tiny camera like OpenMV, now all I need is an open place to record some videos from the quad :)
09/11/2014 at 12:40 •
Feature/Keypoints detection is a very interesting and useful tool to have around when doing image processing, it has endless applications from tracking objects, matching and searching images to more advanced stuff...So far I've been using SURF for this, but other than being complicated and very resource consuming, the algorithm itself is patented in the US and cannot be used for commercial stuff without a license, in addition to that, the only implementation I could find (libopensurf) is GPL'd..
So I removed all SURF code from the repo and I'm using this relatively new super fast/lightweight algorithm, called FREAK....Note that FREAK is a keypoint descriptor, so it needs something to find keypoints first, for this I'm using a corner detection algorithm called FAST.
To give you an idea of what you can do with this FAST/FREAK detector, I made this short video:
09/06/2014 at 00:37 •
Made some improvements to the blob detection code, it now assigns unique IDs/Labels to every detected color, based on its index, so you can identify detected blobs with their IDs. It's also faster, and uses memory much more efficiently... Here's a short video of the result:
08/28/2014 at 00:00 •
So it seems like there are a few thermal imagers out there that made it through, so for the sake of completeness (and to eliminate the competition :D) I finished up my thermal imaging code...Here's a short video showing thermal/night vision:
To produce the final image, temperature readings are normalized, then converted to a rainbow (using a lookup table) and then scaled up (using bilinear interpolation) and finally, the thermal image is alpha blended into an RGB image and sent to the LCD...The result looks something like this:
08/16/2014 at 10:03 •
So I've been quite busy making some new shields for OMV2, I have not tested everything yet, but it's looking good, so far I made a CC3000, LCD and thermal IR sensor (MLX90620) shields :
Shields that are small enough, or that have anything to do with imaging (like the thermal shield), are designed to be installed on the front side of the camera, others, like the LCD or battery pack are designed as backpacks.
A few of the shields are designed to work together, like the thermal and LCD shields, so it's possible for example, to connect the LCD and have a portable thermo cam:
Now with the HW out of the way, moving on to more glorious conquests...
08/06/2014 at 19:01 •
One of the perks of having an SDRAM on board is being able to run full fledged OSes, like uClinux, which require at least a few MBs of RAM to work...uClinux, if you're not familiar with it, is an MMU-less variant of Linux, which means it can run on low-end micros, like the STM32, that don't have an MMU.
Original support of the STM32 micros has been added by emcraft, and a few contributors on ST forums, the kernel is configured to XIP (execute in place) so it's not relocated to SDRAM and runs directly from flash (the 2MBs of flash hosts the u-boot bootloader, kernel image and the romfs) access to the on-chip flash is pretty fast, it takes, in theory, 0-wait states.
So with that as my starting point, I made a few changes to u-boot and the kernel, enabled SDIO, and few other interfaces, to make things work on OMV2, I also made a few tweaks to fbtft and built it in the kernel, and here's the result :)
It takes less than 1 sec to boot, I think that's awesome.. anyway, the LCD is a JD-T1800, I designed this shield for OMV2, it has a light sensor on board which you can read to control the LCD brightness and a few passives...(I'm still waiting for stackable headers, so had to solder the wires to the board):
I'll keep playing with that for a while, see what more I can do, next, I will probably try to get the DCMI and USB working and maybe I will try to run OpenCV :)...
07/22/2014 at 08:34 •
So I've been doing some testing with the new OpenMV, I'm very satisfied with the results so far, after replacing the broken sensor, I couldn't wait to test the IR LEDs/Lens, here's a snapshot taken in complete darkness:
Next, I messed around with the lens trying to see how close I can get to objects (varying the focal length), here's a couple of shots of 402's a few mm from the lens:
This one is taken under IR:
With the optics out of the way, I moved on to testing the SDIO/SDRAM.. Unlike OpenMV1, OMV2 uses a 4-bit SDIO running at 48MHz, to interface the uSD, it's pretty fast, I did some testing by recording a video, reading/writing files etc...
Finally, the SDRAM, fixed the linker script to map the new memory, did some simple tests, writing/reading values, poking with gdb, seems to be working fine, but just to be sure, I'm going to write/find a proper SDRAM test and run it before relocating stuff to SDRAM.