Skip to content

HardwareSerial Flow Control #123

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
forthlightning opened this issue Jan 11, 2017 · 5 comments
Closed

HardwareSerial Flow Control #123

forthlightning opened this issue Jan 11, 2017 · 5 comments

Comments

@forthlightning
Copy link

Is this something that is currently or will be enabled?

Looking specifically at this usage in esp-idf example.

I had ben using the uart api here, but found it tricky to work with, so switched to the uart-hal functions here. but my sensor is lookin' to control the flow and I see no option to allow it to do its thing.

@forthlightning
Copy link
Author

Additional question same topic:

What is the significance of these definitions in the uart-hal?

I see SERIAL_8N1 listed as a default in the HardwareSerial.h library here so that's what I used, not sure why. Are the others listed other configuration options?

@me-no-dev
Copy link
Member

these definitions are for bits, stop bits and paring :)
I have not written any hardware flow support in the driver mainly because Arduino has no such thing, so libraries would not expect it. Can you think of a test case that I can make to get this tested and added?

@forthlightning
Copy link
Author

forthlightning commented Jan 31, 2017

This is solved! For reference here is how I did it. I used a combination of GPIO api and arduino delaymicros. I'm sure there is an esp-idf handle for microsecond delays but arduinos work for now.

// flow control for MAX485 modbus to serial transceiver
gpio_set_level( GPIO_NUM_5, HIGH );
delayMicroseconds( 500 );  // trial and error setting for proper sensor response
sdm_serial.write( sdmarr, FRAMESIZE - 1 );
delayMicroseconds( 8300 ); // frame transmission length plus some wiggle room
gpio_set_level( GPIO_NUM_5, LOW );
sdm_serial.flush(); // don't continue until all serial data has been sent, for stability

@forthlightning
Copy link
Author

for reference this is what i was looking for:

espressif/esp-idf#667

@mattncsu
Copy link

I have not written any hardware flow support in the driver mainly because Arduino has no such thing, so libraries would not expect it. Can you think of a test case that I can make to get this tested and added?

Perhaps communicating with LTE modems at high speeds (up to 4Mbps for the SIM7000 (UART design note) might benefit from hardware flow control)

Flow control is very important during the transmission (large data) between the module (DCE) and the terminal device (DTE). When receiving buffer reaches its capacity, the receiving device should be capable of pause the sending device until it overflows. SIM7000 module is designed as no flow control by default, but users can enable this function by AT command.

Jason2866 added a commit to Jason2866/arduino-esp32 that referenced this issue Apr 19, 2022
* Tasmota changes (espressif#123)

* Initial S3 Support

Just so we can compile and test! Some things might/will not work. SPI and UART baud detect need to be looked at.

* Add S3 Toolchain

* Update Esptool and add some missing adjustments

* Add Dual-Core Support

* Fix bootloop issue and enable DSP optimization

* Run Arduino on Core1

* Rework USB selection

* Update HWCDC.cpp

* Update USB.cpp

* Update esp32-hal-tinyusb.c

* fix S3 flash image base (espressif#6208)

* Added my new Unexpected Maker ESP32-S3 boards (espressif#6211)

* Fixes UART_1 TX Pin setup

When passing the PR to this branch, it seems that the change to this line was forgotten.

* Initial SPI support and S3-Box variant

* Bootloader is at 0x0000 for S3 (espressif#6215)

* small adjustments for NVS and PSRAM init

* WIP: Initial support for PSRAM (QSPI and OPI)

* [FEATURE] Basic implementation of Arduino's I2S library (espressif#5304)

Basic version of Arduino's I2S library. We currently support only 16bps + 16000 Hz sampling frequency. Other bitrates and sample rates will print warning and continue to operate, however the resulting audio quality may be poor.
There will be further effort to fix these issues.

* [I2S] Fix lib-builder error

* Update idf_component.yml (espressif#6232)

took me a while

* Fixes RMT examples and adds ESP32-S3 config (espressif#6235)

* WIP: Initial OPI support

* Update Libs with the new lib-builder scripts

* Update board menu for ESP32-S3

* fix ethernet clock runtime setting (espressif#6340)

this was not possible anymore since the GPIO refactoring.

This superseeds espressif/esp32-arduino-lib-builder#60
(which works only for clock on GPIO17). A PR will provided to revert this.
@me-no-dev fyi

The fix is done from @arendst Credits go to him!

* Update IDF libs and fix missing BLE 4.2 features

* Update CI scripts

* script fixes

* Add guard to USB examples

* Disable some examples for ESP32-S3

* skip one more sketch and try again PIO

* Fox SPI example and add proper esptool for PIO CI

* Update ResetReason.ino

* Update IDF, Add ESP-SR and RainMaker

* Enable RainMaker on all chips

* Enable hardware test on ESP32-S3

* Adjust build dir for tests and sketches

* Update tests_build.sh

* Send event also if tests fail

* Add helper script for updating the core version

* [Docs] Added/Updated Lib builder docs (espressif#6401)

* [Docs] Added/Updated Lib builder docs

* [Docs] Fixes according to the PR review

* [Docs] Fixes according to the PR review

* SD_MMC: add ESP32-S3 support

* CmakeList + Rainmaker src files edit

* remove Rainmaker

* Tasmota change

* Fix Unicore WDT on HTTP OTA update

* Revert "ESP32-S3 SDMMC support" (#20)

* Fix reboot into download from TinyUSB on ESP32-S3

Requires manual reboot back into the new firmware after flashing has finished

* Fix psram crash pico d4 (espressif#110)

* Fix reboot into download from TinyUSB on ESP32-S3 (espressif#111)

Requires manual reboot back into the new firmware after flashing has finished

Co-authored-by: me-no-dev <[email protected]>

* Revert "Fix psram crash pico d4 (espressif#110)" (espressif#113)

This reverts commit 56cf555.

* Fix boot freeze when trying to init PSRAM on Pico D4

* revert tinyusb

* hal/usb_serial_jtag_ll.h only C3, H2, S3

* Fix sd mmc

* add wpa_supplicant as requirement

* Update platform.txt

* remove Rainmaker

* Update boards.txt

* Update HardwareSerial.h

* Update USBCDC.cpp

* Update esptool.py

* Update platformio-build-esp32.py

* Update platformio-build-esp32c3.py

* Update platformio-build-esp32s2.py

* Update platformio-build-esp32s3.py

* fix merge errors

* Reordering - HardwareSerial Constructor

* Update platformio-build-esp32.py

* Update platformio-build-esp32c3.py

* Update platformio-build-esp32s2.py

* Update platformio-build-esp32s3.py

* Update pins_arduino.h

* Update platformio-build-esp32.py

* Update platformio-build-esp32c3.py

* Update platformio-build-esp32s2.py

* Update platformio-build-esp32s3.py

Co-authored-by: me-no-dev <[email protected]>
Co-authored-by: Unexpected Maker <[email protected]>
Co-authored-by: Rodrigo Garcia <[email protected]>
Co-authored-by: Tomáš Pilný <[email protected]>
Co-authored-by: Me No Dev <[email protected]>
Co-authored-by: Pedro Minatel <[email protected]>
Co-authored-by: Ivan Grokhotkov <[email protected]>
Co-authored-by: Jan Procházka <[email protected]>

* Bugfix fs read+speed improvements (espressif#127)

* Revert "Edited VFSFileImpl::read to use both read/fread (espressif#6456)"

This reverts commit 7b89b39.

* Added default file buffer size + function to change it by user

Co-authored-by: Jan Procházka <[email protected]>

Co-authored-by: me-no-dev <[email protected]>
Co-authored-by: Unexpected Maker <[email protected]>
Co-authored-by: Rodrigo Garcia <[email protected]>
Co-authored-by: Tomáš Pilný <[email protected]>
Co-authored-by: Me No Dev <[email protected]>
Co-authored-by: Pedro Minatel <[email protected]>
Co-authored-by: Ivan Grokhotkov <[email protected]>
Co-authored-by: Jan Procházka <[email protected]>
brentru pushed a commit to adafruit/arduino-esp32 that referenced this issue Oct 22, 2024
…ion-path

correctly add arduino-cli to PATH
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants