# 📢 SimpleFOClibrary v2.4.0 is out

**URL:** https://community.simplefoc.com/t/simplefoclibrary-v2-4-0-is-out/8000
**Category:** announcement
**Created:** [February 19, 2026, 12:49pm UTC](https://community.simplefoc.com/t/simplefoclibrary-v2-4-0-is-out/8000 "2026-02-19T12:49:33Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![Antun\_Skuric](https://community.simplefoc.com/user_avatar/community.simplefoc.com/antun_skuric/32/21_2.png) [@Antun\_Skuric](https://community.simplefoc.com/u/Antun_Skuric)
#### Post date: [February 19, 2026, 12:49pm UTC](https://community.simplefoc.com/t/simplefoclibrary-v2-4-0-is-out/8000/1 "2026-02-19T12:49:33Z")

</div>

Hi guys,

The v2.4 is out and it’s a big one!

## 

NEW RELEASE 📢: SimpleFOClibrary v2.4.0 [see release](https://github.com/simplefoc/Arduino-FOC/releases/tag/v2.4.0)

- STM32

- ESP32

- Others

- **Major New features**

- Docs updates - see [docs](https://docs.simplefoc.com/)

- Examples

- Changelog

Thanks everyone for your contributions in code, discussions and issues!  
Antun

---

<div class="post-metadata">

### Author: ![dekutree64](https://community.simplefoc.com/user_avatar/community.simplefoc.com/dekutree64/32/3398_2.png) [@dekutree64](https://community.simplefoc.com/u/dekutree64)
#### Post date: [February 19, 2026, 10:29pm UTC](https://community.simplefoc.com/t/simplefoclibrary-v2-4-0-is-out/8000/2 "2026-02-19T22:29:03Z")

</div>

Excellent! Is there a default implementation of \_readRegularADCVoltage that calls analogRead on other CPUs? That would eliminate a lot of hassle using it in classes like [LinearHall](https://github.com/simplefoc/Arduino-FOC-drivers/blob/master/src/encoders/linearhall/LinearHall.cpp).

---

<div class="post-metadata">

### Author: ![Antun\_Skuric](https://community.simplefoc.com/user_avatar/community.simplefoc.com/antun_skuric/32/21_2.png) [@Antun\_Skuric](https://community.simplefoc.com/u/Antun_Skuric)
#### Post date: [February 20, 2026, 3:30am UTC](https://community.simplefoc.com/t/simplefoclibrary-v2-4-0-is-out/8000/3 "2026-02-20T03:30:45Z")

</div>

Hey!  
No I did not implement it as a unified hardware specific abstraction for the moment.

Honestly, I also wanted to see how people will use it and if it’s gonna be good enough.  
We do not even use it for inline sensing on stm32.

But we might do it for the next release!

---

<div class="post-metadata">

### Author: ![dekutree64](https://community.simplefoc.com/user_avatar/community.simplefoc.com/dekutree64/32/3398_2.png) [@dekutree64](https://community.simplefoc.com/u/dekutree64)
#### Post date: [April 14, 2026, 12:47am UTC](https://community.simplefoc.com/t/simplefoclibrary-v2-4-0-is-out/8000/4 "2026-04-14T00:47:14Z")

</div>

I’ve encountered another minor issue with \_readRegularADCVoltage, which is that it takes a pin name rather than ADC channel, so it can’t be used to read STM32G431’s internal temperature sensor on ADC1\_IN16. Perhaps we could add a secret bitfield in the upper bits or a second argument specifying which ADC to read, in which case the first argument is interpreted as channel number?

---

<div class="post-metadata">

### Author: ![Antun\_Skuric](https://community.simplefoc.com/user_avatar/community.simplefoc.com/antun_skuric/32/21_2.png) [@Antun\_Skuric](https://community.simplefoc.com/u/Antun_Skuric)
#### Post date: [April 14, 2026, 5:18am UTC](https://community.simplefoc.com/t/simplefoclibrary-v2-4-0-is-out/8000/5 "2026-04-14T05:18:07Z")

</div>

Ah!  
Because the corresponding pin name is not declared?  
Not even with the alternatives?

Yeah, it makes perfect sense to make an alternative function definition that takes the ADC index and the channel.

---

<div class="post-metadata">

### Author: ![dekutree64](https://community.simplefoc.com/user_avatar/community.simplefoc.com/dekutree64/32/3398_2.png) [@dekutree64](https://community.simplefoc.com/u/dekutree64)
#### Post date: [April 14, 2026, 2:14pm UTC](https://community.simplefoc.com/t/simplefoclibrary-v2-4-0-is-out/8000/6 "2026-04-14T14:14:17Z")

</div>

It’s an internally connected channel, so there is no pin for it. It’s possible there could be a dummy pin in the library code that maps to ADC1\_IN16, but I don’t see anything in PeripheralPins.c for it. I also tried searching how to get the temperature with analogRead since that also takes pin names, but all results are HAL code.

The opamps also have internal channels that allow reading their output without occupying a physical pin.
