NurseBob

Members
  • Content count

    176
  • Joined

  • Last visited

  • Days Won

    23

NurseBob last won the day on October 22

NurseBob had the most liked content!

1 Follower

About NurseBob

  • Rank
    Level 2
  • Birthday 09/09/1950

Contact Methods

  • Website URL
    http://www.nursebobsblog.org

Profile Information

  • Gender
    Male
  • Location
    St. Helena, CA

Recent Profile Visitors

632 profile views
  1. My experience with C compilers says: Look at the first message; in general, all the other errors flow from that. Same for Java. > `.text' will not fit in region `rom' Indicates your program (and library calls) will not fit in the G2553. Since it won't fit, it doesn't upload.
  2. No. Both the 32KHz and 4MHz crystals are placed. Lots of very interesting things to do with that chip. For a small Physical therapy research team I've built a force sensor using a FSR that can capture and transmit data at 1KHz to a Java app running on a PC via USB 2.0. The Java app, in turn, writes the data to a csv file for later analysis and displays a line chart of each run at completion to verify the basic data captured. They're happy and I learned a bunch... Have fun.
  3. Yes, it will run C++/C code, your limitation is the load size of the program. Don't be too surprised if you run into errors trying to load Adafruit's, or anyone else's class libraries on the G2553. I've not really done much with that particular LP due to the memory and other constraints. FWIW, for under $15.00 you can pick up a F5529LP which won't have the memory limits, and has the option to do USB-based communication. It's a cheap, versatile device. Just a thought.
  4. If the G2553 has sufficient space to load the Adafruit code, I'd suggest starting there. I've found there's usually only a change to the header to account for the '430 vs. Arduino. I believe I've run their examples on F5529s with edits only to pin assignments. And, of course, your '430 comms with the device probably need to exactly match what the arduino sends for startup.
  5. @Jazz All very good information. The path you suggest would be a good learning experience.
  6. I don't know which rigol scope you have, but mine can be put into I2C mode and will decode the messages much like a logic analyzer, which can be useful. In my limited I2C experience, missing ACKs and NAKs can be a problem, along with timing issues (though your '430 trace looks sharp). Does adafruit publish a sketch for talking to the display? I've used their code to run LCD touchscreens with a 'F5529. Of course, the G2553 may not have enough memory to load a C++ program...
  7. Have you done the same with the '430? It's worth taking a moment with a 'scope or logic analyzer to see what you're transmitting, if anything.
  8. @FredinMcKinney You've probably already done this, but since you didn't mention it... I've had the experience from time to time with the debugger and/or the serial port failing to connect, even while testing. One solution that has pretty consistently worked for me has been to close any application connected to the device (e.g. Energia or CCS) disconnect the device from the USB port, and if connected through a powered external USB port, to power down that entire device. Then, power the port, power the device and restart my app. Aside from that, I have nothing more to add... Bob
  9. > AFAIK, any LP is with virtual com port Agreed. The problem I found when experimenting was that the older FET-UIF is identified in Windows Device Manager's Ports entry as a CDC device (MSP-FET430UIF - CDC), where the LP devices have a pair of virtual comm ports - MSP Application UARTx and MSP Debug Interface. When I attempted to load a program via Energia to a FET-UIF, it was unsuccessful. Are there ways around this? Well given your assembler experience, I would assume yes. Would it be a simple interface? Likely not. However, I do remember this article, which might provide an alternative route for the OP, assuming he/she can figure out how to add the board to Energia. http://43oh.com/2011/11/tutorial-to-use-your-launchpad-as-a-programmer/
  10. NWholyCow, > I just found out that Energia does not support FR2311 Luanch pad yet I was wondering about that... > I think I will still need to stick with CCS. Or, is there any other ways I can get around with it? If you mean to get Energia to work with a JTAG connection, I would have to guess not. To use JTAG without the modern FET is not going to provide the virtual comm port that I suspect Energia expects. Given that the FET creates a virtual comm connection for JTAG, it's clear it can be done, but the documentation from TI on how to connect and program via JTAG with a DIY FET is pretty complex. Bob
  11. @alest704 Here's my headers and code through to setup() As mentioned before, remove your include statement for SoftwareSerial and all should be OK. HTH Bob #include <TinyGPS++.h> #include <IridiumSBD.h> #include <Adafruit_GFX.h> // Core graphics library #include <SPI.h> // this is needed for display #include <Adafruit_ILI9341.h> #include <Wire.h> // this is needed for FT6206 #include <Adafruit_FT6206.h> #include <stdio.h> #define DEBUG_CONSOLE volatile int iState; //iState determines switch/case handler for main loop volatile int nextState; static const uint16_t ledPin = P1_0; static const uint16_t GPS_PowerEnablePin = P6_5; static const uint16_t Iridium_SleepPin = P3_7; static const uint16_t sensorPin = P6_1; // select the input pin for the potentiometer static const uint16_t groundPin = P6_2; //MSP430F5529 pins for the LCD SPI controller static const uint16_t TFT_MOSI = P3_0; static const uint16_t TFT_CLK = P3_2; static const uint16_t TFT_MISO = P3_1; static const uint16_t TFT_RST = 0; //None //Add for ILI9341 controller static const uint16_t TFT_DC = P2_3; static const uint16_t TFT_CS = P2_6; static const int LCD_BACKLIGHT = P2_0; static const uint16_t GPSBaud = 9600; static const uint16_t SBDBaud = 19200; #define BEACON_MODE 0 #define SHOW_SYS_STATUS 1 #define SHOW_STOCK_MESSAGES 2 #define SHOW_MAIN_MENU 3 #define SLEEP_MODE 4 #define CANCEL_BEACON_MODE 5 static const uint16_t DISPLAY_MAIN_MENU = 0; static const uint16_t DISPLAY_STOCK_MSG_MENU = 1; String strMessageToSend = ""; String strLatitude = ""; String strLongitude = ""; String strGMTDate = ""; String strGMT = ""; String strPDT = ""; String strPDTDate = ""; String strGoogleMapURL ="<a href=\"https://www.google.com/#q=%2B"; String strGoogleMapLink = "\"> Google Map </a> "; //String strBobIsHere = "start:[ptitle \"On the John Muir Trail\"]"; String strBobIsHere = "start:[ptitle \"On the road\"]"; String strDate = ""; String strHour = ""; String strMinute = ""; String strSecond= ""; static String strStockMsg00 ="Camping as planned - all is well"; static String strStockMsg01 ="Camping here - short of goal but OK - moving slower"; static String strStockMsg02 ="STOPPED HERE - NEED HELP"; static String strStockMsg03 = "Main Menu"; float fCurrentBatteryVoltage = 0.0; float const fLowBattery = 3.66; float const fDeadBattery = 3.0; uint16_t sensorValue = 0; // variable to store the value coming from the sensor uint16_t batteryTextColor = ILI9341_GREEN; static bool gpsData = false; static bool messageSent = false; static uint16_t lcdMode; Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC); static uint16_t rotation = 1; static uint16_t leftMargin = 5; static int16_t rowStepPixels = 60; static uint16_t box_width = 240; static uint16_t box_height = 60; int textRowOffset = box_height/2 + 10; // The TinyGPS++ object TinyGPSPlus *gps; IridiumSBD isbd(Serial1, Iridium_SleepPin); Adafruit_FT6206 ctp = Adafruit_FT6206(); void InitPortsForLowPower(void); void InitGPS(void); bool ISBDCallback(); bool getGPS_Location_Date_Time(void); bool sendSBD_message(void); bool drawMainMenu(void); void wakeUp(void); void setIstate(int mode); void assembleMsgToSend(void); void cancelBeacon(void); bool drawMessageMenu(void); void getBatteryVoltage(void); //#define DEBUG_CONSOLE 1 void setup() { //getBatteryVoltage(); InitPortsForLowPower(); P1DIR &= ~(BIT4 | BIT6); pinMode(groundPin, OUTPUT); pinMode(sensorPin, INPUT); //pinMode(GREEN_LED, OUTPUT); // sets the digital pin as output pinMode(Iridium_SleepPin,OUTPUT); //Setup the enable/sleep pin for the RockBlock pinMode(LCD_BACKLIGHT, OUTPUT); digitalWrite(LCD_BACKLIGHT, HIGH); //turn on N-mosfet to turn off the LCD Backlight (connects to ground) #ifdef DEBUG_CONSOLE Serial.begin(115200); #endif InitGPS(); tft.begin(); if (! ctp.begin(40)) { // pass in 'sensitivity' coefficient #ifdef DEBUG_CONSOLE Serial.println("Couldn't start FT6206 touchscreen controller"); #endif while (1); } #ifdef DEBUG_CONSOLE Serial.println("Adafruit_FT6206()"); #endif pinMode(P2_7,INPUT_PULLUP); iState = SHOW_MAIN_MENU;//start with LCD active for UI }
  12. Including SoftwareSerial is a problem... It's referencing the wrong Class.
  13. Well, I guess your homework starts there. Research serial communications, and make sure to focus on the Mac. FWIW, USB serial means that via the USB port and USB protocols, a virtual serial port is created for data transfers. Before there were USB ports, most computers had dedicated serial ports; these have been superseded by the more "modern" USB ports, which are in many ways more flexible, but also orders of magnitude more complex for a programmer to control. Serial ports, by comparison, were relatively simple, and you may run across terms like "bit banging" in reference to serial communications, where programmers wrote their own communication software based on the incoming and/or outgoing bit patterns. You might find some value in this reference to RS232 communication (Serial ports use this protocol) Back to your board;it's possible the board is working correctly, but if you don't have putty configured correctly, you may see nothing, or what would indicate you're heading down the right path, gibberish. FWIW, seeing any output is an improvement over no output. Also, while I use and recommend putty for file transfers and logging in to remote servers, you might find Realterm or similar easier to understand and use for serial communications. A dedicated msp430 board could easily reduce complexity and allow a more step-wise approach. It's unlikely it would slow your learning, and possible that by removing complexity, you just might figure things out more quickly. Basically, learn to walk before trying to sprint. Just my opinion. Bob
  14. Yong, I have to admit great ignorance for Mac OS. However, you really need to understand what a serial port is. Take a look here and use google to find out more. To both load code and, in many cases, to see output you will be connecting to a serial port. The board and system you are starting with is fairly complex. You might do well to start with a very simple "Blinking LED" source example and with one of the very inexpensive launchpad devices to better understand the communication with and programming of the device. Bob
  15. A quick test confirms that replacing SoftwareSerial with Serial compiles with both versions of Energia.