Jump to content

My KSP control panel


stibbons

Recommended Posts

  • 3 months later...
  • 1 month later...

Progress stalled on this project for a while - life was getting in the way and I was procrastinating on the next piece of work. But I finally finished laying these out and sent them off for manufacture this evening.

xrXV8sa.png

Edited by stibbons
Link to comment
Share on other sites

Over the weekend I got designs bedded down for the last of my panels and did the layout for the whole board.

So today I bought some 12mm MDF and started to assemble the housing. Bit of a chore - turned out I was cutting parts too big for the table saw at my hackerspace, so had to do a lot of cuts by hand. But I'm pretty proud of the result so far.

AOT8CCG.jpg

Next step is attaching the top, and I can start cutting holes for the control panels.

Edited by stibbons
Link to comment
Share on other sites

This evening I cut out and attached a base for my enclosure from the same 12mm MDF. Discovered that last night's assembly was a few degrees off square, but managed to shove it in to place and get everything lined up. It looks... pretty much the same as it did yesterday. :)

Then I started working on the top of the enclosure. Cut it to shape from 12mm MDF, then printed out outlines for all of my separate perspex panels and started arranging them. I already had a rough outline that I drew up on my PC, but actually seeing full-size outlines on the board is a very different story. The joysticks got moved up a little bit to avoid resting my wrists on the bottom edge of the board. I realised that some controls weren't as visible as they could be and rearranged things slightly.

wZuj3LG.jpg

I'm going to use some of the empty space to place a small keyboard. The rest is for future expansion - adding an OLED with a navball is high on the list for v2.

I'll probably put this aside for the next little while. Need to finish the display interface, and assemble the PCBs when they get back from the fab. Then I can start working on mounting panels on the board.

Edited by stibbons
Link to comment
Share on other sites

I wish you good luck!

I do like the keyboard keys that OneWheeledPanda got in his thread: http://forum.kerbalspaceprogram.com/threads/100869-Building-a-Simpit - they're white with a removable clear cover so you could put labels underneath. Unfortunatelly I haven't been able to find them at a reasonable price.

I have this:

KerbalCMVideoBoard.jpg

I only wanted the fader lever to use as a throttle, and the smart dot matrix LED alphanumeric display modules (they are hard to see, because the plastic masks many of them very well, unless actually lit). The keys are very nice, and they have removable caps, but there are far more than I'll need, and I have these awesome little clicky pushbutton switches with LEDs that I've wanted to use for YEARS. I've considered desoldering all of these buttons and dropping the leftovers for sale or something. Oh, and they are all illuminated buttons.

Link to comment
Share on other sites

This week I ordered what should be the last of the bits and pieces I need for assembly. Components I didn't yet have for the electronics, assorted enclosure hardware, cabling, a 5V buck converter to step down the 12V I'm feeding in to the system. The biggest surprise was the bag of 50 3mm LEDs for a dollar including shipping.

Oh, and I'm up to pretty much the hardest part so far - deciding what colour to paint the enclosure.

yLlooWw.jpg

Edited by stibbons
Link to comment
Share on other sites

A very long and productive Saturday. Taped my templates on to the board, drilled guide holes for the mounting screws, then got to work with a jigsaw cutting holes for the panel components. Checked the finished panels for fit, and everything's looking *awesome*.

i5Bm4ZJ.jpg

The board is all prepped, and I've laser cut the last of the instrument panels. Next up is painting the enclosure and finishing construction and mounting the panels.

Edited by stibbons
Link to comment
Share on other sites

I have this:

http://richfiles.solarbotics.net/eb/KerbalCMVideoBoard.jpg

I only wanted the fader lever to use as a throttle, and the smart dot matrix LED alphanumeric display modules (they are hard to see, because the plastic masks many of them very well, unless actually lit). The keys are very nice, and they have removable caps, but there are far more than I'll need, and I have these awesome little clicky pushbutton switches with LEDs that I've wanted to use for YEARS. I've considered desoldering all of these buttons and dropping the leftovers for sale or something. Oh, and they are all illuminated buttons.

LOL Rich!

I used to use that exact same video mixer when I was the editor of the morning news program at my high school in the late 90s. Man I am old. Now you just need one of those old camcorders that had a tiny CRT in the view finder and add that as a wave scope. You could view the wave form of the audio in KSP and it would be pretty sweet looking.

Like this..

http://hackaday.com/2015/07/07/headphone-amp-features-a-tiny-crt/

Link to comment
Share on other sites

LOL Rich!

I used to use that exact same video mixer when I was the editor of the morning news program at my high school in the late 90s. Man I am old. Now you just need one of those old camcorders that had a tiny CRT in the view finder and add that as a wave scope. You could view the wave form of the audio in KSP and it would be pretty sweet looking.

GAH!!! IDEAS!!! :confused:

I have like, two or three of those CRTs laying around. That is... VERY tempting.

Link to comment
Share on other sites

I got a viewfinder CRT powered up today...

KerbalCM_CRT.jpg

There are no bounds to my random parts supplies! :sticktongue:

Check out this itty bitty screen!

KerbalCM_CRTscreen.jpg

I wanna say I have at least two or three of these screens laying around, but I'll have to dig up the other ones. I'm thinking of mimicking the link you shared, and doing game audio (should be VERY cool, since I use Chatterer), and another CRT, I might create some sweep generators to produce random lissajous patterns. I think it'd be REALLY cool to take a third and loop some Kerbal facial expressions through.

It just occurred to me... that ENTIRE SCREEN is the same size as the space between a single major division on that ginormous meter! :cool:

Link to comment
Share on other sites

It is indeed! Great job.

Thanks, coming from somebody building that amazing chair it means a lot. :D

Going to be a fairly slow week, with lots of parts still in the mail and real life not leaving enough time for the little bits that I wanted to do. Full steam ahead painting and mounting components over the weekend though.

Link to comment
Share on other sites

I, for one, am in LOVE with that motorized throttle slider! You've inspired me to go the extra step and see if I can motorize that video effects board fader lever that I'm salvaging for my throttle.

It would be curious if you could tie that motor to a control loop that would determine whether the throttle is changed by the lever first or if the value returned by the computer changed first. If the lever changed first, then it should alter the throttle by sending the new position's data to the computer. If the computer's value changed, then drive the motor on the lever to adjust the potentiometer value till it matches the value returned by the computer. I've heard PID is possible on an arduino, so It should be, theoretically, feasible.

The benefit, is you don't just have the throttle that slams on and off, but actually finely adjusts itself to match the in game throttle... Unless that gets disabled when the game is reading the inputs... In which case, I typed most of this for nothing! :P

I suppose though, that if you run MechJeb, then having the lever mirror the game's throttle value precisely would be very cool!

Your motorized throttle is ridiculously awesome, and that IS worth typing about!

Link to comment
Share on other sites

The motorised throttle was originally intended just to zero the throttle on vessel change - adding the toggle switch for presets was almost an afterthought. I had a hand in writing the current throttle code for KSPSerialIO, updating it so that the controller throttle and keyboard controls will (kind of) play along. In general the controller's idea of throttle control is king, unless something like RemoteTech or kOS (I've never tried Mechjeb) overrides throttle control entirely. At any rate, KSPSerialIO does not yet send the final throttle level back to the controller, so any more fine-grained control isn't really an option at the moment.

No cool pictures of current progress, but I've sorted out one of the programming challenges I was very nervous about. The displays will be driven by a second arduino microcontroller, and shunting VesselData between them using I2C was a significant problem.

Arduino provides the Wire library for I2C, but it's really not cut out for my use case. First, it's synchronous, so calls to send data using it block until the data has all been sent. This strikes me as an incredible waste of the nice interrupt-driven hardware TWI module on Atmel chips. Second, it uses a maximum 32 byte buffer, and allocates quite a few of them internally. Increasing that to cope with the 190 byte VesselData packet KSPSerialIO uses would chew up almost all of the RAM on a Uno or Leonardo processor. I'd have to juggle looping through and manually blatting 32 byte chunks on to the I2C bus, along with sending and receiving through the UART and a fair amount of button handling. It was looking grim.

I tried a few different approaches. There's some alternative I2C drivers around for Arduino, but the all work on the assumption that they'll only be running on master devices, fetching data from peripheral slaves. Nobody seems to have done much work on optimising Arduino I2C slave drivers. My solution eventually came from reading Atmel's TWI application notes, AVR311 and AVR315, and adapting their sample master and slave drivers to run in the arduino environment.

Took a couple of evenings work, but I've updated the Arduino Mega in my controller to also broadcast VesselData packages on to an I2C bus as soon as they're received. That happens asynchronously - I just make a function call and pass it a pointer to my data, and the driver uses an interrupt handler to marshall data in to the TWI module while my code carries on doing other stuff. Looks like that's happening without slowing anything else down so far.

I also wrote a quick test sketch on a slave arduino that receives VesselData packets from I2C and writes data from it to the serial console. Enough of a proof of concept that I'll be able to start writing code for my displays immediately when they're up and running. Pretty happy with how that panned out.

Link to comment
Share on other sites

The printed circuit boards I had made for the displays and the display controller arrived. They're pretty amazing. I'm still waiting on some of the components, but hope to finish soldering them up before next weekend.

Test-mounting components finally brought home the fact that s**t's getting real on these displays.

fNLHlUC.jpg

A couple of weeks after I ordered the PCBs I realised there was a pretty bad error in the layout. Can you spot it?

dmCVREg.jpg

I think I can correct for it in assembly. But I have four of these displays to do it for. Lots of fudging.

Edited by stibbons
Link to comment
Share on other sites

I think I can correct for it in assembly. But I have four of these displays to do it for. Lots of fudging.

9 out of 10 Kerbals agree that fudging is almost as good as actual fudge! The 10th skipped out of free fudge and is actually fudging moar boosters to a rocket right now. :D

Link to comment
Share on other sites

Been pretty busy on this project over the weekend, but also hit lots of annoying little setbacks.

Started by assembling the display controller. This thing will drive four display panels, with a separate Arduino Pro Micro, three MAX7219 ICs and a multiplexer to read button input. The fit was a little tighter than expected. You can just see where I had to carve the corner off one of those IDC connectors to make room for the red arduino board.

lFdDeAV.jpg

Unfortunately, hooking it up resulted in a lot of magic smoke escaping. I'd managed to mount the surface-mount multiplexer the wrong way around, resulting in feeding current through it the wrong way and shorting it out. Managed to desolder it again, but then destroyed my only spare trying to get it on. So now I have a board with no multiplexer, one pad ripped up in the mayhem, and some new chips in the mail. :/

Then I got on with painting the enclosure. First a couple of coats of primer. Both inside and out - I want the interior a nice bright white because I intend to fill it with lights for backlight on the panels.

Nk4VuFL.jpg

I've put two coats of metallic paint on so far. Will probably sand it off and add another coat to try to smooth out the top, which has collected a couple of drips and patchy bits. Some of the painting was done outside, but it's winter and cold and dark by the time I get home from work, so have brought it in to a corner of the lounge room. So far without accidentally painting the floor or the cat.

Aog6ldh.jpg

Finally I spent a lot of time this evening trying to create button caps for the little illuminated tac switches below the seven segment displays. I had originally planned on 3d-printing these with clear ABS, and went through a lot of experimenting with different designs for the very tight space. Several failed attempts and I've finally realised that that approach just will not work. It requires a lot more fine detail than I'm going to get out of any printer I have easy access to. I've got another idea for dealing with those, but it's work for another night.

(oh, and I'll start uploading these images to imgur instead of trying to hotlink twitter images)

Edited by stibbons
Link to comment
Share on other sites

How did I miss this thread?

You gotta put a link in your sig!

Seriously amazing work! :D Looking very slick! :)

Thanks. :)

I guess I haven't been advertising it much because there's still so much to be done. I did finally get around to updating the first post though, so I guess that's something.

Link to comment
Share on other sites

Who cares about progress :)

Sharing the idea and plans is half the fun :D

Sorry to hear about the chip dragon being released :/

I'm not sure I'd be game with SM components just yet.

I'm not sure if you mentioned this earlier or not (I don't recall reading it) --

who are you getting your boards manufacturer through, and can I ask how much they cost?

I'm looking into getting some done up, and I'm just curious to see who other locals are using. :)

Link to comment
Share on other sites

Yeah, no worries.

I don't think you'll get PCBs manufactured down under for a reasonable price, especially small run stuff. There's only one local prototype PCB service that I know of, Breadboard Killer. Like most places they batch orders together in to large panels and have them fabricated in Asia. Their prices are reasonable, I've heard positive reviews about them, and the slightly faster shipping turnaround seems worthwhile. But their website was offline when I wanted to order my boards. :(

I ended up using OSH Park. Very easy to use, if you're designing boards in Eagle you don't need to generate Gerbers, just upload the .brd file. Ordered 25th June, arrived 17th July. Got six copies of the display board and three of the controller (most of these places require multiples, OSH only lets you order lots of three). Came to around $125US, and standard shipping is free worldwide. Really happy with the quality of the boards, and you won't find that funky purple colour anywhere else. I'd definitely order from them again, but I do want to try Breadboard Killer, support the local business and all that.

Link to comment
Share on other sites

you won't find that funky purple colour anywhere else. I'd definitely order from them again, but I do want to try Breadboard Killer, support the local business and all that.

I do like the purple. It's a nice refreshing change from the usual green.

US$125 is ok when the AU$ is close to parity. I might try Breadboard killer in the near(ish) future. Will let you know how I go :)

Thanks for the info :D

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...