Hi guys
yes, it looks like there was a display / touch related change. See Screen Driver Change note here.
My guess would be that this change has not yet fully been integrated into UIFlow2.
Thanks
Felix
Hi guys
yes, it looks like there was a display / touch related change. See Screen Driver Change note here.
My guess would be that this change has not yet fully been integrated into UIFlow2.
Thanks
Felix
Hello @Rusticus42
there is a solution: use a M5PbHub unit (which is an I2C unit) to read the button states of the Dual Button unit.
I created an example in the UIFlow2 Project Zone: M5AtomS3_RFID_PbHub_DualButton_Test_UIFlow2.3.7
Note: I do not have an M5AtomS3R so you probably need to adapt the example.
Thanks
Felix
Hello @Rusticus42
yes, it is possible to connect more than one I2C unit. However Dual Button unit is not an I2C unit. You can see that from the color of the connector.
The connector on AtomS3R is white which meas it can be setup for I2C, I/O or UART mode, but only one at the time.
Thanks
Felix
Hello @MCU1536
assuming you are using Arduino and the M5StamPLC library then it is clear as to why the date and time are not retained. There is no code in the M5StamPLC library to enable charging the RTC backup battery.
I created a PR which enables RTC backup battery charging.
Thanks
Felix
Hello @RPI25
hmm, I am afraid I am out of ideas, sorry.
Edit: BTW: I now tested with both, M5Core2 (original) and M5Core2 v1.1. RGB LED on port A work with both of them.
Thanks
Felix
Hello @RPI25
ok, three RGB LEDs should definitely not draw too much power.
When you add the RGB unit did you choose port A? By default port B is selected which uses different GPIOs.
Also, just to make sure, you did connect the input side of the RGB unit to M5Core2 port A, yes.
Thanks
Felix
Hello @RPI25
how many RGB LEDs are connected to port A? The flicker could indicate that port A is overloaded if too many RGB LEDs are attached.
Also, how do you power your M5Core2? Via USB-C or battery or other?
BTW: My test was with 6 RGB LEDs.
Thanks
Felix
Hello @RPI25
hmm, I've tested M5Core2 v1.1 and RGB with firmware v2.3.7 in UIFlow 2.3.7 and it works for me. No power issue at all.
You can find my example in the UIFlow2 Project Zone: M5Core2_RGB_Test_UIFlow2.3.7
Thanks
Felix
Hello @Physalice
this is strange indeed. Unfortunately I have no idea why this only happens when using M5NanoC6, sorry.
Thanks
Felix
Hello @Physalice
hmm, works for me. Make sure you are logged into your account before attempting to save your work into the cloud.
I created a small test - you could try to see if that loads the blocks for you. You can find it in the Project Zone called: M5NanoC6_RGB_LED_Blink_Test_UIFlow2.3.7
Thanks
Felix
Hello @Bat21
hmm, not completely sure what the issue is. I am running your example code in UIFlow2 v2.3.7 and when I press BtnA it cycles through Frwd, Rvrs and Stop just fine.
An attached battery seems to show the correct battery state as well.
Could you please cut down your example to the minimum showing the issue you are describing?
Thanks
Felix
Hello @clarksn
hmm, this sounds a lot like a polarity issue with the battery cables. Unfortunately there is no standard for this particular battery connector about which pin to be plus and minus. I've seen both variants in the wild.
My M5Tough, powered via internal battery connector, takes about 68 mA @ 4 V when running UIFlow2.
Thanks
Felix
Hello @RubberDuck
I can confirm the shark fin like signals on my M5CoreS3. I am no I2C expert, but I think they might be marginal and so maybe just barely working on one M5CoreS3 but not on the other when talking to AXP2101. Maybe a stronger pull-up resistor might help?
BTW: I checked the I2C SCL line on an M5Core2 and it is much more rectangular, e.g. much more like I would expect it.
Thanks
Felix
Hello @RubberDuck
just curious, any particular reason you did not read out register 0x22? It is my understanding that this register determines whether the system powers off or does a reset when writing 0x01 to register 0x10.
Also curious, when the issue happens, is the battery full or close to be fully discharged?
The register values of the bad AXP2101 seem to be random. Have you tried to lower the I2C bus speed?
In my experience seemingly random issues often stem from bad / not sufficient power supply. Is the battery in good shape?
Thanks
Felix
Hello @scroggyg
I modified my test program to use internal I2C, did a i2c scan w/o ExtIO2 connected and with it - there seems to be no i2c address conflict.
For me ExtIO2 works either connected to port A or to internal. What I noticed though is that I need to wait (after powering up M5Tab5) for the UIFlow2 screen fully being loaded before running the program.
If I do not wait long enough I occasionally see a crash too.
Thanks
Felix
Hello @scroggyg
here are the result of my tests with various firmware versions:
v2.3.5 : running program -> crash
v2.3.6 : running program -> crash
v2.3.6 hotfix : running program -> ok
v2.3.6 hotfix2 : running program -> ok
Note:
You can find the program I used in the UIFlow Project Zone: M5Tab5_ExtIO2_Test_UIFlow2.3.6
Thanks
Felix
Hello @HappyUser
I found an SX1276 LoRa in my box of electronics and wired it up to an M5Core2 using the same GPIOs as the LoRa module is using.
Then I tested with the stock LoRaReceiver example (adapted to M5Core2) and with some added output to the display successfully. E.g. both LoRa and display worked fine together. You can find my example here.
What do you mean by restart? Powering up M5Core2 or pressing the reset button or after uploading new firmware?
How are you powering the M5Core2? Maybe there is a power supply issue?
Thanks
Felix
Hello @HappyUser
you do not need to explicitly call M5.Power.begin() as it is already called from within M5.begin().
Well, as soon as you call M5.Display.startWrite() it will assert the display CS line and occupy the SPI bus for the display until you call M5.Display.endWrite(). In other words, between those two calls the SPI bus can only be used for display updates.
Question: why are you calling M5.Display.startWrite() explicitly at all? You should be able to write onto the display by calling M5.Display.println() or similar without first calling M5.Display.startWrite(). Doesn't that work for you?
Thanks
Felix