Arduino IDE 2.3.2 ESP8266 - ESP32 OneWire problem

What could be the reason that using the OneWire library works correctly for ESP2866 devices, but if the target board is ESP32, the translation is not successful:

"\OneWire\util/OneWire_direct_gpio.h:134:17: error: 'GPIO' was not declared in this scope return (GPIO.in >> pin) & 0x1"

It is the same OneWire sample program and the only difference in the translation is the difference in board selection.

They are different processors with different pinouts. Check your wiring.

This is not a question of wiring, but operation of the compiler. If I use another (Windows) Arduino IDE computer the Sketch compiles without error.

Hi @penatar. I'm going to ask you to post the full verbose output from a compilation.


:exclamation: This procedure is not intended to solve the problem. The purpose is to gather more information.


Please do this:

  1. Select File > Preferences... (or Arduino IDE > Settings... for macOS users) from the Arduino IDE menus.
    The "Preferences" dialog will open.
  2. Check the box next to "Show verbose output during: ☐ compilation" in the "Preferences" dialog.
  3. Click the "OK" button.
    The "Preferences" dialog will close.
  4. Open the sketch that is failing compilation.
  5. Select the ESP32 board from the IDE's Tools > Board menu.
  6. Select Sketch > Verify/Compile from the Arduino IDE menus.
  7. Wait for the compilation to fail.
  8. You will see a "Compilation error: ..." notification at the bottom right corner of the Arduino IDE window. Click the "COPY ERROR MESSAGES" button on that notification.
  9. Open a forum reply here by clicking the "Reply" button.
  10. Click the <CODE/> icon on the post composer toolbar.
    This will add the forum's code block markup (```) to your reply to make sure the error messages are correctly formatted.
    Code block icon on toolbar
  11. Press the Ctrl+V keyboard shortcut (Command+V for macOS users).
    This will paste the compilation output into the code block.
  12. Move the cursor outside of the code block markup before you add any additional text to your reply.
  13. Click the "Reply" button to post the output.

In case the output is longer than the forum software will allow to be added to a post, you can instead save it to a .txt file and then attach that file to a reply here:

  1. Open any text editor program.
  2. Paste the copied output into the text editor.
  3. Save the file in .txt format.
  4. Open a forum reply here by clicking the "Reply" button.
  5. Click the "Upload" icon (Upload icon) on the post composer toolbar:
    Upload icon on toolbar
    The "Open" dialog will open.
  6. Select the .txt file you saved from the "Open" dialog.
  7. Click the "Open" button.
    The dialog will close.
  8. Click the "Reply" button to publish the post.

Alternatively, instead of using the "Upload" icon on the post composer toolbar as described in steps (5) - (7) above, you can simply drag and drop the .txt file onto the post composer field to attach it.

The ESP32 Espressif version turned out to be the cause of the problem. It was a 3.0 rc1. When I implemented the 2.0.14 version, the compilation were successful without any problems. So the problem was not in the OneWire library but ESP32 version. Problem solved!