
th0mas
Members-
Posts
176 -
Joined
-
Last visited
Never
Content Type
Profiles
Forums
Blogs
Gallery
Everything posted by th0mas
-
ensure the prolysterine (sp) capacitors aren't shorting? That's what got me.. after unshorting them I just didn't have a filter section any more, but the chip otherwise still works. :-\
-
Sorry I hadn't paid attention. Yes you'll need 10 I/O pins. The PIC itself has more than enough pins to cover you, so all you need is one CORE kit from SmashTV (or wherever). From there I can provide the application and tell you what connections to use. Let me know when you have the gear set up. Cheers, Tom
-
Your MIDI signal from your computer to your CORE is not working. Otherwise after the first block was sent, the CORE would send back a CHECKSUM message instead of an UPLOAD REQUEST message.
-
He wouldn't need a DIN or a DOUT, just a CORE. Think about it, max he needs is like, 8 I/O pins.
-
stryd_one: My most preferenced solution would be to use nested structs, since it naturally represents our dataset. linked lists are unnecessary since the number of elements is predefined, and I think you will want random accesses, since if a user turns on track 4, step 8, you don't want to iterate over data members to find the entry.. probably create bad timing issues. So you'd want something like: typedef struct _step { unsigned char Note; unsigned char Velocity; unsigned char Length; } step_t; typedef struct _track { step_t Step[16]; unsigned char Divider; // there is a reason we put these three lonely members behind the Steps unsigned char Direction; unsigned char Mute; } track_t; typedef struct _pattern { track_t Track[32]; } pattern_t; // to allocate a pattern on the stack: pattern_t pattern; // to access a specific value: pattern.Track[2].Step[15].Velocity = 0x7F; total size of pattern = 32 * ((16*3) +3) = 1632 bytes. I don't know if SDCC can handle allocating this much memory when it's in a nested structure usage, but I'm guessing the 256 byte issue still applies, which means, it won't. I think in order for you to access this much data, you will have to: - use a custom linker script in order to allocate a named block of memory >256 bytes. - you will most likely then have to manually calculate the offset into the memory region. To someone who knows: does SDCC support pointers? Not dynamic memory, just the allocation of pointers to say, a struct. If so then stryd could just use the linker script entry to allocate the memory, and then allocate on the stack a pointer to a pattern, and then map the pointer to a pattern onto the memory block.
-
Hi OrganGrinder, thanks for the verbose reply. That is to the disadvantage to the end user. You can often optimize the assembly code if you understand pointer mathematics. I'm pretty sure that's TK's issue with SDCC - it generates bloated code to calculate array offsets. While you are correct, this necessary evil on C/C++ has nothing to do with pointer math as I did in my post. As you show in your example, any array access doesn't have the bounds checked. Doing it the way I proposed, in terms of bounds checking, is just as dangerous as making an access via array[6][5][4]. Definitely. In my defense I wrote this with minutes on the clock since my girlfriend was yelling at me to get off the damn computer since we were going out for the night :) Here's the thing: if you access memory using array[a][c][d] THE COMPILER CONVERTS THAT TO ASSEMBLY CODE THAT IS EQUIVALENT TO MY EXAMPLE (sans the function call, but we can get rid of that by making the function inline, or turning the function itself into a preprocessor macro). Again, any array access doesn't have it's bounds checked, so what you are really saying is that "using arrays in C is bad", and not really anything negative about my specific usage of them, aside from the magic numbers stuffed in my ugly example. No problem, I enjoy it. I look forward to your reply. Cheers, Tom
-
Pretty much all the pins on the PIC are programmable to be Inputs or Outputs. He could do the entire thing using the CORE LCD port, which is PORTB on the PIC. The pins can be configured to be inputs or outputs, and it's easy as pie to send midi commands. marcvangend: All you'd need is one CORE module and a power supply for it. Do you know basic C programming? If so, you could do this yourself. If not, I could write this app for you once you have a CORE module working. It's really easy to do, I could do it in quickly if you told me the MIDI commands you need to send to the amp. Cheers, Tom
-
You can always do it on your own using pointer math if the compiler does really gross things or doesn't support it natively. For example, lets say you want a 4x5x6 matrix, each entry being a byte (with indices named x, y, z respectively). So you declare: unsigned char mem[3*4*5]; now you write a little calling routine called calculate_offset or something, that, given values x, y, z, it returns the element in the linear data structure: unsigned char calculate_offset(unsigned int x, unsigned int y, unsigned int z) { return ((x*20) + (y*5) + z); } now you access members of the 3D array like so: mem[calc_offset(2,3,2)] = 5; // assigns the value 5 to the element at position (2,3,2) I probably made a mistake in the code somewhere, I'm not really paying full attention as I'm about to go out for the evening. Cheers, Tom
-
Have you replied to the people who you're holding one for? Just wondering cuz I sent you an email and didn't get a response. Cheers, Tom
-
I'd be interested in one. Just let me know when.
-
I just got mine working today.. I had breadboarded up a tiny solution and got some time to test it today. It sounds awesome! (even with no filter, just direct off chip to line into mixer.. I like the rawness ;) ). Using the software available through the Yahoo SpeakJet group I was able to get the synth working.. I couldn't use the MSA architecture, unsure why. I'm using a MAX232 to convert RS232 to TTL levels. This thing is going to be a lot of fun! :)
-
Apparently only when it's >256 bytes (or maybe 256 elements, you'd have to try)
-
In C when you declare an array you are really allocating a portion of memory and storing the start of that portion in the array variable. So: unsigned char b[200]; means "allocate 200 bytes, and store the address of the start of that newly allocated block in b". So b is really just a pointer to a memory location. So the linker script above is just allocating the memory and giving it a name, but not doing it in C: DATABANK NAME=gpr345 START=0x300 END=0x5FF Obviously the harder part is that you have to explicitly give it the start/end positions, which if you use C syntax to allocate the block the compiler/linker does it for you. Just to complete the example: when you access an array element, like b[200] = 5; You are really saying "add 200*sizeof(any array element in b) to the address stored in b, and store 5 at that memory address". Hope that makes sense stryd_one :).
-
I made a stupid mistake when I lost the MO slip. it might still be around but, yeah, I got careless. Aside from that everything I did was proper. I don't know what having the MO slip would have saved me anyways, though.. I could have proven that they cashed the MO and tried to prove they never sent an item but for the item cost I don't think it'd have been very persuasive to illicit an action from ebay/nameities.
-
To all who have replied: thanks. I've had time to read but not write as I'm out of town atm. To moebius: Get over it. I'll post as I see relevant. I don't agree with "the official ebay thread" because it is an unneccesary linearizing unsuitable for contemporary online forums. Forums are threaded for a reason, to keep seperate ideas seperate. Every forum I've seen that's had a "official x thread" turns it into an 80 page monster that is completely useless since it's the home to multiple simultaneous seperate threads of conversation that should all be, well, created as seperate threads. You want to ask for an ebay forum? That'd make sense. You can ignore it, or just read it for the laughs you get from people's unnecessary loss. As for your reasoning that a post to an ebay item is an "unintentional cluttering" of the forum, that's really stupid. They're easy to ignore. At least whenever I do it, I usually have the word ebay in the title. Plus, although you've discounted the common reasons people give you for posting ebay topics, they're all true, so deal with it. A much more annoying cluttering of the forum is when people decide it necessary to try to enact rules like "don't post x here, it belongs here" and post it in threads. The moderators of this forum do a good job of moving and deleting things as they see fit.
-
Apparently a lot of users on this board have used ebay. Like (assumably) most of you, I've had a good amount of success. Until my last deal. In March I bought a little electronic device called a 'zipit'.. basically it's an IM self-contained device that runs linux and can be converted to be a cool little wifi-enabled device. That I probably will never see. I sent the person a money order.. they didn't want to use paypal due to the fees and I've had success operating with MO's so I didn't care. So I sent the money, hadn't heard back for a long time. Emailed a number of times, no response. Started doing some digging and found a person's Xanga site. Seems the family is a little messed up - daughter in juvenile detention centre, friend of the family shot and killed a police officer (it's amazing what blogs + google turn up). Anyways, I post a message on one of their blogs and the daughter emails me claiming the mother was _killed in a car accident a month and a half ago_.. approximately a week or two after the deal was finished. However the (as far as I can tell) Mom's blog has new posts as of a few days ago. I went along with the charade however, since pissing the people off will just result in them blocking me completely. Alledgely the daughter is now going to look through the mom's things and find the device and send it to me. Here's my question: What would YOU do? Oh, and my biggest mistake: I seem to have lost the receipt for the MO I sent :(.
-
Well, I kept all the grounds (outer portion) connected since they are anyways when you connect them to the DIN.. so it's just a matter of isolating each of the central portions (which do connect to each other, usually a via and then a trace on the opposite side of the board). To get rid of those I'm just dremelling with a cutting stone deep enough to destroy the trace visibly (which is deep enough sometimes by accident :) ). I also destroyed all traces connecting LEDS to one another so I can just solder all the grounds together and then individual wires to each of the anodes (I might mean 'cathode'.. I forgot which is which atm). to the output on the DOUT. That would be a cool solution! It'd feel a lot better than the rubbery give-feel that the lights-out buttons have. I don't find them solid enough but am keeping them anyways.
-
I'm going the reuse-route. It's going pretty good.. 9 of my 16 buttons have vias on their internal half of the pads to wire to, the other 7 I'm going to add a (tiny) blob of solder to connect one of the inner LCD vias to the internal side of the pad. For grounds, there are currently 3 isolated groups, each of which have at least one via to solder a wire to, so I'll just solder the requisite wires and connect them all to the DIN ground. Wiring the LED's should be simple since there's a good 5mm of leg left on the PCB :). To mount I'm going to, like Smash suggested, make a carrier PCB that's basically a big border around the PCB and connect the two together on the one remaining hole left for screwing (near the transisters). If I have to, I'll make another but I don't have much room since I drilled off the remaining PCB to save the other 9 buttons for the rest of my SEQ.
-
Does anyone know if I can use a button matrix as input for the MB SEQ? Or would I have to try to hack support for it myself? Like others I now have my Lights Out on hand and am looking at the easiest way to hook it up. Thanks, Tom
-
Nice find DavidBanner!
-
Matrix config, the buttons are huge!! like 1.5 cm tall-ish. Very very tall. They are not just caps over a normal switch, but are similiar to a lot of mass-market buttoms with the cell membrane that closes contact over the button. Unsure of matrix configuration, I'll try to figure it out later (since I'll have to for my sequencer ;) )
-
Sorry I haven't gotten back. I just started a new job so when the PCB didn't come out of the case in the first 2 seconds I haven't had time to go dremel some of the screws holding it together - on the PCB it's on a matrix config, but it's a seperate daughterboard than the remaining circuitry afaik. I'll post pictures later today? I should have time.
-
I was joking - I didn't do it. Sad that it's happening tho, someone has it out for you. edit: here I'll +k as a counteraction in case someone took my idea to heart :)
-
See stryd_one, Now I'm going to have to give you -k for using marquee tag. ;D
-
I have a lightsOut in my hands, received it today. I'll post pictures later today. The buttons are suprisingly tall (prolly about 7mm sticking out from the plastic case for the toy).