Keyboard FeatherWing (from solder.party) as a personal Lisp computer


#1

Hello world!,

I recently purchased the “Keyboard FeatherWing” from https://www.solder.party via pimoroni. It has an LCD screen, qwerty keyboard, SD card slot and RGB led.

Keyboard FeatherWing

https://www.solder.party/docs/keyboard-featherwing/

I am using a feather M4 express with it running uLisp arm… works fine but I am yet to implement all the relevant drivers to turn it into a uLisp computer.

I will document my progress in this thread and post any code I create that others may find useful… this is a spare time project so it may take some time :)

So far I followed the adafruit guide for the M4 feather express to flash it via arduino and flashed the ARM uLisp code with a few headers uncommented for vt100 and line editing. The next steps are…

  1. Get the graphics library working with the LCD screen.
  2. Create an i2c driver for the keyboard
  3. Access the SD card
  4. Control the RGB led
  5. Document turning it into a personal lisp computer (or alternative lisp badge).

Any comments, thoughts or suggestions are appreciated!

Thanks for uLisp! I have been learning common lisp recently and I was pleasently surprised to find uLisp and its its comprehensive documentation and examples. Fantastic work!


#2

Looks like a great basis for a Lisp computer - look forward to hearing how you get on!


#3

If you’re interested in building your own from scratch there’s a useful article here:

Interfacing a BlackBerry Q10 keyboard

The keyboards are pretty cheap; for example see Makerfabs:

Keypad for Blackberry Q10

or AliExpress:

Original Keyboard Flex Replacement Part For Blackberry Q10


#4

I think I may try building a version like this from scratch using a standalone keyboard or using the lisp badge or portable lisp.

I attempted to get the featherWing working briefly at the weekend…

The LCD screen used on it is completely different to the one in uLisp ARM… I wasn’t able to get it to work after changing the library.

I didn’t get the SD card, RGB LED or keyboard working either… It might be easier to build the thing from scratch. I think I will need to make a variant of the uLisp arm and hook into the adafruit and solder.party arduino libraries somehow to get it too work.

Thanks for the blackberry Q10 link.

I will keep you posted on my progress, I’m learning a lot about lisp and trying out loads of other boards and modules at the same time. For example i’ve got a 4G GSM shield from dfrobot plugged into a metro m0 express running uLisp and I’m adapting the GSM code from the uLisp examples to use it.

One thing i’ve noticed from the repl is that if I run a function I can’t run anyother repl commands… unless I’m doing something wrong. I suppose that is just how it works? I will have to launch my application from a single function eventually?


#5

I’m not quite sure what you mean by this. You can’t run multiple threads in uLisp so once you’re running a function in the REPL you have to wait for it to finish (or interrupt it by typing “~”) before you can run another.


#6

Ok that makes sense :) . I guess you can’t run many functions in the background and still use the repl… (I haven’t tried using interrupts yet … I didn’t know you could interrupt with “~” so thanks for the info.