ajden
Members-
Posts
15 -
Joined
-
Last visited
-
Built a console with this plugin a few years ago. Haven't played in a while (had a kid) and built a new computer. Can't seem to get it working again. I don't even get the message on the launch pad that it is looking for a com port. Does the plugin work with 1.9 with breaking ground installed? I'll admit I haven't installed a plugin in a while, so I might not have done that correctly. I wish it had a "readme" in the folder saying copy this folder into your <whatever> location...
-
JoshTheCoward, Have you named your inputs the same as the SAS modes? I'm not sure you can get that to work since higher up in the code the SAS modes are defined. Example: "#define SMPrograde 2" is up in the header of the main tab in the code. So maybe if your Prograde button is hooked up to pin #2, the following would work if (digitalRead(SMPrograde)) { setSASMode(SMPrograde); But this isn't ideal, since you start running into serial I/O pins that should ideally be left blank (depending on your platform). Other "gotchas": Make sure you declare the pinMode(WhateverPin, INPUT_PULLUP); somewhere After some tribulations I discovered that my pushbuttons were NC instead of NO. That made the coding a bit more of a pain. I'm fairly new to this, so if any of the above is way out in left field, please correct me for posterity's sake.
-
I used the free version of sketchup. Apparently in the last couple of weeks that version became browser-based. That stinks, i used a lot of plugins that probably wont be supported anymore. The tab style toggle is a great idea. The nuts do fit over the tips. Its a tight fit at first. Note that the digital model has a very square profile. I spent some time with a hobby knife to round over all the edges so they looked more like the real thing. After that, they fit with no problem.
-
The swtiches are these toggles from Sparkfun: https://www.sparkfun.com/products/9276 The hole I set into the switch tips was 5mm in diameter by 8mm tall. The hole in the original model did result in little holes hear the top of the switch. Even with the re-worked hole in the tip, I got some places where a hold showed up in the wall, but then when I glued these to the switches, it filled the hole in and the paint covered it up! Two things of note: First, the silver paint tends to tarnish after a few weeks of using the switches repeatedly. Not really a big deal, but making them out of polished metalic plastic will probably look awesome and last longer. Second, these toggle switches allow the switch lever arm to rotate. With just a blank toggle, it is tough to turn and not noticeable anyway (cause it's round). But when you add the switch tip, it gives you enough leverage to twist the tip as you work the switch. I'm an OCD person, so this is a big deal for me. Might not be a big deal for you. I love the panel with engine status lights! Straight out of Apollo.
-
Well here's mine. Made using a lot of help from Zitronen's KSP IO plugin. This sprouted from a need to display Radar Altimeter and Ap/Pe without having to keep switching camera views and mousing over the respective nodes. It turned into something more....obsessive. The Apollo style DSKY is based off of Fran Blanche's excellent work disassembling REAL Apollo vintage DSKYs to try to produce a perfect replica. Look her up on the YouTubes if you're an apollophile. I didn't think I was going to use this screen for anything, but 4D systems has a cool mode in their "Visi Genie" software that let me upload custom images for the LED digits so I was able to make these EXACT copies of the Apollo electroluminescent digits. I've used switch covers to prevent accidental aborts and stages, as well as to release the fairings and chutes. This has cut way down on the whoops factor already. Also, I have a "SAS DISC" option which switches my SAS mode to hold automatically when my VVI gets within 5 m/s of 0. Keeps my landers from flipping upside-down if I overcook the landing burn by just a tad. The "Bus Master" switch hibernates probes, deactivates reaction wheels, and basically just disables anything that uses electricity for loooong warps, etc.
-
Guys, what is the actual output of ControlStatus(); I'm trying to turn on LEDs using a TLC5940 chip, using: Tlc.set(PIN, map(ControlStatus(LIGHTS),LOW, HIGH, 0, 2000)); to no avail. Also tried mapping from 0, 1. (note, the Tlc5940 uses a range from 0, 4096 for output values.)= The example provided in the code is digitalWrite(SASLED,ControlStatus(AGSAS)); any idea how I can get this to map to my (0,4096) range? A.J.
-
Thanks! Just ordered two of these. The digital drawings saved me lots of measuring!
-
Stibbons, I'm looking for the same sticks on ebay, but not able to find. Any search suggestions? Even better, can you share the dimensions or digital files for the mounting holes for those sticks? Thanks! By chance, is it one of these: http://www.mouser.com/ds/2/26/APEM-1000-Fingertip-1131239.pdf
-
Holy crap. That fixed it. Even with refresh set to default values, placing the code between "indicators();" and "break;" (like I had read elsewhere in this thread) made it work. Not sure why it didn't work at first? I didn't have to mess with WaitForIdle(); I must have had made some bonehead mistake initially. Hopefully someone else can learn from my mistakes. Can't wait to post a pic of the finished product! Time to solder up 100 toggle switches. Thanks!
-
Guys, Increasing my control refresh to 1000 and "refresh" in the cfg to 1, so both were sending at 1Hz (screen counting up from 0). It seemed to work one time, but that may just have been because the screen was running off of memory and not actually getting commands from the arduino. Here is the code in my KSPDemo16 file--only setup() and loop() shown. void setup() { Serial.begin(38400); // begin communication on the first Serial2.begin(9600); genie.Begin(Serial2); delay (3500); genie.WriteContrast(15); // Display ON (brightness 1-15) initLEDS(); InitTxPackets(); controlsInit(); LEDSAllOff(); } int i=0; void loop() { input(); output(); } and my output void output() { now = millis(); controlTime = now - controlTimeOld; if (controlTime > CONTROLREFRESH) { controlTimeOld = now; controls(); genie.WriteObject(GENIE_OBJ_LED_DIGITS, 3, i); i++; } } Finally, the genie.WriteObject code from that library ///////////////////////// WriteObject ////////////////////// // // Write data to an object on the display // uint16_t Genie::WriteObject (uint16_t object, uint16_t index, uint16_t data) { uint16_t msb, lsb ; uint8_t checksum ; WaitForIdle(); lsb = lowByte(data); msb = highByte(data); Error = ERROR_NONE; deviceSerial->write(GENIE_WRITE_OBJ) ; checksum = GENIE_WRITE_OBJ ; deviceSerial->write(object) ; checksum ^= object ; deviceSerial->write(index) ; checksum ^= index ; deviceSerial->write(msb) ; checksum ^= msb; deviceSerial->write(lsb) ; checksum ^= lsb; deviceSerial->write(checksum) ; /* if (debugSerial) { *debugSerial << "WriteObject: " << ", "; *debugSerial << _HEX(object) << ", "; *debugSerial << _HEX(index) << ", "; *debugSerial << _HEX(msb) << ", "; *debugSerial << _HEX(lsb) << ", "; *debugSerial << _HEX(checksum) << endl; *debugSerial << "Freemem = " << freeRam()<< endl; } */ PushLinkState(GENIE_LINK_WFAN); } If having the WHOLE files will help, let me know and I'll figure out a way to attach or send a PM. Thanks!
-
I've been trying to figure this out for several days with no success. Maybe it's a limitation of the plugin? Just downloaded and installed the latest plugin, and have it working with both the game and the debug tool (which is WAY easier!). I can throw physical switches to affect the game, and this turns on/off LEDs. Great success. I've got a 4D systems uLCD-43 LCD screen that I want to use to create a display. I've coded up the display to look like the old Apollo DSKY and want to send parameter values like Radar Altimeter to the screen. I have Serial2 started up, and can send data to the screen (example: just write "1234" to one of the fields on the screen) but doing so breaks the communication with the game. Using the debug tool confirms that it is no longer receiving my switch inputs from the arduino, nor can I send commands back to it. Starting up the serial port and attaching the screen doesn't seem to cause the problem. It's when I actually tell it to "genie.WriteObject()" that issue arises. The logs show it is connecting to COM5, which is my arduino mega, but nothing is happening after that. Datasheet for the screen can be found here: http://www.4dsystems.com.au/product/uLCD_43/ I don't mind buying a different LCD since others seem to have had luck with those (though I cannot find any source code examples for displays like Zitronen's). I'd prefer to make this display work since I've got it laying around. Any help would be appreciated, thanks! [LOG 13:58:09.485] [UIApp] OnDestroy: KSPedia [LOG 13:58:09.500] [PlanetariumCamera]: Focus: Kerbin [LOG 13:58:09.501] [UIMasterController]: HideUI [LOG 13:58:10.166] UICanvasPrefabSpawner FlightUI spawning Flight [LOG 13:58:10.188] UICanvasPrefabSpawner FlightUI spawning VesselLabels [LOG 13:58:10.190] [UiApp] Awake: ResourceDisplay [LOG 13:58:10.195] [AddonLoader]: Instantiating addon 'AeroGUI' from assembly 'KSP' [LOG 13:58:10.198] [AddonLoader]: Instantiating addon 'KSPSerialPort' from assembly 'KSPSerialIO' [LOG 13:58:10.200] KSPSerialIO: Version 0.19.0 [LOG 13:58:10.201] KSPSerialIO: Getting serial ports... [LOG 13:58:10.202] KSPSerialIO: Output packet size: 200/255 [LOG 13:58:10.204] KSPSerialIO: Found 3 serial ports [LOG 13:58:10.205] KSPSerialIO: trying default port COM1 [LOG 13:58:14.729] KSPSerialIO: KSP Display not found [LOG 13:58:14.732] KSPSerialIO: trying port \Device\Serial0 - COM1 [LOG 13:58:19.238] KSPSerialIO: KSP Display not found [LOG 13:58:19.240] KSPSerialIO: trying port \Device\USBSER001 - COM5 [LOG 13:58:23.749] KSPSerialIO: found KSP Display at COM5 [LOG 13:58:23.750] [AddonLoader]: Instantiating addon 'KSPSerialIO' from assembly 'KSPSerialIO' [LOG 13:58:23.754] [PlanetariumCamera]: Focus: Kerbin [LOG 13:58:23.756] [UIMasterController]: HideUI