Commit Graph

641 Commits

Author SHA1 Message Date
Wind-stormger 56c5f1eedf Add BananaPi BPI-Leaf-S3.
Based on esp32s3, all available pins are drawn.
2M PSRAM, 8M FLASH.
A JST SH 4-pin Connector can be used for STEMMA QT / Qwiic.
A MX 1.25mm 2-Pin Connector Lithium battery power supply.
A WS2812 LED.
2022-09-15 14:18:24 +08:00
Dan Halbert 14fc4a0797
Merge pull request #6898 from dhalbert/espressif-pwmout-reset
Espressif pwmout reset fixes
2022-09-14 18:47:05 -04:00
Dan Halbert ae64f9fd78
Merge pull request #6899 from BPI-STEAM/CircuitPython-main-BPI-BIT-S2-PR
Add BananaPi BPI-Bit-S2 .
2022-09-13 23:02:46 -04:00
Wind-stormger 6f4cc611ed Add BananaPi BPI-Bit-S2 .
Adds support for the BananaPi BPI-Bit-S2 Boards.
Based on esp32s2 chip.
With 25 ws2812 LEDs, 1 buzzer, 2 photosensitive sensors, 1 thermosensitive sensor,
2 buttons on the front, 1 reset button and 1 boot button on the back.
2022-09-14 10:21:23 +08:00
Dan Halbert 2b25a5d574 update esp32-camera 2022-09-13 13:16:37 -04:00
Dan Halbert 14adfb16dd avoid pwmout_reset() workaround by reordering in main(); remove unnecessary never-resets 2022-09-12 21:32:21 -04:00
Dan Halbert d0d10179c2 fix logic in pwmout_reset() 2022-09-12 17:03:45 -04:00
Kong Wai Weng c157f1cb39 Cast pin_number to int8_t so that it can be used with switch-case. 2022-09-12 18:56:15 +08:00
Kong Wai Weng 0ae015e4d9 Removed whitespaces. 2022-09-12 18:25:27 +08:00
Kong Wai Weng aaa2be1200 Set the default pin state for GPIOs to pull down. 2022-09-12 18:19:33 +08:00
microDev 36221bd749
update board microdev_micro_c3 2022-09-11 13:31:38 +05:30
microDev 8cd4b9fc04 fix espressif run modes 2022-09-10 18:08:09 +05:30
Kong Wai Weng 2fbb3090e2 Changed the pins assignment. 2022-09-09 16:50:14 +08:00
Dan Halbert dd37c81136
Merge pull request #6847 from dhalbert/status-bar-control
Allow enabling and disabling of status bar
2022-09-08 10:48:36 -04:00
Dan Halbert 58b00467c4
Merge pull request #6878 from dhalbert/weak-board-defs
Use MP_WEAK for default board.c routines
2022-09-08 10:47:08 -04:00
Dan Halbert 4cb69a51d5 Use MP_WEAK for default board.c routines 2022-09-08 07:36:50 -04:00
Seon Rozenblum 6c4f352533 Fixed incorrect IO naming for ProS3 and FeatherS3 2022-09-07 19:51:45 +10:00
Dan Halbert 14498f793d
Merge pull request #6859 from wemos/s3_cpython
Add LOLIN S3 ESP32-S3 board.
2022-09-04 13:10:52 -04:00
bill88t ca7fb6dede removal of sda-scl and add "GP" to 40,41 2022-09-04 18:05:50 +03:00
bill88t e1891038c8 Forgor the one IO pin and sda-scl 2022-09-04 16:59:56 +03:00
wemos 3a18d285a2 Add LOLIN S3 ESP32-S3 board. 2022-09-03 11:06:51 +08:00
Dan Halbert 52080e24eb status bar control 2022-08-30 15:23:44 -04:00
Jeff Epler 2c6f57be5e
Update ports/espressif/common-hal/esp32_camera/Camera.c
Co-authored-by: Mark <56205165+gamblor21@users.noreply.github.com>
2022-08-28 16:46:50 -05:00
Jeff Epler dc27fb967d error at runtime if no psram actually reserved 2022-08-26 09:27:50 -05:00
Jeff Epler 9f22e75e5e error if camera is configured but no psram 2022-08-26 09:27:50 -05:00
Jeff Epler 8ed6a6135a Disable camera on boards without psram 2022-08-26 09:27:50 -05:00
Scott Shawcroft 2f0e209eca
Merge pull request #6772 from dhalbert/esp32-touch-fix
Fix ESP32 touch; rework common code a bit
2022-08-17 10:24:22 -07:00
Dan Halbert 2bc8d73776 Fix ESP32 touch; rework common code a bit 2022-08-16 20:04:27 -04:00
Martin 528da05f54 Add Waveshare ESP32-S2-Pico-LCD 2022-08-15 16:46:14 +02:00
lady ada 2f2ccdddbf pycam rev b pins 2022-08-13 23:41:35 -04:00
MicroDev fa3e265bfb
Merge pull request #6753 from tannewt/esp_led_reset
Audit all boards with LED pins defined
2022-08-13 15:25:02 +05:30
Scott Shawcroft df1435ae94
Audit all boards with LED pins defined
Add them as MICROPY_HW_LED_STATUS so that we can share reset code
for them. They aren't actually used for the status if another RGB
option is available. (But maybe they should be.)

Fixes #6717
2022-08-11 14:41:20 -07:00
Scott Shawcroft 5823bcc744
Merge branch 'main' into c3_short_send 2022-08-11 12:45:02 -07:00
Scott Shawcroft f1053fb963
Introduce port_yield()
This allows the web workflow send code to yield briefly when
waiting for more room to send in a socket. Waiting for an "interrupt"
could wait forever because the select task only waits for read and
error. Adding wait on write is tricky because much of the time we
don't care if the sockets are ready to write. Using yield avoids
this trickiness.
2022-08-11 11:25:34 -07:00
Scott Shawcroft f9d724c09e
Fix retries after successful connection.
We may have set retries to 0 to enforce a timeout but the connect
succeeded. When it succeeds, we want to allow retries later in
case we lose signal briefly. (The callback will do this too but
the connect function will override it after.)

Also, remove extra code from websocket that is leftover from
debugging.
2022-08-10 15:24:08 -07:00
Jeff Epler c2a45c1f27
Merge pull request #6739 from jepler/qrio-esp32camera
Enable qrio to work with rgb565 data, including byte-swapped data
2022-08-10 13:54:40 -05:00
Scott Shawcroft 7a5d2e81fc
Merge pull request #6734 from dhalbert/remove-autobrightness
Remove support for auto-brightness
2022-08-10 10:22:53 -07:00
Jeff Epler 86f9d98a5d fix documentation of framebuffer_count 2022-08-10 11:12:54 -05:00
Dan Halbert af64faae1e switch back one I2C message 2022-08-10 12:06:43 -04:00
Dan Halbert 198c8fea11 merge from upstream and fix espressif_esp32s3_eye 2022-08-10 08:43:08 -04:00
Dan Halbert 02cc6c2aee Merge remote-tracking branch 'adafruit/main' into remove-autobrightness 2022-08-10 08:35:53 -04:00
Dan Halbert 41bcd7b260 Remove support for auto-brightness 2022-08-09 22:40:21 -04:00
Scott Shawcroft 59b4353282
Merge pull request #6713 from tannewt/exception_filename
Add exception filename to title bar
2022-08-09 16:59:12 -07:00
Jeff Epler 5040e1b7a5
Merge pull request #6684 from jepler/espressif-camera-2
Rewrite camera support for the Espressif port
2022-08-09 18:50:25 -05:00
Scott Shawcroft db837e2b48
Merge pull request #6725 from dhalbert/esp-stack-size-16kB
increase main task stack size from 8kB to 16kB
2022-08-09 16:40:16 -07:00
Scott Shawcroft 554063a817
Merge branch 'main' into espressif-camera-2 2022-08-09 14:07:14 -07:00
Scott Shawcroft 5084de1b73
Merge pull request #6708 from strid3r21/main
Added Smart Bee Design Boards
2022-08-09 14:06:11 -07:00
Dan Halbert c4db71d12e
Merge pull request #6721 from dhalbert/i2c-target
Change I2C terminology from "peripheral" to "target"
2022-08-09 16:12:17 -04:00
Dan Halbert 4021b44a39 increase main task stack size from 8kB to 16kB 2022-08-09 15:00:01 -04:00
Scott Shawcroft b3b27a1d80
Remove extra leading spaces 2022-08-09 10:45:47 -07:00
Scott Shawcroft 556d01a685
Remove extra newline at end of file 2022-08-09 10:44:57 -07:00
Scott Shawcroft ce1273be7a
Pull Feather S2 TFT LED down on reset 2022-08-09 10:42:56 -07:00
Jeff Epler c74746f052 Cross references in documentation always help 2022-08-09 12:20:02 -05:00
Dan Halbert 84807cd6eb Change I2C terminology from "peripheral" to "target" 2022-08-09 13:13:19 -04:00
Jeff Epler 5a85b8ab95 improve docstrings based on my best sleuthing 2022-08-09 11:42:19 -05:00
Jeff Epler ec839d6f90 these items should not have been disabled 2022-08-09 11:42:19 -05:00
Jeff Epler f87e34b9ed add shutter button 2022-08-09 11:42:19 -05:00
Dan Halbert 10275001ac enable web workflow on Feather HUZZAH32 2022-08-09 07:26:18 -04:00
paul 15ad24ba62 ran pre-commit. 2022-08-09 04:32:21 -04:00
lady ada 2cd9222e5e add includes 2022-08-07 14:32:29 -04:00
lady ada 029b6b6fbe add default display 2022-08-07 14:12:40 -04:00
paul a6eadd6259 Added Bee Motion S3 board 2022-08-07 11:59:43 -04:00
paul f39058edc4 Added Bee S3 board 2022-08-06 22:22:20 -04:00
Jeff Epler 1da8065d6b
Merge remote-tracking branch 'origin/main' into espressif-camera-2 2022-08-05 16:38:51 -05:00
Dan Halbert 8c10e09ba0
Merge pull request #6667 from jepler/esp-reserve-heap-for-idf
Add ability to reserve psram
2022-08-05 15:06:44 -04:00
Jeff Epler 3f49d77036
Improve esp32-s3-eye board definition 2022-08-05 13:10:21 -05:00
Scott Shawcroft 125b276af0
Get CIRCUITPY FATFS directly.
Otherwise, you may actually get a non-root filesystem.

Fixes #6575
2022-08-04 16:06:27 -07:00
Jeff Epler 861fa9625d
Add the ESP32-EYE aka ESP-EYE 2022-08-04 15:12:12 -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 428fbcd343
remove debug message during build 2022-08-04 15:12:10 -05:00
Jeff Epler 0e26a937cc
Disable camera everywhere it doesn't fit 2022-08-04 15:12:08 -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 54fe753602
Enable gifio and qrio when appropriate 2022-08-04 15:11:59 -05:00
Jeff Epler 258f72640a
Implement a pile of getters & setters 2022-08-04 15:11:57 -05:00
Jeff Epler 69949ecb43
update PID for this board 2022-08-04 15:11:56 -05:00
Jeff Epler d1b89fca91
Reset camera when interpreter is reset 2022-08-04 15:11:55 -05:00
Jeff Epler f54c7adddc
Must treat NO_PIN cast to uint8_t the same as NO_PIN
Otherwise, deinitializing a camera with e.g., the powerdown
pin unspecified results in an assertion failure in a debug build.
2022-08-04 15:11:54 -05:00
Jeff Epler 1d1e139379
fix taking multiple pictures 2022-08-04 15:11:53 -05:00
Jeff Epler b903a020fd
Enable display on esp32-s3-eye 2022-08-04 15:11:52 -05:00
Jeff Epler 8d673bdbf5
reserve 1MB of PSRAM for camera framebuffer on esp32s3-eye
.. this setting can be overridden with a bigger or smaller value in
CIRCUITPY/.env but 1/8 of PSRAM seems like a good initial value. It's
enough to store a single 800x600 or 640x480 RGB565 frame, or multiple
smaller frames such as 320x240.
2022-08-04 15:11:51 -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 8e08cc38f8
Add default I2C bus to Kaluga 2022-08-04 15:11:48 -05:00
Scott Shawcroft e0cb8ef17e
Merge pull request #6694 from dhalbert/esp32-no-psram
ESP32 no psram support; other ESP32 cleanup
2022-08-04 11:49:39 -07:00
Scott Shawcroft 3707b54e3b
Merge pull request #6672 from bill88t/main
Add Waveshare ESP32-S2-Pico
2022-08-04 11:09:59 -07:00
Dan Halbert 202fac59f8 ESP32 fixes for no PSRAM; some cleanup 2022-08-04 13:44:52 -04:00
Dan Halbert d4e8c19b49 merge from main 2022-08-04 12:43:23 -04: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
bill88t 68bb6b9988 ran precommit 2022-08-03 09:14:26 +03:00
Bill Sideris efa3e40f90
Add the one obtained from esp 2022-08-03 08:48:28 +03:00
Dan Halbert d3d5e36548 update adafruit/esp-idf for ESP32_ECO3_CACHE_LOCK_FIX fix 2022-08-02 22:37:06 -04:00
Dan Halbert b027d111a9 remove custom console UART from sdkconfig-esp32.defaults 2022-08-02 22:00:59 -04:00
Dan Halbert 534a482d94 initial HUZZAH32 bring-up, with hacked pins 2022-08-02 21:47:46 -04:00
Dan Halbert 767234e79c
Merge pull request #6688 from tannewt/fix_esp32c3_paste
Fix C3 when pasting 128+ characters
2022-08-02 21:35:02 -04:00
Dan Halbert 524cc5e274
Merge pull request #6685 from tannewt/esp32_ww
Enable Web Workflow on Feather ESP32 V2
2022-08-02 21:30:23 -04:00