SenseCAP Indicator: Difference between revisions

From Wildsong
Jump to navigationJump to search
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


ESP32 manages wireless (WiFi, BT 5 and LoRa) and the LCD/touch panel. My basic D1 does not include LoRa chip, which I actually don't need anyway!
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.


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.
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.


USB: 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.
===RP2040===


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/
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===
Looks like SEEED modeled the ESP portion of the D1 on this Espressif reference design.
The "normal" approach using Espressif uses FreeRTOS.
[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.
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


The system diagram shows the controller as a "RGB565" though. 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.
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.)


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
<code>esptool.py --chip esp32s3 --port com7: erase_flash</code>


Espressif uses FreeRTOS.  
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.

System diagram

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