#BL602 EVB on #NuttX supports one GPIO Input, one GPIO Output and one GPIO Interrupt ... And names them sequentially: "/dev/gpio0", "/dev/gpio1", "/dev/gpio2" ... Which gets super confusing because "/dev/gpio0" doesn't map to BL602 GPIO Pin 0 🤔
https://github.com/lupyuen/bl602_expander#bl602-evb-limitations
What happens when we try to support 23 GPIOs on #PineDio Stack #BL604? Yep the GPIO Names will look really messy on #NuttX RTOS 🤔
https://github.com/lupyuen/bl602_expander#bl602-evb-limitations
All 23 GPIOs are fully wired up on #PineDio Stack #BL604! 😲 Let's simplify #NuttX and rename the GPIOs as "/dev/gpio0" to "/dev/gpio22" ... Easier for devs to create NuttX Drivers 👍
https://github.com/lupyuen/bl602_expander#bl602-evb-limitations
Tracking all 23 GPIOs used by #PineDio Stack #BL604 can get challenging ... We might reuse GPIOs by mistake! 😱 Our #NuttX GPIO Expander shall validate the GPIOs at startup
https://github.com/lupyuen/bl602_expander#check-reused-gpios
Someday our #NuttX GPIO Expander for #BL604 shall validate that the SPI / I2C / UART Pin Functions are correctly assigned to the GPIO Pin Numbers ... So SPI MISO must be either GPIO 0, 4, 8, 12, 16 or 20
https://github.com/lupyuen/bl602_expander#validate-pin-functions
Our #NuttX GPIO Expander for #BL604 implements these GPIO Operations: 1️⃣ Config / Read / Write GPIOs 2️⃣ Attach / Detach GPIO Interrupt Handlers 3️⃣ Handle GPIO Interrupts
https://github.com/lupyuen/bl602_expander#gpio-expander-operations
How we attach a GPIO Interrupt Handler in our #BL604 GPIO Expander for #NuttX RTOS ... Only 1 Interrupt Hander per GPIO ... No Daisy Chaining for now 🌼⛓
https://github.com/lupyuen/bl602_expander#attach-gpio-interrupt
Our #BL604 GPIO Expander handles GPIO Interrupts in #NuttX RTOS ... By demuxing One Single IRQ into Multiple GPIOs
https://github.com/lupyuen/bl602_expander#handle-gpio-interrupt
#BL602 EVB on Apache #NuttX RTOS ... And its strange limit of 3 GPIOs 🤔
https://lupyuen.github.io/articles/expander?3#bl602-evb-limitations
#BL602 EVB manages GPIO Pins in an awkward way on Apache #NuttX RTOS 🤔
https://lupyuen.github.io/articles/expander?4#pin-definitions
Here's how we'll fix the #BL604 GPIOs on Apache #NuttX RTOS ... With our new GPIO Expander
https://lupyuen.github.io/articles/expander?5#overcome-the-limitations
Here are the #NuttX GPIO Operations supported by our #BL604 GPIO Expander
https://lupyuen.github.io/articles/expander?7#gpio-operations
Handling a #BL602 GPIO Interrupt on Apache #NuttX RTOS can get tricky ... Here's how we fixed it
https://lupyuen.github.io/articles/expander?8#gpio-interrupt
#BL602 GPIO Interrupts are multiplexed to One Single GPIO IRQ ... Which is a little harder to handle on Apache #NuttX RTOS
https://lupyuen.github.io/articles/expander?9#bl602-evb-interrupt
Here's how we call our #BL604 GPIO Expander ... To attach an Interrupt Handler in Apache #NuttX RTOS
https://lupyuen.github.io/articles/expander?10#attach-interrupt-handler
Here's how we load our #BL604 GPIO Expander at #NuttX Startup
https://lupyuen.github.io/articles/expander?15#load-gpio-expander
#BL602 is incredibly flexible for selecting GPIO Pin Functions ... But might be error-prone 🤔
https://lupyuen.github.io/articles/expander?17#pin-functions
Here's how we test our #BL604 GPIO Expander ... With #PineDio Stack's Touch Panel on Apache #NuttX RTOS
https://lupyuen.github.io/articles/expander?20#test-gpio-expander
Ideas for validating the #BL602 Pin Functions ... So that #NuttX Pin Definitions will be goof-proof 🤔
https://lupyuen.github.io/articles/expander?19#appendix-validate-pin-function