SenseCAP Indicator: Difference between revisions
Brian Wilson (talk | contribs) mNo edit summary |
Brian Wilson (talk | contribs) |
||
Line 13: | Line 13: | ||
PDF user manual https://files.seeedstudio.com/products/SenseCAP/SenseCAP_Indicator/SenseCAP%20Indicator%20User%20Manual_2023.4.21.pdf | PDF user manual https://files.seeedstudio.com/products/SenseCAP/SenseCAP_Indicator/SenseCAP%20Indicator%20User%20Manual_2023.4.21.pdf | ||
There are two USB-C ports and an internal USB hub. Both processors are attached to the USB hub, the ESP32 has a USB->UART interface. | |||
Review with internal photos https://www.cnx-software.com/2023/05/27/sensecap-indicator-d1pro-review-an-esp32-s3-rp2040-iot-devkit-with-a-4-inch-display-lora-connectivity-sensors/ | |||
===ESP32-S3=== | |||
The ESP32 manages wireless (WiFi, BT 5 and LoRa) and the LCD/touch panel. My basic D1 does not include LoRa chip. | |||
Looks like SEEED modeled the ESP portion of the D1 on this Espressif reference design. [https://docs.espressif.com/projects/espressif-esp-dev-kits/en/latest/esp32s3/esp32-s3-lcd-ev-board/index.html ESP32-S3 LCD EV Board] It uses a 480x480 display but does not have the audio portion implemented. The ESP board has a screen connector, the 480x480 board uses a GC9503CV display driver and a FT5x06 touch interface. The system diagram shows the LCD controller as a "RGB565". I think that's a description of the pixel color depth? R=5 bits, G=6 bits, B=5 bits. 16 bits. I feel like I am back at the Magicsoft / Unison World days! Or perhaps the AT&T Truevision ICB board that I paid a fortune for. | |||
===RP2040=== | |||
RP2040 has 2 Grove interfaces, one for I2C and one for analog. It supports up to a 32GB SD card. It has the speaker too. | |||
== Programming == | ==Programming== | ||
Espressif is used to program the ESP32. | Espressif is used to program the ESP32. | ||
They suggest Arduino for the RP2040 but I plan to try CircuitPython.[[File:SenseCAP Indicator.png|thumb|System diagram]] | They suggest Arduino for the RP2040 but I plan to try CircuitPython.[[File:SenseCAP Indicator.png|thumb|System diagram]] | ||
=== Interprocessor communications === | ===Interprocessor communications === | ||
Is "interprocessor" even a word? The ESP32 and RP2040 talk over a serial port using COBS = [http://www.stuartcheshire.org/papers/COBSforToN.pdf<nowiki> "Consistent Overhead Byte Stuffing"], which I am hoping just works. I don't want to read about it</nowiki>''.'' | Is "interprocessor" even a word? The ESP32 and RP2040 talk over a serial port using COBS = [http://www.stuartcheshire.org/papers/COBSforToN.pdf<nowiki> "Consistent Overhead Byte Stuffing"], which I am hoping just works. I don't want to read about it</nowiki>''.'' | ||
Line 35: | Line 41: | ||
Refer to this page: [[Raspberry Pi RP2040]] | Refer to this page: [[Raspberry Pi RP2040]] | ||
=== What can I do with the RP2040? === | ===What can I do with the RP2040?=== | ||
Well, right off the bat, not much. But I want to try, so I note the buzzer is on port GPIO19. What do I need to get that working? I think I program it as a PWM output and see what happens. Ha ha ha supposedly I can play MP3 files on there? Seriously? Such a world. https://learn.adafruit.com/mp3-playback-rp2040/pico-mp3 | Well, right off the bat, not much. But I want to try, so I note the buzzer is on port GPIO19. What do I need to get that working? I think I program it as a PWM output and see what happens. Ha ha ha supposedly I can play MP3 files on there? Seriously? Such a world. https://learn.adafruit.com/mp3-playback-rp2040/pico-mp3 | ||
I tried the sample and it kind of works. Sound came out. It's not like a Nakamichi Dragon Cassette Deck. When I tried a piano sample it locked up and I had to wipe and restore it. Go look at the RP2040 mentioned above. | I tried the sample and it kind of works. Sound came out. It's not like a Nakamichi Dragon Cassette Deck. When I tried a piano sample it locked up and I had to wipe and restore it. Go look at the RP2040 mentioned above. | ||
=== Programming the ESP32-S3 === | ===Programming the ESP32-S3=== | ||
The "normal" approach using Espressif uses FreeRTOS. | |||
[https:// | |||
LCD -- The [https://wiki.seeedstudio.com/SenseCAP_Indicator_How_to_Create_your_own_UI/ example that Seeed provides] uses [https://docs.lvgl.io/master/intro/index.html LVGL] graphics library and (optionally) [https://docs.squareline.io/docs/squareline Squareline Studio] to design the UI. Squareline supports C/C++ and Micropython. Squareline appears to be built on [https://libsdl.org/ SDL], "Simple Directmedia Library". In github, https://github.com/libsdl-org | |||
==== Micropython on the ESP32-S3 ==== | |||
Refer to the generic description, https://micropython.org/download/GENERIC_S3/ | |||
Use esptool.py to wipe flash and then load mpython. | |||
cd ~/Documents/source/esptool/ | |||
conda activate esphome | |||
On my computer I see two ports in Device Manager, one is marked as "USB-SERIAL CH340 - Com7" and I think that's the ESP32. The other is marked "USB Serial Device Com8", probably the RP2040 (currently with CircuitPython loaded.) | |||
<code>esptool.py --chip esp32s3 --port com7: erase_flash</code> | |||
At this point, my D1 screen has gone dark, which is probably what I want. :-) | |||
<code>esptool.py --chip esp32s3 --port com7: write_flash -z 0 board-20210902-v1.17.bin</code> | |||
[[Category: IoT]] | [[Category: IoT]] | ||
[[Category: Electronics]] | [[Category: Electronics]] |
Revision as of 03:00, 2 August 2023
SenseCAP D1 Indicator
https://www.seeedstudio.com/SenseCAP-Indicator-D1-p-5643.html
This is a 4" LCD (480x480) with a RPi Pico and an ESP3-2S3.
I want to use it in my car as a Scangauge "work-alike". OBD-II CAN bus, I had a Garmin EcoRoute for a few years but it no longer works. I miss the gauge displays, especially for engine temperature. I want to try to calculate real-time MPG.
I would normally expect a product like the D1 to be Android/Debian/Ubuntu but this is lower level, that intrigues me. I want to know the architecture and how to program it.
Getting started: https://wiki.seeedstudio.com/SenseCAP_Indicator_Get_Started/
PDF user manual https://files.seeedstudio.com/products/SenseCAP/SenseCAP_Indicator/SenseCAP%20Indicator%20User%20Manual_2023.4.21.pdf
There are two USB-C ports and an internal USB hub. Both processors are attached to the USB hub, the ESP32 has a USB->UART interface.
Review with internal photos https://www.cnx-software.com/2023/05/27/sensecap-indicator-d1pro-review-an-esp32-s3-rp2040-iot-devkit-with-a-4-inch-display-lora-connectivity-sensors/
ESP32-S3
The ESP32 manages wireless (WiFi, BT 5 and LoRa) and the LCD/touch panel. My basic D1 does not include LoRa chip.
Looks like SEEED modeled the ESP portion of the D1 on this Espressif reference design. ESP32-S3 LCD EV Board It uses a 480x480 display but does not have the audio portion implemented. The ESP board has a screen connector, the 480x480 board uses a GC9503CV display driver and a FT5x06 touch interface. The system diagram shows the LCD controller as a "RGB565". I think that's a description of the pixel color depth? R=5 bits, G=6 bits, B=5 bits. 16 bits. I feel like I am back at the Magicsoft / Unison World days! Or perhaps the AT&T Truevision ICB board that I paid a fortune for.
RP2040
RP2040 has 2 Grove interfaces, one for I2C and one for analog. It supports up to a 32GB SD card. It has the speaker too.
Programming
Espressif is used to program the ESP32.
They suggest Arduino for the RP2040 but I plan to try CircuitPython.
Interprocessor communications
Is "interprocessor" even a word? The ESP32 and RP2040 talk over a serial port using COBS = [http://www.stuartcheshire.org/papers/COBSforToN.pdf "Consistent Overhead Byte Stuffing"], which I am hoping just works. I don't want to read about it.
I found this project for Python, https://pypi.org/project/cobs/ Might work with Circuit Python?
Programming the RP2040
Refer to this page: Raspberry Pi RP2040
What can I do with the RP2040?
Well, right off the bat, not much. But I want to try, so I note the buzzer is on port GPIO19. What do I need to get that working? I think I program it as a PWM output and see what happens. Ha ha ha supposedly I can play MP3 files on there? Seriously? Such a world. https://learn.adafruit.com/mp3-playback-rp2040/pico-mp3
I tried the sample and it kind of works. Sound came out. It's not like a Nakamichi Dragon Cassette Deck. When I tried a piano sample it locked up and I had to wipe and restore it. Go look at the RP2040 mentioned above.
Programming the ESP32-S3
The "normal" approach using Espressif uses FreeRTOS.
LCD -- The example that Seeed provides uses LVGL graphics library and (optionally) Squareline Studio to design the UI. Squareline supports C/C++ and Micropython. Squareline appears to be built on SDL, "Simple Directmedia Library". In github, https://github.com/libsdl-org
Micropython on the ESP32-S3
Refer to the generic description, https://micropython.org/download/GENERIC_S3/
Use esptool.py to wipe flash and then load mpython.
cd ~/Documents/source/esptool/
conda activate esphome
On my computer I see two ports in Device Manager, one is marked as "USB-SERIAL CH340 - Com7" and I think that's the ESP32. The other is marked "USB Serial Device Com8", probably the RP2040 (currently with CircuitPython loaded.)
esptool.py --chip esp32s3 --port com7: erase_flash
At this point, my D1 screen has gone dark, which is probably what I want. :-)
esptool.py --chip esp32s3 --port com7: write_flash -z 0 board-20210902-v1.17.bin