SenseCAP Indicator: Difference between revisions
Brian Wilson (talk | contribs) |
Brian Wilson (talk | contribs) |
||
Line 43: | Line 43: | ||
=== C/C++ on the RP2040 === | === C/C++ on the RP2040 === | ||
Since I have more than one board with an RP2040 in it, I am putting this content on a page of its own, [[Raspberry Pi Pico | Since I have more than one board with an RP2040 in it, I am putting this content on a page of its own, [[Raspberry Pi Pico]] | ||
=== What can I do with the RP2040? === | === What can I do with the RP2040? === |
Revision as of 23:05, 29 July 2023
SenseCAP 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 MPG.
I would normally expect a product like this 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
ESP32 manages wireless (WiFi, BT 5 and LoRa) and the LCD/touch panel. The cheapie D1 does not include LoRa chip, which I actually don't need anyway!
RP2040 has a 32GB SD card and 2 Grove interfaces, one for I2C and one for analog. It has the speaker too.
USB: there are two USB-C ports and an internal USB hub. Both processors are attached to the 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/
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?
Loading CircuitPython (on the RP2040)
This worked exactly as it would for any RP2040. Download the image from CircuitPython.org, hold down the (hidden) button and power up. This puts the RP2040 in the right mode, and it pops up as a drive on the laptop. Drag the image file onto the drive and wait. It loads and reboots and this time around, mounts as a drive containing a "code.py" file. That's it.
Refer to the drawing over there on the right. The RP2040 is connected to the sensors I don't have, so, the generic digital clock app that runs almost 100% on the ESP32 is just fine.
C/C++ on the RP2040
Since I have more than one board with an RP2040 in it, I am putting this content on a page of its own, Raspberry Pi Pico
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.
I put a piano sample onto it and the system won't go into mass storage mode anymore. I tried reflashing, did not help. I can put Micropython on it and that works in REPL mode. I guess to fix it up I need a UF2 that will clear out the mass storage drive.