Jump to content

bluehash

Administrators
  • Content Count

    7,290
  • Joined

  • Last visited

  • Days Won

    193

Reputation Activity

  1. Like
    bluehash reacted to NatureTM in Adding an External Library to CCSv4   
    I got the example to compile and upload, but I don't know whether it will work or not. I had to change the assembly function to work with CCS instead of IAR. I commented out some stuff in the assembly that I don't think is necessary, but I'm really not sure, so don't assume it works. Hopefully. Anyway, if you want to try it: http://naturetm.com/files/I2C_Slave.rar
  2. Like
    bluehash got a reaction from GeekDoc in Like music? Here is $3   
    Ok. this is way off topic. But I love music and can't resist to share:
     
    Amazon is giving away $3 worth of MP3 for kicks
    Code is : GET3MP3S
    Login and go here
    It expires on Nov 29th. Enjoy
  3. Like
    bluehash reacted to mnpumar in Digital LED Clock   
    So here it is: (EDIT: the forum seems to be cutting off some of the pictures to the right, if you'd like to see the full version of them, go here: http://img718.imageshack.us/gal.php?g=25703750f.png)
     

     

     
    4 MSP430's working together
     

     

     

     

     

     
    The whole thing runs off a single 9V battery. The two digits for the hours are connected to one MSP430, and the two digits that make up the minutes are each connected to separate MSP430s. The whole thing is controlled by another MSP430 which keeps the time.
     
    The itself clock has two modes, one mode where it counts time 60x faster and counts 1 minute as one second. The other mode is where it runs like a normal clock. If you guys would like more information, please let me know. It took me a couple all-nighters to get it all wired together on a breadboard, but I managed to get it all done Can't wait to see what my professor thinks about it, haha.
     
    Special thanks to Simplevar, GeekDoc, cde, and everyone else on this forum for answering all my questions, I couldn't have done it without you guys!
    MSP430_Digital_LED_Clock_Schematic.pdf
    MSP430_Digital_LED_Clock_Code.zip
  4. Like
    bluehash got a reaction from jbremnant in jbremnant on Hackaday   
    jbremnant got featured on Hackaday today for his LED Matrix. Good going! Congratulations.
  5. Like
    bluehash reacted to simpleavr in Repurposing a Nokia adapter cable - Request for info   
    took a few shots of my cables today in case someone needs to compare w/ their hacks.
     
    this one is the more recent ca-42s from ebay and dealextreme

     
    if u just need uart and don't care about powering your project, u can just rip off the phone end connector and u will have 3 wires. Rx-Red, Tx-Blue, Orange-Gnd. u can just add header pins and connect to your breadboard project. note that Rx,Tx mentioned are from the cable, u need to connect Rx to Tx of MCU and Tx to Rx of MCU on your project.
     
    if u had a dku-5 cable, the pcb is the same, but the dongle is in black color and the wires are of different colors (still 3 wires) and u have to use a multi-meter to figure them out (i forgot to make note of them).
     
    if u want to supply 3v or 5v power via the cable, u need to cut out and expose the pcb on the dongle side, locate the 3.3v or 5v source and run an extra wire to the far end. here is one.

    the way i did it was to remove the original 3 wire strand and replace with a 4 pin header and run a 4 wire jumper to my projects. the pinout here are red-3.3v, black-Rx, yellow-Tx and green-Gnd.
     
    u can also see on the photo where i add the 3.3v thru a brown wire add-on. if u need 5v u can trace it from the USB supply point.
     
    for completeness, i also upload this photo of an older ca-42 cable (pl2303 chipset) that i used as for a breaduino (breadboarded arduino). the older pcbs has lot more connectors w/ easy to id rts dtr lines.

     
    this one got the dtr needed to do automatic download for arduinos, added switch is for powering 5v projects. haven't touch it for almost 1 year though.
  6. Like
    bluehash got a reaction from iragdoll in LaunchPad I2C Communication   
    Yes, because the 2231 only has a 1Mhz calibrated DCO. You will have to setup the clock as 1MHz.
  7. Like
    bluehash reacted to GeekDoc in Need feedback on 43oh's mobile version   
    I agree with cde... Wait... you changed it while I was posting!
     
    (Android 2.1) Looks good. I like the Twitter feed button at the top. I like that the post is formatted for mobile as well (my mobile theme doesn't). If you can change the background to match the regular site, I think you've got it perfect. Mind if I ask what plugin you're using?
     
    Now, if you could just get phpBB themed for mobile...
     
    BTW: The original site theme wasn't bad for mobile either, I noticed.
  8. Like
    bluehash reacted to cde in Need feedback on 43oh's mobile version   
    Android 1.6 with 2.1 browser. Looks fine, like a normal generic wordpress on a mobile theme would. Only gives the post titles though. Be nice if it would also give the first line or two of the post.
  9. Like
    bluehash reacted to paradug in Motion Detection Wildlife Camera   
    The project that I would like to submit to the November contest is a Motion Detection Wildlife Camera. It uses a re-purposed PIR sensor module from an air freshener to provide motion detection, an inexpensive key chain camera to capture images, and a TI msp430g2211 microprocessor from the Launchpad kit to provide the necessary brains.
     

     
    The project is described in depth at http://www.instructables.com/id/Cheap-Motion-Detection-Wildlife-Camera/
    This link includes the code and schematic for the project.
     
    An overview of the schematic is shown below:
     

  10. Like
    bluehash got a reaction from gatesphere in Support for embedding Youtube videos   
    Hello Everyone,
     
    Support for embedding Youtube videos has been added. All you have to do is click the "Youtube" button above and place the youtube URL(which can be found under the Share button on the Youtube page).

    [Youtube]http://www.youtube.com/watch?v=BolgBSXjxeE[/Youtube]
     
    Enjoy! One of my favorite animations:
     


  11. Like
    bluehash reacted to cde in Butterfly BASIC for the MSP430   
    Found this and thought someone might find it useful.
     
    Butterfly BASIC for the MSP430
    http://www.rowley.co.uk/msp430/basic.htm
     
    430Axe anyone?
  12. Like
    bluehash reacted to simpleavr in HELP! What am I doing wrong????   
    for breadboarding (w/o debugger connection and eventually w/o launchpad), u need to tie the RESET pin to Vcc (3.3v) otherwise your firmware won't start.
     
    see this is my hookup, i am running the wires via the jumper block headers but it's the same.
     
    http://www.simpleavr.com/msp430-projects/3p4w-clock/3p4w04.jpg
  13. Like
    bluehash reacted to cde in HELP! What am I doing wrong????   
    Are you programming it on the breadboard? Then yes. You need to connect test and rst.
  14. Like
    bluehash got a reaction from jbremnant in Share pics of your workspace setup   
    You know, I was going to start a thread on this, but did not, as I thought it would scare guys to post theirs. Thanks for the comments.
     
    Just to let you guys know, that that workspace was built during the span of three years. Nothing in that setup is new, except for the CPU case and motherboard and a few odd things.
    -The screens are second hand units.
    - The entire workspace area is second hand or found on the street except for the magnifier lamp.
    - Craigslist is a great source for parts. Even going around before trash day can help.
    - One desk was free, the other $50.
     
    I agree, I couldn't afford all this if I were a student.... so just post yours, no matter what. Its a workspace where you love to work. Id like to see what other people have too... even if its a laptop and a Launchpad.
  15. Like
    bluehash reacted to jbremnant in Share pics of your workspace setup   
    @bluehash
    haha good eye. Panavise, multi-hand helper hidden behind it. Next to it is breadboard with nerdkit on it along with avrisp-MkII.
    Along with the box of launchpad is 2 boxes of ez430-chronos. I ended up with 2 of them since TI sent me a defective one first time around and let me keep it while replacing it with a new one. Gotta love TI.
     
    I have 2 mice because one of them is a Razer gaming mouse which didn't work too well with my kvm switch. I have 2 towers (headless linux server and windows vista as gaming HP box), and 1 nettop (ubuntu desktop) behind my monitors. My keyboard is connected to kvm which is connected to my windows HP box and linux nettop box.
     
     
    Thanks for the soldering iron suggestion, btw.
  16. Like
    bluehash reacted to jbremnant in Share pics of your workspace setup   
    Oops, I should've posted here first instead of on the main page.
     

     
    I know, the first thing you'll notice is all those toys!
    I collect these japanese robot models called Gundams. I know I am a "grown up kid".
    The black shelf on the left is where I keep all my components and mcu's.
    I keep couple of programming books (and some finance books) nearby.
    And hidden behind the stash of books is couple of issues of Make magazine.
     
    @GeekDoc, I need a work/tool station like that. I love it.
    @bluehash/gatesphere/NJC, what do you guys recommend for soldering iron. I have a cheapo one that serves my needs, but I hear pencil thin soldering iron is really good for SMD work, and small components?
  17. Like
    bluehash reacted to OCY in Receive only uart?   
    I wrote 4 little procedures. You can cut them down easily. For example, you may not need "set_baud" nor "auto_baud". And you may only need "getchar" or "putchar".
     

    /******************************************************************************* * Sub-Standard I/O for LaunchPad Board * * OCY Nov 2010 * *******************************************************************************/ #include #define RXD BIT2 #define TXD BIT1 int baud_divider = 104; /* default for 9600 b/s @ SMCLK = 1 MHz */ //============================================================================== int set_baud ( int i ) { baud_divider = i; return (i); } //============================================================================== int auto_baud ( void ) { __no_init int zero; P1SEL |= RXD; TACCTL0 = 0; TACCTL1 = CM_2 | SCS | CAP; TACTL = TASSEL_2 | MC_2 | TACLR; while ((TACCTL1 & CCIFG) == 0) {/* wait */} zero = TACCR1; TACCTL1 = CM_1 | SCS | CAP; while ((TACCTL1 & CCIFG) == 0) {/* wait */} P1SEL &= ~RXD; TACTL = 0; return (baud_divider = TACCR1 - zero); } //============================================================================== int putchar ( int i ) { TACCR0 = 0; TACCTL0 = OUT; TACCTL1 = 0; P1SEL |= TXD; P1DIR |= TXD; TACTL = TASSEL_2 | MC_2 | TACLR; i = (i + 0x100) << 1; do { TACCR0 += baud_divider; if (i & 1) TACCTL0 = OUTMOD_1; else TACCTL0 = OUTMOD_5; while ((TACCTL0 & CCIFG) == 0) {/* wait */} } while ((i = (i >> 1)) != 0); P1DIR &= ~TXD; P1SEL &= ~TXD; TACTL = 0; return 1; }//============================================================================= int getchar ( void ) { int byte = 0; P1SEL |= RXD; TACCTL0 = 0; TACCTL1 = CM_2 | SCS | CAP; TACTL = TASSEL_2 | MC_2 | TACLR; while ((TACCTL1 & CCIFG) == 0) {/* wait */} TACCR1 += baud_divider >> 1; for (int bit = 8; bit > 0; bit--) { TACCR1 += baud_divider; TACCTL1 = 0; while ((TACCTL1 & CCIFG) == 0) {/* wait */} if (TACCTL1 & CCI) byte |= 0x100; byte = byte >> 1; } P1SEL &= ~RXD; TACTL = 0; return (byte); } //==============================================================================
  18. Like
    bluehash reacted to juani_c in Killing Zombies with the Launchpad   
    Well, this is my entry for the November 2010 Project of the Month Contest. It is very simple and far less usefull than the others projects. The truth is that I wasn't participating until I saw the Chronos .So i had to come up with something easy and fast to develop. I was plaiyng arround with some leds and photodiodes in front of my pc monitor and I thought that cold be interesting to interact with the screen with the photodiodes or some other ligth sensor. that idea eventually ended up being a shooting game. I wasn't too sure what to shoot at but then i realized that the option was obvious; ZOMBIESS!!!. everybody like killing zombies.The circuit is very simple. the LDR is in a voltage divider with a 10K potentiometer. moving the potentiometer will help with the calibration.It has also a capacitor to stabilize the analog signal. the trigger is a switch in series with a resistor and a capacitor for debouncing. this swicth is in fact in parallel with S2 in the Launchpad so you could just use that one an reduce the number of needed parts. I just use my hand for the gun so I didn't have to make one (it also makes a great human machine interface ).The source code for the MSP430 is basically the same as the "Snake game". every time you pull the trigger the ADC takes 16 samples and send the avarage to the computer. The analog signal is provided by the LDR. the LDR has a different response depending on the wavelength of the incident light (that`s the reason for the funky colors). it isn't very accurate, variations on the ambient light or in screen distance will lead to a misunderstanding between the zombies. Every time you pull the trigger and hit one of them you'll hear a shot and a zombie scream because, well, even zombies don
    LaunchPad-Zombies.rar
  19. Like
    bluehash reacted to juani_c in Connector for 2013 target board with staples   
    In case somebody want to use that Launchpad's feature I made the connector with some 26/6 staples
     

     

     

  20. Like
    bluehash reacted to AMagill in Strobr: High speed photography controller   
    Copied from the November 2010 contest thread, so there's a separate space to discussion.
     
    My project is a programmable strobe controller for high speed photography. A device like this is crucial for many types of high-speed photography, as it can orchestrate multiple sensors such as photogates and contact microphones with several outputs, such as a flash trigger and a camera's shutter release, so as to capture a photograph of just the exact right instant with microsecond precision.
    An example; I connected my device to a small electronic water valve, to my camera's cable release port, and to a flash. I arranged it so water could flow down from a bottle, through the valve, out a small nozzle, and down into a bowl of water below whenever the valve is powered. Then I wrote a script to control the device;

    while (true) { if (RIN0 == 1) { // Button 1: Double drip reg delay1 = 50; reg delay2 = 192; ROUT.T3 = 1; // Prime the camera waitms(10); // Setup time ROUT.T2 = 1; // Open valve waitms(15); // Wait for drop ROUT.T2 = 0; // Close valve waitms(delay1); // Put some space between drops ROUT.T2 = 1; // Open valve waitms(15); // Wait for drop ROUT.T2 = 0; // Close valve waitms(delay2); // Wait for drops to fall ROUT.R3 = 1; // Fire the camera waitms(63); // Wait for shutter to open ROUT.R1 = 1; // Fire flash waitms(10); ROUT = 0; // Finish flash pulse, close camera waitms(200); // Lockout } }
    Once I got the timing just right, this script has the valve release exactly two drops of water such that the second will collide with the splash from the first, and take a picture of the result. It produces pictures like this, each and every time I press a button on the device;

     
    Here's the device itself. I call it Strobr.

    That's an MSP430F2274 in the center, driven by a 16MHz clock crystal (to keep timing more precise and repeatable). On the top left are two analog input ports, each with one input pin and a software-switchable power pin (because some sensors, like photogates, need power to work). In addition to being polled by the MSP430's ADC, it can also route them through the MSP430F2274's built-in op-amps for small signals like microphones. Top middle are a pair of buttons, just two more inputs available to the chip. Top right are a pair of ports that can be connected to each other via a pair of solid-state relays, of course software controlled as well. The idea behind adding these was to be able to switch on and off an audio signal to a speaker, for making sound sculptures. Haven't tried it yet. On the bottom right are four output jacks, each with a pair of digital output pins. Finally, on the left there's a FTDI FT232RL USB-to-serial converter, and under the power switch, you can just barely make out a USB port on the bottom side of the board.
    The device connects to my computer by USB. The PC application I've written allows you two write simple scripts for the device, error-check and compile those scripts, load the compiled bytecode onto the device, and poll the device's status and display it in realtime. It looks like this;

    The MSP430, in addition to maintaining communication with the PC, runs a very simple virtual machine that executes the scripts that have been loaded onto it. The virtual machine is fixed instruction length (32 bits), and has no stack or memory of any kind except for 16 general-purpose registers and 16 specialized registers. In the screenshot of the PC application, you can see the bytecode that the script is compiled into, as well as the registers that the virtual machine operates on. Those registers are; RIN0 (buttons input), RIN1(analog input 1), RIN2 (analog input 2), RD1 and RD2 (analog input deltas, change since last sample), RLED (the ring of LEDs), ROUT (the eight digital outputs), RPWR (power to the input ports and to the relays), RAIM (analog input mode- no amps, one amp on each port, daisy-chained amps on one port, etc.), RG1 and RG2 (amplifier gain setting), RAP (automatically poll state to the host), RFLG (flags- running, test truth), and RPC (program counter).
     
    Schematic (click for full size):

     
    PCB layout (clicky clicky):

     
    And finally, for source code, you'll have to go to my web site, since the file is too big to attach to this post. It includes Eagle files for the schematic and PCB layout (including a detailed bill of materials totaling about $100), CAM files for the PCB (in case you want to get one made and don't care to muck about with Eagle), source code for the MSP430 and for the PC application, and even a few scripts to run on the whole contraption. If you do decide to make one of these, though, you should note that my design isn't perfect, and you would do well to double-check my work and address a number of issues first.
     
    My web site, where I have writeups for this project and others, is OminousHum.com.
  21. Like
    bluehash reacted to AMagill in [ ENDED ] Nov 2010 - 43oh Project of the Month Contest   
    My project is a programmable strobe controller for high speed photography. A device like this is crucial for many types of high-speed photography, as it can orchestrate multiple sensors such as photogates and contact microphones with several outputs, such as a flash trigger and a camera's shutter release, so as to capture a photograph of just the exact right instant with microsecond precision.
    An example; I connected my device to a small electronic water valve, to my camera's cable release port, and to a flash. I arranged it so water could flow down from a bottle, through the valve, out a small nozzle, and down into a bowl of water below whenever the valve is powered. Then I wrote a script to control the device;

    while (true) { if (RIN0 == 1) { // Button 1: Double drip reg delay1 = 50; reg delay2 = 192; ROUT.T3 = 1; // Prime the camera waitms(10); // Setup time ROUT.T2 = 1; // Open valve waitms(15); // Wait for drop ROUT.T2 = 0; // Close valve waitms(delay1); // Put some space between drops ROUT.T2 = 1; // Open valve waitms(15); // Wait for drop ROUT.T2 = 0; // Close valve waitms(delay2); // Wait for drops to fall ROUT.R3 = 1; // Fire the camera waitms(63); // Wait for shutter to open ROUT.R1 = 1; // Fire flash waitms(10); ROUT = 0; // Finish flash pulse, close camera waitms(200); // Lockout } }
    Once I got the timing just right, this script has the valve release exactly two drops of water such that the second will collide with the splash from the first, and take a picture of the result. It produces pictures like this, each and every time I press a button on the device;

     
    Here's the device itself. I call it Strobr.

    That's an MSP430F2274 in the center, driven by a 16MHz clock crystal (to keep timing more precise and repeatable). On the top left are two analog input ports, each with one input pin and a software-switchable power pin (because some sensors, like photogates, need power to work). In addition to being polled by the MSP430's ADC, it can also route them through the MSP430F2274's built-in op-amps for small signals like microphones. Top middle are a pair of buttons, just two more inputs available to the chip. Top right are a pair of ports that can be connected to each other via a pair of solid-state relays, of course software controlled as well. The idea behind adding these was to be able to switch on and off an audio signal to a speaker, for making sound sculptures. Haven't tried it yet. On the bottom right are four output jacks, each with a pair of digital output pins. Finally, on the left there's a FTDI FT232RL USB-to-serial converter, and under the power switch, you can just barely make out a USB port on the bottom side of the board.
    The device connects to my computer by USB. The PC application I've written allows you two write simple scripts for the device, error-check and compile those scripts, load the compiled bytecode onto the device, and poll the device's status and display it in realtime. It looks like this;

    The MSP430, in addition to maintaining communication with the PC, runs a very simple virtual machine that executes the scripts that have been loaded onto it. The virtual machine is fixed instruction length (32 bits), and has no stack or memory of any kind except for 16 general-purpose registers and 16 specialized registers. In the screenshot of the PC application, you can see the bytecode that the script is compiled into, as well as the registers that the virtual machine operates on. Those registers are; RIN0 (buttons input), RIN1(analog input 1), RIN2 (analog input 2), RD1 and RD2 (analog input deltas, change since last sample), RLED (the ring of LEDs), ROUT (the eight digital outputs), RPWR (power to the input ports and to the relays), RAIM (analog input mode- no amps, one amp on each port, daisy-chained amps on one port, etc.), RG1 and RG2 (amplifier gain setting), RAP (automatically poll state to the host), RFLG (flags- running, test truth), and RPC (program counter).
     
    Schematic (click for full size):

     
    PCB layout (clicky clicky):

     
    And finally, for source code, you'll have to go to my web site, since the file is too big to attach to this post. It includes Eagle files for the schematic and PCB layout (including a detailed bill of materials totaling about $100), CAM files for the PCB (in case you want to get one made and don't care to muck about with Eagle), source code for the MSP430 and for the PC application, and even a few scripts to run on the whole contraption. If you do decide to make one of these, though, you should note that my design isn't perfect, and you would do well to double-check my work and address a number of issues first.
     
    My web site, where I have writeups for this project and others, is OminousHum.com.
  22. Like
    bluehash reacted to cde in LaunchPad I2C Communication   
    Yea, the I2C Explorer has a bus-pirate like way of communicating from a pc through the uart to an i2c bus. It uses the builtin USI of the msp430G2231 to handle receiving and transmitting. It is nearly exactly what the TI description of how to use the USI for I2C master shows, put in C code.
    MSP430 Family Guide with USI description (PDF Page 449):
    http://focus.ti.com/lit/ug/slau144e/slau144e.pdf
     
    What you want is USI Slave though. It does not implement that. TI has great USI Slave examples that run on the msp430g line (I have not personally tried them).
     
    TI also has a precreated I2C USI code library in assembly, for both master and slave operation, which I would assume is a higher order more optimized than mine
    http://focus.ti.com/general/docs/litabs ... r=slaa368a
    The pdf explains how it is used, functions and all, while the zip has the actual library.
     
    Additionally, you can use a software i2c slave, not using the builtin USI peripheral. Based on a msp430f2131, which has 8kb, so I'm not sure it will run on a valueline part:
    http://www.ti.com/sc/docs/psheets/abstr ... laa330.htm
    Again, PDF for code examples, and zip for actual code.
    I'd go with using the USI instead of bitbanging it. The USI is better, it handles open drain pins, and it can deal with clock stretching.
     
    There is also a way to implement a SMBus Master or Slave on the msp430:
    http://www.ti.com/litv/pdf/slaa073
    SMBus is basically i2c v1.1.
     
    Finally, there are full examples that can run on the msp430g valueline chips.
    http://www.ti.com/litv/zip/slac080h
    It is the MSP430F20xx, MSP430G2xx Code Examples (Rev. H)
    The ones you want to look at are (Depending on if you Use C or Assembly) USI 06-16. Show how to implement USI based I2C Masters and Slaves, for single and multi-byte usage. One even shows how to emulate an i2c eeprom.
     
    TLDR: Read the Code examples in
    http://www.ti.com/litv/zip/slac080h
    Or consider using the TI USI i2c Code Library
    http://focus.ti.com/general/docs/litabs ... r=slaa368a
  23. Like
    bluehash got a reaction from gatesphere in Member Ranks   
    Hello fellow 43oh'ers
    Forum users now have ranks. This is just an indication that a member has been helpful to the forums by posting regularly. This is solely based on the number of posts... like Karma.

     
    An interesting feature will be rolled out in the next month or so - Badges.
    - A badge if a member receives "Thanks" above a certain count.
    - A badge if a member wins a "Project Of The Month" contest.
    - Many more, we have to think as this community evolves.
     
    Thanks again for all your support by visiting, helping and posting here. If for any reason, you don't like a feature, feel free to let us know - either PM or here in the forum.
  24. Like
    bluehash got a reaction from mnpumar in Powering LEDs With MSP430 Output   
    Yes, if you look at the doc cde quoted before. Your LED would go in between R1 and Q1. Except in this case, 12V supply would be 5V and 5V would be ~3V at the MSP430 pin.
    Turn the pin High to turn the LED on, and Low to turn it off.

  25. Like
    bluehash reacted to OCY in IR remote control help   
    I do not have an arduino nor the TV you have. But I may be able to help you.
     
    I assume that your arduino has an IR receiver and the program to capture your TV remote. You have already used those and got the numbers you quoted. Am I correct?
     
    I also assume that you have a LaunchPad and an IR LED. You want to program them to turn on/off your TV.
     
    I suggest that you try to use your arduino to capture the IR transmission from your LaunchPad too. By trial and error to get the same (or at least similar) numbers, after that you will be able to control the TV.
     
    I suggest that you connect the IR LED to P1.2 with a series resistor. (You need to pull the jumper marked RXD at J3 out so that P1.2 is no longer connected to RXD.)
     
    The program you need to write is to generate ~38kHz PWM wave at TA compare OUT1 and being able to start and stop that PWM according to a schedule. You then adjust that schedule until the IR transmission matches your TV remote.
     
    If you need help to write this program, I can do that.
     
    About those numbers you got. I do not understand the "A90" in the first line. Also the "(26): 10240 2500" part in the second line. Do you have any idea what they mean?
     
    -- OCY
×
×
  • Create New...