Jump to content

username

Members
  • Content Count

    305
  • Joined

  • Last visited

  • Days Won

    8

Reputation Activity

  1. Like
    username reacted to RobG in 2.2" Color LCD Booster Pack with Touch   
    Got the second display working now, the one with touch panel! I can finish my BP PCB now.
    As it turns out, on top of other issues already mentioned, the display is configured to use D/C signal and 8 bit SPI (datasheet says to pull DC pin up or down, suggesting 9 bit SPI.)
     
    BTW, the picture doesn't show how nice this display is
     

  2. Like
    username got a reaction from keithehenry 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     } }
  3. Like
    username got a reaction from thanhtran in AR Drone Control V2   
    Howdy all,
     
    Got another video with my AR Drone. This time the MSP430 was used for alittle bit more then just acting as a remote. With the MSP430G2553, the W5200, and a wireless switch, I was able to control it from an isolated embedded system. Once I have abit more time i'll implement a pair of joysticks to control the drone. As for how it works, the MSP430 sends SPI data to the W5200, then the W5200 sends UDP commands to the drone. Took abit of time to figure out how to fly the thing. Constant communication must occur with the drone or else its crashes (gotta love darn WDTs). Theres also a rather tedious initialization sequence that you gotta do on startup. Anyhow, heres a video:
     



     
    Special thanks to Rob G for his awesome W5200 driver code.
    You can see his thread for his W5200 project here: viewtopic.php?f=35&t=2529&start=110
     
    Cheers!
    -Nate Zimmerman
  4. Like
    username reacted to areben in Community Project: ROCKETuC   
    ROCKETuC is a library for launchpad, processing and Java which allows for control of the microcontroller through USB.
     
    Stefan Wendler and I (mostly Stefan ) have been putting this together to get it to a state to release for feedback.
     
    "ROCKETuC is a Library for fast prototyping of micro-controllers through serial protocols.
    Currently the TI Launchpad with an MSP430G2553 installed is the only supported
    hardware."
     
    Right now, we have a github page with a pre-alpha release
     
    https://github.com/areben/ROCKETuC
     
     
    A how-to for processing
     
    Processing example code
     
    Here is an image of a simple GUI in processing by Stefan:

     
    Source code for the GUI
     
    We are looking for people to try it out and give some feedback.
    We are also looking for coders to help with the project, specifically with the processing library, add-on modules, documentation and website.
     
    We will also have a homepage up at
    homepage: http://rocketuc.com
  5. Like
    username reacted to oPossum in MSP430G2553 ADC10   
    To ensure you have a contiguous block of integers, you have to declare an array and then get the address of it.
     

    #include void main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop WDT unsigned A[4]; // ADC readings ADC10CTL1 = INCH_4 | CONSEQ_1; // A4 + A3 + A2 + A1, single sequence ADC10CTL0 = ADC10SHT_2 | MSC | ADC10ON; while (ADC10CTL1 & BUSY); ADC10DTC1 = 0x04; // 4 conversions ADC10AE0 |= (BIT1 | BIT2 | BIT3 | BIT4); // ADC10 option select P1DIR |= (BIT0 | BIT6); // Set P1.0 + P1.6 to output while (1) { ADC10CTL0 &= ~ENC; while (ADC10CTL1 & BUSY); ADC10SA = (unsigned)&A[0]; //RAM Address of ADC Data, must be reset every conversion ADC10CTL0 |= (ENC | ADC10SC); //Start ADC Conversion while (ADC10CTL1 & BUSY); //Wait while ADC is busy if (A[0] > 0x320) P1OUT |= BIT0; else if (A[0] < 0xC8) P1OUT |= BIT6; else if (A[1] > 0x320) P1OUT |= BIT0; else if (A[1] < 0xC8) P1OUT |= BIT6; else if (A[2] > 0x320) P1OUT |= BIT0; else if (A[2] < 0xC8) P1OUT |= BIT6; else if (A[3] > 0x320) P1OUT |= BIT0; else if (A[3] < 0xC8) P1OUT |= BIT6; else P1OUT &= ~(BIT0 | BIT6); _delay_cycles(100); //For Breakpoints } }
  6. Like
    username got a reaction from rohit in MSP430 PC GUI Eval Tool   
    Hey all,
     
    I was working on a GUI that would be able to control any and all functions on a particular MSP430 processor from a PC GUI. Only limitations a course would be P1.1 and P1.2 which are required for GUI communication. This is very very very much so a work in progress. Currently i'm writing it using WX Widgets libraries to simplify the GUI aspect of it. However, currently i'm not using a "form builder" so it is going to take a handy amount of time to write. Good c++ experience though....
     
    This GUI would be very handy to have from a hardware/software test debug standpoint. For example, say I wanted to test out some SPI sensor I purchased, I could use a GUI such as this to send custom SPI packets to the device i'm testing and read/observe results live. That as opposed to having to write a micro.c file to do the communication and re write it every time something doesn't work.
     
    Many thanks to rick and suggaraddict for assistance on c++ coding help
     
    GUI Download Rev 0.5 : https://github.com/NateZimmer/MSP430-Ev ... I_EVAL.exe (windows.exe, click "view raw" to download)
    (feedback on whether or not it works for you would be great. Gaurenteed to work with a FTDI RS232 -> USB. However, launchpad drivers suppperr flakey and crapey )
     
    Remember to flash https://github.com/NateZimmer/MSP430-Ev ... er/GUI.cpp to your MSP430G2553
     
    Source Code is now at https://github.com/NateZimmer/MSP430-Eval-Tool
     
    (your going to need to download and BUILD the wx libraries to get this to work)
     
    Main Connect tab: Implemented
     

     
    Digital Output tab: Implemented
     

     
    Digital Input tab: Implemented
     

     
    SPI Tab: Implemented but not fully tested
     

     
    Analog Input tab: In Progress
     
    Connection Issue Debug
    1. Make sure you got a Rev1.5 launchpad with a G2553 micro flashed with the proper code provided. Also, makesure your jumpers are set to hardware uart.
     
    2. If that doesn't work... sadly, the TI RS232 <-> USB sucks hardcore compared to FTDI that always works. Once a connection is established, it works fine. However, getting that first connection can be a super pain. If your having connection issues, open up a terminal program(such as putty), connect to the com port of your msp430, and press the "1" key and ONLY the 1 key. If your msp430 is working properly you should receive "PING" back. At that point, close the terminal program and open up my .exe program. At that point, it should connect fine.
  7. Like
    username got a reaction from larsie in AR Drone Control V2   
    Howdy all,
     
    Got another video with my AR Drone. This time the MSP430 was used for alittle bit more then just acting as a remote. With the MSP430G2553, the W5200, and a wireless switch, I was able to control it from an isolated embedded system. Once I have abit more time i'll implement a pair of joysticks to control the drone. As for how it works, the MSP430 sends SPI data to the W5200, then the W5200 sends UDP commands to the drone. Took abit of time to figure out how to fly the thing. Constant communication must occur with the drone or else its crashes (gotta love darn WDTs). Theres also a rather tedious initialization sequence that you gotta do on startup. Anyhow, heres a video:
     



     
    Special thanks to Rob G for his awesome W5200 driver code.
    You can see his thread for his W5200 project here: viewtopic.php?f=35&t=2529&start=110
     
    Cheers!
    -Nate Zimmerman
  8. Like
    username got a reaction from RobG in AR Drone Control V2   
    Howdy all,
     
    Got another video with my AR Drone. This time the MSP430 was used for alittle bit more then just acting as a remote. With the MSP430G2553, the W5200, and a wireless switch, I was able to control it from an isolated embedded system. Once I have abit more time i'll implement a pair of joysticks to control the drone. As for how it works, the MSP430 sends SPI data to the W5200, then the W5200 sends UDP commands to the drone. Took abit of time to figure out how to fly the thing. Constant communication must occur with the drone or else its crashes (gotta love darn WDTs). Theres also a rather tedious initialization sequence that you gotta do on startup. Anyhow, heres a video:
     



     
    Special thanks to Rob G for his awesome W5200 driver code.
    You can see his thread for his W5200 project here: viewtopic.php?f=35&t=2529&start=110
     
    Cheers!
    -Nate Zimmerman
  9. Like
    username got a reaction from GeekDoc in AR Drone Control V2   
    Howdy all,
     
    Got another video with my AR Drone. This time the MSP430 was used for alittle bit more then just acting as a remote. With the MSP430G2553, the W5200, and a wireless switch, I was able to control it from an isolated embedded system. Once I have abit more time i'll implement a pair of joysticks to control the drone. As for how it works, the MSP430 sends SPI data to the W5200, then the W5200 sends UDP commands to the drone. Took abit of time to figure out how to fly the thing. Constant communication must occur with the drone or else its crashes (gotta love darn WDTs). Theres also a rather tedious initialization sequence that you gotta do on startup. Anyhow, heres a video:
     



     
    Special thanks to Rob G for his awesome W5200 driver code.
    You can see his thread for his W5200 project here: viewtopic.php?f=35&t=2529&start=110
     
    Cheers!
    -Nate Zimmerman
  10. Like
    username got a reaction from RobG in Laser Security V2 Msp430   
    Hey All,
    Nate here. I'm currently a junior in EE and decided to use the msp430 in my Design 1 project(not senior design).
    Built a PCB and finalized most of the design.
    -Some basic features : LCD 16x2
    -120 db alarm (freaking loud)
    -1 5mw legal red laser
    -1 red led recieving diode
    -2 push buttons to enter in a code on the lcd screen
    Here some pics: (will upload a video of the operation when I get some time)
     


     

     

     

     

     
    Here is the schematic: (to big for site)
    http://img254.imageshack.us/img254/9838/lasersspdf.png
     
    and source code ( still in beta... needs abit of work as you tell)
     
    main.c

    // Laser Security System: // Code By Natahn Zimmerman // 11/9/11 /////////////Includes/////////////////// #include "msp430g2231.h" #include "lcd.h" /////////////LCD Defines//////////////// #define DATAPIN BIT6 #define CLOCKPIN BIT5 #define ENABLEPIN BIT4 //////////Other Micro Defines/////////// #define GLED BIT6 // Green LED saying that SS is good and active #define RLED BIT7 // Red LED saying that SS has been breached and alarm is high #define ALARM BIT7 // Also attached to RLED. #define TXD BIT0 // Serial Output #define RXD BIT1 // Serial Input #define SW1 BIT2 // Disable SS #define SW2 BIT3 // Disable SS //////////////Variables///////////////// volatile unsigned int i=1; // Variable for TXD Funciton. If this value goes above a certain point, security is breached. volatile unsigned int j=0; // Low State Check variable. This variable should increment to a certain point, if not, security is breached. volatile unsigned int t=0; // For loop variable for j. volatile unsigned int ticks=0; // Variable for Timer function. After this gets to a certain point alarm sounds. volatile unsigned int password=0; // value for number being keyed in on keypad. volatile unsigned int a = 0; // Password compare value volatile unsigned int c = 0; // Increment based upon password being correct. volatile unsigned int b = (0x80 | 0x40 | 0xA); // HD44780 Cursor location. char ptext[2]; // Password Char array. Bit 1 = password #, Bit 2 = null. //////////////PROTOS//////////////////// void TXD_RXD(void); // Prototype TXD Function void dis_alarm(void); //////////////Main////////////////////// void main(void) { _delay_cycles(20000); // debug delay WDTCTL = WDTPW + WDTHOLD; // turn off watchdog so micro does not reset _delay_cycles(100000); // debug delay P1OUT &= ~(CLOCKPIN + DATAPIN + RLED); //Set these pins low (ensures low when defined as output) P1OUT |= ENABLEPIN; // Set enable pin high. (ensures high when defined as output) P1DIR |= ENABLEPIN + CLOCKPIN + DATAPIN +RLED; // Define as outputs P1DIR &= ~(SW2 + SW1); // Define as perm inputs P1IE |= (SW1); // P1.2 interrupt enabled P1IFG &= ~(SW1); // P1.2 IFG cleared P1IE |= (SW2); // P1.3 interrupt enabled P1IFG &= ~(SW2); // P1.3 IFG cleared __enable_interrupt(); // enable all interrupts P2SEL = 0x00; // Set functionality of Port 2 to GPIO P2DIR |= GLED; // Set Green LED, AKA P2.6 AKA XIN to a output. P2OUT = 0; // Set all outputs on port 2 to 0. AKA GLED. P1DIR |= ( RLED + TXD); // All outputs except DIS_ALARM and RXD P1OUT &= ~(RLED +TXD); // All bits set high initally, need to set all bits low. P2OUT |= GLED; // Turns Green LED ON initDisplay(); // Turn on display. clearDisplay(); // Clear Display Print_Screen("Zalous Laser"); second_line(); Print_Screen("Security System"); _delay_cycles(5000000); clearDisplay(); Print_Screen("Laser System"); second_line(); Print_Screen("Now Activated"); _delay_cycles(20000); TXD_RXD(); // Should always stay in this state unless TXD != RXD. In which case the following happens: P2OUT &= ~GLED; // Green LED Turns off clearDisplay(); // Clear display for new text Print_Screen("Security System"); second_line(); Print_Screen("Breached! "); while(1) { P2OUT ^= GLED; // Blink Green LED CCTL0 = CCIE; // CCR0 interrupt enabled ( TIMER 1) CCR0 = 50000; // Set Timer Value TACTL = TASSEL_2 + MC_1; // Initialize Timer _delay_cycles(5000000); //Pause before enter password screen. clearDisplay(); Print_Screen("Please Enter"); second_line(); Print_Screen("Password: "); while(1) { if(ticks>500) // Ticks is a Timer Variable. User has 30 seconds to enter password before alarm sounds. { while(1) { P1OUT ^= RLED; //Pulse alarm. _delay_cycles(500000); } } } } } // End main void TXD_RXD(void) { while(i < 10) { P1OUT |= TXD; __delay_cycles(5); if((RXD & P1IN)==0) { i++; } P1OUT &= ~TXD; __delay_cycles(20); for(t=0;t<10;t++) { if((RXD & P1IN)==0) { j++; } } if(j>5) { j=0; } else { i++; } __delay_cycles(20); } // End While } // End Function void dis_alarm(void) { P1OUT &= ~TXD; for(i=0;i<10;i++) { _delay_cycles(300000); P2OUT ^= GLED; } WDTCTL = WDT_MRST_32 + ~WDTHOLD; } // Port 1 interrupt service routine #pragma vector=PORT1_VECTOR __interrupt void Port_1(void) { _delay_cycles(10); if(((SW1 & P1IN)) == 0) { password++; ptext[0] = password + '0'; ptext[1] = 0; _delay_cycles(2000); sendInstruction(b+a); _delay_cycles(2000); Print_Screen(ptext); _delay_cycles(2000); P2OUT ^= GLED; } if(((SW2 & P1IN)) == 0) { a++; _delay_cycles(2000); sendInstruction(b+a); _delay_cycles(2000); P2OUT ^= GLED; Print_Screen("_"); if(a==1) { if(password==3) { c++; } } if(a==2) { if(password==8) { c++; } } if(a==3) { if(password==9) { c++; } } if(a==4) { if(password==1) { c++; } } if(a==4) { if(password==2) { c++; c++; } } if(c==4) { CCTL0 &= ~CCIE; _delay_cycles(20000); __disable_interrupt(); _delay_cycles(120000); WDTCTL = WDT_MRST_32 + ~WDTHOLD; _delay_cycles(120000); } if(c==5) // debug feature. laser = always on. useful for { P1OUT = TXD; } // end if(a==4) { sendInstruction(b+a); Print_Screen(" "); a=0; c=0; sendInstruction(b+a); Print_Screen("_"); } // End If a == 4 password=0; } _delay_cycles(200000); P1IFG &= ~SW1; // P1.2 IFG cleared P1IFG &= ~SW2; // P1.3 IFG cleared } // End ISR #pragma vector=TIMERA0_VECTOR __interrupt void Timer_A (void) { P2OUT ^= GLED; // Toggle P1.0 ticks++; }
     
    and lcd.h (many thanks to RobG for his LCD code. Modified it abit and it works incredibly well! )
     

    #ifndef LCD_H_ #define LCD_H_ #define sendData(data) send(data, 1) #define sendInstruction(data) send(data, 0) #define initDisplay() sendInstruction(0x3C); sendInstruction(0x0C); clearDisplay(); sendInstruction(0x06) #define clearDisplay() sendInstruction(0x01); _delay_cycles(2000) #define second_line() sendInstruction((0x80 | 0x40)); _delay_cycles(2000) #define DATAPIN BIT6 #define CLOCKPIN BIT5 #define ENABLEPIN BIT4 void send(char data, char registerSelect); void sendDataArray(char data[], char length); void Print_Screen(char *texts); char charIndex = 0; char bitCounter = 0; void sendDataArray(char data[], char length) { charIndex = 0; while(charIndex < length) { sendData(data[charIndex]); charIndex++; } } void send(char data, char registerSelect) { bitCounter = 0; while(bitCounter < 8) { (data & BIT7) ? (P1OUT |= DATAPIN) : (P1OUT &= ~DATAPIN); data <<= 1; P1OUT |= CLOCKPIN; P1OUT &= ~CLOCKPIN; bitCounter++; } registerSelect ? (P1OUT |= DATAPIN) : (P1OUT &= ~DATAPIN); P1OUT &= ~ENABLEPIN; P1OUT |= ENABLEPIN; } void Print_Screen(char *texts) { volatile int i=0; char *h; h=texts; for(i=0;i<16;i++) { if(h[i]==0) { break; } } sendDataArray(h, i); } #endif /*LCD_H_*/

  11. Like
    username reacted to bluehash in 20 pm limit?   
    Bump to 30 PMs
  12. Like
    username reacted to RobG in Ethernet Booster Pack   
    Hmmm, forgot that I did the server how-to already in another thread
     
    Right now, I am working on including UDP examples to my server and will upload updated software later in the week.
    If you are interested in UDP, here's a little Java utility I wrote for testing UDP traffic.
    1. unzip the file and place UDPTester.java in a directory
    2. cd to directory and edit IP and port as needed (localhost is default)
    3. compile

    javac UDPTester.java
    4. start as server...

    java UDPTester
    5. ...or as client

    java UDPTester c
    6. if you started as client, just type and hit Enter
     
    To run quick test, just open two console windows and start client in one and server in the other (leave IP and port as is.)
    You should see something like this:

    ----server window--- $ java UDPTester Running as server Received data: hello 43oh! ---client window--- $ java UDPTester c Running as client hello 43oh! Sent: hello 43oh! Response: received 11 bytes
     
     
    Here's one example of UPD usage, connectionless data logging, ADC, etc.
     

     
     
    UDPTester.zip
  13. Like
    username got a reaction from pine in Relay switch - Live or Neutral to connect?   
    FYI in regards to identifying AC wires, sometimes the color coding isn't always present on cheap AC power wires. If unknown, ohm out versus the AC plug.
     

  14. Like
    username reacted to bluehash in MTK3339 GPS BoosterPack - Pictures   
    Made this to test out the MTK3339 GPS we got through the group buy. All buyers get a free boosterpack. Thanks for making it a success.
    Code: Thanks to Robg
    Thanks to dkedr for providing the MTK3339 GPS footprint

    Features:
    - BoosterPack also acts as breakout board.
    - 3d fix led. Led goes out when a fix is obtained.
    - PPS/FIX/RX/TX/VCC/GND broken out.
    - Boosterpack connects to RX/TX of the LP. There are also solder jumpers in case you want to use some other pins to save your serial port.

    Required for v1.1
    - Battery holder- thanks dkedr.

    Below shows testing with the GPS. No MSP430 chip underneath. I'm using EarthBridge software to test the NMEA string.






    Rob's Demo on a 5110 Nokia LCD:

  15. Like
    username reacted to RobG in Saving data to flash on power down   
    Here is a simple solution to the problem I had, saving data when power goes down.
    There are two parts needed, a diode (1N4148) and a capacitor (~47uF.)
    The way it works, you isolate main power from MCU and connect capacitor on the MCU's side.
    One of the pins is connected to the main power and will trigger an interrupt.
    In the interrupt routine, we will be saving data to flash.
    This is a simple proof of concept, the final code should include low voltage detection for situations like dying battery.
     

     


     

    #include "msp430g2231.h" unsigned int data = 0; unsigned int * const savedDataPtr = (unsigned int *)(0x1000); void main(void) { WDTCTL = WDTPW + WDTHOLD; P1DIR &= ~BIT1; P1IE |= BIT1; P1IES |= BIT1; P1IFG &= ~BIT1; P1REN |= BIT1; P1OUT &= ~BIT1; P1DIR |= BIT0; P1OUT |= BIT0; data = *savedDataPtr; if(data == 0xFFFF) data = 100; unsigned int counter = data; _bis_SR_register(GIE); while(1) { counter = data; while(counter > 0) { _delay_cycles(1000); counter--; } P1OUT ^= BIT0; } } // Port 1 interrupt service routine #pragma vector=PORT1_VECTOR __interrupt void Port_1(void) { P1OUT &= ~BIT0; data += 100; // Save value FCTL2 = FWKEY + FSSEL0 + FN1; FCTL1 = FWKEY + ERASE; FCTL3 = FWKEY; *savedDataPtr = 0; FCTL1 = FWKEY + WRT; *savedDataPtr = data; FCTL1 = FWKEY; FCTL3 = FWKEY + LOCK; P1IFG &= ~BIT1; }
  16. Like
    username reacted to RobG in write to flash   
    Check those out: Saving data to flash on power down and Flash Variables - Persistent Variables
  17. Like
    username got a reaction from GeekDoc in Advice on purchasing my first scope   
    I got a Rigol 1052e, i'm likewise a college undergrad. Works great for pretty much everything. However, anything fancy such as ultra high frequency reading, digital data decoding, or low voltage waveforms is going to require alot more money to have any measure of quality.
     
    330 usd. from rigol directly: http://www.rigolna.com/products/digital ... e/ds1052e/
    very little risk involved with these guys since they are hugely popular among hobbyists.
     
    Only cons is that they come with cheap plastic knobs that crack and some of the firmware has a random screen flicker that happens 1-2 every 5 or so minutes. You can fix it by reverting to old firmware. Its not a very hard update. You can also rather easily overclock these guys to 100mhz should you so wish.
  18. Like
    username got a reaction from oPossum in Advice on purchasing my first scope   
    I got a Rigol 1052e, i'm likewise a college undergrad. Works great for pretty much everything. However, anything fancy such as ultra high frequency reading, digital data decoding, or low voltage waveforms is going to require alot more money to have any measure of quality.
     
    330 usd. from rigol directly: http://www.rigolna.com/products/digital ... e/ds1052e/
    very little risk involved with these guys since they are hugely popular among hobbyists.
     
    Only cons is that they come with cheap plastic knobs that crack and some of the firmware has a random screen flicker that happens 1-2 every 5 or so minutes. You can fix it by reverting to old firmware. Its not a very hard update. You can also rather easily overclock these guys to 100mhz should you so wish.
  19. Like
    username got a reaction from RobG in 20 pm limit?   
    I know it saves space and all.... but is there any chance we can hold more than 20 PMs in our inbox?
  20. Like
    username got a reaction from TomKraut in Good alternative for FT232RL for USB->Serial conversion?   
    Well, for starters, DO NOT use the TUSB3410VF which is already on the launchpad. It is a chip sent from hell to make your life miserable if your using a more modern OS such as W7. I've cried and pleaded with TI but all they tell me is that its not necessarily W7 compatible on all machines. There is probably a more intelligent answer out there as well as a solution but I haven't had time to look into it further. In any event, its going to be hard to find this chip cheaper than a FT232RL so I apologize for the rant.
     
    The FT232RL is a beeaauttiffulll chip simply due to the compatibility and reliability of the FTDI drivers. Yes, its pricey, but you most certainly get what you paid for in comparison to other chips on the market. Now, one thing to consider is who your buying it from and in what quantity. Digikey generally = most expensive. Where as if you get them from ebay, you can get them for 2.88 usd. per chip in QTY of 10: http://www.ebay.com/itm/10PCS-IC-FT232R ... 3a747d0e9e.
     
    The MCP2200 is another possible option that i've used abit in the past. It was reliable on W7 at least for what I did with it. However, that doesn't guarantee compatibility on all common OS-es or ensure longterm reliability when sending thousands of packets for an extended duration of time. In addition, this chip requires more external components such as a crystal oscillator. This makes it harder to prototype and not necessarily as cheap as it seems. If thats not a problem for you, mine as well try it out and save a few bucks.
     
    USB itself is not necessarily a cheap application and especially for a unique driver application. Only reason industry can get away with such cheap products is because of quantity. In a quantity of 1-10, i'm not sure there many solutions cheaper than ~2usd.
  21. Like
    username got a reaction from bluehash in Good alternative for FT232RL for USB->Serial conversion?   
    Well, for starters, DO NOT use the TUSB3410VF which is already on the launchpad. It is a chip sent from hell to make your life miserable if your using a more modern OS such as W7. I've cried and pleaded with TI but all they tell me is that its not necessarily W7 compatible on all machines. There is probably a more intelligent answer out there as well as a solution but I haven't had time to look into it further. In any event, its going to be hard to find this chip cheaper than a FT232RL so I apologize for the rant.
     
    The FT232RL is a beeaauttiffulll chip simply due to the compatibility and reliability of the FTDI drivers. Yes, its pricey, but you most certainly get what you paid for in comparison to other chips on the market. Now, one thing to consider is who your buying it from and in what quantity. Digikey generally = most expensive. Where as if you get them from ebay, you can get them for 2.88 usd. per chip in QTY of 10: http://www.ebay.com/itm/10PCS-IC-FT232R ... 3a747d0e9e.
     
    The MCP2200 is another possible option that i've used abit in the past. It was reliable on W7 at least for what I did with it. However, that doesn't guarantee compatibility on all common OS-es or ensure longterm reliability when sending thousands of packets for an extended duration of time. In addition, this chip requires more external components such as a crystal oscillator. This makes it harder to prototype and not necessarily as cheap as it seems. If thats not a problem for you, mine as well try it out and save a few bucks.
     
    USB itself is not necessarily a cheap application and especially for a unique driver application. Only reason industry can get away with such cheap products is because of quantity. In a quantity of 1-10, i'm not sure there many solutions cheaper than ~2usd.
  22. Like
    username got a reaction from oPossum in SD Media Player with FAT16   
    Now... perhaps i'm missing something but are those not backwards? :shock:
  23. Like
    username reacted to RobG in LaunchPad Web Server - control your LP over the network   
    Here's the web server software for my Ethernet booster pack.
    The software is 95% ready, still few bugs and some cleanup left, I will post the code when complete.

    The whole thing takes up just under 4.5KB and uses ~400 bytes of RAM, so you still have ~11KB and ~100 bytes of RAM left for whatever you need.

    BTW, I really need to get a tripod for my iPhone



  24. Like
    username reacted to RobG in Ethernet Booster Pack   
    I didn't have much time to make it nice and pretty, but this is enough for now to make me finish my Ethernet booster pack.
     


  25. Like
    username reacted to RobG in Ethernet Booster Pack   
    PCB ~ $1.50 (if you make it yourself)
    W5200 - $3.70 (from Saelig, in stock, Parallax has them in stock too, but for $5.00.)
    RB1-125BAG1A MagJack < $3.00 (from Saeling, currently out of stock, 1-2 weeks; could use something cheaper, like Sparkfun's $1.99 jack, but there footprints are different)
    25MHz X-tal ~ $1.00
    20 resistors, 16 capacitors, 3 inductors, 2 headers ~ $0.80
     
    optional:
    Opto ~ $0.25-$1.00 each
    MSP430G2553 ~ $1.50 - 2.00 ($1.47 DIP in stock @ Avnet)
×
×
  • Create New...