iabdalkader
5d92001f75
Cleanup WINC line endings.
2016-08-28 17:52:07 +02:00
iabdalkader
813a2e6e6a
Fix WINC socket_send.
...
* Check sent bytes returned from async request.
2016-08-28 17:51:42 +02:00
iabdalkader
014847da5d
Bump firmware version.
2016-08-25 19:26:20 +02:00
iabdalkader
fa65054815
Update firmware version.
2016-08-25 19:08:41 +02:00
iabdalkader
3cde9f9260
Revert to old FS caching.
2016-08-24 22:31:46 +02:00
iabdalkader
4b07286284
Update colorbars test.
...
* Invert colorbars for OV7725.
* Increase colorbars thresholds.
2016-08-23 22:37:47 +02:00
iabdalkader
2ad2418d61
Enable DSP colorbar for OV7725.
...
* Enabling DSP colorbar outputs solid colorbars without an image,
which makes the colorbars test run better.
2016-08-23 22:30:18 +02:00
iabdalkader
e88c344028
Use the same serial number used in bootloader.
2016-08-22 23:03:58 +02:00
iabdalkader
d93661aa03
Set heap back to 54K.
2016-08-22 23:03:42 +02:00
iabdalkader
2a6e30de98
Reuse SPI handle for WINC.
2016-08-22 23:03:24 +02:00
iabdalkader
5238d55042
Use JPEG_SUBSAMPLE_1x1 for 60 quality.
2016-08-22 21:16:28 +02:00
iabdalkader
ebf9a93294
Increase OMV2 FB_ALLOC and JPEG buffer size.
2016-08-22 21:15:44 +02:00
iabdalkader
fd46db4143
Use new FS block caching.
2016-08-22 21:15:13 +02:00
iabdalkader
0e60cb39ec
Reduce AGC/AEC Fast Mode Operating Region.
...
* Increasing VPT causes more motion blur.
2016-08-22 21:04:37 +02:00
iabdalkader
a998acbe22
Return 0 if FB is not ready.
...
* Fix bug introduced in last commit.
2016-08-21 03:01:21 +02:00
iabdalkader
5b8de6f867
Clean USBDBG_FRAME_SIZE code.
2016-08-19 19:17:22 +02:00
iabdalkader
1142940b88
Add MLX qstrs.
2016-08-19 19:09:47 +02:00
iabdalkader
a6953e8757
Invalidate frame after IDE reads it.
2016-08-19 19:09:17 +02:00
iabdalkader
958c5b7f78
Use keyword args for MLX refresh rate and adc resolution.
...
* Issue #148 PR #149
2016-08-19 13:23:47 +02:00
William Minarik
18975dfb85
changes fir_init() to take specified refresh rate and ADC resolution
2016-08-18 14:36:05 -04:00
iabdalkader
4cd4b1f902
Optimize haar
...
* Skip homogeneous regions based on STD.
2016-08-18 00:29:45 +02:00
iabdalkader
b655a54885
Remove frame size assertion in snapshot()
...
* Frame gets automatically cropped if it's bigger than the max raw frame.
2016-08-18 00:26:01 +02:00
iabdalkader
c6181cc7f5
Increase AEC/AGC operating region.
2016-08-17 21:19:07 +02:00
iabdalkader
56438bc079
Add cpufreq module.
...
* Add CPU frequency scaling module and example script.
2016-08-17 19:42:05 +02:00
iabdalkader
7a7fcf73e7
Add OMV_XCLK_SOURCE to board config
...
* Use MCO output to drive sensor clock on OMV2
2016-08-17 19:40:29 +02:00
iabdalkader
3a39a6fce0
Set default PLL settings to 192MHz
2016-08-17 19:09:48 +02:00
iabdalkader
c371893a60
Remove old RCC code.
2016-08-17 18:59:14 +02:00
iabdalkader
f8747cb60b
Re-enable DMA2 Stream 3 and 4 for uSD
...
* Fix issue #148
2016-08-16 21:24:56 +02:00
iabdalkader
6722710329
Make IDE interrupt static.
2016-08-16 13:00:12 +02:00
iabdalkader
3a5b82c1b0
Add comment to linker script
2016-08-16 12:59:58 +02:00
iabdalkader
abace9e4fe
Crop resolutions higher than OMV_MAX_RAW_FRAME.
2016-08-16 12:48:47 +02:00
iabdalkader
2affb38a22
Fix DCMI/DMA transfer size overflow.
2016-08-16 12:47:20 +02:00
iabdalkader
839523bd90
Fix DCMI init struct for OMV7.
2016-08-16 12:46:40 +02:00
iabdalkader
7499062bda
Fix OMV2 max frames.
2016-08-16 12:45:49 +02:00
iabdalkader
d9c8b1535d
Reduce IDE JPEG quality.
2016-08-15 01:11:10 +02:00
iabdalkader
bcac8731b2
Add ARCH_STR to board files.
2016-08-14 15:14:43 +02:00
iabdalkader
6d6ad783b7
Add ARCH_STR command.
2016-08-14 15:12:43 +02:00
iabdalkader
26909490c7
Fix adaptive JPEG quality.
2016-08-14 14:26:30 +02:00
iabdalkader
4211e37c53
Remove JPEG enable/disable USBDBG command.
2016-08-14 00:45:34 +02:00
iabdalkader
37ec0095fc
Enable OS module.
2016-08-13 22:08:15 +02:00
iabdalkader
dcdb3e5e8d
Remove old comments.
2016-08-13 22:07:50 +02:00
iabdalkader
2821690a35
Update MP branch with M7 support.
2016-08-12 23:27:20 +02:00
iabdalkader
53df7fed4f
Update bootloader to support M7.
2016-08-12 23:03:11 +02:00
iabdalkader
d0ae48d3a6
Update OV7725 regs
2016-08-12 22:46:04 +02:00
iabdalkader
56ef404919
Add realloc arg to JPEG encoder.
...
* If realloc is set to false, JPEG encoder won't try to realloc JPEG buffer and will fail gracefully.
2016-08-12 22:44:39 +02:00
iabdalkader
1cbcb7e434
Add M7 support
2016-08-12 22:43:50 +02:00
iabdalkader
21c693f968
Update CMSIS
2016-08-06 00:25:04 +02:00
iabdalkader
e44d86b483
Update CMSIS
2016-07-29 12:28:42 +03:00
iabdalkader
11c44d11e2
Update DSP lib
2016-07-29 12:28:10 +03:00
iabdalkader
7d99357e25
Add F4 and F7 HAL
2016-07-28 16:38:45 +03:00
iabdalkader
e4ee55eefb
Update firmware version.
2016-07-27 22:18:43 +03:00
iabdalkader
0da4951e62
Fix integral image lookup
2016-07-27 22:00:51 +03:00
iabdalkader
0363fa8758
Add ToF module.
2016-07-27 15:21:33 +03:00
iabdalkader
f7aa217f39
Use scaled DCT.
2016-07-06 21:19:14 +02:00
iabdalkader
9db7b8113c
Set JPEG quality based on frame size.
...
* Use higher quality/subsampling for small resolutions.
2016-07-03 21:33:19 +02:00
iabdalkader
b5486fc2a3
Set JPEG chroma subsampling based on quality.
2016-07-03 21:27:44 +02:00
iabdalkader
9e592d45bf
Add JPEG subsampling enum.
2016-07-03 21:27:28 +02:00
iabdalkader
0575314ab3
Make image pool work on arg image without changing FB.
2016-06-20 22:25:25 +02:00
iabdalkader
02088a14e1
Rename set_binning to set_windowing.
2016-06-20 22:24:00 +02:00
iabdalkader
968bfde8f2
Add new smaller resolutions.
...
* Add 40x30, 64x32 and 64x64
2016-06-19 21:27:09 +02:00
Kwabena W. Agyeman
7af818c4d8
Finished up optical flow code.
...
* Added pooling functions to make getting small images easy. set_binning
works too... but, it zooms in way to much. pooling functions aout you to
shrink the image while not zooming in.
* To make the pooling functions easy to use I created a version that
pools the image out of place and one that pools the image in place. The
inplace pooling function can work on the frame buffer (see edits to
sensor.c)
* I added the code to do hann windowing to the FFT lib. However, I
commented it out after it improved performance by basically zero.
Specialized windowing stuff will only come in handy for folks trying to
tune their algorithm... not in general for everything.
* I added subpixel resolution for the phase correlation code. You can
now track the image movement really precisely. Additionally, I fixed up
the displacement outputs to give expected results. I also added a QoR
output for the displacement code so that you can know when the results
are bad.
* Finally, an example script has been added to show off the features.
2016-06-18 23:05:44 -04:00
iabdalkader
6adb46e1fa
Make copy_to_fb accept (x,y) offset
2016-06-17 00:31:56 +02:00
iabdalkader
2594a1e320
Add py_helper_lookup_offset.
2016-06-17 00:30:02 +02:00
iabdalkader
76e3a77869
Reduce DS search step by one.
2016-06-15 23:41:08 +02:00
iabdalkader
7a977b5568
Reduce step size in DS search.
...
* Reduce DS step size instead of switching to smaller pattern.
* Makes it slower but more accurate, close to EX search.
2016-06-15 23:33:33 +02:00
iabdalkader
e40c50f739
Add diamond search for fast template matching.
2016-06-15 22:59:17 +02:00
iabdalkader
d9b03641f7
Add copy to framebuffer function and example script.
2016-06-15 21:59:36 +02:00
iabdalkader
86b038df33
Fix typo in Haar.
2016-06-15 21:04:25 +02:00
Kwabena W. Agyeman
15aed91efd
Fixed FFT and Phase Correlation!
...
There were some mistakes, they are fixed now. FFT 1D and 2D work
flawlessly. No problems with that code anymore.
As for phase correlation I need to study how to interpret the output
better. The function generates noisy results once you move the image too
far and I'm not quite sure if I have the code right for detecting
positive and negative displacements.
2016-06-14 00:00:27 -04:00
iabdalkader
2767791aae
Add loop step argument to template matching.
2016-06-14 00:14:22 +02:00
iabdalkader
a25e0c162e
Make template matching use ROIs.
2016-06-14 00:07:54 +02:00
Kwabena W. Agyeman
45fdcc973e
Add FFT Code and Phase Correlation Code
...
The heart of the 1D FFT works. I tested this on the PC. However, 2D FFTs
may have issues and the phase correlation algorithm does not generate
the expected results. That said, most of the work is done. Stuff just
needs to be deubgged.
The FFT lib is designed to handle up to 1024 point real FFTs and 512
complex FFTs. As for 2D FFTs, we can do up to 64x64 pixels. After which,
we don't have enough RAM to handle them because they use up about 128KB
each.
Things to do... the 2D FFT needs to be verified. So, we need to run an
image through it and then back again to verify that there are no
problems. Then we need to compare the 2D FFT output with another 2D FFT
algorithm on the PC...
Once the FFTs are known to be good we then need to make sure the phase
corelation algorithm outs the correct results. We need to test that with
multiple shifted images, etc.
2016-06-12 19:55:45 -04:00
iabdalkader
f0a6892475
Cleanup template matching code.
2016-06-11 02:00:27 +02:00
iabdalkader
8fac08e29e
Fix integral_image_sq bug in calculating first row.
2016-06-10 00:14:41 +02:00
iabdalkader
15ba6a4927
Enable binning when resolution is higher VGA.
2016-06-03 23:05:51 +02:00
iabdalkader
ee2995115f
Disable auto zoom/scale factors for VGA resolution.
...
* Disable auto zoom/scale factors for VGA resolution on OV7725.
2016-06-03 23:04:11 +02:00
iabdalkader
440c9dc8bc
Implement binning.
2016-06-03 23:01:28 +02:00
iabdalkader
318b67da42
Fix typo.
2016-05-25 03:42:57 +02:00
iabdalkader
39f439cda5
Fix the base priority when doing a soft-reset
2016-05-16 14:26:48 +02:00
iabdalkader
8f35a14ad8
Update USBDBG patch version.
2016-05-16 14:22:59 +02:00
iabdalkader
2e2c563227
Re-implement line filters with Python callbacks.
2016-05-16 14:22:30 +02:00
iabdalkader
5265211cc4
Remove USBDBG FRAME_UPDATE command.
2016-05-16 13:40:09 +02:00
iabdalkader
5d9fbf729c
Enable some MP optimizations.
2016-05-16 13:37:27 +02:00
iabdalkader
fea0b45eaa
Update MP branch.
...
* Fix ADC channels.
* Add 427 AF file.
2016-05-12 18:25:06 +02:00
iabdalkader
a865075e85
Fix Makefile dependencies.
...
* Fixes issue with parallel builds (make -jn)
2016-05-12 14:28:27 +02:00
iabdalkader
959d3e5410
Disable STM-HAL build in MicroPython.
2016-05-12 14:02:45 +02:00
iabdalkader
f61d89e0a4
Fix Makefile Verbosity.
...
* Make build more quite.
2016-05-12 14:01:14 +02:00
iabdalkader
23f1935924
Enable modmachine.
2016-05-12 12:53:55 +02:00
iabdalkader
ba73787c8a
Use MicroPython's SD Card Module.
2016-05-11 18:46:38 +02:00
iabdalkader
8e503f4145
Update to MP v1.8
2016-05-09 21:46:41 +02:00
iabdalkader
9a5992c03e
Update code for MP v1.8
2016-05-09 21:46:29 +02:00
iabdalkader
2803a8f483
Update MP branch.
2016-05-04 21:37:15 +02:00
iabdalkader
c10fc56f44
MLX fixes.
...
* Alloc variables using xalloc.
* Change ADC resolution to 18 bits.
2016-05-04 21:37:10 +02:00
iabdalkader
e5cde106fb
Remove MLX variables from linker script
2016-05-04 20:14:52 +02:00
iabdalkader
2b26d46f1e
Fix py_fir memory issues.
2016-05-04 20:14:38 +02:00
iabdalkader
1f150c1847
Cleanup Makefile.
...
* Rename binary files.
* Misc cleanups
2016-05-03 19:16:43 +02:00
iabdalkader
a314b59d1a
Generate a combined binary for the programming jig.
2016-05-03 16:12:52 +02:00
iabdalkader
a0d7c69cb7
Remove old CC3K code.
2016-05-02 23:11:11 +02:00
iabdalkader
d8359a99e1
Define MAIN_FW_ADDR.
2016-05-01 15:51:20 +02:00
iabdalkader
c7c3ddce63
Add DAC init in main.c
...
* Fix issue #121
2016-05-01 15:50:10 +02:00
iabdalkader
260caaa8e7
Fix WINC client.send() zeros data being sent.
...
* Issue #129
2016-04-30 23:08:23 +02:00
Kwabena W. Agyeman
fc605b0a80
Made histeg work for RGB565.
...
Added YUV to RGB565 conversion to make this happen.
2016-04-29 23:03:19 -04:00
iabdalkader
6b581af1b1
Add mass erase to make flash.
2016-04-29 20:32:14 +02:00
Ibrahim Abd Elkader
ebb7053040
Merge pull request #132 from kwagyeman/master
...
Add missing cam functionality
2016-04-28 23:58:27 +02:00
iabdalkader
0d5aaf5064
Fix USB descriptors.
...
* This fix makes the bootloader+fw image enumerate correctly on Linux and Windows.
2016-04-28 12:47:21 +02:00
Kwabena W. Agyeman
80cb701d3b
Add missing cam functionality
...
Added the ability to turn AGC off. Kinda will need the ability to restore
AGC settings back to user specified ones in the future... but, this will
do for now.
Added the ability to turn AEC off. Objectively this function probably
won't be used. But, in low light situations it can help.
Added get_fb() to allow you to get the last image snapshot returned.
There was some old exposure function in the code that was getting
optimized out. So, I deleted the used methods that didn't have any code
in them and commented out the only method that did.
2016-04-27 21:53:06 -04:00
iabdalkader
794bb367ae
Fix Bootloader CDC descriptors.
...
* Removed some unused descriptors, but mainly set the CDC interface number to (1)
same as MP, as Windows doesn't like different interface numbers for the same device.
2016-04-27 19:38:44 +02:00
iabdalkader
8cd6fbf301
Replace pyboard and MP string descriptors.
2016-04-27 18:17:42 +02:00
iabdalkader
130fcbf162
Pass wValue to control requests.
2016-04-27 08:34:20 +02:00
iabdalkader
cadb73eb5e
Fix Makefile build order.
2016-04-26 22:58:07 +02:00
Kwabena W. Agyeman
7a01a9bede
Final Imlib Cleanup
...
Finished going through imlib.c.
-> Histeq uses fb_alloc now and has hook for RGB histeq when reserve YUV
LUT is added (coming soon in next PR).
Cleanuped py_helper.c/h
-> No functional changes. Just added some header info.
Finished going through py_image.c
* 1 - Finished general code cleanup and updating everything to using new
library functions. In particular, I updated the remaining find_*
functions with the new roi clipping code when they accept rois.
* 2 - Made blob stuff return a list when nothing is found so you don't
have to do an if on the returned value anymore.
* 3 - img subscr is more powerful now allowing image reading and
writing. I updated this because I had to use it to find a previous bug
with socket.send() for the WINC driver.
* 4 - Renamed find_eyes to find_eye. Because it just finds one eye.
* 5 - Other than that just general code cleanup to make functions look
consistent.
And yes, changes have been test. Face tracking, eye tracking, keypoints,
etc. all work still.
Future things todo before release:
1 - Change all LAB stuff to YUV.
2 - Add in reverse YUV->RGB LUT and update functions like Mode() to use
this so they don't generate messed up outputs, also histeq() too.
3 - Add any remaining sensor control functions like agc control.
2016-04-25 21:55:49 -04:00
Ibrahim Abd Elkader
3ac7872188
Merge pull request #130 from kwagyeman/master
...
Improve JPEG capabilities.
2016-04-26 02:47:08 +02:00
iabdalkader
232461295d
Remove old DFU code.
2016-04-25 20:35:36 +02:00
iabdalkader
3d38908f2a
Update main Makefile
...
* Add bootloader sources.
* Generate main FW image dfu, bootloader dfu and combined dfu image.
2016-04-25 18:20:20 +02:00
iabdalkader
508f303d91
Move ISR vector start of the main firmware image.
2016-04-25 18:19:39 +02:00
iabdalkader
d14c55251d
Change interrupt vector table offset.
...
* Set to 0x08010000 where the main FW image starts
2016-04-25 18:18:27 +02:00
iabdalkader
9ed107ccee
Re-enable IRQs in main.c
2016-04-25 18:18:03 +02:00
iabdalkader
87740c0170
Add CDC bootloader source dir
2016-04-25 18:17:21 +02:00
Kwabena W. Agyeman
367e5fdd3d
Improved JPEG capabilities.
...
* Added the ability to control the quality on JPEG functions... However,
due to our JPEG implementation this doesn't seem to help. 90% JPEG
quality images and regular images should be about equal. But, you can
see heavy degredation with 90% still. E.g. text is unreabable. Not
exactly sure why this is happening but it can be fixed later.
* Changed the compress() function to compressed(). Also, it now
compresses using FB_Alloc to prevent realloc issues when compressing.
* Added new compress() function. This function compresses an image in
place and if that image is the frame bufffer then it will update the
frame buffer bpp value to reflect the image was compressed. Users can use
this function to basically finalize the frame buffer and then pass the FB
to functions that need to send image bytes. The benefit of using this
function is that it should allow higher quality JPEGs and let everything
run at a faster speed while connected to the IDE.
I made this function to speed up WiFi. However, I encountered a bug with
the winc.send() method. It appears to zero the bytes it sends. I didn't
debug further except to verify that the image data became zero after
calling send.
2016-04-23 16:37:21 -04:00
Kwabena W. Agyeman
bb9d79d744
Fixed dilate.
...
This was bugged. Tested and now works.
2016-04-21 13:11:38 -04:00
iabdalkader
da612ff75f
Apply HAL I2C/DMA patch from MicroPython.
2016-04-20 23:03:39 +02:00
iabdalkader
ef772db6c4
Up MP branch
2016-04-20 22:30:43 +02:00
Kwabena W. Agyeman
b534dc6ffc
Imlib cleanup
...
*Changed subimg to copy.
*Made blend work the same way as all our other double image argument
functions.
*Changed bilt to replace (the name of bilt is way to esoteric). Replace
gives you the basic assignment op.
* Removed scale/sacled. I removed this code because we don't want to
encourage people to scale things and allocate additional images in
memory. I decided to keep copy() for completeness sakes... but, I don't
see anyone using it. (By completeness sakes I mean that we now have the
assignment op, copy op, etc. for an image object).
* Removed rainbow. This feature is built into the FIR module now.
Moving on, compress needs to be renamed to compressed and a new compress
function will need to be added.
The compress() function will compress the image (or frame buffer, etc)
and not return a new object. The compressed() function will return a new
object and not compress the original image.
The compress function will make it easier for users to compress images
once they are done working on them before sending the image some where.
I don't see compressed() being used much then after adding the
compress() function. Since the compress() function won't use up heap
space this makes it very good.
2016-04-19 21:42:56 -04:00
Kwabena W. Agyeman
8a2852b706
Fixed file buffer bug.
...
This wasn't getting reinited breaking the system.
2016-04-14 23:56:54 -04:00
Kwabena W. Agyeman
1b9be6f81c
Fixed blob merge bug.
...
Merging now keeps trying after a merge to make sure it's collected
everything.
2016-04-13 23:48:16 -04:00
Kwabena W. Agyeman
16daeb83a2
Fixed blob code.
...
Removed micropython code from the image libary. Also, blobs are now 10
tuple values by default now. The multilist thing has been removed from
blobs and it will return just a list of blobs instead of a tree of
lists.
Filter functions still work too.
2016-04-13 23:16:51 -04:00
Kwabena W. Agyeman
9e5d379c18
Remove old code.
...
Pixels, centroid, and orientation are calculated in the blob code now.
As for threshold, it is no longer needed (plus, it required storing a
secondary image in RAM which isn't really something we can handle).
2016-04-09 19:32:14 -04:00
Kwabena W. Agyeman
d1ff36602a
New blob code.
...
Blob tracking has now been updated to work without requiring prior
segmentation of the image. You can still run it on a segmented image,
but, that is not needed anymore.
Use the copy color feature of the OpenMV IDE to get a color in the
image. Once you have that you can then pass the color to find_blobs which
will output a tuple of lists of blobs for each color. By default, all
blobs less than 1/1000th of the image are filtered out, however, you can
add a custom filter function which gets the image and the blob about to
be added to the list and you can decide to filter it or not.
For marker tracking, we now have a function called find markers which
basically merges all the blobs found by find blobs into one list of
blobs. Each new blob will have a color code value which will tell you
what colors are part of that blob. We support tracking up to 30 unique
colors this way.
2016-04-09 11:43:35 -04:00
iabdalkader
37c8587333
Fix WINC's FW update.
...
* Remove unused WINC code.
* Replace WINC fw update process with a single fw image.
2016-04-06 02:35:32 +02:00
iabdalkader
f841828818
Add WINC fw dump function.
2016-04-06 02:30:42 +02:00
iabdalkader
cc67372726
Add fw_dump
2016-04-06 02:29:39 +02:00
iabdalkader
6aaef6b68d
Update WINC's firmware image.
2016-04-06 02:28:18 +02:00
iabdalkader
f2a1a1f641
Fix printf format.
2016-04-05 23:42:37 +02:00
iabdalkader
6addddbbc7
Fix WINC's firmware_verify.
2016-04-05 23:40:09 +02:00
Ibrahim Abd Elkader
749cd96e0c
Merge pull request #112 from kwagyeman/master
...
Add mean, median, and mode filters.
2016-04-05 23:22:23 +02:00
iabdalkader
b9ec840a76
Add winc fw_update function.
2016-04-05 22:35:02 +02:00
iabdalkader
3268edceb2
Add WINC1500 Firmware image and certificates.
...
* FW version 19.4.4
2016-04-05 22:32:50 +02:00
iabdalkader
330b41aab6
Add WINC1500 FW upload code.
2016-04-05 22:31:39 +02:00
iabdalkader
dae73f6250
Update WINC1500 driver to 19.4.4
2016-04-05 22:30:00 +02:00
Kwabena W. Agyeman
401b7b72a8
Added mean, median, and mode filters.
...
Mean filter -> Fast and easy to use. This will likely be the only filter
that gets alot of action on the M4.
Median filter -> Works really well, but, slow. On grayscale at 160x120
you can get also 10 FPS with it for a 3x3 kernel. That said, it's still
slow. Also, the code only works for 3x3 and 5x5 kernels.
About the previous histogram filter... technically, that filter should be
better. However, it suffers from a startup cost. The operation of finding
the median point in the histogram costs too much to compute. This is
what causes it to be slow. On very large kernels it will be faster than
the sorting median alrogithm I put up... but, large kernels will be too
slow for anyone to use anyway. The paper Ibrahim linked to about it
showed it being used for like 7x7 kernels and up... so, I think the
researcher who thought of the idea was really thinking about the
algorithm for large kernels.
Mode filter -> Works great on grayscale. Not so much on color. I think it
needs to be run on the LAB color space instead of the RGB color space. I
say this because it causes pretty strong artifacts around edges. When we
get more flash we'll be able to have a reverse lookup table for LAB to
make the mode filter better. Until then...
2016-04-04 20:04:50 -04:00
iabdalkader
1566b38bde
Implement fw_version.
2016-04-02 01:39:53 +02:00
iabdalkader
27adf0dcd2
Enable CONF_MGMT.
2016-04-02 01:39:29 +02:00
iabdalkader
0d19f693c0
Implement Listen and Accept.
2016-03-31 22:35:49 +02:00
iabdalkader
e5fd02c59a
Implement bind, sendto and recvfrom.
2016-03-31 02:46:14 +02:00
iabdalkader
4201f0480d
Use fd instead of u_state.
2016-03-31 01:05:26 +02:00
iabdalkader
a5d1b0f446
Implement socket settimeout
2016-03-31 01:04:57 +02:00
iabdalkader
1cccae0fcb
Implement WINC send/recv.
2016-03-30 18:51:13 +02:00
iabdalkader
bf674dbe6d
Add Socket and DNS callbacks.
2016-03-30 01:47:35 +02:00
Kwabena W. Agyeman
bc687ebf59
We seem to be doing this alot in the code.
...
So I'm just adding a function to do it cleanly and efficently. Call
skip_frames() after changing any camera settings to let it settle.
10 frames by default works fine. Tested it.
2016-03-28 22:59:59 -04:00
iabdalkader
4e31f25db8
Additional qstr definitions for OpenMV.
2016-03-29 02:26:39 +02:00
iabdalkader
9003a27c85
Rename fir.display to fir.draw
2016-03-27 00:42:54 +02:00
Kwabena W. Agyeman
a6c2efcebe
Renamed Display to Draw
...
And fixed type in blend. Per Ibrahim's suggestion.
2016-03-26 10:26:19 -04:00
iabdalkader
5411f9e8e7
Update MP branch.
2016-03-26 15:15:07 +02:00
Kwabena W. Agyeman
978b4c12df
Add Midpoint filter.
...
Has a bias value that allows you to control if its really a midpoint,
min, max filter, or something inbetween. Run at 160x120 or lower. 320x240
is slow (seems to be the case for all convoltions at that res).
2016-03-25 21:26:20 -04:00
iabdalkader
b92f146323
Add initial WINC1500 WiFi module driver.
...
* Note: partial implemented, based on CC3000 module (only scan, connect, ifconfig work)
2016-03-26 01:52:29 +02:00
iabdalkader
f447455580
Disable WINC's debugging info.
2016-03-26 00:15:28 +02:00
iabdalkader
ce949333f2
Rename WINC1500 Sockets.
...
* Rename functions in WINC's sockets implementation to avoid
conflicts with other sockets implementations.
2016-03-26 00:14:01 +02:00
iabdalkader
9dd3dce5af
Update MP branch
2016-03-26 00:11:52 +02:00
Kwabena W. Agyeman
2fa8227c7b
Add AWB/HMirror/VFlip
...
Added setters for these camera settings. AWB is necessary for color
tracking to work correctly. AGC still runs, which causes lighting
shifts. It may need to be disabled too. Not sure... if I want to do that
or not however, because without it lightning won't get normalized to
remain at a certain level. So, turning AGC off may cause issues in other
ways.
2016-03-25 16:36:10 -04:00
Kwabena W. Agyeman
a74dd50eaf
Improved IR code.
...
Return min and max from read_ir now. Also, made drawing functions take
IR values.
Example scripts have been updated to work with the new module code.
2016-03-24 19:52:00 -04:00
iabdalkader
dfad6e4c0a
Update MP branch.
2016-03-25 00:37:27 +02:00
Kwabena W. Agyeman
88907c438c
Redid MLX Code
...
First, a few things:
The MLX 16x4 sensor has just too low of a resolution for mass appeal for
the price. The product is not going to sell very well. We need to look
into supporting sensors with a better res. Like the FLIR 1. The MLX
module was renamed to the "flir" module with this idea in mind.
The flir code now takes care of doing scaling and blending itself. I did
this to get rid of the user having to scale the image themselves and
blend themselves. Its too easy to run out of memory given our current
ultra small heap. In general, anything that requires multiple images in
RAM has got to go. When we do another OpenMV Cam with external RAM in
the MB range then maybe such functions will be safe. But, right now they
are definately not.
Anyway, moving on, I fixed a few bugs with the MLX math code. But, for
the most part was correct. I also added reconmended polling code for
brownouts as required by the datasheet.
Last, I designed this code like the LCD code to support a type value
when inited. This will allow the system to user a different sensor in the
future without any API changes to the user.
I will add test scripts for this next. Basic usage follows:
import flir
flir.init()
flir.display_ir(sensor.snapshot())
And that's it. Super easy. If the user wants the raw temp values they
can use flir.read_ir() to get the ta and to values. The display function
has a hidden alpha and scale argument for controling blending and the
min/max scaling.
The previous way we worked out scaling kinda sucked... it was a good
shot, but, controllable min and maxes that autoscale by default just
work better. If the user knows the temp range then they can just set the
min and max.'
Anyway, longest commit ever done.
2016-03-24 18:04:05 -04:00
Ibrahim Abd Elkader
825911abe6
Merge pull request #99 from kwagyeman/master
...
Move LCD code into module.
2016-03-19 01:33:35 +02:00
iabdalkader
44895ead25
Add LCD module
2016-03-19 01:32:05 +02:00
Kwabena W. Agyeman
94910c8ed7
Move LCD code into module. It's now ultra fast, safe and friendly. I
...
tested everything too and added an example script (very simple).
2016-03-17 20:01:03 -04:00
iabdalkader
900b5cdba2
Add P6 pin alias.
2016-03-15 00:11:13 +02:00
iabdalkader
9a8a5375da
Add pin aliases.
2016-03-15 00:03:02 +02:00
iabdalkader
d4ea452902
Fix median code.
...
* Use new IM_ macros.
* Fix allocation problems.
2016-03-13 23:37:58 +02:00
iabdalkader
33d4d2a1ad
Support keypoints on QVGA resolution.
...
* Use the moving window integral to compute keypoints.
2016-03-13 01:44:07 +02:00
iabdalkader
2f9a541cbc
Abort DMA transfer after snapshot.
2016-03-11 04:17:18 +02:00
iabdalkader
ebf13197a9
Disable USB IRQ before stopping script.
...
* This ensures that FS IRQ will never run during a soft-reset which
causes issues when using SD card.
2016-03-11 04:14:19 +02:00
iabdalkader
31697a163b
Re-init storage after soft-reset.
2016-03-11 04:13:23 +02:00
iabdalkader
0370eb54be
Move SD card initialization to sdcard_init
2016-03-11 04:12:06 +02:00
Kwabena W. Agyeman
302deb0662
Add file read speed.
...
File reading is runing ultra fast now. We're getting that SD card speed
the STM32 promised now. The file buffer commands have been updated to
alloc as much available memory to read as much of a file in as possible
now to speed up things. This works really great.
Note however, while the file buffer is active you have to use the file
buffer versions of tell and size. Spent a few hours on tracking down an
error related to not using the buffered versions.
2016-03-08 23:38:13 -05:00
Kwabena W. Agyeman
14dbcbd73c
Updated code to use fb_alloc.
...
All file write functions now use fb_alloc to go much faster. Writes are
re-directed to the extra frame buffer RAM and are grouped until they can
be written in a massive multi-block write to the SD card. We get the
best SD card write speed by doing things this way.
Ideally we'd want to buffer the whole file... but, this is about as good
as we're going to get for now.
Going to fix reading functions to use the same buffer next.
2016-03-07 00:09:04 -05:00
iabdalkader
2ab0688cbd
Fix comment.
...
* Framebuffer is not actually global.
2016-03-06 19:03:30 +02:00
iabdalkader
6cb7288def
Add NORETURN to __fatal_error
2016-03-06 19:03:00 +02:00
iabdalkader
a1c9e8a6f6
Set fb values directly when request frame size.
2016-03-06 19:02:12 +02:00
iabdalkader
d1e782df3d
Remove default sensor config.
...
* Not really needed.
2016-03-06 19:01:10 +02:00
iabdalkader
e3cc4cd83f
Add delays after changing pixformat/framesize.
2016-03-06 19:00:41 +02:00
iabdalkader
3e6e84cbb4
Skip the first frame after changing size or format.
2016-03-06 18:38:25 +02:00
Kwabena W. Agyeman
66248c444b
Update Gif to use fb_alloc_all.
...
And tested it along with mjpeg to make sure all this stuff is good. I
also see the issue with QQVGA now. That just appeared.
2016-03-05 22:29:21 -05:00
iabdalkader
b78e325c60
Up MP branch.
2016-03-06 03:14:42 +02:00
Kwabena W. Agyeman
5316b26d83
Added a new mjpeg module for Mjpeg support.
...
The built-in mjpeg module allows you to record videos seamlessly. It
will automatically compress the frame buffer using the extra space in the
main ram. So... you don't have to pass it jpeg images. Gets 7 FPS at
320x240 while connected to the computer too (it has to compress the
frame twice in this situation).
Anyway, the module work like Gif.
2016-03-05 20:03:48 -05:00
iabdalkader
acc35704d8
Disable IRQs when doing a soft-reset.
2016-03-06 02:51:34 +02:00
iabdalkader
2ab317063d
Re-exec REPL if there's no script to execute.
2016-03-06 02:39:58 +02:00
iabdalkader
fe506fa0fb
Use sizeof(tx_buf_len) instead of length.
...
* Length should always be 4 but it's safer this way.
2016-03-06 02:37:36 +02:00
iabdalkader
c12473d8b7
Execute a script only if there's no script running.
2016-03-06 02:36:45 +02:00
iabdalkader
28047269ac
Add DSB after setting USBDBG IRQ.
2016-03-06 02:36:10 +02:00
iabdalkader
87f9c92f1b
Skip the first JPEG/RAW frame.
...
* Set BPP to zero in set_pixformat to skip compressing/sending the first frame.
2016-03-06 02:32:11 +02:00
iabdalkader
911f9827ea
Enable DMA IRQ just before the snapshot.
2016-03-06 02:28:05 +02:00
Kwabena W. Agyeman
98800c31c7
Add fb_alloc_all.
...
Now you can just grab all the free ram in the frame buffer in one go.
This fixes problems figuring out how many lines to alloc. Will update line
op code with this new info later.
2016-03-05 11:27:37 -05:00
iabdalkader
06b1cfca3b
Use IRQ priorities defined in irqs.h
2016-03-05 18:25:51 +02:00
iabdalkader
55a4b4536f
Add irqs.h.
...
* Defines IRQ priorities and functions.
2016-03-05 18:23:53 +02:00
iabdalkader
5dcedb8397
Align GIF buffers.
...
* Make GIF buffers aligned so DMA can be used.
2016-03-05 16:23:43 +02:00
iabdalkader
9230f0d53e
Use DMA for SDIO transfers
2016-03-05 15:44:39 +02:00
Kwabena W. Agyeman
9325029675
Add support for color gif.
...
Color gifs look very good for how bad you'd expect them to be with just
7 bits of color (rgb232) - quite amazing. Also, I hardened the gif
module to make it "user ready".
2016-03-04 23:30:01 -05:00
iabdalkader
03a06a409d
Added color conversion strings.
2016-03-04 15:36:39 +02:00
Kwabena W. Agyeman
0ded05e333
Add color functions.
...
Now you can convert from rgb to lab/grayscale and vice-versa. Without
this functionality it would be hard to deal with moving between RGB and
LAB.
2016-03-03 23:48:04 -05:00
iabdalkader
02ef98f25f
Move MSC bot data to main SRAM (update MP).
2016-03-04 00:59:06 +02:00
iabdalkader
af82c9936d
Move MSC bot data to main SRAM.
...
* MSC can use DMA transfers.
* Free about 2KBs of CCM.
2016-03-03 15:37:13 +02:00
iabdalkader
872b7c1c5e
Update qstrs.
2016-03-03 01:14:03 +02:00
Kwabena W. Agyeman
488253a8b0
Add statistics function.
...
You can now get the color stats for an area in the image. The stats
function returns the mean, median, mode, min, max, st_dev,
lower_quartile, and upper_quartile.
This function allows you to automate binary and threshold functions
based on what's in the iamge.
2016-03-01 21:43:52 -05:00
iabdalkader
3e5bfb27cc
Move FatFS file buffer to main SRAM.
...
* Allows DMA transfers of file data.
2016-03-02 00:19:29 +02:00
iabdalkader
3ea5761076
Add _fb_alloc linker script variable.
2016-03-01 23:47:13 +02:00
Kwabena W. Agyeman
6ed08213b5
Fix unintialized error.
...
If the rect was not intersecting these functions would have returned bad
values.
2016-02-29 21:31:59 -05:00
iabdalkader
744329f8f6
Add strings for morph.
2016-03-01 01:42:51 +02:00
iabdalkader
e0c93b8ec3
Add missing morph qstrs
2016-03-01 01:26:03 +02:00
Kwabena W. Agyeman
98f4dde21f
Add new morph function.
...
The morph function lets you convolve the image with a kernel. It's
decently fast right now. But, in the future we'll have to optimize it by
a lot (unrolling loops, using SIMD instructions, etc.).
Anyway, along with morph I added an edge detection test script showing
how you can use a high pass filter on an image to get all the edges in
it. This is not as good as canny edge dection... but, it's about the
same and fast enough.
We'll need a Hough Transform system in the future to make edge dection
useful. Not sure how that will be implemented... so, that's going to be
far away for now.
2016-02-29 18:04:45 -05:00
Kwabena W. Agyeman
fb8b357c24
Dilate and errode working.
...
The old code did not actually implement the errode anhd dilate kernels
correctly. However, it migh have been a little faster because it avoided
the boundary problem.
In the future we can optimize all the kernel code to have different loops
for doing the edges of image versus the center. But, for now, this is
good enough. QVGA color tracking with kernels will be slow, but, the
speed can be improved with QQVGA resolution. Using a 3x3 kernel is
plenty fast. Larger ones are slower.
I also added the ability for you to set the threshold for erode and
dialte. This lets you make the kenrel a little bit smarter so that it
won't errode or dilate a pixel unless the threshold is met. Meaning,
you'll be able to use erode to erode an image down to 1 pixel wide
lines.
2016-02-28 16:27:49 -05:00
iabdalkader
d4e1e3d323
Alloc FatFS LFN buffer on stack.
...
* Saves 512 bytes
2016-02-28 21:54:30 +02:00
iabdalkader
2e7ded5dd4
Add GIF module
2016-02-28 21:34:47 +02:00
iabdalkader
963dd69ca0
Fix typo.
2016-02-28 08:06:32 +02:00
iabdalkader
afa1686940
USE OMV_XCLK_FREQUENCY from OMV board config file.
2016-02-28 04:30:37 +02:00
iabdalkader
8b3b7e6ece
Fix skin filter.
...
* Remove Y from GS threshold.
* Not really fixed, just looks slightly better.
2016-02-28 04:10:56 +02:00
iabdalkader
7e1a4169a7
Add match_descriptor function.
...
* A single function to match LBP/FREAK descriptors.
2016-02-28 03:39:13 +02:00
iabdalkader
154cb5be69
Change descriptor functions to accept file pointer.
2016-02-28 03:22:07 +02:00
iabdalkader
acafef5207
Revert HaarCascade.
...
* HaarCascade doesn't really fit into generic descriptor functions.
2016-02-28 02:37:35 +02:00
iabdalkader
67acf7188c
Use one load/save function for all descriptors.
2016-02-28 01:38:24 +02:00
Kwabena W. Agyeman
4ed49082a1
Background Subtraction is working!!!
...
Woot, all the effort to make it so you can manipulate the image buffer
with an image off disk works!
Try out the motion_detection script.
2016-02-27 11:58:37 -05:00
Kwabena W. Agyeman
00ee215e89
Add line op function.
...
All the work previously has been more or less leading up to supporting
this function. The line op function will open a file and execute a
function pointer on each line of the file opened to modify the frame
buffer.
2016-02-27 09:59:54 -05:00
Kwabena W. Agyeman
1121a6f7df
Fixed save image.
...
It now figures out the file type from the file extension. If no file
extension is given it just saves the file as BMP if its not a JPEG image
or JPEG if it's a JPEG image. If you specify an extension and the file is
not of that type then it will give you an error.
The new test_save.py should run until you reach the JPEG image part
where it quits due to lack of JPEG support natively on OV7725 boards.
Maybe JPEG mode should be supoorted by just compressing pictures?
2016-02-26 22:00:04 -05:00
iabdalkader
2b27d1542f
Add save LBP descriptor.
2016-02-26 23:12:15 +02:00
Kwabena W. Agyeman
ac3d1e4373
Add BMP/PNM/JPEG image file loading and saving.
...
There's not a lot of actual functionality changes from the last commit.
However, switching the basic wrapper library to just long_jump on
failure and moving all the state info to structs required changes to all
the base functions in the last commit. The rest of the changes are to
link in the new functionality and to get the code to compile (usbdbg.c
edits).
Next I'll work on a function which abstracts the problem of opening an
image up and executing a line by line function op on it. I already
worked the code out for that. But, it's not in this commit to keep
things streamlined.
2016-02-25 22:26:56 -05:00
iabdalkader
6d1044ffcf
Up the max size of integral images to QVGA.
...
* With the new integral moving window we can support face detection,
keypoints and template matching on QVGA frames. However, it was only
implemented and tested for face detection.
* Increasing the max integral frame now for easier testing.
2016-02-26 03:27:24 +02:00
iabdalkader
c43906eb3d
Fix FREAK's mean_intensity function.
...
* Using imlib_integral_lookup for lookups.
* Rounding errors caused the patch not be rectangular.
2016-02-26 01:47:22 +02:00
iabdalkader
074cf9d5e4
Add pointer to matching keypoint to kp_t struct.
...
* This way we don't need to allocate the array of matching keypoints
and risk running out of memory due to fragmentation. So all or nothing.
2016-02-26 01:44:23 +02:00
iabdalkader
1b27383c9d
Allocate kpts until GC is almost out of memory
...
* Keep allocating keypoints until GC is out of memory.
2016-02-26 00:50:46 +02:00
iabdalkader
5ff5419bf1
Return empty list if no blobs were found.
...
* Fixes #81
2016-02-26 00:47:31 +02:00
iabdalkader
3e4c2c2f3b
Fix keypoint bug.
...
* Set keypoint descriptor to zero, bug was introduced when switching to arrays.
2016-02-26 00:26:37 +02:00
iabdalkader
b15c0c6bc0
Fix formatting.
2016-02-26 00:26:20 +02:00
iabdalkader
5c6056f875
Add file format strings
2016-02-25 11:52:10 +02:00
Kwabena W. Agyeman
d8ac8f9408
Fix swap bug.
...
The code clearly did not swap mins and maxes.
2016-02-24 19:07:57 -05:00
iabdalkader
f34a7e30d7
Use fb_alloc to allocate corners.
...
* Leaves more heap memory for keypoints.
2016-02-24 06:30:14 +02:00
Kwabena W. Agyeman
4df0b5044b
Add top level file open function.
...
Fimrware will now automatically detect the appropriate file type and read
in that file type correctly.
Working on tying on of this stuff togheter next. It's getting a little
bit too complicated to deal with error cases. Need to add error message
function layer.
2016-02-23 21:26:43 -05:00
iabdalkader
c3936f4322
Fix FAST/FREAK ROI.
2016-02-24 00:38:48 +02:00
iabdalkader
4d7db778fb
Remove angle from keypoint.
...
* Not really used right now and saves 4 bytes per keypoint.
2016-02-23 20:43:33 +02:00
iabdalkader
3a747ef952
Use arrays in FAST/FREAK keypoints.
...
* Using arrays for FAST/FREAK keypoints, this saves some memory
allocated for intermediate data.
2016-02-23 18:19:49 +02:00
iabdalkader
7a22cb3e5c
Extract keypoints in one step.
...
* Make find_keypoints extract FAST keypoints.
2016-02-23 00:55:54 +02:00
iabdalkader
93d3885a3c
Set keypoints threshold range between 0 and 100.
2016-02-22 20:31:24 +02:00
iabdalkader
9d02e2a42a
Make match_lbp accept roi and extract second LBP.
2016-02-22 19:41:16 +02:00
iabdalkader
473b8025bf
Fix assertion in find_features.
2016-02-22 19:39:26 +02:00
iabdalkader
015181588a
Fix assertion in find_features.
2016-02-22 19:35:11 +02:00
iabdalkader
ddcb170af0
Cleanup py_image.c
...
* Code cleanups in py_image.c
2016-02-22 19:17:14 +02:00
iabdalkader
124a31772c
Rename helper functions.
2016-02-22 18:47:35 +02:00
iabdalkader
5860695f5d
Move helper functions to new files.
2016-02-22 18:41:50 +02:00
iabdalkader
0f48c12a89
Replace all mp_map_lookup()s with helper functions.
2016-02-22 18:35:00 +02:00
iabdalkader
4bcdb251a3
Update MP branch
2016-02-22 18:02:59 +02:00
iabdalkader
93dc73c7f2
Fix arg to get_rectangle_kw.
2016-02-22 18:00:20 +02:00
iabdalkader
4c63721efa
Use default roi when calling save_image
2016-02-22 17:55:26 +02:00
Kwabena W. Agyeman
901716b878
Made grayscale read/writing fast.
...
RGB565 reading and writing is going to be slow. But, grayscale is going
to be going as fast as the system can go.
If Omnivision has just reversed the byte order of data sent to the
camera we wouldn't have this problem for RGB565.
2016-02-21 21:24:57 -05:00
iabdalkader
4e5b200bdf
Make keypoints_match return the % of matching kpts.
...
* Change keypoints_match to return the percentage of matching keypoints.
2016-02-22 03:31:15 +02:00
Kwabena W. Agyeman
ccd6078c04
Add BMP and P2/3/5/6 file format support.
...
Added BMP file format reading and writing support code and modified the
ppm code to match. Upper level glue code has been left intact to be
altered in future commits.
Tested save() and ppm writing functionality still works. More
comprehensive tests coming soon.
... Kinda concerend that standard image file formats might not cut it for
the speed we'd like to have when using image files in function calls. I
think only grayscale is going to be fast. All other formats require a
lot of prep work.
I think I may modify some of this low level stuff in the future to
autodetect if an entire grayscale image can be read in or written out
in one go to speed that stuff up.
2016-02-21 17:24:32 -05:00
iabdalkader
43dc87d43e
Fix HQVGA resolution.
2016-02-21 23:05:07 +02:00
iabdalkader
032a6e3e4d
Make Haar detector work on ROIs.
2016-02-21 23:01:34 +02:00
iabdalkader
1d4b95353a
Fix Iris bounding box.
2016-02-21 22:39:14 +02:00
iabdalkader
50e53c91bc
Change Iris detector to work on a single region.
...
* This allows the detector to work on ROIs detected by the eye Haar
cascade, which improves the accuracy and speed of the detection.
2016-02-21 20:38:01 +02:00
iabdalkader
e18058f27c
Update MP branch.
...
* Add new qstrs.
2016-02-21 03:46:17 +02:00
Kwabena W. Agyeman
c3cfb117d0
Add frame differencing functions.
...
The negate function gives you the ability to negate an image before
running difference on it. The difference function will subtract two images
from each other and return the abs() of the result.
I believe it would have been optimal to work on the RGB565 image in the
LAB color space. However, since we don't have an inverse LAB lut this is
not possible. If we could replace LAB with YUV then that would free up
space to have an inverse YUV table (YUV->RGB).
2016-02-20 20:29:19 -05:00
Kwabena W. Agyeman
140ceb3b77
Fixed bug in centroid and added tests.
...
Stuff works. Yay! Moving on to other things now.
2016-02-20 16:04:59 -05:00
Kwabena W. Agyeman
88d9c02a1b
Draw keypoints now accepts lists.
...
Made draw keypoints accept lists of (x, y, angle) tuples. I did this so
it could be used to show object rotation easily.
2016-02-20 16:04:59 -05:00
iabdalkader
767b0d99b9
Update MicroPython branch
2016-02-20 20:12:02 +02:00
Kwabena W. Agyeman
0606f5be44
Added binary image functions.
...
Pixels, centroid, orientation, along with the basic binary tool kit
functions like and/or/xor.
2016-02-20 11:46:26 -05:00
iabdalkader
db5464948b
Use fb_alloc in dilate, erode and median.
2016-02-20 17:48:42 +02:00
iabdalkader
f3e85e1dbb
Add fb_free_all.
...
* Free all blocks allocated on fb ram
2016-02-20 17:41:21 +02:00
iabdalkader
84ff228384
Fix RGB skin filter
2016-02-20 06:16:22 +02:00
Ibrahim Abd Elkader
e72e55802c
Merge pull request #73 from kwagyeman/master
...
Fix set pixel.
2016-02-20 06:03:48 +02:00
Kwabena W. Agyeman
b01adfee26
Fixed up drawing code and scripts along with drawing code.
...
Set pixel works too now.
2016-02-19 22:55:50 -05:00
iabdalkader
015f924096
Fix BW filter to handle RGB.
2016-02-20 04:22:03 +02:00
Kwabena W. Agyeman
a035aae493
Fixed set pixel.
2016-02-19 21:05:02 -05:00
iabdalkader
a4ea3e0e20
Add filter functions
...
* Filter functions bypass the default line processing in sensor.c, and pre-process lines.
* Processing is done on the fly, i.e. filters are called from after each line is received.
2016-02-20 03:58:40 +02:00
iabdalkader
a40101e3e0
Fix indent.
2016-02-20 01:26:18 +02:00
iabdalkader
8d47b7b9b2
Add helper functions to lookup color and int.
2016-02-20 01:24:29 +02:00
iabdalkader
e31e504f64
Update MP branch
2016-02-19 17:02:45 +02:00
Kwabena W. Agyeman
bcd5151412
New drawing functions.
...
All the drawing functions have been updated to handle automatic clipping
when drawing offscren and work with both grayscale and RGB565.
Additionally, all functions now accept color arguments.
I've also updated the example scripts with the new functions and tested
them out to make sure they work.
Additionally, I wrote a test suite for the drawing functions to make
sure they work.
2016-02-18 22:40:12 -05:00
iabdalkader
04a2e89fd5
Optimize JPEG stack usage
2016-02-18 17:55:45 +02:00
Kwabena W. Agyeman
f9ae24f3a0
Reverted commands back to old argument format.
2016-02-17 23:50:08 -05:00
Kwabena W. Agyeman
dd6a322646
Added basic image querying functions.
...
Now you can get the width/height/format along with size. Additionally, I
fixed up get and set pixel.
2016-02-17 23:04:23 -05:00
iabdalkader
5aa3555a36
Add enable/disable JPEG to USB commands.
2016-02-18 04:12:53 +02:00
iabdalkader
da15b6a915
* Allow fb compression to be enabled/disabled.
...
* This allows reading RGB images on PC if needed.
2016-02-18 04:01:41 +02:00
iabdalkader
8fd89db5fe
Add Hardware/Software JPEG flags to sensor flags.
...
* Not used right now.
2016-02-18 03:26:41 +02:00
iabdalkader
31679cab9a
Allow Haar detector to accept ROIs.
2016-02-17 22:36:57 +02:00
iabdalkader
61f98e6c21
Cleanup old integral image code.
2016-02-17 20:34:21 +02:00
iabdalkader
dc86780578
Use FB_PIXELS() to get a pointer to fb pixels.
2016-02-17 20:32:50 +02:00
iabdalkader
6460fefa15
Fix old integral image lookup
2016-02-17 20:32:33 +02:00
iabdalkader
d658608061
Fix FB_PIXELS() macro.
...
* If bpp > 2 (means JPEG image) return pixels + bpp (bpp stores image size in JPEG mode)
* If bpp <= 2 (means GS or RGB image) return pixels + w * h * bpp.
2016-02-17 20:27:58 +02:00
iabdalkader
d2ac2c63a8
Use fb_alloc to alloc/free integral images.
2016-02-17 20:06:31 +02:00
iabdalkader
c2e6d96c27
Remove unused xalloc include
2016-02-17 20:01:05 +02:00
iabdalkader
d3d7e5dc39
Use typdef's for sensor enum and structs.
2016-02-17 19:46:45 +02:00
iabdalkader
d639df0bfe
Cleanup sensor.h comments.
2016-02-17 19:08:56 +02:00
iabdalkader
c809ec1b53
Add comment about cropping.
2016-02-17 18:49:51 +02:00
iabdalkader
33e552b276
Add DMA2D to sthal's Makefile
2016-02-17 18:48:20 +02:00
iabdalkader
5fdaf08cac
Increase heap size by 256 bytes.
2016-02-17 18:47:33 +02:00
iabdalkader
c1bf4ad33d
Add one pass standard deviation function.
2016-02-17 18:46:46 +02:00
iabdalkader
027641e51e
Improved Haar detector.
...
* Use a scanning factor proportional to the current scale.
* Use the new integral moving window to allow two integral images
(sum and sum squared) for fast mean, variance and standard deviation.
* Higher FPS and more accurate detection.
2016-02-17 18:43:47 +02:00
iabdalkader
b7b4153367
Add integral moving window.
...
* A new integral image implementation that uses a moving window.
* Integral image is computed in steps, each shift computes n new lines.
* This only requires (image_width * (feature_height+1) * 4) bytes.
* Allows Haar detector to run on QVGA, and allows a second squared
integral image for standard deviation calculations.
2016-02-17 18:43:09 +02:00
iabdalkader
c043ebc233
Update qstrs
2016-02-17 18:16:15 +02:00
iabdalkader
0904f0bb6b
Fix FB_PIXELS()
...
* Return fb->pixels+fb->bpp when JPEG is enabled.
2016-02-17 05:28:28 +02:00
iabdalkader
db667c061f
Rename fb_stack to fb_alloc and call init0 in main
2016-02-17 05:24:17 +02:00
Ibrahim Abd Elkader
cfa9b6e440
Merge pull request #67 from kwagyeman/master
...
Add framebuffer alloc functions.
2016-02-17 05:07:34 +02:00
Kwabena W. Agyeman
024b16d475
Added some helper stuff.
...
The alloc functions allow you to use the framebuffer as a storage space.
It's very simple but effective. You can alloc which puts some memory on a
stack... and then when you're done you can free which pops the stack.
Pops (frees) must be done in reverse order of pushes (allocs).
In general, functions should call the init code before using the stack.
It could be in a bad state.
Also, I added some wrappers for file system functions to make that stuff
easier. This will be used in the future.
2016-02-16 21:31:35 -05:00
Ibrahim Abd Elkader
983f1783e3
Merge pull request #66 from kwagyeman/master
...
Update lookup tables and scripts.
2016-02-17 03:57:51 +02:00
Kwabena W. Agyeman
88f37014f1
Finished updating tables.
...
With new RGB565<->RGB888 scaling. This included redoing the LAB/YUV/XYZ
tables. I translated the table gen code to python also and added
comments as to where the math came from.
And yes, I tested and compared the tables to make sure they weren't
borken. The tables are slightly different... but, if look at the
progression of values loosely you'll see the triplets are very close to
each other when doing a compare. This is to be expected given I used a
slightly better scaling algo.
2016-02-16 19:37:19 -05:00
Ibrahim Abd Elkader
e3b76ebabb
Merge pull request #65 from kwagyeman/master
...
* Move image macros to imlib.c.
* Add prefix to image macros.
* Add RGB LUT, and gen_rgb2rgb.py script.
2016-02-16 17:24:48 +02:00
Kwabena W. Agyeman
6699ea4d0e
Added RGB LUT.
...
And modified the rainbow table so that the RGB888 to RGB565 translation
is done using a rounding technique versus hard floor. This is also used
for the RGB565<->RGB888 LUTs.
Additionally, I added a bunch of stuff to the image library to make
working with images easier. I will using these helpers in the future.
Finally, I cleaned up trailing space in the font stuff (pet peeve).
2016-02-15 22:12:25 -05:00
Ibrahim Abd Elkader
42db630564
Merge pull request #64 from kwagyeman/master
...
Fixed up point and rect.
2016-02-15 04:58:46 +02:00
Kwabena W. Agyeman
67b9a815b3
Switch int to int16_t.
2016-02-14 21:54:55 -05:00
Kwabena W. Agyeman
0384d43304
Fixed up point and rect.
...
Point didn't need many changes. However, for rect I made the merge
function alot better so it won't alloc while merging, just free.
Additionally, I added a function to get the intersecting rectangle of an
image. This will be used for all functions that accept a subimg
argument. This function allows the user to basically pass any wild and
crazy rect they want and the function will find the intersecting area (if
it exists) and return just that to operate on. This is good for "do what
I mean" functionality versus "do what I say".
2016-02-14 21:13:55 -05:00
Ibrahim Abd Elkader
020ed9369a
Merge pull request #63 from kwagyeman/master
...
Fixed up array functions.
2016-02-15 02:45:11 +02:00
Kwabena W. Agyeman
84a964f930
Fixed up array functions.
...
There were a lot of missing features in the array module. I added
quicksort based on the MP sort function and I expanded the array code so
you can do stuff like take() which lets you get an object from an array
and easily put it into another array.
I also fixed the "struct array" problems in the code. Anonymous structs
have to go.
2016-02-14 19:29:34 -05:00
iabdalkader
46d91cc95a
VJ: Use a scanning step proportional to scale.
2016-02-15 00:58:17 +02:00
Ibrahim Abd Elkader
d850325de4
Merge pull request #60 from kwagyeman/master
...
Cleaned up some whitespace and unnecessary header.
2016-02-14 17:02:18 +02:00
Kwabena W. Agyeman
ffaea46159
Removed unneeded headers.
...
And... added a comment about the implementation being standard.
2016-02-14 09:38:42 -05:00
Kwabena W. Agyeman
c622e05b58
Re-added timeout.
...
Given how the SCCB won't fail it should really be 0... but, then the
rountines wouldn't return if there was a failure.
2016-02-14 09:27:04 -05:00
iabdalkader
5deaf38a34
Switch to 2x2 (4:2:0) Chroma Subsampling.
2016-02-14 11:20:04 +02:00
iabdalkader
77239a5891
Support 2x1(4:2:2) Chroma subsampling.
2016-02-14 07:34:43 +02:00
Kwabena W. Agyeman
b6eb26d324
Lowered timeout.
...
It was previous set to 10 seconds... since the timeout is in ms. Now
it's at 1 second. This represents 100 clocks at 100KHz I2c. Also, I
noticed general call mode was being set for the I2C which is not at all
something we want (the ability to address multiple devices at once).
I tested the changes with all my cameras. No problems. This was 4 units
(2 being the original protos).
2016-02-13 23:05:27 -05:00
Kwabena W. Agyeman
abac52534c
Reviewed code. No errors. Cleaned up some whitespace and unncessary
...
header.
2016-02-13 21:55:10 -05:00
iabdalkader
597b9aeba4
Emit proper JPEG headers for grayscale images.
2016-02-14 01:54:19 +02:00
Ibrahim Abd Elkader
21eabc63bf
Merge pull request #59 from kwagyeman/master
...
Made XALLOC better.
2016-02-14 00:59:50 +02:00
Kwabena W. Agyeman
456c4ab757
Made XALLOC better. Now the functions detect if you are trying to alloc
...
0 bytes and don't fail if you do that. Additionally, I added some
comments on behavior. (I studied what the gc functions did extensively
to know the behavior of this stuff). All changes have been tested with
code that does memory allocs.
2016-02-13 13:56:33 -05:00
iabdalkader
ee6192aeba
Use a faster BinDCT.
...
* A slightly faster BinDCT.
* JPEG time: GS:22ms RGB:62ms (tested on color-bar images).
2016-02-13 04:28:26 +02:00
Ibrahim Abd Elkader
2e9f25515b
Merge pull request #57 from kwagyeman/master
...
Made Soft I2C Pretty
2016-02-12 18:05:03 +02:00
Kwabena W. Agyeman
095c95a998
Made Soft I2C Pretty
2016-02-12 00:31:26 -05:00
iabdalkader
9685cbb727
Small JPEG optimizations.
2016-02-12 07:08:22 +02:00
iabdalkader
3acb5903a2
Optimize Grayscale JPEG.
...
* Skip UV tables for Grayscale images.
2016-02-12 04:40:36 +02:00
iabdalkader
f8bfbfabe9
Add sensor.get_id function to return PID.
2016-02-10 19:00:05 +02:00
iabdalkader
4ed583380e
Remove mp.h include
2016-02-10 18:24:30 +02:00
iabdalkader
a0b2f3f7fa
Fix frame request flag.
2016-02-09 03:40:20 +02:00
iabdalkader
0a8a1fd58c
Return error from extclk_config.
2016-02-09 02:44:26 +02:00
iabdalkader
312fabad13
Add jpeg line buffer to linker script.
2016-02-09 02:17:05 +02:00
iabdalkader
d4b13d21ce
Add support for special effects.
2016-02-09 02:08:07 +02:00
iabdalkader
dbd69a3a25
Remove framebuffer locking.
...
* Not needed anymore.
2016-02-09 01:11:25 +02:00
iabdalkader
74d084ee6b
Add frame size check to keypoints
2016-02-09 01:05:34 +02:00
iabdalkader
ed69e4b15a
Transfer raw frames line by line.
...
* Add HAL_DCMI_Start_DMA_MB to allow line by line transfers for
raw frames using DMA double buffering feature.
* This means bigger grayscale resolution that would not otherwise
fit into RAM.
* YUV to Grayscale conversion on the fly (as the frame being read).
* It's possible to perform differencing (and maybe JPEG) on the fly.
* Additionally, FPS for grayscale should be exactly like RGB
(since there's no additional step after capturing the frame)
2016-02-08 16:53:11 +02:00
iabdalkader
bcb72ef7ff
Use a single resolution table.
2016-02-08 16:11:57 +02:00
iabdalkader
dd8fcf0ece
Better JPEG scaling.
2016-02-07 03:20:04 +02:00
iabdalkader
4627f21623
Remove extra resolution from size table.
2016-02-07 02:39:32 +02:00
iabdalkader
fa27c540ee
Use __REV16 to swap pixels
2016-02-07 02:36:26 +02:00
iabdalkader
69cd07e923
Add sanity checks and meaningful error messages.
2016-02-07 02:34:47 +02:00
iabdalkader
9a18497b56
Adjust board configs.
2016-02-07 02:34:03 +02:00
iabdalkader
07e0385bf0
Add HQVGA resolution.
2016-02-07 02:32:16 +02:00
iabdalkader
f074958595
Use __REV instructions in imlib
2016-02-06 23:57:59 +02:00
iabdalkader
700d82642b
Enable H/V zoom to support arbitrary scaling.
2016-02-06 22:34:00 +02:00
iabdalkader
70d3ffcb50
Enable selftests
2016-02-06 21:56:01 +02:00
iabdalkader
79264b6ab0
Fix bug in integral image.
...
* First row was skipped.
2016-02-06 21:15:39 +02:00
iabdalkader
05da962b73
Write the LSBs of VOUTSIZE and HOUTSIZE
2016-02-06 20:36:18 +02:00
iabdalkader
7fff65dbd2
Add boards dir to Makefile
2016-02-06 19:32:35 +02:00
iabdalkader
eb97a51183
Fix the ABI version to avoid breaking older IDE's
2016-02-06 19:19:55 +02:00
iabdalkader
b8e442b60c
Add openmv board config headers and remove hal_msp.h
2016-02-06 19:13:45 +02:00
iabdalkader
cf641af6b0
Add command to return script running flag.
...
* Return script running flag to disable/enable execute and stop buttons.
* Up ABI version
2016-02-06 17:59:52 +02:00
iabdalkader
d76fa2b558
Remove the JPEG offset buffer.
...
* Set the address of the DMA transfer to addr + offset to allow JPEG
Compression of the framebuffer without overwriting image pixels.
* This saves 1KBs of stack and conditionals in jpeg_put_bytes/char.
2016-02-06 17:13:53 +02:00
iabdalkader
544dee93ae
Remove USBDBG clear flags (not needed anymore).
2016-02-06 17:03:50 +02:00
iabdalkader
c0a9e5279f
Use soft_reset in main.
...
* This fixes the issue with script upload failing when gc is locked,
and resets peripherals to their initial state.
2016-02-06 15:32:12 +02:00
iabdalkader
fb429f175f
Lower sleep time after sensor power cycle.
2016-02-06 15:31:26 +02:00
iabdalkader
14df7fc05f
Add sensor_init0.
...
* This resets the framebuffer state.
2016-02-06 04:08:39 +02:00
iabdalkader
14891b1cc8
More JPEG cleanup
2016-02-06 03:53:48 +02:00
iabdalkader
b2480801d1
Small JPEG optimizations.
2016-02-06 00:14:25 +02:00
iabdalkader
7f76f68d82
Fix quantization tables initialization.
2016-02-05 23:55:52 +02:00
iabdalkader
5721ab40da
Adjust stack and heap sizes
2016-02-05 23:55:30 +02:00
iabdalkader
a231b17055
JPEG-compress the frame buffer to lower bandwidth.
2016-02-05 02:42:03 +02:00
iabdalkader
ab833d4302
Set all sensors XCLK to 12MHz
2016-02-05 02:41:03 +02:00
iabdalkader
ec1de1c2eb
Replace sensor struct clock polarities with flags.
2016-02-05 02:38:07 +02:00
iabdalkader
e0c5822c28
Raise exception if pixel format is not supported.
2016-02-05 02:15:22 +02:00
iabdalkader
8e60588455
Support in place JPEG compression.
...
* Modify the JPEG compressor to allow in place compression.
2016-02-04 21:56:48 +02:00
iabdalkader
e9147d4594
Remove extra byte in JPEG image size.
2016-02-04 07:04:20 +02:00
iabdalkader
7fff1dc12b
Add Grayscale Support to the JPEG compressor.
2016-02-04 07:03:49 +02:00
iabdalkader
bab1ec7dbf
Mirror image when colorbar is enabled.
...
* This allows the OV7725 to pass self-tests without changes.
2016-02-04 00:38:30 +02:00
iabdalkader
3627778d80
Increase heap to 0xCB00
2016-02-04 00:19:04 +02:00
iabdalkader
562e2ce9ca
Add FSIN pin.
2016-02-04 00:07:50 +02:00
iabdalkader
d378a1bbfa
Remove unused defines.
2016-02-04 00:03:01 +02:00
iabdalkader
22154c2bad
Adjust PLL setting.
...
* XCLK=12MHz PCLK=48MHz
2016-02-04 00:01:15 +02:00
iabdalkader
fd418576c0
Optimize JPEG library.
2016-02-04 00:00:29 +02:00
iabdalkader
726e3a8e21
Add RGB565 to YUV lookup table
2016-02-03 23:45:20 +02:00
iabdalkader
23fe7b6363
Move framebuffer sync code before snapshot code.
...
* This forces the IDE to read the image before any drawing, which
Fixes the double buffering issue.
2016-02-03 02:47:54 +02:00
iabdalkader
38efbd5bbe
Add missing register.
2016-02-02 00:43:12 +02:00
iabdalkader
5203fd8434
Pass slave address to SCCB_Read/Write
...
* Add slave address to sensor struct.
* Pass slave address to every SCCB_Read/Write function.
* Pass a pointer to the sensor struct to sensor functions.
2016-01-28 14:09:12 +02:00
iabdalkader
6752aeacf3
Add support for OV7725
2016-01-28 12:42:17 +02:00
iabdalkader
756c5965d4
Add initial OV7725 driver
2016-01-28 12:40:55 +02:00
iabdalkader
b4aeaa4f16
Add SCCB_Probe function.
...
* Remove hard-coded SCCB slave address.
* Add probe function to find slave address.
2016-01-28 12:37:29 +02:00
iabdalkader
3bad11fd61
More fixes to MLX driver
...
* Fix read raw to return rotated ir readings.
* Add refresh rate parameter to mlx_init.
* Rename mlx_read to mlx_read_ir.
* Add mlx_read_ta to return the ambient temperature.
2016-01-25 23:30:17 +02:00
iabdalkader
7358952c14
Misc fixes to the MLX driver
2016-01-25 22:31:57 +02:00
iabdalkader
5677c28b4d
Update MLX driver.
...
* Update MLX driver to support the new MLX90621.
2016-01-24 02:13:31 +02:00
iabdalkader
a846005c16
Add more comments to imlib_threshold
2015-10-04 01:15:30 +02:00
iabdalkader
b55a93069d
Remove unused prototype.
2015-10-04 01:09:52 +02:00
iabdalkader
2bda1d13a3
Increase sensor_snapshot timeout
2015-10-04 00:26:46 +02:00
iabdalkader
5a8c7ec311
Add PY_ASSERT_FALSE_MSG to py_assert.h
2015-10-04 00:10:28 +02:00
iabdalkader
5924de6ee3
Increase sensor_snapshot timeout.
2015-09-26 03:25:45 +02:00
iabdalkader
2b9b69bf92
Add OPENMV1 WINC1500 BSP header
2015-09-24 14:29:38 +02:00
iabdalkader
4f392e4639
Rename pincfg.h to stm32f4xx_hal_msp.h
2015-09-24 14:21:39 +02:00
iabdalkader
a1e4f79256
Clean up pincfg.h
2015-09-24 14:15:10 +02:00
iabdalkader
8a28cba8c7
Fix servo timers
...
* call servo_init in main
* Fix servo timer, number of channels and pin mappings.
2015-09-24 02:04:51 +02:00
iabdalkader
088b39c521
Remove redundant m2m_ota source file
2015-09-23 16:31:47 +02:00
iabdalkader
d11e8f7212
Inline systick_has_passed call in sensor_snapshot
2015-09-23 02:03:26 +02:00
iabdalkader
8fabc9b35a
Fix image module globals_dict_table
2015-09-22 02:27:51 +02:00
iabdalkader
e3f41d674e
Add sensor_snapshot timeout
2015-09-22 01:34:21 +02:00
iabdalkader
47ae5a7669
Add ATWINC1500 driver
2015-09-15 02:41:36 +02:00
iabdalkader
54c77b2f48
Add systick sleep and current_millis prototypes.
2015-08-20 16:38:07 +02:00
iabdalkader
4491000c44
Remove some old unused files
...
* omv/systick.h
* omv/stm32f4xx_it.c
2015-08-20 16:29:11 +02:00
iabdalkader
78a6d54c89
Remove old systick.c
2015-08-20 16:26:55 +02:00
iabdalkader
d031ea87f1
Implement set_pixel
2015-08-20 16:25:37 +02:00
iabdalkader
940f3a0d7d
Disabled self tests for OMV1
...
* RGB QVGA doesn't fit in OMV1's RAM, fix the script or write another one.
2015-08-18 23:54:49 +02:00
iabdalkader
d7130234d3
Return script buffer without copying.
...
* Since IDE interrupts are enabled after compiling the script, we can
just return a pointer to the script buffer without copying it first.
2015-08-17 19:48:45 +02:00
iabdalkader
b33f7b4c29
Add functions to disable/enable IDE interrupts
...
* This constrains IDE interrupts avoiding the need for critical sections.
2015-08-17 19:48:18 +02:00
iabdalkader
bf9401ee6f
Remove unused #define
2015-08-16 01:11:05 +02:00
iabdalkader
20b823333a
Free script buffer after copying it.
2015-08-16 00:16:16 +02:00
iabdalkader
02ac02643e
Increase QCIF res
2015-08-15 16:54:09 +02:00
iabdalkader
891f6ab96b
Move FS cache to main SRAM for OMV2
2015-08-15 16:50:14 +02:00
iabdalkader
9e19e0ffc6
Re-enable TIM3 to flush storage periodically.
2015-08-14 16:02:11 +02:00
iabdalkader
801f74c2da
Remove global misc functions
...
* Remove redundant functions
2015-08-13 23:18:59 +02:00
iabdalkader
7d949694ef
Fix main script FS template
2015-08-13 23:15:57 +02:00
iabdalkader
eb29fc8894
Add sanity checks to draw_string
2015-08-13 23:15:35 +02:00
iabdalkader
83c52c020f
Fix draw_string to support Grayscale
2015-08-13 23:14:52 +02:00
iabdalkader
533f0e3e8f
Re-init MP state and use pyexec_file/str
...
* Use pyexec_file/str with re-raise flag
* re-init MP state before executing scripts
2015-08-13 00:22:55 +02:00
iabdalkader
cbbd93b0ca
Add the selftest script in main
2015-08-09 22:06:57 +02:00
iabdalkader
d9d991054d
Clear debug flags when initializing usbdbg
2015-08-09 21:58:31 +02:00
iabdalkader
54288c5351
Add image module
...
* Move Image class and misc functions to image module
2015-08-09 13:00:06 +02:00
iabdalkader
0dffedda92
Fix typo
2015-08-08 00:33:26 +02:00
iabdalkader
fa12a1a704
Log fatal errors to file
2015-08-08 00:31:59 +02:00
iabdalkader
4376e87609
Revert sensor_init and check error after USB init
2015-08-08 00:30:39 +02:00
iabdalkader
9af3b9eaba
Return different error codes in sensor_init
2015-08-07 23:31:45 +02:00
iabdalkader
aaeaff476d
Delay sensor_init
...
* Call sensor_init after initializing USB mass storage to log errors.
2015-08-07 23:16:30 +02:00
iabdalkader
b99df66659
Wait for IDE to read the frame buffer
...
* Wait for the IDE to read the frame buffer after trying the lock.
2015-08-07 17:55:11 +02:00
iabdalkader
5f54935378
Fix internal ADC channels readings
2015-08-06 23:13:09 +02:00
iabdalkader
35df760a8c
Init one ADC channel in ADCAll
...
* ADC channel 5 in OMV2
2015-08-06 12:20:58 +02:00
iabdalkader
4c9982b7e9
Rename usbdbg clear script to clear flags
2015-08-06 12:20:17 +02:00
iabdalkader
99bedb06b6
Move firmware files to board directories.
2015-08-01 11:16:59 +02:00
iabdalkader
939c47da6c
Add ring buffer
2015-08-01 11:07:22 +02:00
iabdalkader
8c1ff900a8
Fix OPENMV1 build
...
* Fix board config files
* Fix linker script
* Fix sdcard CD
2015-08-01 10:56:37 +02:00
iabdalkader
856938fea5
Add image get/set pixel
2015-07-31 14:13:09 +02:00
iabdalkader
78abfb87e6
Add PY_ASSERT_TRUE_MSG
2015-07-31 14:11:26 +02:00
iabdalkader
269345303b
Add image subscr
2015-07-31 12:37:45 +02:00
iabdalkader
e446e03f9d
Remove check for unused pyexec_mode_kind
2015-07-30 17:37:31 +02:00
iabdalkader
b42da07430
Remove reset_mode
2015-07-30 17:33:12 +02:00
iabdalkader
d43eda7e51
Move parse and compile inside exception handler
...
* This allows syntax errors to be caught and printed
2015-07-29 23:04:41 +02:00
iabdalkader
86a141e51a
Add set color bar function
2015-07-29 22:32:05 +02:00
iabdalkader
f6d5129cc7
Clear fb ready flag when stopping script
...
* This stops the IDE from reading the same frame buffer
2015-07-29 22:04:36 +02:00
iabdalkader
4174eaf029
Generate binaries in firmware dir
2015-07-28 20:33:05 +02:00
iabdalkader
3d31d2662a
Update USB VID/PID
2015-07-21 17:42:31 +02:00
iabdalkader
4965343069
Update micropython branch to r1.4.4
2015-07-18 07:05:39 +02:00
iabdalkader
f34b07f015
Update print function
2015-07-18 07:05:13 +02:00
iabdalkader
7fbe54ad4e
Update headers for MP 1.4.4
2015-07-18 07:04:46 +02:00
iabdalkader
39b40526d3
Update Makefile for MP 1.4.4
2015-07-18 06:58:47 +02:00
iabdalkader
302dde7017
Update MP
...
* Add HardFault debugging.
2015-07-18 05:58:31 +02:00
iabdalkader
f7d71cd594
More parse and compile script to main thread
2015-07-13 07:51:48 +02:00
iabdalkader
e2f634675f
Rename ptr to mem for consistency.
2015-07-13 07:07:46 +02:00
iabdalkader
a26f752285
Change memory exception to MemoryError
2015-07-13 07:07:02 +02:00
iabdalkader
b5e90c4c8d
Add xalloc_fail
2015-07-13 07:06:25 +02:00
iabdalkader
a94b324bb4
Call DCMI DMA abort in sensor reset function
...
* Call DMA abort in sensor reset function just in case there's a
DMA request in progress.
2015-07-12 07:58:41 +02:00
iabdalkader
4618aeb496
Enable DCMI interrupts
2015-07-12 07:57:34 +02:00
iabdalkader
16fdecf7f4
Remove hard sensor reset
2015-07-12 04:11:44 +02:00
iabdalkader
c76c75e7b0
Fixe jpeg mode assignment
2015-07-12 03:15:10 +02:00
iabdalkader
54bf1b4334
Add JPEG mode to dcmi_config
...
* This also disables DCMI interrupts the second time dcmi_config is called
2015-07-12 02:24:46 +02:00
iabdalkader
3f9d97c511
Increase heap
2015-07-12 01:48:33 +02:00
iabdalkader
fb7d17a127
Remove xalloc_init
2015-07-12 00:38:26 +02:00
iabdalkader
c5fb6657fd
Use nlr_raise in xalloc
2015-07-12 00:36:48 +02:00
iabdalkader
765632af91
Check number of stages when loading cascade
2015-07-10 04:10:03 +02:00
iabdalkader
57ebe7eb9c
Fix the number of features and rectangles
...
* Fix the number of features and rectangles when loading cascades from flash
2015-07-10 02:58:07 +02:00
iabdalkader
e273e43961
Add stages kw arg to load cascade function
2015-07-10 02:57:30 +02:00
iabdalkader
e00d92f6f7
Fix find_features
...
* Add all objects to returned list.
2015-07-10 01:36:26 +02:00
iabdalkader
9d51051ba8
Return FR_NO_FILE if built-in cascade not found
2015-07-09 04:38:07 +02:00
iabdalkader
d0d1883354
Add Built-in Haar Cascades
...
* Add common cascades to flash
2015-07-09 03:49:57 +02:00
iabdalkader
ff611f3706
Increase flash storage size
2015-07-08 23:08:41 +02:00
iabdalkader
4ff2d795bd
Fix text length
2015-07-08 23:00:10 +02:00
iabdalkader
42b439a52e
Change IDE interrupt type
...
* Change IDE interrupt from OSError to Exception
2015-07-08 22:27:44 +02:00
iabdalkader
3ba0612a8a
Add another standard baudrate for the IDE
2015-07-08 02:39:38 +02:00
iabdalkader
0ffb74df7a
Lower pixel clock frequency to 54MHz
...
* Lower pixel clock frequency to be within the DCMI specs (max 54MHz)
2015-07-04 21:13:16 +02:00
iabdalkader
182a844cd2
Add FW version command
...
* Add FW version command to usbdbg.
* Add FW version function to openmv.py
* Check for major version in the IDE.
2015-07-04 03:44:42 +02:00
iabdalkader
2de4c717eb
Cleanup the MLX module
...
* Set update rate to 32Hz
* Use ambient temp to scale IR data
* Return a GRAYSCALE or RAINBOW image
2015-05-07 09:54:39 +03:00
iabdalkader
a674b99474
Small fixes to stmhal/spi
2015-05-05 14:04:56 +03:00
iabdalkader
d38112fb3c
Add set_saturation function
2015-05-05 14:02:44 +03:00
iabdalkader
54ae5ff425
Add new resolution for LCD
2015-05-05 13:39:16 +03:00
iabdalkader
e540a52f29
Fix soft I2C pin mapping
2015-05-05 13:29:53 +03:00
iabdalkader
09e77b5da8
Fix volume labels and root dir
2015-05-04 11:51:46 +03:00
iabdalkader
5bd4876989
Update MP
2015-05-03 13:13:09 +03:00
iabdalkader
8a68746a37
Increase heap size
2015-05-03 11:04:16 +03:00
iabdalkader
1879988bcb
Set correct stack limit for MP
2015-05-03 10:58:58 +03:00
iabdalkader
aed7c8678e
Clear frame ready in sensor_init
2015-05-03 10:25:15 +03:00
iabdalkader
ace7b976fb
Remove init_modules
...
* init modules is not needed anymore.
2015-05-03 10:22:07 +03:00
iabdalkader
4d92e632fc
Use MCO as sensor clock source for OMV2
2015-05-01 04:59:28 +03:00
iabdalkader
b9801708c8
Fix SDCARD chip detect
2015-05-01 04:58:39 +03:00
iabdalkader
1c66afe971
Fix mlx undefined reference
2015-05-01 04:58:16 +03:00
iabdalkader
117b6d862d
Alloc only k rows for median filter
2015-05-01 04:57:14 +03:00
iabdalkader
76c96cab61
Use FB for intergal images for OMV1/2
2015-05-01 04:56:41 +03:00
iabdalkader
74cba716b7
Fix image window for OMV2
2015-05-01 04:44:53 +03:00
iabdalkader
57cccca3f3
Add support for OpenMV2
2015-05-01 04:44:31 +03:00
iabdalkader
338320ad3c
Update MP
2015-04-29 04:13:07 +03:00
iabdalkader
fa7ab8f70a
Rename lab.c to lab_tab.c
2015-04-29 04:11:37 +03:00
iabdalkader
6231d528d2
Use pydfu.py instead of dfu-util
...
* Latest libusb broke dfu-util
* See https://github.com/walac/pyusb/issues/94
2015-04-29 04:08:39 +03:00
iabdalkader
6886c7b531
Update top Makefile
...
* Remove old modules
* Add MP modules
* Update for new MP code
2015-04-29 04:07:29 +03:00
iabdalkader
021fa678c9
Remove old pin config and MSP code
2015-04-29 04:05:58 +03:00
iabdalkader
fafd586b32
Disable LAB table for OpenMV1
...
* The LAB lookup is too big for 512K flash, it used to fit
at some point but not after enabling all the needed modules.
* The imlib_rgb_to_lab function is way slower than LAB lookup,
but it's a must to maintain support for OMV1
2015-04-29 04:02:40 +03:00
iabdalkader
8197a44c3f
Fix fast_cbrtf
2015-04-29 04:01:36 +03:00
iabdalkader
b244eb0ec8
Remove old modules from omv/Makefile
2015-04-29 00:46:45 +03:00
iabdalkader
977b068316
Use pendsv_nlr_jump_hard to schedule HW PENDSV
2015-04-29 00:46:02 +03:00
iabdalkader
7cd5e9e840
Add comment on RGB565->RGB888 macros
2015-04-28 23:29:50 +03:00
iabdalkader
aeee94726b
Remove USB from ISR section
2015-04-28 22:48:27 +03:00
iabdalkader
12fd9d5df2
Return compiled script instead of vstr
...
* Compile the script when the last part is received.
* This makes sure script_buf is not changed before it's compiled
2015-04-25 23:39:58 +03:00
iabdalkader
ecdcac56d2
Add missing headers
2015-04-25 23:34:42 +03:00
iabdalkader
9b068dd992
Add extern ffs_strerror
2015-04-25 23:06:36 +03:00
iabdalkader
1edee935d1
Add atomic sections to SCCB/I2C read/write
2015-04-25 22:28:02 +03:00
iabdalkader
a8928ca3b2
Move clock module to py_time
2015-04-22 02:27:37 +02:00
iabdalkader
6d2fafa947
Remove old peripheral modules
...
* Remove old peripheral modules
* Use MP's built-in modules
2015-04-22 00:07:20 +02:00
iabdalkader
74d6fa4314
Remove RNG
2015-04-15 23:40:11 +02:00
iabdalkader
74bb497e52
Update FatFS to 0.10c
2015-04-15 23:40:11 +02:00
iabdalkader
2ccfee7837
Update branch
...
* Flush 64-bytes packets with empty packets
2015-02-11 07:13:37 +02:00
iabdalkader
63b156cf48
Reset Rx/Tx pointers when switching cdc/debug mode
2015-02-08 11:19:01 +02:00
iabdalkader
754cce406c
Implement debugging over CDC
2015-02-08 11:12:24 +02:00
iabdalkader
a888f769bc
Fix temlate matching
2014-12-18 20:15:13 +02:00
iabdalkader
9ec26a53d0
Remove empty interface from second config
...
* Windows 7 64-bit doesn't like it.
2014-11-15 04:24:02 +02:00
iabdalkader
d48a7ef1e9
Update Makefiles to use DfuSe files.
2014-11-15 04:21:00 +02:00
iabdalkader
f524650881
Add DFU image
...
* Generate dfu image
2014-11-11 01:33:16 +02:00
iabdalkader
6a0af1f3c3
Use separate configs for cdc/hid and debug
...
* This is the only solution that works with libusb on Windows
* Soft-disconnect is used to switch between configs
2014-11-10 19:36:34 +02:00
iabdalkader
40d43a2a8c
Add OMV Debug Interface
2014-11-06 15:14:33 +02:00
iabdalkader
551a8be156
Increase delay for IDE
2014-11-02 15:53:02 +02:00
iabdalkader
cea31c1774
Use one request for locking and header
...
* Use one request for locking and FB header to save bandwidth
2014-11-01 15:58:52 +02:00
iabdalkader
899ec65507
Add delay if IDE tried to lock FB
...
* Fix #27
2014-10-31 13:57:17 +02:00
iabdalkader
ef9bf26981
Add Eye Detector
2014-10-25 15:33:02 +02:00
iabdalkader
cf92de7c8a
Modify LBP to use a cascade
2014-10-21 16:51:07 +02:00
iabdalkader
a2780e5a5a
Add invert,binary
2014-10-21 16:47:00 +02:00
iabdalkader
56c7bb31ab
Fix typo
2014-10-20 13:17:33 +02:00
iabdalkader
e4003e3e96
Enable UXGA
2014-10-06 17:37:51 +02:00
iabdalkader
07b1269ed0
Fix read/write return mp_obj_t
2014-10-05 00:14:25 +02:00
iabdalkader
4891184b67
Fix uart read/write
2014-10-03 22:56:39 +02:00
iabdalkader
8b0456b93e
Update MP branch
2014-10-02 15:54:02 +02:00
iabdalkader
97ea356e9d
Use larger stack limit
2014-10-02 01:38:50 +02:00
iabdalkader
b45dec9b1a
Use MP_ATOMIC_SECTION to enable/disable IRQs
2014-10-02 01:38:28 +02:00
iabdalkader
17d3e73f86
Update MP branch
2014-10-01 01:41:38 +02:00
iabdalkader
d2fd0f631d
Disable patch prog
2014-10-01 01:41:13 +02:00
iabdalkader
559da9af95
Remove RNG from ISR
2014-10-01 01:35:59 +02:00
iabdalkader
db7bce66d1
Update STM Cube to 1.3
2014-10-01 01:26:03 +02:00
iabdalkader
90309715c9
Pass RGB to image_threshold and convert to LAB
2014-09-28 16:40:06 +02:00
iabdalkader
2ba464310e
Fix XYZ lookup
2014-09-28 15:37:23 +02:00
iabdalkader
2706b0c41b
Move xyz table to /img
2014-09-28 15:35:51 +02:00
iabdalkader
3fca55514a
Remove commented code
2014-09-27 18:57:12 +02:00
shimniok@gmail.com
dbb2019b9a
Added feature to reset into DFU from omv onboard software when receiving USBDB_BOOT
2014-09-26 22:55:01 -06:00
shimniok@gmail.com
cbace2759a
added functionality for starting bootloader via USBDBG_BOOT
2014-09-26 11:15:27 -06:00
iabdalkader
8467c67f06
Add System Reset Command
...
* Add sys reset to USBDBG and IDE
2014-09-25 03:37:00 +02:00
iabdalkader
d6375f0292
Use gpio module to reg interrupts
2014-09-25 00:14:39 +02:00
iabdalkader
422778e7b3
Add priority, sub_priority to gpio_init_exti
2014-09-24 23:56:30 +02:00
iabdalkader
a70dc7052d
Fix GPIO pin defs
2014-09-24 23:55:15 +02:00
iabdalkader
0224c29588
Fix GPIO pin mapping
2014-09-24 23:26:59 +02:00
iabdalkader
04c1fe0d0e
Fix FAST ROI
...
* Find all KPs then discard based on ROI (for small ROIs)
2014-09-24 22:56:45 +02:00
iabdalkader
ec8ed77f27
Fix SDRAM Timings
2014-09-24 22:25:27 +02:00
iabdalkader
ce3d435137
Add load_lbp
2014-09-24 22:25:14 +02:00
iabdalkader
3a04f1c74a
Optimize PPM writer
2014-09-20 09:02:24 +02:00
iabdalkader
65cd8a133a
Update license
...
* Switch to MIT
* Add license notice to source files
2014-09-20 05:09:52 +02:00
iabdalkader
bd56912fb6
Fix uSD SPI issue corrupting framebuffer
2014-09-20 03:34:54 +02:00
iabdalkader
5f51438029
Add LBP
2014-09-20 02:02:22 +02:00
iabdalkader
a25650562c
Cleanup main
2014-09-18 19:23:10 +02:00
iabdalkader
27f5ae0093
Move FS cache to heap
...
* This will alloc FS cache only if it's needed.
* Increase heap to ~45K
2014-09-18 19:22:21 +02:00
iabdalkader
e01565cdb5
Fix quant table init
2014-09-17 22:16:04 +02:00
iabdalkader
c41cbc1e85
Format LICENSE
2014-09-17 21:42:23 +02:00
iabdalkader
f470517b2b
Disable a few modules, update qstr
2014-09-17 21:40:30 +02:00
iabdalkader
8493538076
Remove old syscalls file
2014-09-17 21:40:13 +02:00
iabdalkader
a44be5d38b
Compile for OMV2 only
2014-09-17 21:39:35 +02:00
iabdalkader
8854f0a9d5
Add JPEG encoder
2014-09-17 21:39:19 +02:00
iabdalkader
9cb9c4b892
Move more Objects to ISR section
2014-09-17 21:32:55 +02:00
iabdalkader
cc522583bb
Fix lab,xyz tables
2014-09-17 21:20:19 +02:00
iabdalkader
73543a727e
Expand heap a bit
2014-09-12 20:55:29 +02:00
iabdalkader
dcd65daee5
Add threshold, scale KW args to VJ detector
2014-09-12 20:53:43 +02:00
iabdalkader
52c71f387e
Add STD to cascade.
2014-09-12 19:00:21 +02:00
iabdalkader
9fa248f44b
Bug fixes and optimization
2014-09-12 18:59:49 +02:00
iabdalkader
c30adb6ea1
Fix scaled integral
2014-09-12 18:44:26 +02:00
iabdalkader
8bfc2c92a9
Add threshold param to haar detector
2014-09-12 14:32:18 +02:00
iabdalkader
918026a22c
Use ROI in Keypoint detector
2014-09-12 13:56:08 +02:00
iabdalkader
017b62d20d
Use integral_scaled
2014-09-12 13:48:17 +02:00
iabdalkader
b2d39d3e66
Add integral_scaled prototype
2014-09-12 13:42:37 +02:00
iabdalkader
065a3cb337
Remove SCALE_FACTOR const
2014-09-12 11:50:17 +02:00
iabdalkader
e898bbd15a
Fix assertion code
2014-09-12 11:47:14 +02:00
iabdalkader
4a0790635e
Check draw_line image boundaries
2014-09-11 11:49:36 +02:00
iabdalkader
04b013b33b
Cleanup
2014-09-11 07:35:33 +02:00
iabdalkader
fe778e07f9
Use integral_alloc
2014-09-11 07:08:35 +02:00
iabdalkader
f8e08b9749
Add draw_line
2014-09-11 07:05:36 +02:00
iabdalkader
1bb823b981
Add integral_alloc
2014-09-11 07:03:49 +02:00
iabdalkader
5ec8511f90
Better atan2f
2014-09-11 07:02:52 +02:00
iabdalkader
aa93ab7c42
Use bytes for scores
2014-09-11 06:05:21 +02:00
iabdalkader
44669573ce
Minor fixes
2014-09-11 05:52:43 +02:00
iabdalkader
649344c40c
More fixes to median
2014-09-11 03:40:51 +02:00
iabdalkader
54fec0f294
Fix median
2014-09-10 23:18:15 +02:00
iabdalkader
b8d989be57
Update MP branch
2014-09-10 23:16:37 +02:00
iabdalkader
7bb8bef8a1
Add Update FB Command
2014-09-10 22:22:50 +02:00
iabdalkader
949fbfef51
Save angle when writing descriptor
2014-09-10 19:00:13 +02:00
iabdalkader
c70960d17e
Add save descriptor from ROI
2014-09-10 18:59:34 +02:00
iabdalkader
d0cce539de
Fix atan2f
2014-09-09 17:04:04 +02:00
iabdalkader
50062826d2
Add missing header
2014-09-09 15:09:06 +02:00
iabdalkader
3270d08241
Add UART defs
2014-09-09 15:08:25 +02:00
iabdalkader
903f756a7c
Misc Fixes, add load/save descriptor
2014-09-09 15:07:22 +02:00
iabdalkader
06c8f77662
Add ceil
2014-09-09 15:02:34 +02:00
iabdalkader
2f5b82ec77
Update UART code
2014-09-05 18:09:07 +02:00
iabdalkader
41d531242a
Fix big frame size
2014-09-04 01:03:38 +02:00
iabdalkader
cf9be6bf71
Mirror/VFLIP when building for OMV2
2014-09-03 23:47:09 +02:00
iabdalkader
c12f559d62
Remove sd from isr section
...
* Overflows on OMV2
2014-09-03 23:37:19 +02:00
iabdalkader
734eca7e97
Add Color to draw_string
2014-09-03 19:16:41 +02:00
iabdalkader
d142654920
Add Scaled Integral Function
2014-09-03 16:17:46 +02:00
iabdalkader
2e81c7a150
Cleanup Haar code
2014-09-03 16:14:17 +02:00
iabdalkader
b2eb44910a
Add subimg
2014-09-02 16:29:20 +02:00
iabdalkader
5fdd6e09a3
Add font rendering
2014-09-01 23:43:06 +02:00
iabdalkader
06c9253644
Rework blob counting
2014-09-01 16:52:14 +02:00
iabdalkader
29202f1f99
Add morphological operations, fix threshold
2014-09-01 16:50:58 +02:00
iabdalkader
526efdac04
Small Optimizations
2014-09-01 16:17:33 +02:00
iabdalkader
ad1daadd69
Add more objects to .isr_vector
2014-09-01 15:41:19 +02:00
iabdalkader
82e46987b1
Remove deinit
2014-09-01 15:40:10 +02:00
iabdalkader
4a39ffc65b
Add module names for debugging
2014-08-31 15:12:11 +02:00
iabdalkader
99657a2207
Fix I2C init/deinit
2014-08-31 14:13:29 +02:00
iabdalkader
b621643763
Opt imlib_integral_image
2014-08-30 19:19:07 +02:00
iabdalkader
19121dec9f
Fix exported functions
2014-08-30 18:35:37 +02:00
iabdalkader
d8c057d935
Optimize blob alloc
2014-08-30 17:31:28 +02:00
iabdalkader
8ab90c57c4
Optimize imlib_threshold
2014-08-29 22:39:58 +02:00
iabdalkader
f500fe28d1
Remove mp_sys_exit
2014-08-29 19:38:04 +02:00
iabdalkader
cb3e021a40
Enable EXTI
2014-08-29 19:37:19 +02:00
iabdalkader
22323eb1a3
Remove dead object files
2014-08-29 19:36:49 +02:00
iabdalkader
78eee3fcc6
Resize FLASH storage
2014-08-29 19:36:32 +02:00
iabdalkader
459ec97aad
Use PKHBT to pack SMUAD operands
2014-08-29 13:21:22 +02:00
iabdalkader
25abc200f9
Add FAST/FREAK detector
...
* Remove SURF code and MP functions
* Add FAST/FREAK keypoint extractor/descriptor
* Add FAST/FREAK Python example
2014-08-27 17:34:58 +02:00
iabdalkader
0aeab28640
Update MP Modules
...
* Update all modules for new API
* Move modules to built-in
2014-08-26 20:32:43 +02:00
iabdalkader
590bd22e2e
Cleanup linker script
2014-08-26 17:30:03 +02:00
iabdalkader
f1d1aa5c67
Cleanup all Makefiles
...
* Add verbose option
* Fix link dependencies
2014-08-26 17:17:59 +02:00
iabdalkader
165ed73659
Export uwTick
2014-08-26 15:47:16 +02:00
iabdalkader
8355ddc338
Enable _FS_RPATH
2014-08-26 15:44:00 +02:00
iabdalkader
d61526a974
Add atan2, log2 and log
2014-08-26 12:09:51 +02:00
iabdalkader
82efa9042d
Throw Exception When malloc Fails
2014-08-25 20:55:52 +02:00
iabdalkader
7038cb25c6
Export gc_collect and random
2014-08-25 14:37:17 +02:00
iabdalkader
bf3f6633ea
Use SIMD in Alpha Blend
2014-08-25 14:36:36 +02:00
iabdalkader
1117c49ff9
Use LOW GPIO Speed
2014-08-25 14:34:01 +02:00
iabdalkader
e13e902d80
Add 1 to max temp scale
2014-08-25 14:33:44 +02:00
iabdalkader
9572faf78f
Add scaled function
...
* Returns new scaled image
2014-08-25 14:32:31 +02:00
iabdalkader
45c3a5d3ae
Use DMA for SPI transfers
2014-08-25 14:32:16 +02:00
iabdalkader
9752af11df
WFI When sleeping
2014-08-25 14:27:10 +02:00
iabdalkader
e7de5bc4f1
Disable FE interrupt in direct mode
2014-08-25 14:25:51 +02:00
iabdalkader
cc09ad155e
Use SDRAM for FB base
2014-08-23 10:47:42 +02:00
iabdalkader
e21794b4cb
Reset DMA stream before re-init
2014-08-23 10:47:01 +02:00
iabdalkader
777fafc8ef
Fix ld script
2014-08-21 12:30:09 +02:00
iabdalkader
5d5f801051
Add USR_SPI defs
2014-08-20 22:14:30 +02:00
iabdalkader
9e0136dbc8
Add proper fb locking
2014-08-20 21:17:27 +02:00
iabdalkader
dac7beadc6
Add mutex
2014-08-20 21:10:43 +02:00
iabdalkader
43aa7688a6
Fix RNG
2014-08-19 19:06:27 +02:00
iabdalkader
729fedfe6f
Use new scale function
2014-08-18 12:40:13 +02:00
iabdalkader
f1861a332a
Add scale, blit and blend functions
...
* Add scale, blit, blend and rainbow
* Update imlib header
* Export new functions to MP
2014-08-18 12:36:47 +02:00
iabdalkader
d151388e73
Add SDRAM region
2014-08-18 10:40:50 +02:00
iabdalkader
133f2fccb9
Retry to init before failing
2014-08-18 10:36:32 +02:00
iabdalkader
074557265d
Add rainbow filter
2014-08-18 10:33:46 +02:00
iabdalkader
5722436a63
Add MLX90620 driver
2014-08-18 10:26:32 +02:00
iabdalkader
563ab52eca
Add Soft I2C
2014-08-18 10:21:48 +02:00
iabdalkader
a0e99939ad
Pass Target to CPP
2014-08-18 10:12:03 +02:00
iabdalkader
02999f2432
Rename stm32f407_hal_msp
2014-08-10 19:42:14 +02:00
iabdalkader
12d062d1bc
Enable GPIO and SPI
...
* Fix GPIO/SPI code
* Use buffers in SPI read/write
* Add pin qstrs OMV2
* remove old led files
* Update LCD user examples
2014-08-10 19:39:19 +02:00
iabdalkader
a93cd7fd7a
Use CPP to generate linker scripts
2014-07-31 06:26:19 +02:00
iabdalkader
52da153c0c
Fix sdram init function
2014-07-31 06:19:23 +02:00
iabdalkader
4215697e00
Add checks for OPENMV2
2014-07-31 06:12:53 +02:00
iabdalkader
cb3af4e25a
Fix comment typo
2014-07-31 05:59:04 +02:00
iabdalkader
046d7afa98
Enable GPIOF clock
2014-07-31 05:57:56 +02:00
iabdalkader
4242a753fe
Fix SDRAM test
2014-07-31 05:57:38 +02:00
iabdalkader
991645da8b
Fix F429 PLLs
2014-07-23 08:09:26 +02:00
iabdalkader
ba49bc9c9f
Add SDRAM driver
...
* Add SDRAM driver
* Add SDRAM to linker script
* Add FMC drivers to Makefile
2014-07-23 08:08:29 +02:00
iabdalkader
b67ee0e5f3
Add SD SDIO driver
2014-07-23 08:06:56 +02:00
iabdalkader
92ded74fd9
Add IR LED Support
2014-07-21 03:55:54 +02:00
iabdalkader
381e24d315
Add support for STM32F429
2014-07-17 09:16:04 +02:00
iabdalkader
35fdb04aa9
Enable CCM clock in startup code
2014-07-17 09:13:56 +02:00
iabdalkader
6389cce8b3
Export select
2014-07-14 04:17:11 +02:00
iabdalkader
dfab091f25
Add select
2014-07-14 03:43:21 +02:00
iabdalkader
932398820b
Keep track of socket state
2014-07-14 03:42:29 +02:00
iabdalkader
9b145bd4c7
Fix inet_ntop endianness
2014-07-14 02:56:50 +02:00
iabdalkader
2fd8af0bf5
Disable IRQs around spi calls
...
* Fixes SPI transfer failures.
* Set highest baudrates for SD and CC3K
2014-07-09 04:34:16 +02:00
iabdalkader
78ad46dd34
Add set_quality for JPEG mode
2014-07-09 04:31:39 +02:00
iabdalkader
366171b042
Replace spi_recv with macro
...
* Set baudrate prescaler to 2
2014-07-07 04:59:14 +02:00
iabdalkader
d30c06f55a
Set max Rx/Tx packet size
2014-07-07 03:17:46 +02:00
iabdalkader
945331cace
Fix ucPad
2014-07-07 02:24:43 +02:00
iabdalkader
3681237acf
Split recv packets
2014-07-07 02:04:36 +02:00
iabdalkader
b07cb91357
Add CC patch programmer
2014-07-07 02:03:20 +02:00
iabdalkader
55ae590bcb
Update CC host driver
...
* Update to v1.15
2014-07-07 02:00:25 +02:00
iabdalkader
dcb4f34520
Remove old patch programmer
2014-07-06 23:38:29 +02:00
iabdalkader
84483d1d11
Update MP
2014-07-05 03:50:01 +02:00
iabdalkader
74280e07c6
Update CC3K SPI driver
2014-07-05 03:45:16 +02:00
iabdalkader
2d3abcf2f4
Add wlan and socket python modules
2014-07-05 03:41:43 +02:00
iabdalkader
43758d1a67
Make wlan_start timeout
2014-07-05 03:39:01 +02:00
iabdalkader
95b36965ec
Update cc3k.h
2014-07-05 03:38:45 +02:00
iabdalkader
7826c14c05
Add inet_pton and inet_ntop
2014-07-05 03:36:04 +02:00
iabdalkader
545c29763e
Fix SPI timeout
2014-07-02 00:03:59 +02:00
iabdalkader
3ee3716842
Clear connected flag when interrupted
2014-06-30 03:47:42 +02:00
iabdalkader
59d9d18bbe
Update MP
2014-06-30 03:47:30 +02:00
iabdalkader
52bf272e8e
Move test for USBDBG before snapshot
2014-06-30 03:47:04 +02:00
iabdalkader
30169f3aaa
Add buffer protocol to image
2014-06-30 03:46:32 +02:00
iabdalkader
34ca3ed295
Lower default Qs
2014-06-30 03:46:09 +02:00
iabdalkader
e2ef1a568f
Use MP's file module
2014-06-30 03:45:52 +02:00
iabdalkader
73f0d348bc
More fixes to SD code
2014-06-30 03:45:03 +02:00
iabdalkader
94c46ab309
Cleanup SDCARD code
2014-06-28 19:54:06 +02:00
iabdalkader
92563b6190
Add SDCARD SPI driver
2014-06-28 01:26:32 +02:00
iabdalkader
0191702058
Export open
2014-06-27 23:46:13 +02:00
iabdalkader
1c7f8d7bdf
Move GPIO configuration to MSP
2014-06-27 22:21:59 +02:00
iabdalkader
e23dca875c
Update MP branch
2014-06-25 19:53:55 +02:00
iabdalkader
2d833b2ab5
Fix warning
2014-06-25 19:51:09 +02:00
iabdalkader
f23336e3ae
Return the number of SURF matches
2014-06-25 19:50:45 +02:00
iabdalkader
5470b6c72f
Add new constants
2014-06-25 19:50:30 +02:00
iabdalkader
185ab2877c
ADD JPEG support
...
* ADD higher resolutions
* Set GPIO to low speed
* Use frame_ready to sync snapshots
2014-06-25 19:47:23 +02:00
iabdalkader
d96b1d9656
Update USBDBG
...
* Update commands
* Sync FB dump
2014-06-25 19:46:22 +02:00
iabdalkader
561c97cb41
Add JPEG regs
...
* Some fixes to old registers
2014-06-25 15:54:16 +02:00
iabdalkader
18e62155b0
Cleanup Makefile
2014-06-22 12:31:19 +02:00
iabdalkader
f8eb7b35e1
Fix br/cont/gain
2014-06-21 09:44:25 +02:00
iabdalkader
aaa06a4021
Add Get/Set sensor attributes
2014-06-21 09:43:26 +02:00
iabdalkader
b5587adc65
Add sensor controls
2014-06-21 09:41:27 +02:00
iabdalkader
aaa51cfdf6
Fix DMA mode
2014-06-20 15:30:02 +02:00
iabdalkader
bd2783f2b1
Enable FIFO
2014-06-20 09:52:46 +02:00
iabdalkader
9cc9af6edd
Update MP branch
2014-06-19 23:25:20 +02:00
iabdalkader
62b8eadbfc
Remove unused variable
2014-06-19 23:24:45 +02:00
iabdalkader
2ea09a43db
Add template saving
2014-06-19 23:21:18 +02:00
iabdalkader
ad65c304dd
Fix exceptions
2014-06-19 23:21:04 +02:00
iabdalkader
9fb77ee5ac
Enable HaarCascade and Image
2014-06-19 23:20:32 +02:00
iabdalkader
64b883ceaf
Update sensor drivers
...
* Add set_contrast
* Fix set_brightness
2014-06-19 23:19:11 +02:00
iabdalkader
06ed1c0a53
Update PPM
...
* Fix ppm_read
* Add ppm_write_subimg
2014-06-19 23:16:59 +02:00
iabdalkader
ce3ab63337
Fix template matching
2014-06-19 23:14:11 +02:00
iabdalkader
c76f04baf5
Update MP branch
2014-06-18 21:21:31 +02:00
iabdalkader
f53295a18e
Enable str functions
2014-06-18 21:20:47 +02:00
iabdalkader
c1dab26fca
Fix more sources to use HAL
2014-06-18 21:20:22 +02:00
iabdalkader
51458b1c2e
Update USB Debug Interface
2014-06-18 17:29:09 +02:00
iabdalkader
1e4b6fa8fd
Update sources to new HAL
2014-06-18 17:28:46 +02:00
iabdalkader
0e69ebad74
Update MP branch
2014-06-18 17:14:02 +02:00
iabdalkader
6cf069fb9e
Add sources to sthal Makefile
2014-06-18 17:12:47 +02:00
iabdalkader
8c3712b55d
Move linker script to omv
2014-06-18 17:11:04 +02:00
iabdalkader
7a4cee620b
Add MP header
2014-06-15 21:18:22 +02:00
iabdalkader
55740aa14d
Add OMV Makefile
2014-06-15 21:17:01 +02:00
iabdalkader
d5e3a2eace
Update MP branch
2014-06-15 21:16:04 +02:00
iabdalkader
b00d9c2e97
Update sources for new STHAL/MP
2014-06-15 21:15:13 +02:00
iabdalkader
dd2933a200
Add top Makefile
2014-06-15 21:12:44 +02:00
iabdalkader
c6e1a1fe12
Update libraries
...
* Remove old libraries
* Add new sources
* Use new STM HAL
2014-06-15 21:04:00 +02:00
iabdalkader
4f90903cd0
Update branch
2014-06-14 18:08:26 +02:00
iabdalkader
2aaa070b10
Update branch
2014-06-14 17:17:09 +02:00
iabdalkader
4df970b418
Move files to OMV
2014-06-14 12:28:45 +02:00
iabdalkader
5fe261e170
set MP submodule to openmv branch
2014-06-14 12:20:43 +02:00
iabdalkader
0c7529c0fa
Add micropython submodule
2014-06-14 12:08:48 +02:00
iabdalkader
72c13e47d7
Fix blob detection
2014-05-03 00:03:39 +02:00
iabdalkader
b56821a9f0
Fix blobs detection
2014-05-02 22:44:56 +02:00
iabdalkader
7b6c0beacb
Change comments
2014-05-02 22:01:54 +02:00
iabdalkader
26fac06bd5
Fix ppm_write to save RGB888
2014-04-12 19:46:22 +02:00
iabdalkader
dbee032c6a
Add SD Card support
2014-04-12 18:58:55 +02:00
iabdalkader
140ecd59ea
Fix file_read bug
2014-04-12 01:13:32 +02:00
iabdalkader
c3a2d8ac0f
re-enable CC3K
2014-04-10 17:09:58 +02:00
iabdalkader
1558e4fc1b
Fix gc_alloc calls
2014-04-10 17:08:35 +02:00
iabdalkader
48b73580b0
Fix sensor reset code
2014-04-10 17:08:18 +02:00
iabdalkader
5f2b17f62c
Use new MP API
2014-04-10 17:07:15 +02:00
iabdalkader
d6f66bc2f9
Remove short-enums
2014-04-10 16:56:47 +02:00
iabdalkader
fdefb82df9
Add SCCB DeInit
2014-04-08 02:02:13 +02:00
iabdalkader
91099e9edc
Update image API
2014-04-04 21:07:09 +02:00
iabdalkader
be7d0d317e
Fix framerate and gainceiling
2014-04-04 20:31:15 +02:00
iabdalkader
2a33cde156
Fix RGB median
2014-04-04 19:11:26 +02:00
iabdalkader
16a377affd
Update linker script
2014-04-02 02:15:38 +02:00
iabdalkader
25e76a5db6
Remove template read/write
2014-04-02 02:13:32 +02:00
iabdalkader
c844da7bec
Add ppm support
2014-04-02 02:12:46 +02:00
iabdalkader
5998aa4857
Adding missing sensor functions
2014-03-30 19:37:16 +02:00
iabdalkader
b23eeda8e5
Convert all MP modules to static modules
2014-03-30 19:26:47 +02:00
iabdalkader
5bfc56d33a
Disable LED callback
2014-03-30 19:18:58 +02:00
iabdalkader
da48eb4ff4
Check laplacian sign before matching
2014-03-30 19:18:24 +02:00
iabdalkader
862dd3d16a
Update libmp
2014-03-27 17:45:47 +02:00
iabdalkader
f1b524b520
Add circle drawing
2014-03-23 20:38:31 +02:00
iabdalkader
2390c8bb4b
Disable unused functions
2014-03-22 19:40:45 +02:00
iabdalkader
0fd2047fad
Add check for array length
2014-03-22 19:40:25 +02:00
iabdalkader
3a18b8f4b6
Move math functions to separate source
2014-03-22 19:40:11 +02:00
iabdalkader
bee46316c4
Add SURF prototypes and export MP module
2014-03-22 19:30:47 +02:00
iabdalkader
a13642f714
Add mem checks
2014-03-22 19:07:47 +02:00
iabdalkader
e578633449
Add misc defs
2014-03-22 19:07:20 +02:00
iabdalkader
d888f8d9f6
Fix set_framesize
...
* Disable/Enable DSP for frame size change to work.
2014-03-19 01:41:14 +02:00
iabdalkader
2ff7b4ecb0
Add wlan test code
2014-03-19 01:40:36 +02:00
iabdalkader
4f6c8e5ec8
Fix bug
...
* Adding wrong Y to blob
2014-03-19 01:39:35 +02:00
iabdalkader
fb928482b4
Add grayscale median
2014-03-16 22:24:47 +02:00
iabdalkader
822cd035b2
Set blob points init array size
2014-03-16 22:22:35 +02:00
iabdalkader
ee8df1a861
Cleanup exported functions
2014-03-16 20:01:32 +02:00
iabdalkader
669a9effb4
Add CC3000 library
2014-03-13 02:10:18 +02:00
iabdalkader
681110df97
Remove opt pragma
2014-03-07 22:18:39 +02:00
iabdalkader
a511f6203a
Add GPIO module
2014-03-07 20:53:57 +02:00
iabdalkader
db86110da6
Remove unsupported pragma
2014-03-07 20:53:07 +02:00
iabdalkader
ef6be8ab3c
Add stack unwinding code for HardFault exception
2014-03-07 20:43:28 +02:00
iabdalkader
9ce736322f
Add SPI driver and Python module
2014-03-07 20:38:03 +02:00
iabdalkader
27856cc8db
Fix SVGA regs
2014-03-05 17:12:03 +02:00
iabdalkader
cc23cb4c49
Set default brightness and gainceiling
2014-03-05 17:11:15 +02:00
iabdalkader
8eaa4fafb5
Improve flood algorithm
2014-03-04 20:02:35 +02:00
iabdalkader
46b8d97901
Fix blobs and array bugs
2014-03-04 01:57:35 +02:00
iabdalkader
da58d6b9ba
Enable 30FPS
...
* Set DSP input image to 800x600
* Enable 30FPS
2014-03-03 22:18:58 +02:00
iabdalkader
5a5c93f66b
Use volatile for curr_ticks
2014-03-03 16:32:11 +02:00
iabdalkader
ea113dcc34
Update exported modules
2014-03-03 16:31:35 +02:00
iabdalkader
cc314d555d
Use uint32_t for xalloc
2014-03-03 16:27:29 +02:00
iabdalkader
70a5e45129
Remove libc dependency
2014-03-03 16:24:50 +02:00
iabdalkader
c75969a9e8
Update image code to use fast math
2014-03-03 16:23:14 +02:00
iabdalkader
ccc88548f7
Add fast math functions
2014-03-03 16:18:48 +02:00
iabdalkader
ffb3dac484
Add time module
2014-03-03 16:17:42 +02:00
iabdalkader
9e6524f70c
Fix bug
...
* Reset sensor state before setting polarity
2014-03-03 16:03:12 +02:00
iabdalkader
b410b5038c
Add array_pop_back and fix bug
2014-03-02 19:38:41 +02:00
iabdalkader
1d62ec6101
Add two new sqrt functions
...
* Add vsqrt implemented with VSQRT instruction
* Add fsqrt IEEE float dependant approximation
2014-03-02 00:57:14 +02:00
iabdalkader
b6491622d4
Use volatile with I2C timeout
2014-03-01 20:40:49 +02:00
iabdalkader
7d7cc77571
Use sqrtf in haar
2014-03-01 20:40:17 +02:00
iabdalkader
facee324c8
Remove sqrt functions
2014-03-01 20:39:54 +02:00
iabdalkader
90dc4e448d
Fix -O flag
2014-03-01 17:32:16 +02:00
iabdalkader
9ad02e2b83
Add sqrt_qxx functions
2014-03-01 16:39:49 +02:00
iabdalkader
a1cf2c4602
Add array alloc with initial size
2014-03-01 15:29:45 +02:00
iabdalkader
f5b91439b2
Restructure Image Library
...
* Split image library into multiple source files
* Add new img/ to src
* Add median, kmeans, median, blob, SURF.
2014-03-01 15:27:37 +02:00
iabdalkader
41936ff96a
Add checks for NULL return from gc_*
2014-03-01 13:35:26 +02:00
iabdalkader
b21018f39e
Handle default case in set_pixformat
2014-03-01 13:33:31 +02:00
iabdalkader
d29dc4db7f
Add RNG module
2014-03-01 13:33:01 +02:00
iabdalkader
36bfe95829
Add check for array destructor
...
* Check if array destructor is not null before calling.
2014-02-27 14:12:44 +02:00
iabdalkader
d8f3ac933c
Add xalloc0
2014-02-25 18:47:27 +02:00
iabdalkader
5a12d1e372
Check if array destructor is NULL
2014-02-25 17:04:34 +02:00
iabdalkader
42be54aa72
Fix Makefile CFLAGS
2014-02-23 23:29:40 +02:00
iabdalkader
103f67801c
Fix USB divider
2014-02-23 23:26:39 +02:00
iabdalkader
d00ee2d083
Replace malloc calls with xalloc
2014-02-23 23:26:04 +02:00
iabdalkader
a2f0ee04f8
Add _bss_end for gccollect
2014-02-23 03:40:36 +02:00
iabdalkader
7630a9be74
Update python bindings for new libmp
2014-02-23 03:40:11 +02:00
iabdalkader
7891a89723
Use pendsv exception to interrupt running code
2014-02-23 03:37:46 +02:00
iabdalkader
427b03aaed
Add check if sensor_init failed
2014-02-21 23:35:40 +02:00
iabdalkader
e2e66d9240
Add OV2640 driver
2014-02-21 23:32:25 +02:00
iabdalkader
4b0dd6e62c
Update detect_objects to return empty list
...
* Update detect_objects to return empty list if there's no detection.
2014-02-21 23:24:07 +02:00
iabdalkader
1e14eacaa2
Update sensor code
...
* Add OV2640 PID
* Add DCMI polarities to sensor struct
* Set DCMI polarities in sensors init functions
* Update OV9650 to set DCMI polarities
2014-02-21 23:23:18 +02:00
iabdalkader
7efede186b
Check sensor_init result
2014-02-21 05:00:14 +02:00
iabdalkader
e83f72c8fe
Enabel OV9650 Internal Regulator
2014-02-21 03:32:27 +02:00
iabdalkader
e20bd56001
Disable systick alloc
2014-02-19 02:45:41 +02:00
iabdalkader
112f0b5ce3
Fix template mean
2014-02-18 03:17:21 +02:00
iabdalkader
474bfd1b71
Add template matching
...
* Add fast template matching using NCC
* Add some support functions to imlib
2014-02-17 21:59:13 +02:00
iabdalkader
86c7bb2041
Remove whitespaces from ld script
2014-02-14 15:56:33 +02:00
iabdalkader
8856f5e24d
Add assert str macro
2014-02-14 15:43:43 +02:00
iabdalkader
8668c17cba
Export open to python
2014-02-14 15:42:59 +02:00
iabdalkader
492b1488e2
Add support for loading haar cascade from file
2014-02-14 15:40:14 +02:00
iabdalkader
156d194bf8
Add file module
2014-02-14 15:38:03 +02:00
iabdalkader
9991b6b803
Update main
...
* Remove pyb prefix
* Export ticks() function to python
2014-02-13 23:00:33 +02:00
iabdalkader
8a91d9f6d4
Export imlib module
2014-02-13 03:17:51 +02:00
iabdalkader
4b6c073133
Cleanup file
...
* Fix line endings
* Remove whitespaces
2014-02-13 03:17:05 +02:00
iabdalkader
cb2da9fc9d
Add MP imlib module
2014-02-13 03:15:15 +02:00
iabdalkader
f7aff67ba5
Add MP image module
2014-02-13 03:14:38 +02:00
iabdalkader
b18744e8e7
Add py_assert helper macros
2014-02-13 03:13:11 +02:00
iabdalkader
ca39013097
Update imlib
...
* Use image for imlib functions
* Rename some types
2014-02-13 03:12:11 +02:00
iabdalkader
f0431b9b10
Remove sensor arg from py_sensor
2014-02-13 03:11:24 +02:00
iabdalkader
ddcf6919c1
Remove sensor struct arg
...
* Remove sensor arg from sensor functions
* Use sensor struct in sensor.c
2014-02-13 03:09:51 +02:00
iabdalkader
4afc74a3c1
Move framebuffer to separate header
2014-02-13 03:02:59 +02:00
iabdalkader
875e239157
Add USB debug interface module
...
* Add USB debug interface module
2014-02-13 02:13:24 +02:00
iabdalkader
f944b81571
Remove break from OTG_FS_WKUP_IRQHandler
2014-02-11 01:44:02 +02:00
iabdalkader
567feccc66
Fix usbdbg exec script
2014-02-10 03:11:53 +02:00
iabdalkader
e7da05d28b
Add USB debugging interface
2014-02-09 23:57:24 +02:00
iabdalkader
a8350215b0
Cleanup main
...
* Remove boot script
* Update main script
* Change namespace to openmv
2014-02-09 23:20:19 +02:00
iabdalkader
4e1306244a
Add OSC definition
2014-02-09 22:41:07 +02:00
iabdalkader
41ca67b709
Update RESET and PWDN for REV3
2014-02-08 01:10:36 +02:00
iabdalkader
422529dcea
Export sensor functions and constants to MP
2014-02-05 14:05:46 +02:00
iabdalkader
37f614367c
Add sensor MP bindings
...
* Add sensor MicroPython bindings
2014-02-04 18:56:11 +02:00
iabdalkader
aa6b1630a5
Add pendsv interrupt
...
* Enable pendsv interrupt to support Ctrl-c
2014-02-04 18:41:35 +02:00
iabdalkader
f8f3eebe2f
Update linker script
...
* Add _ram_start variable used for framebuffer.
* Check for enough space for MP cache.
* Increase MP's heap size to 32KB.
2014-02-03 17:55:34 +02:00
iabdalkader
ce5987f67e
Use correct address for sensor heap
2014-02-03 17:51:42 +02:00
iabdalkader
160b727809
Export LED as a Python module
2014-02-03 17:49:36 +02:00
iabdalkader
d175c69d19
Remove libusbcore and libusbdevcore from Makefile
...
* Remove USB libraries and use MP's stack for now.
2014-02-03 17:48:08 +02:00
iabdalkader
f2cfdf66ce
Add LED toggle function
2014-02-03 17:24:12 +02:00
iabdalkader
a44540f793
Add Initial Support for MicroPython
...
* Add pre-compiled MicroPython library and headers.
* Change Makefile to link libmp.a remove libusbgeneric
* Change linker script to support MicroPython memory layout.
* Change OTG handle name in stm32f4xx_it.c
* Change main to init libmp and export Python functions.
* Add MicroPython bindings to src
2014-02-01 21:56:45 +02:00
iabdalkader
659ffc73cc
Remove syscalls.c
2014-02-01 21:38:29 +02:00
iabdalkader
4609f0295e
Use main RAM block exclusively for frame buffers
...
* Remove malloc's on the main RAM block.
2014-02-01 20:44:53 +02:00
iabdalkader
9cddd79abd
Add systick_has_passed function
2014-02-01 19:13:02 +02:00
iabdalkader
a55ec77a9d
Add led_state function to led module
2014-02-01 19:08:04 +02:00