Yes, the program works great on port B but not port A. Library has been great and solid. If I change the code I might get a few CAN messages (like 21-22) but then it stops. That is why I was wondering if something was electrically different in those two ports.
Latest posts made by uberdweeb
-
RE: M5Dial port A as RX / TX interface for CAN module?
-
RE: M5Dial port A as RX / TX interface for CAN module?
I am using Collin Kidder's CAN library, and no mcp stuff as I believe this is the SPI based CAN modules. This library:
https://github.com/collin80/esp32_can
If there is another that is more compatible please let me know.Maybe there is more I need to do so it doesn't attempt to do any SPI on that port?
-
RE: M5Dial port A as RX / TX interface for CAN module?
Thanks for the advice @teastain and @felmue !
Did that code compile for you or did you confirm that you were able to get actual CAN traffic on either port? When I tried it I got a few CAN msgs and then no more. Port B worked 100%I did a test with the 2 relay board on Port A, GPIO 15 and 13 and it does work just fine...
-
RE: M5Dial port A as RX / TX interface for CAN module?
I do something like:
CAN0.setCANPins(GPIO_NUM_1, GPIO_NUM_2);
and it works fine but when I do:
CAN0.setCANPins(GPIO_NUM_15, GPIO_NUM_13);
it does not workand the pins are labeled as being for I2C, so just thinking that there is other circuitry that is blocking RX /TX operation or other software configured to force them in another mode?
-
M5Dial port A as RX / TX interface for CAN module?
I am using M5Dial for CAN, using the CAN interface and TWAI type driver on port B, no problem. But now I am trying to interface with two CAN modules and would like to use Port A and PortB. However seems Port A is set for I2C and can't be repurposed. Is there any way to reconfigure Port A to work as just a serial connection so I can use the CAN interface on this port also?
-
M5Dial and graphics and canvas and sprite: why so hard to figure out??
I am trying to do sprites or canvas or something in the M5 Dial and had a hell of a time getting it to work. In the end I am not sure I did it right.
I see things about canvas and sprites but I don't know the relationship, and I can't figure out what is a M5Dial call, M5Canvas or what.
In the end I did:
M5GFX display;
M5Canvas canvas(&display);then followed with:
auto cfg = M5.config();
M5Dial.begin(cfg, true, true);
display.begin();seems inconsistent but worked.
In my loop I did:
display.startWrite();
canvas.createSprite(240, 240);
canvas.fillScreen(0xABE1);
canvas.setTextColor(WHITE);
canvas.setTextDatum(middle_center);
canvas.setFont(&fonts::Orbitron_Light_32);
canvas.setTextSize(1);
canvas.drawString("The Title", M5Dial.Display.width() / 2, 15);
canvas.pushSprite(0,0);
display.endWrite();In the rest of my code I always did stuff like:
M5Dial.Display.drawString("To Print", 30, 90);Are there M5Dial.Display equivalents to what I am trying to do?
The display is silky smooth without flickering now but I don't quite get it.
-
RE: M5Dial & CAN using PlatformIO
I did get this to work. I'm using this library for the CAN part:
https://github.com/aaknitt/esp32_can/tree/master
Put this code in lib and change the pin designations in esp32_can.cpp:
ESP32CAN attribute((weak)) CAN0(GPIO_NUM_1, GPIO_NUM_2) ;platformio.ini looks like this:
[env:m5stack-stamps3]
platform = espressif32
board = m5stack-stamps3
framework = arduinolib_deps =
https://github.com/collin80/can_common
https://github.com/plapointe6/EspMQTTClient
m5stack/M5Dial
m5stack/M5Unifiedupload_speed = 1500000
monitor_speed = 115200Plug it into Port B
Setup code is like:
CAN0.setCANPins(GPIO_NUM_1, GPIO_NUM_2);
USBSerial.println("Set CAN pins...");
CAN0.begin(500000);
USBSerial.println("CAN has started...");
CAN0.watchFor();
CAN0.setCallback(0, theCanDecoder);If you want full code I can probably clean this all up and publish on Git.
-
RE: Simple Hello World with PlatformIO and M5Dial
After I wrote all of this I figured out I did have the wrong board specified:
board = m5stack-stamps3
seems to be correct.Now I can't get USBSerial functions to work, and previously any Serial.print statements didn't work but I am one step further!
-
Simple Hello World with PlatformIO and M5Dial
I am just getting started with M5Dial. I have some programs working in Arduino studio program but Visual Studio Code and PlatformIO seems way better.
Here is where I am stuck:
I have the platformio.ini file like this:[env:m5stack-cores3]
platform = espressif32
board = m5stack-cores3
framework = arduinolib_deps =
m5stack/M5Dial
m5stack/M5GFX
m5stack/M5Unifiedupload_speed = 115200
monitor_speed = 115200and my main.cpp program is simply:
#include <Arduino.h>
#include "M5Dial.h"
#include <WiFi.h>
#include <M5GFX.h>void setup() {
// put your setup code here, to run once:
auto cfg = M5.config();
M5Dial.begin(cfg, true, true);
M5Dial.Display.setBrightness(34);
M5Dial.Display.fillScreen(0xABE1);
M5Dial.Display.setTextDatum(4);
Serial.print("Test");
}void loop() {
// put your main code here, to run repeatedly:
}Everything compiles and uploads but screen is blank. Serial monitor equivalent complains about a lot.
Did I choose the wrong board?
board = m5stack-cores3 -
RE: The other M5Dial connectors...
Similarly I am looking for the green power connector there:
https://shop.m5stack.com/products/m5stack-dial-esp32-s3-smart-rotary-knob-w-1-28-round-touch-screen
2.54-2P ?
Is that some standard connector?Thanks!