Commit Graph

57 Commits

Author SHA1 Message Date
Neradoc
02c628a3c7
Update ports/espressif/bindings/espnow/ESPNow.c
Co-authored-by: MicroDev <70126934+microdev1@users.noreply.github.com>
2023-03-28 14:36:43 +02:00
Neradoc
a481c564da change Peer(encrypt=) to encrypted to match the property 2023-03-28 14:00:03 +02:00
Neradoc
19429d3626 espnow.Peer: fix argument types and default values 2023-03-27 16:58:44 +02:00
hathach
fecc1bdedb
fix typos (partial) detected by codepell 2023-03-18 22:17:02 +07:00
MicroDev
58f28b98be
minor doc fix
Co-authored-by: Scott Shawcroft <scott@tannewt.org>
2023-03-10 00:01:44 +05:30
MicroDev
874ba4ec68
revert Communicate class and more 2023-03-09 12:04:50 +05:30
MicroDev
6c54bc9fd9
more espnow changes
- improve docs
- use existing list methods
- change `recv` to `read`
2023-02-05 12:31:08 +05:30
MicroDev
c0a9c71057
replace ESPNowStats with Communicate class and more 2023-02-05 01:42:32 +05:30
MicroDev
ff95e96160
add ESPNowStats class and more 2023-02-04 01:23:45 +05:30
MicroDev
a1644f15ea
use esp error for espnow 2023-02-03 15:42:44 +05:30
MicroDev
cac90a6969
refactor common espnow functions 2023-02-03 12:35:06 +05:30
MicroDev
e30126e335
remove sync from espnow 2023-02-03 11:12:07 +05:30
MicroDev
f100838ae5
remove peers_table from espnow 2023-02-03 10:14:50 +05:30
MicroDev
14c3b52b8d
Merge branch 'main' into espnow 2023-02-03 01:37:07 +05:30
MicroDev
7028a3adfe
rework espnow api 2023-02-03 01:32:28 +05:30
MicroDev
ae4bb75e29
split espnow between bindings and common-hal 2023-02-01 18:53:58 +05:30
MicroDev
9c430d45d1
use truthiness of the object itself instead of any 2023-02-01 15:27:55 +05:30
MicroDev
d9d94eacca
run updated pre-commit 2023-02-01 13:38:41 +05:30
MicroDev
cda5689263
move esp32_camera to espcamera 2023-01-27 22:05:43 +05:30
MicroDev
9b98d485bb
switch to ReadableBuffer and WriteableBuffer 2023-01-26 14:13:38 +05:30
MicroDev
bfb77d0544
move ULPArch to Architecture 2023-01-26 13:01:14 +05:30
MicroDev
3c10dd8b5f
update espnow api 2023-01-23 23:51:10 +05:30
MicroDev
f15e84de6c
update espnow module 2023-01-23 09:42:39 +05:30
MicroDev
2bb12293f8
add ulp fsm 2023-01-21 17:44:08 +05:30
MicroDev
7330c638b9
minimal changes to make espnow work 2023-01-20 14:12:55 +05:30
MicroDev
59c3618cbd
clone espnow implementation
Co-authored-by: Nick Moore <nick@zoic.org>
Co-authored-by: shawwwn <shawwwn1@gmail.com>
Co-authored-by: glenn20 <glenn.moloney@gmail.com>
2023-01-20 13:19:59 +05:30
Dan Halbert
a974402542 Improve type validation errors messages, especially for pins 2023-01-10 15:02:55 -05:00
Scott Shawcroft
c16b42e972
Tweak arg checking and comments 2022-12-20 11:00:13 -05:00
Scott Shawcroft
f8ac1d9261
Rework the coproc API
It is now a generic `memorymap` API and an ESP specific `espulp` module.

Fixes #7218. Fixes #3234. Fixes #7300.
2022-12-19 14:08:38 -05:00
Radomir Dopieralski
90c805d858 esp32-camera: make the master_clock_pin really optional
The master_clock_pin was already optional, but not specifying it would
result in a crash. This fixes it, so it really can be omitted, when the
camera module has its own clock source built in.
2022-12-16 21:53:50 +01:00
Jeff Epler
ef2bfdb5db
dotenv becomes settings.toml 2022-12-08 12:44:20 -06:00
Jeff Epler
907c5d387f
Tweak black_bindings
Originally, black_bindings found each contiguous "//|" block and sent
it to black independently. This was slower than it needed to be.

Instead, swap the comment prefix: when running black, take off
"//|" prefixes and put "##|" prefixes on all un-prefixed lines.
Then, after black is run, do the opposite operation

This more than doubles the overall speed of "pre-commit run --all",
from 3m20s to 55s CPU time on my local machine (32.5s to under 10s
"elapsed" time)

It also causes a small amount of churn in the bindings, because
black now sees enough context to know whether one 'def' follows another
or ends the 'def's in a 'class'. In the latter case, it adds an extra
newline, which becomes a "//|" line.

I'm less sure why a trailing comma was omitted before down in
rp2pio/StateMachine.c but let's roll with it.
2022-09-30 11:18:13 -05:00
Jeff Epler
b2cc8d2aad
run black_bindings across all bindings 2022-09-27 15:21:42 -05:00
Jeff Epler
f12136af7f
esp32-camera: sync doc with code.
Closes: #6836
2022-09-23 08:54:00 -05:00
Jeff Epler
5bbbca4d44
lock and unlock i2c bus around any ops that might access it 2022-09-22 17:03:05 -05:00
Jeff Epler
dc27fb967d error at runtime if no psram actually reserved 2022-08-26 09:27:50 -05:00
Jeff Epler
86f9d98a5d fix documentation of framebuffer_count 2022-08-10 11:12:54 -05:00
Jeff Epler
c74746f052 Cross references in documentation always help 2022-08-09 12:20:02 -05:00
Jeff Epler
5a85b8ab95 improve docstrings based on my best sleuthing 2022-08-09 11:42:19 -05:00
Jeff Epler
98202c8568
Allow changing camera settings that require reinit
These can only be changed in a group, though any items to keep
unchanged can be unspecified or specified as None.
2022-08-04 15:12:11 -05:00
Jeff Epler
230532f0eb
one last doc build fix 2022-08-04 15:12:07 -05:00
Jeff Epler
a9d53ad2a6
Fix "check-stubs" problems 2022-08-04 15:12:06 -05:00
Jeff Epler
7cb40c9054
further doc build fixes 2022-08-04 15:12:05 -05:00
Jeff Epler
81fb9a5f20
specify return type for docs 2022-08-04 15:12:04 -05:00
Jeff Epler
8bdbe0355a
Add more getters 2022-08-04 15:12:02 -05:00
Jeff Epler
badcae5ace
Fix docstring errors 2022-08-04 15:12:01 -05:00
Jeff Epler
aead0dfe45
Return a Bitmap from take() when appropriate 2022-08-04 15:12:00 -05:00
Jeff Epler
258f72640a
Implement a pile of getters & setters 2022-08-04 15:11:57 -05:00
Jeff Epler
5db6db0128
add esp32-camera
This uses the esp32-camera code instead of our own homebrewed camera code.
In theory it supports esp32, esp32-s2 and esp32-s3, as long as they have
PSRAM.

This is very basic and doesn't support changing any camera parameters,
including switching resolution or pixelformat.

This is tested on the Kaluga (ESP32-S2) and ESP32-S3-Eye boards.

First, reserve some PSRAM by putting this line in `CIRCUITPY/_env`:
```
CIRCUITPY_RESERVED_PSRAM=524288
```
and hard-reset the board for it to take effect.

Now, the following script will take a very low-resolution jpeg file and print
it in the REPL in escape coded form:

```python
import board
import esp32_camera

c = esp32_camera.Camera(
    data_pins=board.CAMERA_DATA,
    external_clock_pin=board.CAMERA_XCLK,
    pixel_clock_pin=board.CAMERA_PCLK,
    vsync_pin=board.CAMERA_VSYNC,
    href_pin=board.CAMERA_HREF,
    pixel_format=esp32_camera.PixelFormat.JPEG,
    i2c=board.I2C(),
    external_clock_frequency=20_000_000)

m = c.take()
if m is not None:
    print(bytes(m))
```

Then on desktop open a python repl and run something like
```python
>>> with open("my.jpg", "wb") as f: f.write(<BIG PASTE FROM REPL>)
```
and open my.jpg in a viewer.
2022-08-04 15:11:50 -05:00
Jeff Epler
82be75adb5 Add ability to reserve psram
.. the primary user of which will be the camera, since the framebuffers
must be allocated via esp-idf allocation function and never from the
gc heap.

A board can have a default value, and the value can also be set in the
/.env file using the key CIRCUITPY_RESERVED_PSRAM with the value being
the reserved size in bytes.

Co-authored-by: Dan Halbert <halbert@adafruit.com>
2022-08-03 16:19:40 -05:00