• Content count

  • Joined

  • Last visited

  • Days Won


Everything posted by NurseBob

  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.
  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. I just spent the last two hours trying to figure out why all of the UART-related register code was failing on my 5529LP. After hooking up to a different 5529, where code performed as expected, I finally remembered that several months ago I'd found that one of my LP boards had a "broken" UART/I2C - Of course, I'd not marked the board when I set it aside. Dumb. Board is marked now. It's still useful for other experiments, so I'll keep it on hand; I just won't use it for any comms protocols.
  12. @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=\""; 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 }
  13. Including SoftwareSerial is a problem... It's referencing the wrong Class.
  14. 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
  15. 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
  16. A quick test confirms that replacing SoftwareSerial with Serial compiles with both versions of Energia.
  17. Of course, as I look at the code now, I see that the simple solution would be to use Serial and, as you note, attach to the correct pins (P3.3,P3.4). I built my system before Energia 18... Time to go back and refactor!!! I went and looked at my current code: It uses Serial...
  18. Hi @dubnet, The problem he's having, which I also ran into, is the Tiny GPS++ code is built on top of the software serial library for the arduino. I got around it with Energia 17, which offered the option of running the mcu at either 16MHz or 25MHz. So, Energia 17 and the 16MHz option compiles for me. I can't find a similar option in the board library for Enegia 18. Ultimately, I imported all the code into CCS to manage some of the other devices I'd attached... But being an imported Energia 17 project, it pulled in the 16MHz clock setting.
  19. So, I assume that the Mote creates a virtual comm port. So, what port? What Baud rate? And with putty, what port an baud? What OS for the PC? Windows? Mac? Linux? Also, I see your query on E2E, hopefully on Monday you'll see a more detailed response from there. At the moment, there are so many unknowns regarding your question, it's not possible to do more than ask you questions rather than give suggestions.
  20. @dubnet The "midnight weave" is the nudging head bumps in and about the ankles while walking. In the dark it can be disconcerting, to say the least... As to memories: When I was about 12, more than five decades back, I lived on a rural patch of land in what is now a wealthy community in the SF East Bay. One sight I still remember is one of our cats perched on the top of a fence, and as our collie mix wandered by, the cat decided that he could use the dog as a landing zone, being about half the distance to the ground. When he landed, the dog bolted and the cat deployed and planted his claws to hang on. So, much like a rodeo cowboy, he's hanging on for dear life as the dog is galloping down the driveway... A sight to remember.
  21. @Neckbone To start with, identify which msp430, then identify what sketch/source code, finally the actual error message, if any. In essence, your question is similar to I have a car and I put something in the fuel tank. Why doesn't it run?... So, specifically which device, what version of Energia, and a source list would be the minimum. Also, specific error messages are very useful. Bob
  22. What device are you connecting to? Which version of Energia? What's the source code for the sketch?
  23. @morelius21 Hmm, I see it on Amazon U.S. used for just under $20.00 This link will take you there. If that's not an option for you, drop me a note and I'll see what we can work out. I still use the book as a resource from time to time, so am not willing to send it off... Bob
  24. @NWholycow I see no one else has answered. So, I did a quick test with the new FET from TI as well as with one of my older FET430UIF devices. Enegia 18 was able to connect and upload with the new FET but not the older. I suspect that to use a JTAG connection you will have to follow the new FET route as it presents a serial interface that Energia understands, the older FET is a CDC device, the new, Debug interface appears to be using a different protocol from the older. HTH Bob Energia Compile & upload output (to an F5529) Sketch uses 28,006 bytes (21%) of program storage space. Maximum is 131,072 bytes. Global variables use 534 bytes (6%) of dynamic memory, leaving 7,658 bytes for local variables. Maximum is 8,192 bytes. DSLite version Configuring Debugger (may take a few minutes on first launch)... Initializing Register Database... Initializing: MSP430 Executing Startup Scripts: MSP430 Connecting... Loading Program: C:\Users\AppData\Local\Temp\build39e8811ca5a9aa51583fb9a1cdbacf87.tmp/TrTr.ino.elf Preparing ... .text: 0 of 31150 at 0x4400 .data: 0 of 6 at 0xbdae: 99% .text: 0 of 128 at 0xff80: 99% Finished: 99% Setting PC to entry point.: 99% info: MSP430: There were 31278 (code) and 6 (data) bytes written to FLASH/FRAM. The expected RAM usage is 3678 (uninitialized data + stack) bytes. Running... Success