You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@nuttx.apache.org by Brennan Ashton <ba...@brennanashton.com> on 2020/09/11 17:11:39 UTC

Re: Keyboard FeatherWing

Greg,
I actually just got one of these FeatherWing boards.  I was thinking
about using it with the  nRF52 Bluefruit LE - nRF52832.  Seemed like a
cool way to add a UX for interacting with the bluetooth stuff.

--Brennan

On Wed, Aug 19, 2020 at 8:37 AM Gregory Nutt <sp...@gmail.com> wrote:
>
> Adam,
>
> Are you still working a the Giant Board?  This would be a good companion
> board:
> https://www.tindie.com/products/arturo182/keyboard-featherwing-qwerty-keyboard-26-lcd/
>
> There is a "Solder Party" channel forum on discord.com.  Groguard
> discusses using the Giant Boards with the keyboard FeatherWing there.
>
> That could be a lot of fun.  I am considering one myself, but I have no
> feather boards to drive it.
>

Re: Keyboard FeatherWing

Posted by Alan Carvalho de Assis <ac...@gmail.com>.
Hi Matias,

On 9/11/20, Matias N. <ma...@imap.cc> wrote:
> A bit related but maybe not so much: as you may have seen in my workshop
> presentation, I'm working on a tiny BLE mouse using BlackBerry trackpad
> sensor,
> based on the nRF52832. As part of this, I built a Feather Wing format board
> just for the sensor:
>
> https://twitter.com/protobits/status/1303733534931197953
>
> I have a NuttX driver mostly complete for it. If there's interest I could
> contribute it to mainline
> (as it is mostly reverse engineering a sensor I was unsure if that was
> appropriate for mainline).
> It basically behaves as an SPI ADNS3530 sensor to most extent.
>

Of course there is interest! This is a nice input solution so simple projects.

BR,

Alan

Re: Keyboard FeatherWing

Posted by "Matias N." <ma...@imap.cc>.
A bit related but maybe not so much: as you may have seen in my workshop
presentation, I'm working on a tiny BLE mouse using BlackBerry trackpad sensor,
based on the nRF52832. As part of this, I built a Feather Wing format board
just for the sensor:

https://twitter.com/protobits/status/1303733534931197953

I have a NuttX driver mostly complete for it. If there's interest I could contribute it to mainline
(as it is mostly reverse engineering a sensor I was unsure if that was appropriate for mainline).
It basically behaves as an SPI ADNS3530 sensor to most extent.

I don't really have a Feather board with me but it would pair really well with the Bluefruit LE.
I will publish the design soon, if you're interested in that as well (the BOM is really small).

Best,
Matias

On Fri, Sep 11, 2020, at 14:24, Gregory Nutt wrote:
> 
> > I actually just got one of these FeatherWing boards.  I was thinking
> > about using it with the  nRF52 Bluefruit LE - nRF52832.  Seemed like a
> > cool way to add a UX for interacting with the bluetooth stuff.
> 
> Cool! That could be useful if you need a complete handheld UI. There are 
> already an ILI9341 and STMP811 drivers.  I suppose it will need a custom 
> keyboard driver over I2C.  There is also a GPIO expander, Neopixel, 
> microSD.  I don't know which GPIO expander is on the board.  GPIO 
> expanders are a nuisance because you can't get off the ground without 
> first having the GPIO exander.  The LCD backlight, touchscreen, microSD 
> and keyboard all depend on the GPIO expander.  Not for people who need 
> immediate gratification.
> 
> I had originally though to use this with the Giant Board that Adam has 
> been working with.  I am having motivational problems, however, and 
> getting things shipped to Costa Rica is slow and/or expensive.
> 
> 
> 
> 

Re: Keyboard FeatherWing

Posted by Gregory Nutt <sp...@gmail.com>.
> But yeah all the touch screen and backlight logic is behind the
> STMP811 touch/gpio expander.
> https://www.solder.party/docs/keyboard-featherwing/schematics_keyboard_featherwing.png

That shouldn't be too bad.  I wrote the STMPE811 driver.  It is a 
multi-function chip and does GPIO, ADC, Touch, temperature sensing.   I 
have only used it for touch so it resides in the an odd location.  It us 
under drivers/input:

    drivers/input/stmpe811.h
    drivers/input/stmpe811_adc.c
    drivers/input/stmpe811_base.c
    drivers/input/stmpe811_gpio.c
    drivers/input/stmpe811_temp.c
    drivers/input/stmpe811_tsc.c

With support for something like this how do you think it is best
> organized in the board folder layout and do you think it would make
> sense to have a logical block for this that could be shared with other
> feather boards?

I think you will be using normal drivers under the drivers/ directory.  
GPIOs are never explicitly exposed to common code. That is the benefit 
from being highly modularized.  All use of the GPIOs will be hidden 
under lower half drivers that are not so different from other lower half 
drivers except that they do not access the MCU GPIO pins, but go through 
I2C to access the GPIOs via the STMPE811.

There are a few good examples of use of the STMPE811GPIO expander:

    boards/arm/stm32/stm3220g-eval/src/stm3220g-eval.h
    boards/arm/stm32/stm3220g-eval/src/stm32_stmpe811.c
    boards/arm/stm32/stm3240g-eval/src/stm3240g-eval.h
    boards/arm/stm32/stm3240g-eval/src/stm32_stmpe811.c
    boards/arm/stm32/stm32f429i-disco/src/stm32f429i-disco.h
    boards/arm/stm32/stm32f429i-disco/src/stm32_stmpe811.c

These are used in LCD-related configurations

    boards/arm/stm32/stm3220g-eval/configs/nxwm/defconfig
    boards/arm/stm32/stm3240g-eval/configs/knxwm/defconfig
    boards/arm/stm32/stm3240g-eval/configs/nxwm/defconfig
    boards/arm/stm32/stm32f429i-disco/configs/fb/defconfig
    boards/arm/stm32/stm32f429i-disco/configs/lvgl/defconfig
    boards/arm/stm32/stm32f429i-disco/configs/nxwm/defconfig






Re: Keyboard FeatherWing

Posted by Brennan Ashton <ba...@brennanashton.com>.
On Fri, Sep 11, 2020 at 10:24 AM Gregory Nutt <sp...@gmail.com> wrote:
>
>
> > I actually just got one of these FeatherWing boards.  I was thinking
> > about using it with the  nRF52 Bluefruit LE - nRF52832.  Seemed like a
> > cool way to add a UX for interacting with the bluetooth stuff.
>
> Cool! That could be useful if you need a complete handheld UI. There are
> already an ILI9341 and STMP811 drivers.  I suppose it will need a custom
> keyboard driver over I2C.  There is also a GPIO expander, Neopixel,
> microSD.  I don't know which GPIO expander is on the board.  GPIO
> expanders are a nuisance because you can't get off the ground without
> first having the GPIO exander.  The LCD backlight, touchscreen, microSD
> and keyboard all depend on the GPIO expander.  Not for people who need
> immediate gratification.

It looks to me like they dropped the SAM20 in there to kind of hide
the IO expander logic behind a i2c keyboard interface, so it might
actually be easier in some ways. At least via polling the FIFO to
start with.
https://www.solder.party/docs/keyboard-featherwing/schematics_keyboard_featherwing_keyboard.png

But yeah all the touch screen and backlight logic is behind the
STMP811 touch/gpio expander.
https://www.solder.party/docs/keyboard-featherwing/schematics_keyboard_featherwing.png

With support for something like this how do you think it is best
organized in the board folder layout and do you think it would make
sense to have a logical block for this that could be shared with other
feather boards?

--Brennan

Re: Keyboard FeatherWing

Posted by Gregory Nutt <sp...@gmail.com>.
> I actually just got one of these FeatherWing boards.  I was thinking
> about using it with the  nRF52 Bluefruit LE - nRF52832.  Seemed like a
> cool way to add a UX for interacting with the bluetooth stuff.

Cool! That could be useful if you need a complete handheld UI. There are 
already an ILI9341 and STMP811 drivers.  I suppose it will need a custom 
keyboard driver over I2C.  There is also a GPIO expander, Neopixel, 
microSD.  I don't know which GPIO expander is on the board.  GPIO 
expanders are a nuisance because you can't get off the ground without 
first having the GPIO exander.  The LCD backlight, touchscreen, microSD 
and keyboard all depend on the GPIO expander.  Not for people who need 
immediate gratification.

I had originally though to use this with the Giant Board that Adam has 
been working with.  I am having motivational problems, however, and 
getting things shipped to Costa Rica is slow and/or expensive.