An I/O controller for virtual pinball machines: accelerometer nudge sensing, analog plunger input, button input encoding, LedWiz compatible output controls, and more.

Dependencies:   mbed FastIO FastPWM USBDevice

Fork of Pinscape_Controller by Mike R

Issue: Add support for 8 channel addressable LEDs (Closed: Wontfix)

This would be a V3 feature although conceptually the spare I/O pins on Pinscape V2 today could be used to provide a few channels.

Pinscape today does not use a lot of horsepower to process button inputs and end outputs. There is plenty of compute left to support 8 (or more) addressable LED strips in a similar way to Teensy. The advantage of course is to build everything into one controller.

This is probably a V3 function because it would need to use some of the existing I/O pins creating an incompatibility and would need a redesign of the Pinscape main board.

I will add other V3 feature requests that will also need this redesign.

2 comments:

15 Jan 2019

I'm actually pretty skeptical that the KL25Z could keep up with addressable LEDs. They need quite a lot of bandwidth if you have more than a few of them because of the need to push the bits serially down the whole chain on every PWM update. I also just don't see a lot of benefit to trying to replace the Teensy setup. It would consolidate the hardware a bit, but at the software level, I think this needs to go across the USB bulk endpoint, so you'd need some kind of dual HID + WinUSB interface, which I'm not sure is even possible. And that wouldn't simplify anything at the software setup level on the PC; it would still look like two devices.

13 Feb 2019

I did quite a bit more investigation on this. I started with this article that shows some problems using DMA with the KL25Z. This makes it a non-starter.

You really need eDMA support that can be found on the more advanced uCs as described in this series of articles that use the FRDM-K64F.

Enhanced DMA is supported on a number of the newer KL uCs boards such as the FRDM-KL28Z ($23) and FRDM-KL82Z ($32). I will need to do a more detailed I/O pin mapping to make sure that a complete set of 8 I/O pins are available such as C0-C7 or D0-D7.