@felmue thanks I will try this later I was using the ESP32 deep sleep methods directly vs the M5 ones.
Best posts made by aleekwen
-
RE: Paper S3 questions
Latest posts made by aleekwen
-
RE: Paper S3 questions
@felmue thanks I will try this later I was using the ESP32 deep sleep methods directly vs the M5 ones.
-
RE: Paper S3 questions
@wsanders said in Paper S3 questions:
Being an e-ink device the objective is to leave the device off most of the time, and only wake it to update the screen every once in a while.
Just curious if you (or anyone else has) actually got this working on a PaperS3 - meaning on battery only if you can go to light/deep sleep and it wakes up on a timer (it only wakes up on a timer for me when on power but not on battery for me).
-
Paper S3 questions
I know the PaperS3 is really new but just wondering if anyone has figured out the following:
-
Github for the factory demo - I cannot find it.
-
Any way to get the S3 to wakeup via touch (interrupt) or side button, when in a light sleep?
-
Side button can turn off the S3 but not turn it back on (when not plugged into a power source), hence it cannot be used to "reset" the S3 (it only works when the S3 gets power via the USB).
If anyone has figured out the above, that would be very helpful.
otherwise it works relatively well
thanks
-
-
RE: multiple i2c bugs
@felmue this IDE code works for me on the CoreS3 - I had to cobble together code from various sources to get this to work (and still use the CoreS3 lib)
#define LTR553_ADDR 0x23
void writeRegister8(uint8_t _address, uint8_t subAddress, uint8_t data, uint32_t freq) {
Wire1.beginTransmission(_address);
Wire1.write(subAddress);
Wire1.write(data);
Wire1.endTransmission();
}uint8_t readRegister8(uint8_t _address, uint8_t subAddress, uint32_t freq) {
Wire1.beginTransmission(_address);
Wire1.write(subAddress);
Wire1.endTransmission();
Wire1.requestFrom(_address, (size_t)1);
return Wire1.read();
}void readRegister(uint8_t _address, uint8_t subAddress, uint8_t buff[], int size, uint32_t freq) {
Wire1.beginTransmission(_address);
Wire1.write(subAddress);
Wire1.endTransmission();
Wire1.requestFrom(_address, (size_t)size);
for (int i = 0; i < size; i++) {
buff[i] = Wire1.read();
}
}bool LTR553Init() {
// soft reset
uint8_t value_r = readRegister8(LTR553_ADDR, 0x80, 100000L);
value_r &= (~0x02);
uint8_t value_w = value_r | 0x02;
writeRegister8(LTR553_ADDR, 0x80, value_w, 100000L);// PS Led Pluse writeRegister8(LTR553_ADDR, 0x83, 0x0F, 100000L); // ALS Active Mode value_r = readRegister8(LTR553_ADDR, 0x80, 100000L); value_r &= (~0x01); value_w = value_r | 0x01; writeRegister8(LTR553_ADDR, 0x80, value_w, 100000L); // PS Active Mode value_r = readRegister8(LTR553_ADDR, 0x81, 100000L); value_r &= (~0x03); value_w = value_r | 0x03; writeRegister8(LTR553_ADDR, 0x81, value_w, 100000L); return true;
}
uint32_t GetLTR553AlsCh0Value() {
uint8_t buffer[2];
uint32_t result;
readRegister(LTR553_ADDR, 0x8A, buffer, 2, 100000L);
result = (buffer[1] << 8) | buffer[0];
return result;
}uint32_t GetLTR553AlsCh1Value() {
uint8_t buffer[2];
uint32_t result;
readRegister(LTR553_ADDR, 0x88, buffer, 2, 100000L);
result = (buffer[1] << 8) | buffer[0];
return result;
}uint16_t GetLTR553PsValue() {
uint8_t buffer[2];
uint16_t result;
readRegister(LTR553_ADDR, 0x8D, buffer, 2, 100000L);
buffer[0] &= 0xFF;
buffer[1] &= 0x07;
result = (buffer[1] << 8) | buffer[0];
return result;
}call the Init from setup and call the Get* ones as you need
-
RE: V2 Unit Training fails
@drjakob I am trying to use it also but it appears to be "down" - based on other posts someone at M5STACK needs to reset their server and delete things in queue?