# Status of "Common IO" library?

**URL:** <https://forums.freertos.org/t/status-of-common-io-library/17682>\
**Category:** Libraries\
**Created:** [June 19, 2023, 11:33pm UTC](https://forums.freertos.org/t/status-of-common-io-library/17682 "2023-06-19T23:33:32Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![natevw](https://d3iykfbgfh8zhg.cloudfront.net/user_avatar/forums.freertos.org/natevw/32/3650_2.png) [@natevw](https://forums.freertos.org/u/natevw)\
**Post date:** [June 19, 2023, 11:33pm UTC](https://forums.freertos.org/t/status-of-common-io-library/17682/1 "2023-06-19T23:33:32Z")

</div>

So FreeRTOS has an ancient “FreeRTOS-Plus-IO” that is listed on **some** of its pages and confirmed via some forum posts if you know to look as _deprecated_ for a long time now.

The AWS fork of FreeRTOS had a “Common IO” library that looked promising as a replacement: `https://github.com/aws/amazon-freertos/tree/main/libraries/abstractions/common_io`

However the AWS fork itself has now been deprecated, and I don’t see any mention of Common IO in the table on the announcement for that: `https://www.freertos.org/2022/10/new-freertos-long-term-support-version-released.html`

Is it correct to assume that Common IO is now deprecated as well or am I misunderstanding the situation? Does the FreeRTOS project currently offer any non-deprecated hardware abstraction layer for I/O peripherals like SPI/I2C/UART and the like?

---

<div class="post-metadata">

**Author:** ![cobusve](https://d3iykfbgfh8zhg.cloudfront.net/user_avatar/forums.freertos.org/cobusve/32/1447_2.png) [@cobusve](https://forums.freertos.org/u/cobusve)\
**Post date:** [June 20, 2023, 2:27am UTC](https://forums.freertos.org/t/status-of-common-io-library/17682/2 "2023-06-20T02:27:20Z")

</div>

We intend to continue with CommonIO for all the reasons that you mention above. It was necessary to move it to a new home when the containing repository was deprecated.

The new location is here

> **[GitHub - aws/common-io-basic: A basic set of I/O libraries for pins and...](https://github.com/aws/common-io-basic)**
>
> A basic set of I/O libraries for pins and serial communications on embedded devices. - GitHub - aws/common-io-basic: A basic set of I/O libraries for pins and serial communications on embedded devi...

That said, we would love to hear a lot of feedback on the direction with hardware abstraction in general. We have found that many Silicon vendors provide such abstractions already and we are trying to understand what would be the best way to provide FreeRTOS users with a consistent and familiar way of communicating with hardware without turning the code into Lasagna with multiple HAL layers on top of each other.

Can you tell us a little bit more about your specific use case? That would go a long way towards understanding the problems users actually need solved.
