HomePlate: E-Ink dashboard with Inkplate 10

@lanrat Trying to get this working, but am currently stuck on the running / building in VSC.

I am seeing this error:

Processing inkplate10 (platform: espressif32; framework: arduino; board: esp32dev)

Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: Redirecting...
PLATFORM: Espressif 32 (6.1.0) > Espressif ESP32 Dev Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:

  • framework-arduinoespressif32 @ 3.20007.0 (2.0.7)
  • tool-esptoolpy @ 1.40500.0 (4.5.0)
  • tool-mkfatfs @ 2.0.1
  • tool-mklittlefs @ 1.203.210628 (2.3)
  • tool-mkspiffs @ 2.230.0 (2.30)
  • toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
    LDF: Library Dependency Finder → Library Dependency Finder (LDF) — PlatformIO latest documentation
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 41 compatible libraries
    Scanning dependencies…
    Dependency Graph
    |-- InkplateLibrary @ 6.0.0+sha.8c2017d
    | |-- Wire @ 2.0.0
    | |-- EEPROM @ 2.0.0
    | |-- SPI @ 2.0.0
    | |-- HTTPClient @ 2.0.0
    | | |-- WiFi @ 2.0.0
    | | |-- WiFiClientSecure @ 2.0.0
    | | | |-- WiFi @ 2.0.0
    | |-- WiFi @ 2.0.0
    |-- NTPClient @ 3.2.1
    |-- Time @ 1.6.1
    |-- Timezone @ 1.2.4
    | |-- Time @ 1.6.1
    |-- QRCode @ 0.0.1
    |-- AsyncMqttClient @ 0.9.0
    | |-- AsyncTCP @ 1.1.1
    |-- ArduinoJson @ 6.19.4
    |-- WiFi @ 2.0.0
    |-- ArduinoOTA @ 2.0.0
    | |-- Update @ 2.0.0
    | |-- WiFi @ 2.0.0
    | |-- ESPmDNS @ 2.0.0
    | | |-- WiFi @ 2.0.0
    Building in release mode
    Compiling .pio\build\inkplate10\src\input.cpp.o
    Compiling .pio\build\inkplate10\src\main.cpp.o
    Compiling .pio\build\inkplate10\src\sleep.cpp.o
    Archiving .pio\build\inkplate10\lib046\libWire.a
    Archiving .pio\build\inkplate10\libf68\libEEPROM.a
    Compiling .pio\build\inkplate10\liba43\SPI\SPI.cpp.o
    Compiling .pio\build\inkplate10\libfad\WiFi\WiFi.cpp.o
    Compiling .pio\build\inkplate10\libfad\WiFi\WiFiAP.cpp.o
    Compiling .pio\build\inkplate10\libfad\WiFi\WiFiClient.cpp.o
    Compiling .pio\build\inkplate10\libfad\WiFi\WiFiGeneric.cpp.o
    Compiling .pio\build\inkplate10\libfad\WiFi\WiFiMulti.cpp.o
    Compiling .pio\build\inkplate10\libfad\WiFi\WiFiSTA.cpp.o
    Compiling .pio\build\inkplate10\libfad\WiFi\WiFiScan.cpp.o
    src/input.cpp: In function ‘unsigned int readMCPRegister(byte)’:
    src/input.cpp:12:28: error: ‘MCP23017_INT_ADDR’ was not declared in this scope
    Wire.beginTransmission(MCP23017_INT_ADDR);
    ^~~~~~~~~~~~~~~~~
    Compiling .pio\build\inkplate10\libfad\WiFi\WiFiServer.cpp.o
    src/input.cpp:12:28: note: suggested alternative: ‘MCP23017_INTFA’
    Wire.beginTransmission(MCP23017_INT_ADDR);
    ^~~~~~~~~~~~~~~~~
    MCP23017_INTFA
    Compiling .pio\build\inkplate10\libfad\WiFi\WiFiUdp.cpp.o
    src/main.cpp: In function ‘void setup()’:
    src/main.cpp:54:31: error: ‘MCP23017_INT_ADDR’ was not declared in this scope
    display.setIntPinInternal(MCP23017_INT_ADDR, display.mcpRegsInt, PAD1, RISING);
    ^~~~~~~~~~~~~~~~~
    src/main.cpp:54:31: note: suggested alternative: ‘MCP23017_INTFA’
    display.setIntPinInternal(MCP23017_INT_ADDR, display.mcpRegsInt, PAD1, RISING);
    ^~~~~~~~~~~~~~~~~
    MCP23017_INTFA
    src/main.cpp:54:58: error: ‘class Inkplate’ has no member named ‘mcpRegsInt’; did you mean ‘ioRegsInt’?
    display.setIntPinInternal(MCP23017_INT_ADDR, display.mcpRegsInt, PAD1, RISING);
    ^~~~~~~~~~
    ioRegsInt
    src/main.cpp:55:58: error: ‘class Inkplate’ has no member named ‘mcpRegsInt’; did you mean ‘ioRegsInt’?
    display.setIntPinInternal(MCP23017_INT_ADDR, display.mcpRegsInt, PAD2, RISING);
    ^~~~~~~~~~
    ioRegsInt
    src/main.cpp:56:58: error: ‘class Inkplate’ has no member named ‘mcpRegsInt’; did you mean ‘ioRegsInt’?
    display.setIntPinInternal(MCP23017_INT_ADDR, display.mcpRegsInt, PAD3, RISING);
    ^~~~~~~~~~
    ioRegsInt
    Compiling .pio\build\inkplate10\libc6b\WiFiClientSecure\WiFiClientSecure.cpp.o
    *** [.pio\build\inkplate10\src\input.cpp.o] Error 1
    *** [.pio\build\inkplate10\src\main.cpp.o] Error 1
    src/sleep.cpp: In function ‘void gotoSleepNow()’:
    src/sleep.cpp:38:38: error: ‘MCP23017_INT_ADDR’ was not declared in this scope
    display.setIntOutputInternal(MCP23017_INT_ADDR, display.mcpRegsInt, 1, false, false, HIGH);
    ^~~~~~~~~~~~~~~~~
    src/sleep.cpp:38:38: note: suggested alternative: ‘MCP23017_INTFA’
    display.setIntOutputInternal(MCP23017_INT_ADDR, display.mcpRegsInt, 1, false, false, HIGH);
    ^~~~~~~~~~~~~~~~~
    MCP23017_INTFA
    src/sleep.cpp:38:65: error: ‘class Inkplate’ has no member named ‘mcpRegsInt’; did you mean ‘ioRegsInt’?
    display.setIntOutputInternal(MCP23017_INT_ADDR, display.mcpRegsInt, 1, false, false, HIGH);
    ^~~~~~~~~~
    ioRegsInt
    *** [.pio\build\inkplate10\src\sleep.cpp.o] Error 1
    ========================================================= [FAILED] Took 7.10 seconds =========================================================

Environment Status Duration


inkplate10 FAILED 00:00:07.098
==================================================== 1 failed, 0 succeeded in 00:00:07.098 ====================================================

  • The terminal process “C:\Users\marct.platformio\penv\Scripts\platformio.exe ‘run’, ‘–target’, ‘upload’” terminated with exit code: 1.
  • Terminal will be reused by tasks, press any key to close it.

Also looks like the Inkplate Arduino Library was updated from 5.7.1 → 6.0.0 in the last two weeks.

Thanks in advance! Your project looks epic!

Hmm, actually, I may just have sorted why, but not how to get around it.

The inkplate10 I received had a sticker on the back stating that due to supply chain issues the MCP23017 chip on this device was not included. Looks like that is where it is hanging up.

I had one of those stickers on my inkplate, and I was able to get Homeplate to run on mine today. The big hang up I had was that it wanted to use version 6.0.0 of the Inkplate library which caused a bunch of errors. I had to specifically paste in a link to the 5.7.1 source code archive, before it would run and upload.
In platformio.ini I changed:
https://github.com/e-radionicacom/Inkplate-Arduino-library @ 5.7.1
to:
https://github.com/SolderedElectronics/Inkplate-Arduino-library/archive/refs/tags/5.7.1.zip

not sure if thats your problem, good luck.

2 Likes

Thanks for that information, I did not realize that only the older versions of the library would work and not the newer ones?

Hopefully there is an update that can auto-detect in the future, but I’m glad you got it figured out.

Before spending more days and hours, can anyone help me with this error?

09:05:48.912 > [SETUP] starting, version(Mar 24 2023, 08:47:33) boot: 36
09:05:48.913 > [ACTIVITY] startActivity(1) put into queue
09:05:48.919 > Wavefrom load failed! Upload new waveform in EEPROM. Using default waveform.
09:05:49.038 > [STATUS] Boot 37 touchpads
09:05:50.125 > [  1688][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
09:05:51.206 > [  2769][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
09:05:51.211 > [SETUP] Battery: 100% (0.00v)
09:05:51.214 > [SETUP] starting button task
09:05:51.216 > [SETUP] starting time task
09:05:51.216 > [TIME] RTC local time (1679645148) 2023-03-24 08:05
09:05:51.222 > [SETUP] starting WiFi task
09:05:51.225 > [WIFI] Connecting...
09:05:51.228 > [SETUP] starting OTA task
09:05:51.228 > [SETUP] starting MQTT task
09:05:51.230 > [MQTT] starting MQTT
09:05:51.233 > [SETUP] starting sleep task
09:05:51.236 > [SETUP] starting activities task
09:05:51.239 > [ACTIVITY] starting activity: 1
09:05:51.242 > [SLEEP] delaying sleep for 15 seconds
09:05:52.918 > [WIFI] Connected to AP successfully!
09:05:52.942 > [WIFI] IP address: 192.168.178.97
09:05:52.944 > [STATUS] WiFi connected
09:05:52.975 > [MQTT] Connecting to MQTT...
09:05:52.986 > [SLEEP] delaying sleep for 20 seconds
09:05:52.990 > [STATUS] Downloading image...
09:05:52.994 > [OTA] OTA ready
09:05:53.011 > [MQTT] Connected to MQTT.
09:05:53.012 > [MQTT] Session present: 0
09:05:53.015 > [MQTT] Subscribing at QoS 2, packetId: 1
09:05:53.020 > [MQTT] Sending MQTT Config
09:05:53.025 > [MQTT] Subscribe acknowledged: packetId: 1 qos: 2
09:05:53.041 > [WIFI] Connected: 192.168.178.97
09:05:53.078 > [MQTT] Connected
09:05:53.237 > [MQTT] sending status update
09:05:53.238 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/boot/state] {"boot":37,"activity_count":1,"boot_reason":"touchpads"}
09:05:53.450 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/wifi_signal/state] {"signal":-41}
09:05:54.052 > [  5615][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
09:05:54.210 > [INPUT] Starting input monitoring...
09:05:55.136 > [  6699][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
09:05:56.399 > [  7963][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
09:05:56.404 > [MQTT] Got invalid temperature (-1), not sending status to mqtt
09:05:56.661 > [MQTT] Got invalid voltage (0.00), not sending status to mqtt
09:05:57.747 > [  9311][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
09:05:58.828 > [ 10391][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
09:05:58.833 > [IMAGE] Downloading image: http://192.168.178.30:5111/1
09:05:58.835 > [ 10395][E][WiFiClient.cpp:313] setSocketOption(): fail on -1, errno: 9, "Bad file number"
09:05:58.999 > [IMAGE] Download done
09:05:59.000 > [STATUS] Rendering image...
09:06:00.166 > [ 11730][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
09:06:01.246 > [ 12809][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263

Still fighting to get used to Visual Studio but think this could be another problem.
best regards

This worked for me! Thanks! I now have the word “HomePlate” displayed on my Inkplate 10.

So… I feel like a complete noob. I am trying to set up Docker on my Synology to work with HAOS on a Pi4. I am not sure what to set for the “HA_SCREENSHOT_URL” in Docker Env variables. I have the IP address of the NAS, port 5000, etc. A static IP for the HomePlate. Just struggling a bit with the config. :frowning:

I just updated the main Inkplate library, it may help some.

@aissbaer Try using the updated library.

@marcjt, when you connect the Homeplate to your computer, what is the output of the serial console?

Hello, first of all, thanks for the project and sharing! Exactly, what I was looking for.

I am still not able to get it work - log tells “displaying is done”, but nothing is displayed. Not sure, what I am doing wrong, got the same set of errors like aissbaer. Image is provided by hass-screenshot container and is downloadable in browser just fine with correct resolution.

Tried:

  • setting waveform 3 - no luck
  • uploading test projects from Soldered - displayed fine, so the inkplate is fine.
  • hardcoded library version 5.7.1 - no luck

Any ideas?

3:41:34.050 > [SETUP] starting, version(Mar 30 2023, 23:41:02) boot: 0
23:41:34.052 > ESP Chip information:
23:41:34.055 > This is esp32 chip with 2 CPU core(s), WiFi/BT/BLE, silicon revision 3, 4MB external flash
23:41:34.063 > Minimum free heap size: 4414763 bytes
23:41:34.066 > Heap summary for capabilities 0x00000C06:
23:41:34.069 >   Totals:
23:41:34.071 >     free 0 allocated 0 min_free 0 largest_free_block 0
23:41:34.077 > [ACTIVITY] startActivity(1) put into queue
23:41:34.177 > [STATUS] Boot 1 normal
23:41:35.208 > [  1640][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
23:41:36.234 > [  2666][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
23:41:36.243 > [SETUP] Battery: 100% (0.28v)
23:41:37.291 > [  3722][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
23:41:37.296 > [SETUP] starting button task
23:41:37.298 > [SETUP] starting time task
23:41:37.298 > [TIME] RTC local time (3603) 01:00:03 Thursday, January 01 1970
23:41:37.304 > [SETUP] starting WiFi task
23:41:37.307 > [WIFI] Connecting...[TIME] Timezone offset: 3600
23:41:37.312 > 
23:41:37.312 > [SETUP] starting OTA task
23:41:37.315 > [SETUP] starting MQTT task
23:41:37.318 > [MQTT] starting MQTT
23:41:37.318 > [SETUP] starting sleep task
23:41:37.321 > [SETUP] starting activities task
23:41:37.324 > [ACTIVITY] starting activity: 1
23:41:37.326 > [SLEEP] delaying sleep for 15 seconds
23:41:39.320 > [MQTT] sending status update
23:41:39.552 > [WIFI] Connected to AP successfully!
23:41:39.554 > [WIFI] IP address: 10.12.15.46
23:41:39.557 > [STATUS] WiFi connected
23:41:39.568 > [MQTT] Connecting to MQTT...
23:41:39.572 > [OTA] OTA ready
23:41:39.581 > [SLEEP] delaying sleep for 20 seconds
23:41:39.583 > [STATUS] Downloading image...
23:41:39.610 > [MQTT] Connected to MQTT.
23:41:39.610 > [MQTT] Session present: 0
23:41:39.613 > [MQTT] Subscribing at QoS 2, packetId: 1
23:41:39.618 > [MQTT] Sending MQTT Config
23:41:39.618 > [MQTT] Subscribe acknowledged: packetId: 1 qos: 2 
23:41:39.624 > [WIFI] Connected: 10.12.15.46
23:41:39.672 > [MQTT] Connected
23:41:39.802 > [TIME] Syncing RTC to NTP
23:41:39.820 > [MQTT] Sending MQTT State: [homeassistant/sensor/hmdash/boot/state] {"boot":1,"activity_count":1,"boot_reason":"normal"}
23:41:40.023 > [MQTT] Sending MQTT State: [homeassistant/sensor/hmdash/wifi_signal/state] {"signal":-69}
23:41:40.291 > [INPUT] Starting input monitoring...
23:41:40.588 > [  7020][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
23:41:41.614 > [  8045][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
23:41:42.625 > [  9057][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
23:41:42.631 > [MQTT] Got invalid temperature (-1), not sending status to mqtt
23:41:43.661 > [ 10093][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
23:41:44.685 > [ 11117][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
23:41:44.691 > [IMAGE] Downloading image: http://10.12.15.10:5000/1.png
23:41:44.693 > [ 11120][E][WiFiClient.cpp:313] setSocketOption(): fail on -1, errno: 9, "Bad file number"
23:41:44.702 > [MQTT] Sending MQTT State: [homeassistant/sensor/hmdash/battery/state] {"voltage":0.28,"battery":100}
23:41:44.713 > [TIME] NTP sync local UNIX time (1680212503) 22:41:43 Thursday, March 30 2023 
23:41:46.732 > [IMAGE] Download done
23:41:46.732 > [STATUS] Rendering image...
23:41:47.762 > [ 14194][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
23:41:48.786 > [ 15218][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
23:41:52.639 > [IMAGE] Image render ready
23:41:52.639 > [IMAGE] displaying....
23:41:53.651 > [ 20082][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
23:41:53.900 > [IMAGE] displaying done.
23:41:54.706 > [MQTT] sending status update
23:41:54.706 > [MQTT] Sending MQTT State: [homeassistant/sensor/hmdash/boot/state] {"boot":1,"activity_count":1,"boot_reason":"normal"}
23:41:54.920 > [MQTT] Sending MQTT State: [homeassistant/sensor/hmdash/wifi_signal/state] {"signal":-67}
23:41:55.934 > [ 22365][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
23:41:55.939 > [MQTT] Got invalid temperature (-1), not sending status to mqtt
23:41:55.947 > [MQTT] Sending MQTT State: [homeassistant/sensor/hmdash/battery/state] {"voltage":0.28,"battery":100}
23:42:00.319 > [ACTIVITY] startActivity(0) put into queue
23:42:00.322 > [ACTIVITY] starting activity: 0
23:42:00.325 > [SLEEP] prepping for sleep
23:42:00.327 > [MQTT] Stopping and disconnecting...
23:42:00.330 > [MQTT] Disconnected from MQTT.
23:42:00.333 > [WIFI] Stopping and disconnecting...
23:42:00.336 > [WIFI] Disconnected from WiFi access point
23:42:00.338 > [WIFI] WiFi lost connection. Reason: 8
23:42:00.445 > [SLEEP] entering sleep for 300 seconds (5 min)

I don’t know what’s causing this, but its my best guess as to the issue, something on the I2C bus is not communicating as it should. On the Inkplate, that included the display. Have you had any luck running the other Inkplate examples, or asked for support in the Inkplate forums?

Yes, actually, running examples from Inkplate with Arduino it was displaying just fine… I will try flashing this from another machine to exclude environment issues. And will dig about this i2c error. Will report back if something interesting found.

Are there any tips to get the touchpads working? I don’t have anything of the little cube things in the 3D printed case and it keeps triggering a wake command from the touch pads.

Further to the above question, what is conductive tape and where can I get it from?

Hi @michael, Hi @lanrat,

I seem to have the same error message as you, i.e.:

[E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263

I trying to get HomePlate running on a recent Inkplate 10. The recent ones from soldered.com feature a slim frame but lack the touch sensitive buttons.

The projects starts fine on the device, logs on to the wifi and downloads the screenshot file from a docker setup of hass-screenshot on the same network. The full output of pio run on my silicon Mac is as follows:

--- Terminal on /dev/cu.wchusbserial210 | 115200 8-N-1
--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
15:20:47.857 >
15:20:47.857 >
15:20:47.857 > [SETUP] starting, version(May  1 2023, 15:20:13) boot: 0
15:20:47.859 > ESP Chip information:
15:20:47.862 > This is esp32 chip with 2 CPU core(s), WiFi/BT/BLE, silicon revision 3, 4MB external flash
15:20:47.870 > Minimum free heap size: 4415335 bytes
15:20:47.873 > Heap summary for capabilities 0x00000C06:
15:20:47.876 >   Totals:
15:20:47.879 >     free 0 allocated 0 min_free 0 largest_free_block 0
15:20:47.884 > [ACTIVITY] startActivity(1) put into queue
15:20:47.894 > Wavefrom load failed! Upload new waveform in EEPROM. Using default waveform.
15:20:47.993 > [STATUS] Boot 1 normal
15:20:49.025 > [  1632][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
15:20:50.052 > [  2658][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
15:20:50.063 > [SETUP] Battery: 100% (0.28v)
15:20:51.107 > [  3714][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
15:20:51.113 > [SETUP] starting button task
15:20:51.120 > [SETUP] starting time task
15:20:51.120 > [TIME] Internal Clock and RTC differ by -1682947247 seconds. local(3) RTC(1682947250)
15:20:51.123 > [TIME] local time (3) 02:00:03 Thursday, January 01 1970
15:20:51.129 > [TIME] ERROR: RTC time is too far in past. RTC likely has wrong value!
15:20:51.135 > [SETUP] starting WiFi task
15:20:51.137 > [WIFI] Connecting...
15:20:51.140 > [SETUP] starting OTA task
15:20:51.143 > [SETUP] starting MQTT task
15:20:51.143 > [MQTT] starting MQTT
15:20:51.146 > [SETUP] starting sleep task
15:20:51.149 > [SETUP] starting activities task
15:20:51.151 > [ACTIVITY] starting activity: 1
15:20:51.154 > [SLEEP] delaying sleep for 15 seconds
15:20:53.146 > [MQTT] sending status update
15:20:54.085 > [WIFI] Disconnected from WiFi access point
15:20:54.088 > [WIFI] WiFi lost connection. Reason: 2
15:20:54.108 > [INPUT] Starting input monitoring...
15:20:54.259 > [WIFI] Connected to AP successfully!
15:20:54.262 > [WIFI] IP address: 10.10.10.57
15:20:54.264 > [STATUS] WiFi connected
15:20:54.308 > [WIFI] Connected: 10.10.10.57
15:20:54.381 > [TIME] Syncing RTC to NTP
15:20:54.395 > [MQTT] Connecting to MQTT...
15:20:54.397 > [OTA] OTA ready
15:20:54.406 > [SLEEP] delaying sleep for 20 seconds
15:20:54.409 > [STATUS] Downloading image...
15:20:55.293 > [  7900][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
15:20:55.404 > [TIME] NTP Sync failed
15:20:56.321 > [  8928][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
15:20:57.350 > [  9957][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
15:20:58.374 > [ 10981][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
15:20:58.379 > [IMAGE] Downloading image: http://10.10.10.20:7000/1.png
15:20:58.382 > [ 10984][E][WiFiClient.cpp:313] setSocketOption(): fail on -1, errno: 9, "Bad file number"
15:20:59.002 > [MQTT] Connected to MQTT.
15:20:59.003 > [MQTT] Session present: 0
15:20:59.005 > [MQTT] Subscribing at QoS 2, packetId: 1
15:20:59.010 > [MQTT] Sending MQTT Config
15:20:59.054 > [MQTT] Subscribe acknowledged: packetId: 1 qos: 2
15:20:59.096 > [MQTT] Connected
15:20:59.147 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/boot/state] {"boot":1,"activity_count":1,"boot_reason":"normal"}
15:20:59.348 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/wifi_signal/state] {"signal":-89}
15:21:00.363 > [ 12970][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
15:21:00.379 > [MQTT] Got invalid temperature (-1), not sending status to mqtt
15:21:00.379 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/battery/state] {"voltage":0.28,"battery":100}
15:21:03.451 > [IMAGE] Download failed
15:21:03.452 > [STATUS] Download failed!
15:21:04.481 > [ 17088][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
15:21:05.509 > [ 18116][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
15:21:06.378 > [MQTT] sending status update
15:21:06.379 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/boot/state] {"boot":1,"activity_count":1,"boot_reason":"normal"}
15:21:06.591 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/wifi_signal/state] {"signal":-91}
15:21:07.604 > [ 20211][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
15:21:07.619 > [MQTT] Got invalid temperature (-1), not sending status to mqtt
15:21:07.619 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/battery/state] {"voltage":0.28,"battery":100}
15:21:15.147 > [ACTIVITY] startActivity(0) put into queue
15:21:15.151 > [ACTIVITY] starting activity: 0
15:21:15.153 > [SLEEP] prepping for sleep
15:21:15.156 > [MQTT] Stopping and disconnecting...
15:21:15.159 > [MQTT] Disconnected from MQTT.
15:21:15.161 > [WIFI] Stopping and disconnecting...
15:21:15.164 > [WIFI] Disconnected from WiFi access point
15:21:15.173 > [WIFI] WiFi lost connection. Reason: 8
15:21:15.204 > [SLEEP] entering sleep for 1200 seconds (20 min)

Do you have any idea where I should continue debugging?

Hi @digodigo, it looks for me like the i2c addressing has changed.
I tried so far switching to a lib v7.0.0 and running Arduino examples from Soldered.

  • using Arduino examples I was able to pull the image from container and display it
  • using newer library version did not change a thing

I am still waiting for a proper frame to build the thing, so at the moment not checking further. Please share, if you will find a way to make the project work with recent hw revision.

Unfortunately I don’t have access to the later revision Inkplate to test with, but I did make some changes to the code in the past week that may help, but they are untested.

I would suggest trying the latest homeplate code, and if that does not work, someone with the newer hardware will need to help make a PR to support the new HW. I think another user may be already working on such a PR, but it does not appear to be ready yet.

1 Like

@lanrat:
I just tested the recent code base. Unfortunately to no avail. Yet, I’d be eager to help testing the newer code. Is there any way I could assist you?
To show which hardware I’m referring to and which does not work as of yet I attach a front and back photo of 'em here:

@digodigo Can you try updating the [env:inkplate10] section in platformio.ini to include ARDUINO_INKPLATE10V2 and let me know how that works?

The new section should look like this:

[env:inkplate10]
; settings for inkplate10
build_flags =
  ${env.build_flags}
  -DARDUINO_INKPLATE10
  -DARDUINO_INKPLATE10V2

It looks like the Inkplate library looks for ARDUINO_INKPLATE10V2 to be defined to tell it to expect the newer hardware.

Hello @lanrat,

unfortunately the added line results in the following output. I also tried only the V2-statement (DARDUINO_INKPLATE10V2) leaving out the non-V2-line - to no avail. Do you have any further thoughts?

$ pio run
Processing inkplate10 (platform: espressif32; framework: arduino; board: esp32dev)
----------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html
PLATFORM: Espressif 32 (6.1.0) > Espressif ESP32 Dev Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
 - framework-arduinoespressif32 @ 3.20007.0 (2.0.7)
 - tool-esptoolpy @ 1.40500.0 (4.5.0)
 - tool-mkfatfs @ 2.0.1
 - tool-mklittlefs @ 1.203.210628 (2.3)
 - tool-mkspiffs @ 2.230.0 (2.30)
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 42 compatible libraries
Scanning dependencies...
Dependency Graph
|-- InkplateLibrary @ 6.0.0+sha.8c2017d
|   |-- Wire @ 2.0.0
|   |-- EEPROM @ 2.0.0
|   |-- SPI @ 2.0.0
|   |-- HTTPClient @ 2.0.0
|   |   |-- WiFi @ 2.0.0
|   |   |-- WiFiClientSecure @ 2.0.0
|   |   |   |-- WiFi @ 2.0.0
|   |-- WiFi @ 2.0.0
|-- NTPClient @ 3.2.1
|-- ESP32Time @ 2.0.0
|-- Timezone @ 1.2.4
|   |-- Time @ 1.6.1
|-- QRCode @ 0.0.1
|-- AsyncMqttClient @ 0.9.0
|   |-- AsyncTCP @ 1.1.1
|-- ArduinoJson @ 6.19.4
|-- WiFi @ 2.0.0
|-- ArduinoOTA @ 2.0.0
|   |-- Update @ 2.0.0
|   |-- WiFi @ 2.0.0
|   |-- ESPmDNS @ 2.0.0
|   |   |-- WiFi @ 2.0.0
Building in release mode
Compiling .pio/build/inkplate10/src/activity.cpp.o
Compiling .pio/build/inkplate10/src/image.cpp.o
Compiling .pio/build/inkplate10/src/info.cpp.o
Compiling .pio/build/inkplate10/src/input.cpp.o
Compiling .pio/build/inkplate10/src/main.cpp.o
Compiling .pio/build/inkplate10/src/message.cpp.o
Compiling .pio/build/inkplate10/src/mqtt.cpp.o
Compiling .pio/build/inkplate10/src/network.cpp.o
Compiling .pio/build/inkplate10/src/ota.cpp.o
Compiling .pio/build/inkplate10/src/qr.cpp.o
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/defines.h:29,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/NetworkClient.h:25,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Image.h:26,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Graphics.h:24,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:26,
                 from src/homeplate.h:3,
                 from src/info.cpp:1:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:30: warning: "IO_EXT_ADDR" redefined
 #define IO_EXT_ADDR 0x21

.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:25: note: this is the location of the previous definition
 #define IO_EXT_ADDR 0x22

In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/defines.h:29,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/NetworkClient.h:25,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Image.h:26,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Graphics.h:24,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:26,
                 from src/homeplate.h:3,
                 from src/input.cpp:1:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:30: warning: "IO_EXT_ADDR" redefined
 #define IO_EXT_ADDR 0x21

.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:25: note: this is the location of the previous definition
 #define IO_EXT_ADDR 0x22

In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/defines.h:29,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/NetworkClient.h:25,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Image.h:26,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Graphics.h:24,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:26,
                 from src/homeplate.h:3,
                 from src/image.cpp:1:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:30: warning: "IO_EXT_ADDR" redefined
 #define IO_EXT_ADDR 0x21

.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:25: note: this is the location of the previous definition
 #define IO_EXT_ADDR 0x22

In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/defines.h:29,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/NetworkClient.h:25,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Image.h:26,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Graphics.h:24,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:26,
                 from src/homeplate.h:3,
                 from src/activity.cpp:1:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:30: warning: "IO_EXT_ADDR" redefined
 #define IO_EXT_ADDR 0x21

.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:25: note: this is the location of the previous definition
 #define IO_EXT_ADDR 0x22

In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/defines.h:29,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/NetworkClient.h:25,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Image.h:26,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Graphics.h:24,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:26,
                 from src/homeplate.h:3,
                 from src/main.cpp:8:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:30: warning: "IO_EXT_ADDR" redefined
 #define IO_EXT_ADDR 0x21

.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:25: note: this is the location of the previous definition
 #define IO_EXT_ADDR 0x22

In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/defines.h:29,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/NetworkClient.h:25,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Image.h:26,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Graphics.h:24,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:26,
                 from src/homeplate.h:3,
                 from src/message.cpp:1:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:30: warning: "IO_EXT_ADDR" redefined
 #define IO_EXT_ADDR 0x21

.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:25: note: this is the location of the previous definition
 #define IO_EXT_ADDR 0x22

In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:87,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/input.cpp:1:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Pcal.h:97:7: error: redefinition of 'class Expander'
 class Expander
       ^~~~~~~~
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:82,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/input.cpp:1:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Mcp.h:86:7: note: previous definition of 'class Expander'
 class Expander
       ^~~~~~~~
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:87,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/activity.cpp:1:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Pcal.h:97:7: error: redefinition of 'class Expander'
 class Expander
       ^~~~~~~~
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:82,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/activity.cpp:1:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Mcp.h:86:7: note: previous definition of 'class Expander'
 class Expander
       ^~~~~~~~
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:87,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/image.cpp:1:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Pcal.h:97:7: error: redefinition of 'class Expander'
 class Expander
       ^~~~~~~~
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:82,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/image.cpp:1:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Mcp.h:86:7: note: previous definition of 'class Expander'
 class Expander
       ^~~~~~~~
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:87,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/info.cpp:1:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Pcal.h:97:7: error: redefinition of 'class Expander'
 class Expander
       ^~~~~~~~
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:82,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/info.cpp:1:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Mcp.h:86:7: note: previous definition of 'class Expander'
 class Expander
       ^~~~~~~~
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/defines.h:29,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/NetworkClient.h:25,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Image.h:26,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Graphics.h:24,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:26,
                 from src/homeplate.h:3,
                 from src/network.cpp:2:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:30: warning: "IO_EXT_ADDR" redefined
 #define IO_EXT_ADDR 0x21

.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:25: note: this is the location of the previous definition
 #define IO_EXT_ADDR 0x22

In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/defines.h:29,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/NetworkClient.h:25,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Image.h:26,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Graphics.h:24,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:26,
                 from src/homeplate.h:3,
                 from src/ota.cpp:2:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:30: warning: "IO_EXT_ADDR" redefined
 #define IO_EXT_ADDR 0x21

.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:25: note: this is the location of the previous definition
 #define IO_EXT_ADDR 0x22

In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/defines.h:29,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/NetworkClient.h:25,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Image.h:26,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Graphics.h:24,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:26,
                 from src/homeplate.h:3,
                 from src/qr.cpp:2:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:30: warning: "IO_EXT_ADDR" redefined
 #define IO_EXT_ADDR 0x21

.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:25: note: this is the location of the previous definition
 #define IO_EXT_ADDR 0x22

*** [.pio/build/inkplate10/src/activity.cpp.o] Error 1
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:87,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/main.cpp:8:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Pcal.h:97:7: error: redefinition of 'class Expander'
 class Expander
       ^~~~~~~~
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:82,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/main.cpp:8:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Mcp.h:86:7: note: previous definition of 'class Expander'
 class Expander
       ^~~~~~~~
*** [.pio/build/inkplate10/src/input.cpp.o] Error 1
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:87,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/message.cpp:1:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Pcal.h:97:7: error: redefinition of 'class Expander'
 class Expander
       ^~~~~~~~
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:82,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/message.cpp:1:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Mcp.h:86:7: note: previous definition of 'class Expander'
 class Expander
       ^~~~~~~~
*** [.pio/build/inkplate10/src/image.cpp.o] Error 1
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/defines.h:29,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/NetworkClient.h:25,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Image.h:26,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/include/Graphics.h:24,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:26,
                 from src/homeplate.h:3,
                 from src/mqtt.cpp:3:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:30: warning: "IO_EXT_ADDR" redefined
 #define IO_EXT_ADDR 0x21

.pio/libdeps/inkplate10/InkplateLibrary/src/include/../boards/Inkplate10.h:25: note: this is the location of the previous definition
 #define IO_EXT_ADDR 0x22

*** [.pio/build/inkplate10/src/info.cpp.o] Error 1
*** [.pio/build/inkplate10/src/main.cpp.o] Error 1
*** [.pio/build/inkplate10/src/message.cpp.o] Error 1
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:87,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/network.cpp:2:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Pcal.h:97:7: error: redefinition of 'class Expander'
 class Expander
       ^~~~~~~~
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:82,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/network.cpp:2:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Mcp.h:86:7: note: previous definition of 'class Expander'
 class Expander
       ^~~~~~~~
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:87,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/qr.cpp:2:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Pcal.h:97:7: error: redefinition of 'class Expander'
 class Expander
       ^~~~~~~~
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:82,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/qr.cpp:2:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Mcp.h:86:7: note: previous definition of 'class Expander'
 class Expander
       ^~~~~~~~
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:87,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/ota.cpp:2:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Pcal.h:97:7: error: redefinition of 'class Expander'
 class Expander
       ^~~~~~~~
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:82,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/ota.cpp:2:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Mcp.h:86:7: note: previous definition of 'class Expander'
 class Expander
       ^~~~~~~~
*** [.pio/build/inkplate10/src/network.cpp.o] Error 1
*** [.pio/build/inkplate10/src/qr.cpp.o] Error 1
*** [.pio/build/inkplate10/src/ota.cpp.o] Error 1
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:87,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/mqtt.cpp:3:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Pcal.h:97:7: error: redefinition of 'class Expander'
 class Expander
       ^~~~~~~~
In file included from .pio/libdeps/inkplate10/InkplateLibrary/src/include/System.h:82,
                 from .pio/libdeps/inkplate10/InkplateLibrary/src/Inkplate.h:27,
                 from src/homeplate.h:3,
                 from src/mqtt.cpp:3:
.pio/libdeps/inkplate10/InkplateLibrary/src/include/Mcp.h:86:7: note: previous definition of 'class Expander'
 class Expander
       ^~~~~~~~
*** [.pio/build/inkplate10/src/mqtt.cpp.o] Error 1
=================================================== [FAILED] Took 1.70 seconds ===================================================

Environment    Status    Duration
-------------  --------  ------------
inkplate10     FAILED    00:00:01.697
============================================= 1 failed, 0 succeeded in 00:00:01.697 =============================================

Thanks for the logs @digodigo.

I just pushed an update that should add support for the Inkplate10v2, and at least make the code compile. Can you grab my latest code and try running it with pio run -e inkplate10v2 and report back?

EDIT: There should be no need to edit the platformio.ini file when setting the inkplate10v2 build environment with the updated code.

1 Like

That looks a lot better - thank you! Yet, displaying a screenshot or any other downloaded image for that matter is quite unreliable. Only every few tries the devices manages to download and successfully display an image. I tried static IP in config.h as well as dhcp.

The output of pio run -e inkplate10v2 is as follows:

Hard resetting via RTS pin...
================================================== [SUCCESS] Took 26.37 seconds ==================================================

Please build project in debug configuration to get more details about an exception.
See https://docs.platformio.org/page/projectconf/build_configurations.html


--- Terminal on /dev/cu.wchusbserial110 | 115200 8-N-1
--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
21:55:21.993 >
21:55:21.993 >
21:55:21.993 > [SETUP] starting, version(May  3 2023, 21:08:28) boot: 0
21:55:21.996 > ESP Chip information:
21:55:21.999 > This is esp32 chip with 2 CPU core(s), WiFi/BT/BLE, silicon revision 3, 4MB external flash
21:55:22.007 > Minimum free heap size: 4414863 bytes
21:55:22.011 > Heap summary for capabilities 0x00000C06:
21:55:22.013 >   Totals:
21:55:22.015 >     free 0 allocated 0 min_free 0 largest_free_block 0
21:55:22.021 > [ACTIVITY] startActivity(1) put into queue
21:55:22.028 > Wavefrom load failed! Upload new waveform in EEPROM. Using default waveform.
21:55:22.139 > [STATUS] Boot 1 normal
21:55:24.266 > [SETUP] Battery: 100% (4.28v)
21:55:24.781 > [SETUP] starting button task
21:55:24.782 > [INPUT] Input monitoring not supported by this platform
21:55:24.787 > [SETUP] starting time task
21:55:24.790 > [TIME] Internal Clock and RTC differ by -1683143720 seconds. local(3) RTC(1683143723)
21:55:24.798 > [TIME] local time (3) 02:00:03 Thursday, January 01 1970
21:55:24.804 > [TIME] ERROR: RTC time is too far in past. RTC likely has wrong value!
21:55:24.813 > [SETUP] starting WiFi task
21:55:24.813 > [WIFI] Connecting...
21:55:24.813 > [SETUP] starting OTA task
21:55:24.815 > [SETUP] starting MQTT task
21:55:24.817 > [MQTT] starting MQTT
21:55:24.820 > [SETUP] starting sleep task
21:55:24.823 > [SETUP] starting activities task
21:55:24.826 > [ACTIVITY] starting activity: 1
21:55:24.829 > [SLEEP] delaying sleep for 15 seconds
21:55:25.948 > [WIFI] Disconnected from WiFi access point
21:55:25.950 > [WIFI] WiFi lost connection. Reason: 2
21:55:26.819 > [MQTT] sending status update
21:55:26.971 > [WIFI] Disconnected from WiFi access point
21:55:26.974 > [WIFI] WiFi lost connection. Reason: 2
21:55:27.995 > [WIFI] Disconnected from WiFi access point
21:55:27.998 > [WIFI] WiFi lost connection. Reason: 2
21:55:28.084 > [WIFI] Connected to AP successfully!
21:55:28.601 > [WIFI] IP address: 10.10.10.57
21:55:28.601 > [STATUS] WiFi connected
21:55:28.681 > [WIFI] Connected: 10.10.10.57
21:55:28.804 > [TIME] Syncing RTC to NTP
21:55:28.818 > [MQTT] Connecting to MQTT...
21:55:28.831 > [OTA] OTA ready
21:55:28.833 > [SLEEP] delaying sleep for 20 seconds
21:55:28.836 > [STATUS] Downloading image...
21:55:28.844 > [MQTT] Connected to MQTT.
21:55:28.844 > [MQTT] Session present: 0
21:55:28.846 > [MQTT] Subscribing at QoS 2, packetId: 1
21:55:28.851 > [MQTT] Sending MQTT Config
21:55:28.856 > [MQTT] Subscribe acknowledged: packetId: 1 qos: 2
21:55:28.919 > [MQTT] Connected
21:55:29.071 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/boot/state] {"boot":1,"activity_count":1,"boot_reason":"normal"}
21:55:29.281 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/wifi_signal/state] {"signal":-55}
21:55:29.667 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/temperature/state] {"temperature":22}
21:55:30.682 > [IMAGE] Downloading image: http://10.10.10.20:7000/1.png
21:55:30.685 > [  9167][E][WiFiClient.cpp:313] setSocketOption(): fail on -1, errno: 9, "Bad file number"
21:55:30.693 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/battery/state] {"voltage":4.28,"battery":100}
21:55:30.703 > [TIME] Internal clock was adjusted by 1683143722 seconds
21:55:30.711 > [TIME] Internal RTC was adjusted by 0 seconds
21:55:30.712 > [TIME] NTP UNIX time Epoch(1683143729)
21:55:30.715 > [TIME] Timezone offset: (7200) 2 hours
21:55:30.718 > [TIME] synced local UNIX time Epoch(1683143729) 21:55:29 Wednesday, May 03 2023
21:55:35.710 > [IMAGE] Download failed
21:55:35.710 > [STATUS] Download failed!
21:55:37.701 > [MQTT] sending status update
21:55:37.702 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/boot/state] {"boot":1,"activity_count":1,"boot_reason":"normal"}
21:55:37.915 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/wifi_signal/state] {"signal":-55}
21:55:37.934 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/temperature/state] {"temperature":22}
21:55:37.944 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/battery/state] {"voltage":4.28,"battery":100}
21:55:49.821 > [ACTIVITY] startActivity(0) put into queue
21:55:49.824 > [ACTIVITY] starting activity: 0
21:55:49.826 > [SLEEP] prepping for sleep
21:55:49.829 > [MQTT] Stopping and disconnecting...
21:55:49.834 > [MQTT] Disconnected from MQTT.
21:55:49.839 > [WIFI] Stopping and disconnecting...
21:55:49.839 > [WIFI] Disconnected from WiFi access point
21:55:49.843 > [WIFI] WiFi lost connection. Reason: 8
21:55:49.878 > [SLEEP] entering sleep for 1200 seconds (20 min)
21:55:49.879 >
21:55:49.879 >

From your experience: do you think that is still an issue of newer hardware or would you suggest debugging somewhere else?

Unfortunate update on the Inkplate 6+ project - my Inkplate was fried after being connected to a USB C charger that was failing (probably exposed it to a full 24 or 48V?) which let the magic smoke out of the Inkplate charger circuit.

I will probably pick it back up again later, but for the moment without a board my development is largely dead. It is a very cool project and I hope to be back soon when I have a little time and money to dedicated to it again.