Categories for Led

Multi Purpose Comms Panel

Here are a few shots of the button panel. They are supposed to say 0,1,2,3 etc though 9 with a OK and CANCEL. I don’t have a real purpose for them yet, so until then i just call it a Multi Purpose Comms Panel. The other switch should be used to toggle comms, for example MUTE microphone or something.

While this seconds panel looks ok (i copied the concept from the first panel) i’m not too pleased with the button alignment. Somehow it doesn’t look up to par with the rest of the designs. They look misaligned, and fiddly. Which is a shame, because they have an excellent clicketiclick feel to them and work perfectly.

For the switches of the buttons I used old ALPS switches from a space 1995 keyboard. I had to make new keycaps because i couldn’t find the ones from the original keyboard. So the keycaps i 3d-printed, sanded, and sprayed with a few coats of PlastiDip.

I may try this one again by recessing the buttons into a grid panel (see further down) so you don’t actually notice the misalignment. To do that, I would have to recess the buttons by mounting them on a second board which would make the design even more complex, adding to a total of 4 layers (front, coloring, switch mount, led lighting panel).

Anyway, that’s all for now. Enjoy the pictures.





Below is an image from the Apollo Lunar module. It looks much tighter. Also it has light coming through the numbers. That would be cool too.


Throttle done

I’m finished soldering and wiring the throttle assembly. All the buttons work and are recognised in-game. All the leds work and all the animations a properly triggered.

Pretty proud.

Final touches on the HOTAS project.

No picture this time. I want to save them for when i’m done.

Today I finished the soldering of the prototype board and I am very much a happy camper now. Dropping the breadboard and switching to properly soldered wires made the whole contraption much more stable. The potentiometers have almost no jitter anymore even though there’s 2 meter of cable between the two modules. The data is looks pretty solid. The potentiometers I am using right now were taken from a scrapheap, but after I sprayed some ‘Kontakt’ contact spray into the potmeters they runs absolutely smooth and jitter-free.

I have a few more solder joints to do to finish up the lighting scheme for the throttle housing, and then I have a few lights left on the yoke (X/Y stage). This second module doesn’t have the throttle lighting bar so it hasn’t got as much leds as the other one.

All this means that i am close to finishing the project. I need to figure out a way to mount the modules to my desk or my chair. The modules aren’t heavy enough to sit solid on the desk. Some mounting fixture is needed and i’m not ready to drill holes in the desk just yet.

Oh joy(stick)

And so we arrive at the end of yet another day of tinkering. Working on the electronic bits here and there. I managed to connect and test all the analog axes. They work great but my change to turn the Z-axis into a proper ‘Throttle’ HID report resulted in Elite Dangerous no longer recognising the axis. So that was a total waste of time. Nevertheless I also worked on some lighting effects and they look pretty ok. Not as bright as I would’ve liked but legible nonetheless.

So the status now is a working throttle block with a few lights, and a partially working X/Y stage with just the trigger, no light, and a buckload of wires sticking out with a possible chance of shorting something out. That will be my first priority.

All the hardware works. All communication between throttle and yoke works, the lights work, the data gets through. It is now a question of expanding on the same concept (connect a light, connect a button).

Firmware is also coming along nicely. With this amount of leds and wires it is becoming impossible to keep the firmware generic, especially with all the animation stages going on. I did keep the source nice and clean though by using a few object classes here and there so people checking out the code later on should be able to understand it. One example is a Calibration class which takes care of doing all the math work to take the potmeter value and turn it into an self-calibrating value between -32000 and 32000 (which is what the joystick reports to the computer). So what does the calibration do? Well basically after plugging in the device is filters out the noise, calculates the minimum and maximum values and transforms that into a proper scale with a few end-stop deadzones. The deadzones will make sure that the maximum or minimum value can be reached in top or bottom 5% of the stick. The reason for this work is to avoid having to implement a custom calibration tool.

Tomorrow I hope to move from the breadboard to a solderboard so I can get rid of all the jumper cables and have some solid reliable connections. All these wires is making the readings a bit noisy.

IMG_1929 IMG_1930

Simplyduino SPI 32×8 led matrix

I was using LedControl library but I found it horribly slow. It took almost 100 msecs to refresh the display. So I’ve bypassed the library, used my own frame buffer and switched to hardware SPI.The current sketch (you see in the movie) makes use of the buffer shift to update all four displays at once, instead of shifting every row/display separately I’m now pushing screens so fast I needed to introduce a delay(25) between the screen updates (The screen scrolls 1 pixel every redraw).