Jump to content
43oh

jsolarski

Members
  • Content Count

    568
  • Joined

  • Last visited

  • Days Won

    8

Reputation Activity

  1. Like
    jsolarski reacted to JWoodrell in Small crystal on pins   
    I remember seeing a thread a while back talking about soldering the crystal that came with the launchpad to the pins of the dip package , and liked that concept.  (I searched for the thread, but couldn't find it)
     
    I did it here with a small SMD-2 style chip that is 1.6mm x 1mm.  I put a small dot of solder paste on a plastic envelope then used the tip if an exact blade like a trowel to put the paste on the pins in a small but controlled amount.  set the crystal on with a set of needle nose pliers, and applied my heat gun (cheap heat shrink gun) till the solder melted, then let it cool and poof, instant SMD mount
     
    It fits across the legs of the MSP430 like pads on a circuit board (albeit with an air gap between)  thought I would share cause it looks kinda cool, and is a very small option for crystal usage.
     
    this is the crystal
     
    I have a proclivity for small

  2. Like
    jsolarski reacted to benbergman in Having trouble compiling cap touch booster pack demo with mspgcc   
    Here is the demo code, straight from TI's website[1]. I was trying to compile the files found in /Source/CapTouch_BoosterPack_UserExperience/ as they appeared to be what comes on the chip with the booster pack.
     
    This is the makefile I was trying[2]. The only real changes I made to the make file were adding all the .c files to the sources line and changing the references to reflect my particular chip. The includes in the source were also changed. I tried refering to my particular chip as well as the generic msp430.h but got the same errors.
     
    When I get home, I can send the exact files I was trying with, including the modifications.
     
    [1]http://www.ti.com/litv/zip/slac490 from http://www.ti.com/tool/430boost-sense1
    [2]http://sourceforge.net/apps/mediawiki/mspgcc/index.php?title=Example:Makefile
  3. Like
    jsolarski reacted to GG430 in LED fire place with 8 pin G2230   
    I wanted to add a small fireplace to our christmas crib and thought it needs a 430 ;-)
    It was a pretty small project, but fun though. The LEDs are driven by a pseudo random generator. I think it looks kind of OK, the color could be more improved with the yellow to red ratio (I'll keep it on the backlog for next xmass ;-) )
    I made a pretty simple one sided "Dremel" board to hold the MSP430G2230 and the LEDs.The 1.27mm pitch enables the pretty fast way to get a useable PCB and the four port pins are just enough for this.
     

     

  4. Like
    jsolarski reacted to Nytblade in MSP430F5172 LaunchPad XL   
    Spirilis had an extra board from the original batch he sent me to try out.  Here is a video review of it I made and an explanation of how to program it: http://www.youtube.com/watch?v=GHjFCnXXAoQ
  5. Like
    jsolarski reacted to username in G2553 Hardware UART "Hello World" Example   
    A simple well documented hardware uart "Hello World" example.
    Updated, thanks for member comments 3/13/13
     
    Notes:
    This code is for launchpad rev 1.5
    This is hardware UART, your launchpad jumpers must be set for hardware UART
    The TI TUSB3410 is a TERRIBLE usb-> UART chip and is very buggy on WIN7 64bit. If your still having issues, it could be a driver issue. Try on XP or use a different USB -> serial device.
     
     
    //Nate Zimmer UART example // Press button to print hello to terminal #include  <msp430g2553.h> // System define for the micro that I am using #define RXD        BIT1 //Check your launchpad rev to make sure this is the case. Set jumpers to hardware uart. #define TXD        BIT2 // TXD with respect to what your sending to the computer. Sent data will appear on this line #define BUTTON    BIT3 void UART_TX(char * tx_data);            // Function Prototype for TX void main(void) {   WDTCTL = WDTPW + WDTHOLD;         // Stop Watch dog timer   BCSCTL1 = CALBC1_1MHZ;            // Set DCO to 1 MHz   DCOCTL = CALDCO_1MHZ;   P1DIR &=~BUTTON;                  // Ensure button is input (sets a 0 in P1DIR register at location BIT3)   P1OUT |=  BUTTON;                 // Enables pullup resistor on button   P1REN |=  BUTTON;   P1SEL = RXD + TXD ;                // Select TX and RX functionality for P1.1 & P1.2   P1SEL2 = RXD + TXD ;              //   UCA0CTL1 |= UCSSEL_2;             // Have USCI use System Master Clock: AKA core clk 1MHz   UCA0BR0 = 104;                    // 1MHz 9600, see user manual   UCA0BR1 = 0;                      //   UCA0MCTL = UCBRS0;                // Modulation UCBRSx = 1   UCA0CTL1 &= ~UCSWRST;             // Start USCI state machine   while(1)                          // While 1 is equal to 1 (forever)   {       if(!((P1IN & BUTTON)==BUTTON)) // Was button pressed?       {           UART_TX("Hello World! \r\n");  // If yes, Transmit message & drink beer           __delay_cycles(100000); //Debounce button so signal is not sent multiple times       }   } } void UART_TX(char * tx_data) // Define a function which accepts a character pointer to an array {     unsigned int i=0;     while(tx_data[i]) // Increment through array, look for null pointer (0) at end of string     {         while ((UCA0STAT & UCBUSY)); // Wait if line TX/RX module is busy with data         UCA0TXBUF = tx_data[i]; // Send out element i of tx_data array on UART bus         i++; // Increment variable for array address     } }
  6. Like
    jsolarski reacted to reagle in MSP430 based kit to put together with kids   
    We've designed this for ourselves, but liked the result enough to make a bunch for sale. The design uses MSP430G2452 and could be hacked to do other things, but the main idea it's a prompter for martial arts practice. The kits are available on Tindie at 
    https://tindie.com/shops/kuzyatech/kicky-dude-taekwondo-trainer-kit/
     

  7. Like
    jsolarski reacted to yyrkoon in Best information for those new to the MSP430?   
    *puts on web-safe condom*
     
    Seriously though, as software developers of sorts, you would think that "we" could appreciate / and respect copyright laws.
     
    Where I am concerned, GeekDoc, you're preaching to the choir   However, again, I have no qualms checking content out before I spend my own hard earned cash on something. Otherwise, it is me that is being ripped off, and in the end. I may be able to sympathize with someone over their problems, but their problems are not mine. If you catch my meaning.
     
    That said, in this situation I feel that the author( Elecia White ) deserves every dime she can get from that book.
     
    EDIT: 
     
    And apparently based on my link there O'Reilly has made the complete book available for viewing though google books. 
  8. Like
    jsolarski got a reaction from johnnyb in Greetings from So Cal   
    Welcome to the forums.
     
    IDE? whats wrong with a text editor and a mspgcc? lol
     
    But I would agree with bluehash, and use CCS, most code written on the forums will work with it, or with very little modification
  9. Like
    jsolarski got a reaction from chemuduguntar in debugging UART communications   
    Glad you figured it out, I was going to try and look at the revised code but stuck at work on calls
  10. Like
    jsolarski reacted to chemuduguntar in debugging UART communications   
    Found the problem, starting the UART unit seems to clear the interrupt enable register; solution is to set enable interrupts after.
     
        UCA0CTL1 &= ~(UCSWRST);

        IE2      |= UCA0TXIE;
     
    It even says it in the manual:
     
    The recommended USCI initialization/re-configuration process is:
    1. Set UCSWRST (BIS.B #UCSWRST,&UCAxCTL1)
    2. Initialize all USCI registers with UCSWRST = 1 (including UCAxCTL1)
    3. Configure ports.
    4. Clear UCSWRST via software (BIC.B #UCSWRST,&UCAxCTL1)
    5. Enable interrupts (optional) via UCAxRXIE and/or UCAxTXIE
     
    Manual = Bible
  11. Like
    jsolarski reacted to Mark Stanley in Keypad library   
    Hi Advane,
     
      I'm the author of the keypad library and I just discovered that Energia was using the Arduino libraries.  More specifically I just found this post and I thought I might be able to help.
     
    I can tell from your error above:
    In member function 'void Keypad::initializePins()': that you are using version 3.0 or older of the library.  I've just finished version 3.1 and eliminated that function.  It might work better for you if you download the latest library.  http://arduino.cc/playground/uploads/Code/keypad.zip
     
    Also, you can test addEventListner by trying the EventKeypad.ino example included with the library.  If that works for you then you can follow it as an example.  I can also answer any other questions you may have.
     
    Since I have now discovered this site it seems that I will need to buy a launchpad for testing.  Until then I would greatly appreciate any help you can give by letting me know about any problems.  If you need to contact me directly you can find my email address in the Keypad.h file.
     
    Best regards,
    -Mark
  12. Like
    jsolarski reacted to username in LPC1769 web interface board   
    Hey all,
     
    For a school project, I wanted to make a web interface board. Sadly MSP430s just don't cut it for advanced applications. I wanted to make a powerful portable web server I could plug into certain projects. Majority of code base credit goes to Brad S, my partner in crime. Credit also a course also goes to RobG for his brilliant universal lcd lib.
     
    Web server board has the following features:
     
    ARM cortex m-3 LPC1769 MCU
    LPC1769 USB mini device interface
    SPI based micro SD card interface
    W5200 web server
     


     
    I also made a docking board which as an NRF wireless chip on it and one of Robs 2.2" LCD touch displays on it.

     
    Also made a wireless interface board which goes in application you wish to control. This guy uses an msp430G2553.

     
    Been a long work in progress.
  13. Like
    jsolarski reacted to legailutin in Yet Another Wireless Sensor Board   
    Hi,
    I've finally found my "cahones" and decided to become a doer, and hopefully more active on the forum.
    I've been working on his for more than a year on my free time and have learned a lot. However, nothing real have come out of this project until recently. With the recent release of energia library for nRF24L01P by spirillis, I decided to restart working on it. Anyway. I'll post what I've done so far and move along with the suggestions.
     
    I'm a noob, so I've gone the noob way:
      Breadboarded first using what I had in my noob bin (msp430g2553 , nRF24l01P, ds18b20, thermistor, 7805, lm358, 9v battery, couple of resistors and capacitors)   Used the launchpad schematics to get the components values.   Board Layout with fritzing. Eagle was too complicated for me.   Ordered the board thru Oshpark after exporting the gerbers. [ yay!!! I'm speaking like the pros :grin:)   Programming with Energia, so far everything is going ok. I attached the fritzing file as well as the oshpark rendering of the board. Please, take a look, let me know where I've gone wrong.
    YAWSB.zip



  14. Like
    jsolarski reacted to jazz in MSP430F550x based USB - UART bridge   
    Just to have some orientation to transfer speed, I used 2 bridge adapters based on PL2303HX chip connected with rs232 together.

    adapter1  conn  adapter2
    TXD ---------------- RXD
    RXD --------------- TXD
    CTS --------------- RTS
    RTS --------------- CTS

    Without RTS/CTS connection it will not work with standard Win32 API WriteFile/ReadFile commands.

    Here are some PL2303HX benchmark results for big at-once transfer:
    64 KB @ 115200 bps Time 5766 ms Rate 11 KB/s 128 KB @ 460800 bps Time 2922 ms Rate 45 KB/s 256 KB @ 921600 bps Time 3015 ms Rate 87 KB/s  
    PL2303HX chips can work on much higher transfer speed, but one of adapters that I heave is limited with Sipex 323 chip and can not go higher than 1 Mbps. Anyway, reached results for higher rate: 1228800 bps 113 KB/s.
  15. Like
    jsolarski got a reaction from bjbance in Questions on i2C with the G2553   
    the code looks good but other people may have more insight into I2C.
     
    but for recieved data
     
    something like this should work
     
    RXData = UCB0RXBUF;                       // Get RX data
     
     
    and there is a RX interrupt signal, I just dont reemmber off the top of my head due to not working with I2C as much as others on this site

     
  16. Like
    jsolarski reacted to mbeals in Project deathbot   
    My mouser order came early!  So instead of spending an afternoon working, I went out to the lab and soldered it up.  Don't make fun of my SMD work...this is only my second attempt at it.
     
    I plan to start writing firmware tonight once I get home, but winter carnival starts tonight, so we shall see how far I get with it.
     
    EDIT:  IT'S ALIVE!!!!
     
    Well...at least I can program it and the UART is capable of transmitting....but I very rarely have anything work out of the gate.  I also read the datasheet closer, and my pinout problem isn't nearly as bad as I thought it was.  I should still have full control in both directions...I just won't have control over the decay mode.


  17. Like
    jsolarski reacted to RobG in MSP430 Analog read - potentiometer value floating   
    Then all you need to do is divide ADCMEM10 by 8 and you will get 0-127 and pretty much stable value.  value = ADCMEM10 >> 3;  
    You can also implement some sort of hysteresis that will take care of situations like 0x0F3 and 0x0F4, and stabilize your value even more.
     
    For example, you can have 16 steps window. When your pot is in the middle, ADCMEM10 value is 512. Any changes from 504 to 520 will not change your actual value.
    As soon as you change to 503 for example, you move center of your window to 503 and change your actual value. Then your new window will be 495 to 511, and so on.
    You will loose some precision, but gain stability. You can try making the window smaller and see how it works. 
     
    //untested, 4 steps window adc = ADCMEM10; if(adc > adcHigh || adc < adcLow) { adcHigh = adc + 2; adcLow = adc - 2; midiValue = adc >>3; }  
     
  18. Like
    jsolarski reacted to roadrunner84 in light alarm clock project using msp430   
    That's a huge slab of code!
     
    I have some questions (although I cannot read your comments)
    (((sayi%1000)%100)%10)%1) a number divisibe by 10 is also divisible by 100 or 1000 (as 100/10 is a round number, so is 1000/10), so you can drop de %1000 and %100 when doing %10 also. Any integer number is divisible by 1, so %1 will alwaysd result in the value 0.
    eskisayac1=millis(); eskisayac2=millis(); eskisayac3=millis(); eskisayac4=millis(); eskisayac5=millis(); why are you loading all variables with the result from the same function? In this case you'll execute the function five times, while one time would probably suffice
    eskisayac1=millis(); eskisayac2=eskisayac1; eskisayac3=eskisayac1; eskisayac4=eskisayac1; eskisayac5=eskisayac1; // or even more compact eskisayac1=eskisayac2=eskisayac3=eskisayac4=eskisayac5=millis(); You're dividing in comparison, but divisions are way more expensive than multiplications.
    t2>(a2+(2*(b2-a2)/3)) // instead of dividing by 3, multiply the other side by 3 (t2*3)>(a2*3+(2*(b2-a2))) // you're doing a certain amount of a2 minus anoter amount of a2 (t2*3) > (a2*3 + (2*b2 - 2*a2)) (t2*3) > (a2*3 + 2*b2 - 2*a2) // a2*3 - a2*2 = a2*1 (t2*3) > (a2 + 2*b2) // these should all five result in the same outcome, but the last saves you the most code space and the mose clockcycles. These kind of optimisations can save you a lot of code space, so you could maybe even fit it in a smaller chip or save more power.
    h
  19. Like
    jsolarski reacted to cde in light alarm clock project using msp430   
    Add in a vibration/shaker motor output for those who need that extra push in the morning.
  20. Like
    jsolarski reacted to simpleavr in Bootloader for MSP430   
    changes since releasing video.
     
    supports both 8k and 16k devices fixed bug in assembler code regarding SE0 checks (fixes from Mecrimus-. loaded application can share same port 1 interrupt w/ bootloader (w/ a slight delay). include two example apps as show on video.  
    thanks Mecrimus-B, oPossum, Christian Starkjohann for the ground works.
     
    source code now available for the adventurous.
     
    https://github.com/simpleavr/boot430
     
    please see README on github project page for more detail.
  21. Like
    jsolarski reacted to larsie in Is msp430f2274 an ok chip?   
    I realized I have an F2274 already, since I've got a few of the ezmsp2500 boards around. So I tested it (set it up using Grace), and it definitely has 16 x amplification feeding into the ADC. The gain is configurable (up to 16) and which ADC it feeds into is configurable. I got max reading on the adc at about 250mV with that board. Thanks for the help. I might still go for the external op-amp, but it's good to know about this. 
     
    Edit: The op-amp can also feed to an external pin, so you can use it for other things than the ADC also. 
  22. Like
    jsolarski reacted to jazz in MSP430F550x based frequency meter   
    I made simple frequency meter with basic MSP430F550x board without any other parts. Only 24MHz XT2 is used. XT1 is not used, but it can stay on board, no problem. Firmware size is 1.5 kB, and it is starting from $E000, so it will work with any MSP430F550x familly member. Measuring pin is TA1CLK, sequence takes 1 second, and resolution is 1 Hz.
     
    Don't have some precize clock source for calibration, so I used for checking PCM2707 3.3V USB to I2S audio bridge that I have on hand. By default word select frequency is 48 kHz, and clock is 64 * 48 kHz =  3.072 MHz.
     
    For calibration use presize MHz clock. First byte in firmware file (default $7D), at location $E000 is used for calibration. If mesuring result is lower than real value, increase calibration byte value, and opposite. The Best way is to change calibration byte value by one (not +/- 10) with each step.
     
    When board is pluged to USB port it will be enumerated as CDC (virtual serial port), and measured results will be displayed by any terminal tool (Hyper Terminal for Win32).
     
    Measuring results with measuring pin connected to ground:
    [3] 0 Hz [4] 0 Hz [5] 0 Hz Measuring results with measuring pin connected to 48 kHz:
    [33] 48000 Hz [34] 48000 Hz [35] 47999 Hz [36] 48000 Hz [37] 48000 Hz Measuring results with measuring pin connected to 3.072 MHz:
    [53] 3071997 Hz [54] 3071998 Hz [55] 3071998 Hz [56] 3071997 Hz [57] 3071995 Hz [58] 3071995 Hz [59] 3071995 Hz [60] 3071995 Hz [61] 3071995 Hz [62] 3071995 Hz [63] 3071995 Hz [64] 3071995 Hz [65] 3071997 Hz [66] 3071996 Hz Firmware: fm.zip
  23. Like
    jsolarski reacted to wulfman in MAX31855 based reflow oven controller   
    Well with the chinese taking some 2 week holiday i had to work extra hard and i finished up the other boards i was working on and made the order. I hope they produce quality boards. I will need to test the design and yyrkoon
     needs to get busy and program up some more code to test it but i think it will work out ok.
  24. Like
    jsolarski reacted to bluehash in Elecrow PCB Service - Free color   
    Update:
    Looks like they are shipping them. Just got a pic(below). Looks like they worked over the weekend.
     

  25. Like
    jsolarski reacted to wulfman in MAX31855 based reflow oven controller   
    BTA26-800BWRG triac = $3.20 each                                     this will easily handle the heater current
    MOC3063S-TA1 zero crossing triac driver  - 47 cents each   3.3 volt turn on makes a smooth turn on turn off for the triac
    triac needs a heatsink which is a piece of aluminum that all triacs share maybe a buck for it
     
     
    SP2-L2-CD3V   = $32.00     15 amp relay 3 volt coil  requires a transistor to drive the coil from a msp430
    requires no heatsink uses more board area
     
    AQA331VL = 25 bucks  15 amp ssr triac output needs to be mounted to something for heatsinking  needs a transistor
    to turn it on from a msp430 very large and bulky
     
     
    For the oven you need 3 of the relays, triacs-drivers or SSR  to control the functions.
    True the fan driver can be less current and use a cheaper relay or ssr.
     
    But for over all cost savings the triac beats the other solution hands down
     
     
    Also i am using a cheapo chinese wall wart for the 5 volts i remove the small board from the wall wart and glue it to the board
    with silicon. you cant even buy a flyback transformer for the cost of the whole wallwart from china
     
    I have seen cheaper relays and ssr's on ebay but they are not consistent in availability.
    You cannot design for manufacturing using ebay.
    All my parts can be purchased at mouser.com for ease of purchasing.
     
    Keep up the comments.
     
    Wulfman.
     
×
×
  • Create New...