Wing5

Introduction

This is a 5 Channel fader wing that can be soldered at home, with no special soldering experience.
Due to Distributor Stocks the LPC1114FN28 is discontinued, even it is on the Long term Support list of NXP. Due to this fact I will make some fixes and then freze the design. (Done on 05 September 2016, last Version is PA3).

I will switch to a different SoC for Wing5-Version B. Options are:

  1. PIC32 in DIP28 Package. It does not offer as much I/O pins as the LPC1114FN28. I may drop the I2C interface.
  2. Arduino compatible footprint. This makes the Wing5 a shield.
  3. Arduino Mini/Micro/Nano compatible. This makes it possible to use small of the shelf modules.
  4. Use and SMD part for the SoC.

The Goals

The Board

The board uses an LPC1114FN28, which by now is the only ARM-Cortex microcontroller within a thruhole package. It is fast, does not need an external oscillator and has 22GPIO pins and a lot of peripherals available. It is not cheap but can be bought from a lot of distributors.
I use Cerry MX keys in the design, as they are very reliable and they are available in a huge amount of flavours (click, no-click,...). If you would like to use other buttons, you can take the design and exchange the keys with others.
For interfacing with the outside world I decided to use the serial port as well as the I2C port. For the serial port I added a CAN-Bus Transceiver to be able to attach a bunch of these boards to a bus. I will use a baudrate that is a multiple of 115200 baud, to be able to attach the boards to a PC via a USB to Serial converter with a CAN-Transceiver attached.

The PCB

the PCB is done in KiCad to solve the goal to only use open source tools. the project file will be available soon, as some makeup things are needed. Here is a pdf of the Wing5 schematic(old Version Wing5 PA2).

As KiCad has a 3D view which shows the result within a 3D viewer I made some screenshots of the board.
Tilted view of the top side View of the top side View of the bottom side
[Tilted top view] [top view] [bottom view]

The Manufactured PCB

The manfuactured PCB's just arived. Here are pictured from one of the unpopulated PCB's. The pictures are not great. I need to find some time to set up a propper camera and lighting setup.

Tilted view of the top side View of the top side View of the bottom side
[Tilted top view] [top view] [bottom view]

The Populated PCB

Now it't time to populate the PCB's.

Tilted view of the top side View of the top side View of the bottom side
[Tilted top view] [top view] [bottom view]

The following pictures show the Wing5 PCBs inside a case for playing around with.

Two Wng5 side by side Backside Front

The Adapter

Here you find the first version of the Wing to PC Adapter schematic. It is meant to be used with the TTL-232R-3V3 cable from FTDI.

The Test Software

The first version of the software will be based on the software of a small LPC1114FN28 based light desk extended by the communication interface for UART and I2C. The first test software version (20150930) outputs fader and button changes via the serial Port and expects LED changes via the serial port. It outputs the fader state with the string F<faderid><value>\r\n, where faderid is a two digit hex number and value is a three digit hex value. A button press is output with the string B<buttonno>, where button no is a 3 digit button number and b<buttonno> is output when a button is released. To change the intensity of an LED, send the string L<mask><collumn><row><value>, where mask, collumn and row are one digit hex values and value is a 3 digit hex value. Each LED has four timeslots, each a quarter of a second long. For each LED, a value can be set for each of the four timeslots, independently. The mask is a bitmask of the slots that shall be modified by the operation. Collumn is the collumn and row is the row of the LED. The value is a value between 0x000 and 0x3E8.
For example, to set the LED in the second column third row to 0x300 use the command:
LF12800
To let LED in column 0 row 4 blink, you can use:
L304300
To let it blink in double speed use the following command:
L504300
And to let it blink with 180 degree phase shift.
LA04300

The Software

The final firmware as well as the Linux test application send and receive events. The firmware polls the keys and the faders and does a Multiplexing on the LED's and dimms them. The Fader and Key-Changes are send over the serial port, once a listener has registered itself. The Linux application receives the fader and butten changes and sends led-changes back to the wing. Links to the software archives can be found in the Files section below.

The Open Isues

The Files


Last update: 2016-09-05
Contact me via: