-
Posts
838 -
Joined
-
Last visited
Content Type
Profiles
Forums
Blogs
Gallery
Everything posted by Jidis
-
Hi Jason, I asked the same thing a while back: http://www.midibox.org/forum/index.php?topic=8138.0 Take Care, George
-
Simone, If you want this piece of s***, you can have it- I've been meaning to desolder it and build another, but I probably have enough buttons to build another without it. There's four DIN chips buried in there somewhere. ;D My problems with it are 1) The DIN wiring is mangled. I think it goes (top to bottom) 8to5,1to4,16to13,etc. (or something equally weird) and 2) I'd probably be better off with DIN/DOUT elements paired up and less buttons for tinkering (I usually only need a few) You'd obviously need to get the things off 8) and there are traces on both sides (a desolder braid job). George
-
Just saw this in Mix- http://www.trinityaudiogroup.com/ I hope it starts a trend. It would be cool to see more "expandable" versions of stuff like that, maybe even using a standard board. 500MHz/256Megs/20GigHD seems pretty low. ???
-
...... no I'm not (talking to self). Turns out one of the German sprut.de pages gave me the impression that it was 3.7u. There's a PBrennerNG 4.4 there (pbng44.zip) which displays the button text and all in English, and I've now successfully blown a few 16f84 apps with that and the PB+ board. :) George Still couldn't get a real 16f877 app to behave like it did in the Microchip simulator. >:(
-
Steve, Check Reaper if you haven't already (www.cockos.com). Not sure it's what you're after, but there isn't much to lose with it (unrestricted free trial/$40 non commercial/200 otherwise). The minimum requirements are exceptionally low and the support (for now) is incredible. Good Luck, George PS- GUI is about like Windows3.1 ;D , but there are some themes and stuff you can use.
-
Andrea, I'm an eternal newbie with both, but have run into some of the same questions. I did find that certain areas of the app were indeed easier to handle in C, even with a very "modest" knowledge of it. For instance, reading and writing to arrays and such seems to be much easier than figuring out how to access tables in ASM. Similar to what you're talking about with the buttons, I was working on a "stepped" control in some DAW software a while back, which was actually represented by a pot in the plug-in. The pot only had six level values between 0 and 127 and I wanted to use a pair of up/down arrows instead. Using a constant array with a dimension of six elements, I could stick whatever six values I wanted in there and add/subtract '1' from a counter variable to get the correct element (value) from the array. Likewise, you could easily check a specific pin's status beforehand (for a "shift" button,etc.) and jump to a different group of values or a whole different function if the button was in. Sounds like a lot, but in C it only works out to a few added lines. :) Ideally, maybe you could mix the two as some do here, but it seems to be more with adding ASM code to a C app. ??? Good Luck, George
-
James, Keep in mind it's not as "big" as it looks. A bunch of it is just default "main file" stuff which was already there, then you've got that light flashing crap and the DIN stuff that doesn't have anything to with the AIN part (or need to be there). I also should have mentioned that if you see any weird variable letters, they don't mean anything. I use the standard temporary/count letter "i" a bunch, but sometimes I'll use whatever random crap comes to mind. (didn't expect myself to have to read that, let alone anyone else ;)) George PS- You've probably noticed now, but the "Val - " gets drawn across both lines and stays there (4x per line), then on pot value draws, the current values get written into the blank space across the lines (without clearing the screen) and on each consecutive value, the cursor position gets moved over 10 spaces or so to the right, so they land in the empty space after each "Val - ". The first one obviously needs to start a few spaces over as well (looks like the "j" variable). *** I can clean that mess up a bit and comment it, but I'd rather have someone point out all the other stuff that's really wrong with it first. ;D
-
Hi, Got my burner running last night and was wondering what the frontend options are for the 16F877 chips (English support if available). * I'm taking the current PBrenner software with me already, and I've set the voltage trimmer for the PIC16. Thanks, George
-
Well, I did find an old comment of TK's pointing to the ADCON1 movlw 0x06 ; PortA and E: All Pins are digital pins movwf ADCON1 And can now get an 0x3F and an 0x07 for the A and E ports, which would of course be all bits active for the 6 bits of A and the 3 bit E port. :) :) :) Sadly, that's what I get in the "virtual" world of MPSIM. Still not able to turn many pins on with the code blown into a real 877, but I'll work on that tomorrow (could just be the programmer). Take Care, George PS- Yes I did try to read up on the ADCON register before I posted ;D. It just seems all I found were references to things which needed to be done if using the ports for analog or for inputs (thought I was safe with all outs :-[).
-
Sorry this is non-MIOS, but I guess it's still ASM. :) How much extra init junk needs to be done to activate all five banks on a 16F87x as digital outputs? I'm trying to play with some shift register code and rather than constructing a circuit using a smaller chip that I understand a little better, I figured I'd use this hybrid Core/JDM thing I've got, which already has most of the access available. To begin with, I figured I'd get the minimal stuff needed just to set/clear the pins I have available, and found that they didn't seem to be turning on as I requested. I then moved into MPLAB's simulator to see if I could get it going in there before blaming the circuitry. In MPSIM, I've got the config lines and bank switching worked out OK (I think), and I've got that error suppress line to keep it from throwing the "not in bank 0" errors at me. I've also got the 16F877 file properly included. From what I can remember, I've got it switching to bank1, loading 0x00 to the WREG, then calling TRISx five times for the five ports. Then I move back to bank0, stick an 0xFF in the work register, and dump that to the five ports in a similar manner (trying to turn them all "on"), and I end it with a "looped" goto line. What I *get* in the register view panel when I stop is (hex) 10,FF,FF,FF,00 for the five ports. I realize the A&E ports are shorter in width. I think I've even tried to access them separately with smaller numbers assigned, but get the same thing (PortE always stays off, and the fifth bit is the only thing I can successfully activate on PortA). I'm guessing there's something special which needs to be done for those two to be seen as regular (digital) output ports (the ADCON1 register or something for instance??). Can anyone briefly point me in the right direction? I'm also guessing there may be something about some of the pins in this circuit, which may make them unsuitable as digital outs, but I figure if I can get the simulator working for all of them, I can move to some usable pins afterward (I should have more than enough). The circuit is a 20MHz Core board with a female header for all the LCD lines, and males for the DIN/DOUT/AIN and Mux pins of the PIC. (there are likely some pullups on the required lines). Much Thanks, George
-
James & David, Sorry it took me a bit. I came in with a headache last night and just went to sleep. :-\ I grabbed that skeleton, which appears to be the same app I've been seeing on the box every night. It looks like in that one, the "main" is the only changed file, so I'll just paste it into a block here if that's OK. That way someone else can also point out all the crap that's wrong with it and help us both (3 actually). ;D Warnings- ** I don't know what the hell I'm doing * I'll go through a whole night of tossing lines or functions in different places to see the result, so there's often stuff in there that serves no practical purpose (for others) * Some things may be pasted from TK's apps and I'll occasionally change them to suit my needs. I skimmed over the comments and I think they still match up. (mine often have cusswords in them) * I DON'T know what the hell I'm doing Two things that appear to also be in there- * A pin status check which triggers that "lightloop" sequence which I was using as a fancy "indicator" * Incoming MIDI events which match the pot events also appear to be saved into another array (potsin) for some reason. I'm not sure what I was doing with that group. I keep a whole folder of skeleton mods, so if I can find anything else I'll post. Lastly- * The screen draw (or just the pot values part) is probably sort of redundant. It gets called on init, then gets called again on AIN changes. Ideally, it probably should be somewhere else and maybe only draw the changed area, but it didn't matter much on this. Thorsten's apps obviously do it correctly, for a good reference. I think he's usually got a "display update needed" variable which gets checked at more convenient intervals. Hope there's at least something in this mess that could maybe point you in the right direction. :) Most of the C stuff I was messing with was for a small controller I built which has some unique needs "app-wise". I've been planning to get some help here on the structure of it and will ask in the C forum when the time comes, but I was trying to get some of the individual routines running first anyway. A layout drawing is toward the bottom of this thread: http://www.midibox.org/forum/index.php?topic=8294.0 BTW- In an attempt to punish myself for killing my hard drive, I've bounced back to some assembler I was playing with on another box <grin>. I also just got a beta build of something thrown at me unexpectedly, which I'll need to be spending time with, but I'm hoping to get back to that C stuff next week. Maybe we can arrive at some useful functions which haven't been done yet and could be pasted as "building blocks" into other's skeletons. Take Care (and sorry for the forthcoming mess), George This was on a box with 8 pots (mux'd), 32 LEDs, 24 buttons, and a 40x2 LCD /* * MIOS SDCC Wrapper * * ========================================================================== * * Copyright (C) <year> <name> (<email>) * Licensed for personal non-commercial use only. * All other rights reserved. * * ========================================================================== */ #include "cmios.h" #include "pic18f452.h" unsigned char pots[8]; unsigned char potsin[8]; ///////////////////Lights//////////////////////////////////////////////////// void lightloop(void) __wparam { unsigned char count; for (count = 0 ; count<=0x1F ; count++) MIOS_DOUT_PinSet1(count), MIOS_Delay(60), MIOS_DOUT_PinSet0(count), MIOS_Delay(20); } /////////////////////////////////////////////////////////////////////////////// void showem(void) __wparam { int i,j,t; for(i=0,j=6,t=4 ; i<=3 ; i++,j=j+10,t++) { MIOS_LCD_CursorSet(j); MIOS_LCD_PrintBCD3(pots[i]); MIOS_LCD_CursorSet(j+64); MIOS_LCD_PrintBCD3(pots[t]); } } ///////////////////////////////////////////////////////////////////////////// void potscan(void) __wparam { int k; for(k=0 ; k<=7 ; k++) pots[k] = MIOS_AIN_Pin7bitGet(k); } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS after startup to initialize the // application ///////////////////////////////////////////////////////////////////////////// void Init(void) __wparam { MIOS_AIN_NumberSet(8); MIOS_AIN_Muxed(); MIOS_AIN_DeadbandSet(7); MIOS_SRIO_UpdateFrqSet(1); // ms MIOS_SRIO_NumberSet(4); MIOS_SRIO_DebounceSet(10); lightloop(); potscan(); } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS in the mainloop when nothing else is to do ///////////////////////////////////////////////////////////////////////////// void Tick(void) __wparam { } ///////////////////////////////////////////////////////////////////////////// // This function is periodically called by MIOS. The frequency has to be // initialized with MIOS_Timer_Set ///////////////////////////////////////////////////////////////////////////// void Timer(void) __wparam { } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS when the display content should be // initialized. Thats the case during startup and after a temporary message // has been printed on the screen ///////////////////////////////////////////////////////////////////////////// void DISPLAY_Init(void) __wparam { MIOS_LCD_Clear(); MIOS_LCD_CursorSet(0x00); MIOS_LCD_PrintCString(" Val- Val- Val- Val-"); MIOS_LCD_CursorSet(0x40); MIOS_LCD_PrintCString(" Val- Val- Val- Val-"); showem(); } ///////////////////////////////////////////////////////////////////////////// // This function is called in the mainloop when no temporary message is shown // on screen. Print the realtime messages here ///////////////////////////////////////////////////////////////////////////// void DISPLAY_Tick(void) __wparam { } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS when a complete MIDI event has been received ///////////////////////////////////////////////////////////////////////////// void MPROC_NotifyReceivedEvnt(unsigned char evnt0, unsigned char evnt1, unsigned char evnt2) __wparam { if(evnt1 == 0x07 && evnt0 >= 0xB0 && evnt0 <= 0xB7) { //checks for vol message on chans 1-8 potsin[(evnt0 ^ 0xB0)]=evnt2; } } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS when a MIDI event has been received // which has been specified in the MIOS_MPROC_EVENT_TABLE ///////////////////////////////////////////////////////////////////////////// void MPROC_NotifyFoundEvent(unsigned entry, unsigned char evnt0, unsigned char evnt1, unsigned char evnt2) __wparam { } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS when a MIDI event has not been completly // received within 2 seconds ///////////////////////////////////////////////////////////////////////////// void MPROC_NotifyTimeout(void) __wparam { } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS when a MIDI byte has been received ///////////////////////////////////////////////////////////////////////////// void MPROC_NotifyReceivedByte(unsigned char byte) __wparam { } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS before the shift register are loaded ///////////////////////////////////////////////////////////////////////////// void SR_Service_Prepare(void) __wparam { } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS after the shift register have been loaded ///////////////////////////////////////////////////////////////////////////// void SR_Service_Finish(void) __wparam { } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS when an button has been toggled // pin_value is 1 when button released, and 0 when button pressed ///////////////////////////////////////////////////////////////////////////// void DIN_NotifyToggle(unsigned char pin, unsigned char pin_value) __wparam { while(!MIOS_DIN_PinGet(4)) //looks for the snap button being down lightloop(); } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS when an encoder has been moved // incrementer is positive when encoder has been turned clockwise, else // it is negative ///////////////////////////////////////////////////////////////////////////// void ENC_NotifyChange(unsigned char encoder, char incrementer) __wparam { } ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS when a pot has been moved ///////////////////////////////////////////////////////////////////////////// void AIN_NotifyChange(unsigned char pin, unsigned int pin_value) __wparam { MIOS_MIDI_BeginStream(); MIOS_MIDI_TxBufferPut(0xb0+pin); // pin= channel number OxB* MIOS_MIDI_TxBufferPut(0x07); // volume cc message MIOS_MIDI_TxBufferPut(MIOS_AIN_Pin7bitGet(pin)); // don't send 10bit pin_value, but 7bit value MIOS_MIDI_EndStream(); potscan(); showem(); }
-
James, I'm pretty sure the last thing I was messing with on a box at my Aunt's house was an 8 channel pot app that put the values up on a 2x40 display along with the pot numbers (4 pots per row). It may have had one of the scaling routines in it too, but I'm not sure. It also spits out the 7 bit MIDI values. It's probably a mess "structure-wise", but you're welcome to it and anything I can remember about it, if you want it. I think it started from the C skeleton. George
-
No (I think ;D). I was surprised to see what looked like one really thick platter inside it. I wasn't paying close attention when I briefly peeked inside the first time, but I *think* it just had some little speck-like nicks in the platter. I guess they sort of turned into that groove, but it was making the "sssshhishing" sound from right after the drop, like the heads were skimming across the platter. There probably was some sort of tiny protrusion caught under the head that was scratching it. I never did find any of the aforementioned "debris" inside. ??? BTW- The drive is right here. It's a Seagate Barracuda 7200.9 (ST3160212A) 160Gig. It was in a SimpleTech external USB2.0 enclosure. George PS- From the moment this occurred, I have not once considered that it was anyone/anything's fault but my own. It was a really stupid thing to do, having that much small important stuff in one fragile place with DVD/CD media being as cheap as it is. Glad it made you or any others here think about it though. I'd hate to see anyone else fall into that. Like I said, that "instantaneous death" was not something I had ever experienced or prepared for here.
-
I've seen that done on lots of stuff and it seems pretty indestructible (unless water gets under the panel I guess). I wonder if a similar thing could be done by having a negative of your print put on clear paper (transparency) and laying that upside-down over a white or colored panel. I'd still like to see someone get that stinking white TRF to work. I got a pack of it and couldn't even get it to pretend to stick, but Smash, who had used the green one, said it seems to only work with the manufacturer's (Pulsar) paper. George
-
Mike, Thanks for the tip. Sad to hear that about the flash life. I checked that laptop tonight, and for some unknown reason, it's got 160 Megs in it. :D I think I stuck a piece from a Mac laptop in it that I wasn't using (dead power supply). I'm guessing with that much, under 98Lite, I could shut off VM unless something starts a leak somewhere. ;D Sasha- The carrier (adapter) is the cheap part, so I may order one tomorrow just to have it. There's a 512M SD card in a camera here that I can test it with. If it seems to work and be accessible like a regular IDE, I can track down a decent size card or two later. I'll try to let you know here if I get it going. George
-
MRE, Man thanks for all the great info! That's much better than what I got when I was Googling in desperation. :( I have already opened the drive and looked around, but may try my luck again later just for the hell of it. The head does have the ability to move, but you can literally see it running into the "bump" in the platter that it caused, as it attempts to ride outward. At that point, you hear a horrible scraping noise and it now has sort of a "C" shaped scratch in the platter from it. I'm pretty sure it didn't look that bad when I first started messing with it, so it's possible that the head was causing more damage the whole time I ran it. I have a feeling at this point that nothing is going to make it safely over that new groove. BTW- One of the few sites I found suggesting digging around inside an HD was this: http://www.overclockers.com/tips1035/ The pictures are pretty bad though. IIRC, he completely removes a head assembly in there and warns that you need to rig something up before letting the heads leave the platter area, or they'll smack together and be destroyed. Again, thanks a bunch for the info. Got it saved here and on my carry drive. Should be burning it off to a "real" disk along with some websites and stuff over the next day. Take Care, George
-
Yeah, I did a board a few months back with a buttload of 3mm's on it. >:( After I saw how far off they were looking, I went back and etched this thing to hold them while I soldered. I had to desolder a couple rows and start over with the guide. BTW- It started off as a row of 3mm circles with a center hole the size of a small drill bit. After etching, the center hole acts as a drill guide to get the holes in the right spot, then I enlarged them with a 3mm bit. My big problem before was in keeping the heights even. The lights are a nice snug fit in the guide holes, so you can line them up and they stay there while you solder.
-
Hi Matrigs, I've found it helps if you can export the exact image of the board/component layout into the app you do your panel layout in, just for temporary reference. I've taken board layouts from Eagle, with only the "Place" layers visible, and exported a bitmap image or something before. I can pull this file into my CAD app (Canvas), zoom in, and land circles, squares and rectangles directly over the individual part outlines from the layout. That way, I know they land where they go, even if the layout used a funky spacing. After I get all the hole areas outlined with the shapes I need, I usually lock them in place and delete the reference bitmap from underneath. If you're doing breadboard, you can still probably make a "dummy layout" using similar parts with the grid set to the desired spacing, and export those, or just draw out a grid in the CAD app (you've probably already done something like that). <edit> And obviously, run a paper print out after you get the layout done, then go around it with a measurement caliper or a good ruler to make sure nothing needs to be "nudged". :o (I guess the EXACT same thing MTE just recommended ;D) Good Luck, George PS- I'll admit, I still end up with an occasional hole that's off by a hair from the drilling or something. If it's not that bad, sometimes you can save the soldering til last, and maybe elongate your PCB holes enough to wiggle the off part to where you need it, while it's mounted behind the panel, then lock it in place with the solder.
-
Man, that's a lot of toner. :o I have to do that for etching labels in metal, but haven't done anything big yet. I did regular black text on white with some graphics, but my CAD app (Canvas) had some sort of "invert" function that worked to turn it white on black. IIRC, I ended up leaving the larger areas hollow and filling them in with paint or marker later to keep from having to print too much solid black. Thanks, George
-
Anybody here know these things? You can get one that turns up to three cards into a mini-IDE (laptop) compatible drive for under $10 USD. Got a P3 laptop I use for reading, and the drive is about the only noise it makes. Some brief web skimming seems to indicate the SD cards throughput being in the 10M/sec range or a little under. Any reason not to get one? George PS- FWIW, I'd be running 98SE (w/98Lite).
-
I didn't mean that as discouragement against getting them. Just that if you wanted them bad enough to buy a whole batch (I know the feeling), I could pitch in for one and PayPal up front if it would help. Take Care, George PS- If you mean those long LCD things, no, they're just regular (reflective) types, but they work really well for testing apps and stuff (look like a calculator screen or something). The pinning is just the standard 1thru14 like in the MBHP LCD diagram, and there's pin number labels on them somewhere. I've got two in use here and actually like them. :) - If you mean the studio, I'm actually stranded at the moment. :'( My last day was April 15th. My Aunt (now in her 80's) has a semi-vacant house near there, so I hang out there for now and most of the stuff is being stored there. Not sure where I'm headed, but it's nice having a few bucks in the bank for the first time in six years. ;)
-
You think like my Uncle. ;) Years ago, I asked him if they would go so far as to rip out all my rack equipment and furniture to look for something. When he said "yes", I asked if they would pay to get all my shit fixed when they didn't find anything. He said "It ain't going to matter. If they've gone through that much trouble, they find something anyway". :)
-
Simone, If you get foolish and grab the whole lot, let me know. I can probably buy at least one just to play with. That's a decent chunk of change for all ten I guess. Reminds me of the guy with the boxes of hundreds of pot/encoders(??) and harmonicas (? ? ?). I told him they were probably listed wrong and he said they were almost gone anyway. I think he may still be selling them to this day. ;D George
-
Man, I had no idea that was paper. :o It looks like white silkscreening on that textured black painted metal, like the chassis that stereo components and stuff use. Still don't understand it 100%. How did you do white over black? George PS- I'm digging those knobs too. Makes me want to do an MB controller for the new UAD Helios plug now (looks like them). PSPS- Just flipped the Oberheim lid to check. Again, this metal is hard as crap, and they have threaded reinforcements stuck behind it, AND the front and back have a similar lip which is welded at the corner (more reinforcement :-X). -Now which one of you guys can tell me from that picture what's wrong with my DX's power supply? It flicks off and on once in a while, or if you bump it. ;D ;D ;D
-
I like the design too. Reminds me of my Oberheim DX. ::) Euphoricgrey- On the DX, the steel bottom curls up 90 degrees to a short lip on the sides, and the side panels screw into that IIRC. Of course that requires a really solid base though (maybe not DIY bendable). Chriss- I love that white on black labeling too, as well as the textured panel. I've saved a few pieces of cases and stuff for that, but couldn't figure how to label to it. If you get time, I'd like to see more about what you did there. From what I see, "sprühkleber" is a spray glue or something? Good work, George