@mati I have mentioned this to Jimmi, and his answer basically was, well don't use wifi and OLED. Not exactly a practical answer. I'd rather have a long hat, isolating the DHT and BMP from the heat.
dda
@dda
Posts made by dda
-
RE: Env vs Hat Env
-
RE: project error at: https://github.com/0x1abin/M5Stack_TinyBasicPlus
A screenshot or full text of the error would be helpful...
-
RE: Env vs Hat Env
If you have the OLED and WiFi on, the heat they produce will skew the results. I connect the ENV hat to my Stick C with wires, and I get different, lower-temp results.
-
RE: LoRa pager on M5StickC + CardKB
MOSI/MISO is the SPI equivalent of Tx/Rx for UART (except the lines are not crossed: MOSI connects to MOSI, and MISO to MISO). The other difference is that's it's a bus, like I2C, with one master and one or more slaves. So you can connect a screen and a LoRa chip, for instance. However, you need a separate SS (Slave Select) line per device. You're going to have difficulties finding enough pins for this. As suggested, it'd be much better to use a managed chip (MCU + LoRa chip).
I've tried a few things but it's too cumbersome. I switched back to M5Stack for this.
-
RE: [Solved] ENV Hat on M5Stick-C not working at all
In my code I was using
Wire
instead ofWire1
... So by changing that it worked. -
RE: M5StickC AXP I2C
The datasheet has most of the registers explained. I have the Chinese version, so it requires a little squinting (my Chinese is ok but nowhere near the level required to read datasheets with a smile pasted on my face ;-).
However I recently spent some quality time with the source code and the datasheet, so I have that more or less nailed down.
Register 46H is IRQ Status 3. Bits 0/1 are for the button:
// 0 not press, 0x01 long press, 0x02 press uint8_t AXP192::GetBtnPress() { Wire1.beginTransmission(0x34); Wire1.write(0x46); Wire1.endTransmission(); Wire1.requestFrom(0x34, 1); uint8_t state = Wire1.read(); if (state) { Wire1.beginTransmission(0x34); Wire1.write(0x46); Wire1.write(0x03); Wire1.endTransmission(); } return state; }
In
Wire1.write(0x03);
0x03 is the two bits 0 and 1 set.There are many more registers, and the best would be to get a datasheet in English and read the registers description.
-
RE: Mpu9250 interrupt pin
It should be 34. From
MPU9250.cpp
:// Configure Interrupts and Bypass Enable // Set interrupt pin active high, push-pull, hold interrupt pin level HIGH until interrupt cleared, // clear on read of INT_STATUS, and enable I2C_BYPASS_EN so additional chips // can join the I2C bus and all can be controlled by the Arduino as master writeByte(MPU9250_ADDRESS, INT_PIN_CFG, 0x22); writeByte(MPU9250_ADDRESS, INT_ENABLE, 0x01); // Enable data ready (bit 0) interrupt delay(100);
0x22
= 34. -
RE: Getting Longer Battery Run Time
Nice list.
Espressif recommends you turn off BT, ADC and WiFi yourself before going to deep sleep, as the ESP32 doesn't do it "gracefully". Something like this:
esp_wifi_stop(); esp_bluedroid_disable(); esp_bluedroid_deinit(); esp_bt_controller_disable(); esp_bt_controller_deinit(); esp_bt_mem_release(ESP_BT_MODE_BTDM); adc_power_off(); esp_deep_sleep_start();
-
RE: M5StickC: turn off screen completely
I have a lot of different LoRa chips and setups. I have one board, at 230 MHz, that I can connect through the hat connector (I need 3 pins + Vcc/GND). I have transceivers, both at 230 and 433 MHz, I connect to via RS485 (I bought a hat for that, and also some RS485 for my M5Stack cores). etc etc. The smaller the better :-)
-
RE: M5StickC: turn off screen completely
@ws1088 Funny enough I bought my M5StickC with the watch strap and all, but not because I wanted a watch – I don't wear them – but because it enables me to tie it up to my backpack when I do LoRa range tests :-)