https://github.com/Xinyuan-LilyGO/T-PicoC3
USB-C port is shared between RP2040 and ESP32-C3 - the USB-C polarity matters.
LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
- Attachments
-
- t-c3.jpg (130.06 KiB) Viewed 1681 times
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
Just received this board. The LCD is not well mounted, it is separated by the polystyrene from the PCB. Somewhat flaky.
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
This is both horrifying and genius.
That isn't unusual. Most of the ESP boards do the same. If you're lucky then it is using a socket.
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
I described it not very accurately: the lcd is sloppy - neither parallel to pcb nor edge to edge.
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
I see what you mean. Even the official Lilygo store photo has the LCD mounted crooked. The foam pad is tiny and they're not taking much care sticking it all together.
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
I wouldn't describe it better with my English;)
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
I think that accurately sums it up.
It's not the first to use orientation to determine functionality and that wasn't universally welcomed -
https://www.theverge.com/tldr/2021/3/22 ... reversible
Could that be by intention ? Making it easier to separate without breaking the display if one wants to adjust how the display is mounted - I have no idea what amount of stretch or moveability is available.
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
Yes, you might be right. It looks like it is intended
- Attachments
-
- f1dfc2a2-4c35-4575-af83-cb743eba67d6.jpg (69.3 KiB) Viewed 1175 times
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
I just received a pair of these that I bought on Banggood, and I'm excited to try them out.
Does anyone know how the two microcontrollers communicate? Possibly via SPI? According to the schematic (on GitHub), the RP2040 controls the display, and the program that's pre-installed displays the available WiFi networks, which is info only the ESP32 has, so they must be communicating.
I can see how flipping the USB-C cable wouldn't be too popular. I wonder if there's a way to design a multiple microcontroller board like a USB hub so that each microcontroller can effectively have its own USB port, and there's no need to flip the cable?
A.J.
Does anyone know how the two microcontrollers communicate? Possibly via SPI? According to the schematic (on GitHub), the RP2040 controls the display, and the program that's pre-installed displays the available WiFi networks, which is info only the ESP32 has, so they must be communicating.
I can see how flipping the USB-C cable wouldn't be too popular. I wonder if there's a way to design a multiple microcontroller board like a USB hub so that each microcontroller can effectively have its own USB port, and there's no need to flip the cable?
A.J.
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
UART with RTS/CTS.
Yes. They'd need to add a USB hub chip which costs money and takes up space.
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
Yes, UART is used for sure to control ESP32:
Code: Select all
from machine import UART, Pin
import time
class esp_uart:
def __init__(self,bus_num):
self.uart = UART(bus_num, baudrate=115200, tx=Pin(8), rx=Pin(9), cts=Pin(10), rts=Pin(11))
self.uart.write('ATE0\r\n') #turn off echo
def sendAT(self,cmd):
self.uart.write('AT+'+cmd+'\r\n')
while self.uart.any()==0:
time.sleep_ms(1)
time.sleep_ms(50) #Prevent data loss caused by excessive data
return print(self.uart.read())
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
No need to use a hub, just route each micro to its own connector rather than combine them on one ...
Code: Select all
.-. .-. .-.
Micro -----|O| Micro --------.---|O| .-----|O|
One -----|O| One --------|-.-|O| | .---|O|
| | | | | | | | | |
Micro -----|O| Micro ----. `-|-|O| }-|---|O|
Two -----|O| Two --. | `-|O| | }---|O|
`-' | | `-' | | `-'
| `-------------' |
`-----------------'
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
Has anyone been able to program the ESP32 using Arduino? I'm following the directions at https://github.com/Xinyuan-LilyGO/T-PicoC3, but when I enter the Arduino Boards Manager and type "EPS32C3 Dev" into the search box, nothing is returned.
Thanks,
A.J.
Thanks,
A.J.
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
I've programmed ESP32s in Arduino before, but my setup didn't work for this T-PicoC3 board. I wasn't too surprised, as the ESP32C3 on the T-PicoC3 is a bit of a different animal. So I followed the instructions at https://github.com/Xinyuan-LilyGO/T-PicoC3, but when I get to step 4. which says to type "ESP32C3 Dev" into the Arduino Boards Manager search box, nothing is returned.
A.J.
A.J.
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
Did you actually read the above link?
Have you done this bit?:
Have you done this bit?:
Enter one of the release links above into Additional Board Manager URLs field. You can add multiple URLs, separating them with commas.
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
Yes, I tried both the Stable and Development links. Both were specified in the https://github.com/Xinyuan-LilyGO/T-PicoC3 instructions I referred to. Also, I already had the esp32 package installed from my earlier work.
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
Well, I THINK (fingers crossed) I was able to upload a new Arduino ESP32 sketch to the T-PicoC3. I mostly followed the instructions at https://github.com/Xinyuan-LilyGO/T-PicoC3, but in a couple of cases, the instructions were confusing, to me at least. Here's the process I followed:
1. Open the Arduino IDE and go to File->Preferences.
2. In the Additional Boards Manager URLs dialog, add the following link, then click OK to save this link.
Note: In the GitHub instructions, it gives you a choice of two different links. Only one works, the one they call the "Development release link".
3. Go to Tools->Board->Boards Manager in the IDE.
4. Type "esp32" into the search box. The boards package "esp32 by Espressif Systems" should be the only boards package displayed. Either click "Install" to add this package, or, if it's already installed, click "Update" to get the latest version. Either way, this will take a while. When it finally does finish, click Close to exit Boards Manager.
Notes: 1) In the GitHub instructions, it says to search for "EPS32C3 Dev", which is misspelled, and won't work anyway. 2) If you've programmed ESP32s before, this "esp32 by Espressif Systems" package will already be installed (probably version 1.0.6), but you need to update it (to version 2.0.3) for it to work with the T-PicoC3. This really confused me, as I expected a brand new package for the ESP32C3.
5. Go to Tools->Board->ESP32 Arduino in the IDE and select ESP32C3 Dev Module
6. To upload your first sketch, you'll probably have to power-up your T-PicoC3 with pin IO9 connected to ground. Once you load your first sketch, you won't have to keep doing this. Also, it doesn't work to press the reset button with IO9 grounded, because the reset button only resets the RP2040.
I'm not out of the woods yet, as my sketch executes a bunch of Serial.printf() calls, but nothing is being displayed on the Arduino Serial Monitor. However, it is doing something, because, initially, the T-PicoC3 would display a Raspberry Pi logo on its screen, then (in very small text) display "Hello Pico and ESP32C3" then "Scanning available networks..." then a list of available networks. Now it displays the logo and then the "Hello" message, but then it displays "The ESP32C3 communication fails..."
Hope this helps someone. I'll keep working to try to solve my Serial.printf() problem or maybe, I'll solder on the pins and hook up an LED to run a Blink sketch, to make sure I'm really downloading (and running) my own sketch.
A.J.
1. Open the Arduino IDE and go to File->Preferences.
2. In the Additional Boards Manager URLs dialog, add the following link, then click OK to save this link.
Code: Select all
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json
3. Go to Tools->Board->Boards Manager in the IDE.
4. Type "esp32" into the search box. The boards package "esp32 by Espressif Systems" should be the only boards package displayed. Either click "Install" to add this package, or, if it's already installed, click "Update" to get the latest version. Either way, this will take a while. When it finally does finish, click Close to exit Boards Manager.
Notes: 1) In the GitHub instructions, it says to search for "EPS32C3 Dev", which is misspelled, and won't work anyway. 2) If you've programmed ESP32s before, this "esp32 by Espressif Systems" package will already be installed (probably version 1.0.6), but you need to update it (to version 2.0.3) for it to work with the T-PicoC3. This really confused me, as I expected a brand new package for the ESP32C3.
5. Go to Tools->Board->ESP32 Arduino in the IDE and select ESP32C3 Dev Module
6. To upload your first sketch, you'll probably have to power-up your T-PicoC3 with pin IO9 connected to ground. Once you load your first sketch, you won't have to keep doing this. Also, it doesn't work to press the reset button with IO9 grounded, because the reset button only resets the RP2040.
I'm not out of the woods yet, as my sketch executes a bunch of Serial.printf() calls, but nothing is being displayed on the Arduino Serial Monitor. However, it is doing something, because, initially, the T-PicoC3 would display a Raspberry Pi logo on its screen, then (in very small text) display "Hello Pico and ESP32C3" then "Scanning available networks..." then a list of available networks. Now it displays the logo and then the "Hello" message, but then it displays "The ESP32C3 communication fails..."
Hope this helps someone. I'll keep working to try to solve my Serial.printf() problem or maybe, I'll solder on the pins and hook up an LED to run a Blink sketch, to make sure I'm really downloading (and running) my own sketch.
A.J.
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
(Sheepishly) With LilyGo's help, I "fixed" my Serial.printf() problem. When you switch the Board to "ESP32C3 Dev Module", a new setting comes up in the Tools menu, labeled "USB CDC On Boot". This setting defaults to Disabled, and when I set it to Enabled, I could view the output of my Serial.printf() calls on the Arduino Serial Monitor. (You may also want to check the Upload Speed setting - I tend to use 115,200, but somehow it keeps getting changed to 921,600.) Problem SOLVED - Thanks LilyGo!
A.J.
A.J.
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
Hmm. I followed the steps that A. J. posted above, but after loading the WiFiClientBasic sketch, I get the splash screen, followed by
Hello Pico and ESP32C3
The ESP32C3 0communication fails...
No doubt it's something simple that I'm missing.
Hello Pico and ESP32C3
The ESP32C3 0communication fails...
No doubt it's something simple that I'm missing.
Re: LilyGO T-PicoC3 - all in one (LCD, WIFi, PICO)
It sounds like you're loading your sketch okay, and the fact that you're getting "The ESP32C3 communication fails..." probably means that you did replace the original ESP32 sketch with a new one. So far so good.Hmm. I followed the steps that A. J. posted above, but after loading the WiFiClientBasic sketch, I get the splash screen, followed by
Hello Pico and ESP32C3
The ESP32C3 0communication fails...
No doubt it's something simple that I'm missing.
I'm looking at the WiFiClientBasic sketch, and it has a bunch of Serial.print statements in it. Did you enable "USB CDC On Boot", then check what's happening on the Arduino Serial Monitor? (Also, make sure the bitrate speeds match between the sketch, the Arduino Serial Monitor, and the "Upload Speed" setting.) I'll bet the sketch is running fine, but its output is not going to appear on the T-PicoC3's little screen, as the screen is controlled by the RP2040.
Hope this helps,
A.J.