I notice in the online documentation for SPI.transfer (https://energia.nu/guide/libraries/spi/spi_transfer/)
that 3 prototypes are provided, however in the actual source for my msp432, there are 4 (per SPI.h):
uint8_t transfer(uint8_t);
uint8_t transfer(uint8_t, uint8_t);
uint8_t transfer(uint8_t, uint8_t, uint8_t);
uint8_t *transfer(uint8_t *, size_t); <===================== Missing in online docs
The missing one is the multi-byte transfer. Arduino documents a similar function in their docs so I assume it's one that is meant to exist (please don't get rid of it ).
The main reason I mention it is that because there is another two argument prototype. So it's a bit confusing when trying to debug if one gets errors related to the first prototype (due to a forgotten &), when I was trying to use the second.
Also, but perhaps I missed it, I don't see any reference to SPI1 in the documentation. Related to this, are there any plans to provide easy access to the other SPIs?
jrd

I am using MSP432. I have also this TI Booster Pack Sense 1 Capacitive touch. I want use this device to teach my students interrupts, scheduling and multitasking. Unfortunately TI has stopped supporting the device. However I have downloaded the library and examples (CapTouchDemo, CapTouchButton, CapTouchProximity, and CapTouchRaw) written by Robert Wessels. I know those were for MSP430, but I have read that I can use them also for MSP432. Unfortunately when I run the program it gives error, please see the added file image for part of errors; there are more errors. It seems he is missing a header file. I have CapTouch.h, but there should be more. Or this one is not the proper one. I cannot find the header file on the internet.
Can somebody help me

[MSP432][Windows10][Energia 21][Board file 5.23.1]
Recently I've been struggling with a run-time error in a very simple program (converting time=0 to 1/1/1970 fails using ctime...granted it's not really an Energia thing, but it's available for use in my CCS builds of energia projects) using the latest code composer, energia and board file (BTW, I don't have this problem with the previous board file) for my msp432. I've figured out a way to "fix' my problem, but it's unclear to me what the implications of this change might be.
By default, when I create a new project in CCS, the project is setup to use the GNU v6.3.1 compiler by default. If I use this compiler, my program compiles, but it's operation fails. In looking into the properties of the project, I notice that I have 5 (2 TI and 3 GNU - 1 GNU older than the default and 1 GNU newer) compiler choices in the tool chain. As such, I started changing the compiler to see what would happen with my non-functioning code. First, I started with the TI compilers. If I select either of them, I get a notice about the need for "manual" intervention in the compiler config. As such, I gave up on those.
I then selected the oldest version of the GNU compiler (4.8.4). Switching to this version and my compilation fails. Once again, I have up on that one. As a last attempt, I changed to the newer version of the GNU compiler (7.2.1) and lo-and-behold, not only does my problem compile, but ctime now works correctly. Newer things are always better, right?
The default (non-working one) and older (non-compiling) versions of the GNU compiler appear to be shipped with Energia while the newer (working) one appears to be shipped with CCSv8. As such, although I've fixed my problem, I'm wondering if switching is just going to lead to other problems as I'm assuming energia was vetted with the default 6.3.1 compiler. Anyone have positive/negative experiences with changing the compiler tool chain? As my program runs with the previous board file (but using the latest Energia 21 otherwise), might I just be better to switch to the older board file (and wait for a board file/compiler update with energia) but leave the compiler as the default 6.3.1 version?
jrd

I've a code I've been working on a while that has worked fine with an older version of the Energia and the board file. When I recently upgraded Energia to 21 and the MSP432 board to 5.23.1 a bunch of things broke. I was able to determine one set of problems was caused by the SPI Mode0/1 bug being corrected. That is, since spi mode0 and 1 were switched, I switched them in my code. When the bug got fixed everything spi-related broke until I switched the modes back (to what they should have been in the first place).
My latest problem is that my usage of the RTC no longer works. Attempts to read/set the clock (internal and an external DS3231) are not working correctly. Setting the time to unix time 0, yields "Thu Apr 23 19:16:16 198054" Something funky with the year for sure. (as an aside, anyone have ideas on this problem?)
So this led me down the path of trying to figure out what changes were made in the upgrades of Energia and the msp432 board file. However, I've not been able to find a good source of the changelist-type information relating to these two things. Can someone point me to this? I'm guess this might be in github somewhere, but it wasn't really clear to me how to get at this info. For example, figuring out where/when the SPI modes got corrected.
Also, I think it would be helpful to have some kind of "upgrade guide" that people could reference. That is, for example, saying things like: "If upgrading from an earlier version of XXX, you will need to swap anything related to SPI Mode0 and SPI Mode1", etc.

I am currently trying to connect my Launchpad MSP432E401Y to energia and run the basic "Blink" example. I can get my board to connect using CCS but cannot get a basic file to compile to my Board. I am running Energia 1.8.7E20 on windows 10, and have the MSP432E Ethernet RED boards installed.
My error message is:
Exit status 1.
Error compiling for board LaunchPad w/ msp432E EMT (120MHz).

Does anyone know if MSP432 (black) can be added to the standard Arduino setup?
The reason: I've got an Adafruit Feather M0+ board working with Arduino, so the ARM Cortex-M compiler is "already there". I'm hoping maybe I could remove Energia (since I don't need the '430 support). If I add the JSON board file for the black MSP432 launch-pad, will the Arduino IDE get everything it needs to play with the MSP432? https://energia.nu/packages/package_msp432_black_index.json
Also, is there a JSON file for the Tiva TM4C123 launch-pad? (same reason, have a Tiva, want to move everything over to one IDE).
Thanks!

I am new in Energia. I have follwed the instructions to install the drivers for Energia, download the IDE software. It recognize my MSP432 board.
Now I want to upload a program. I get the follwoing error messag:
Error: Unable to access jarfile C:\Users\Mostafa
exit status 1
Error compiling for board RED LaunchPad w/ msp432 EMT (48MHz).
Can somebody help me?
Regards
Mostafa
ps. I do not have any C:\users\Mostafa folder. I have C:\users\Mostafa Laptop.

is it possible to underclock or overclock the device? i mean, for example i need it just to use 50% of it's power, is there a way to it limit itself to a specific configuration?
i want the msp432 to take as much low power as possible(will be battery powered)

Hello I am new to Microcontrollers and currently have to use one for a design project in school. I have been reading about using Energia for my MSP432E401Y Launchpad and when installing it talks about what drivers need to be installed. None of the ones specified are the MCU I am using, so i was wondering what needs to be installed in order to use Energia to code this.

I have recently been working on a CNC BoosterPack that I will make available on Github when completed later in the spring.
Current specifications:
Support for my HALified version of GRBL (based on 1.1), currently drivers has been made for MSP432 (black version), Tiva C and MSP430F2955.
NOTE: firmware is built with CCS 6.1, MSP432 driver is 100% CMSIS based.
Opto-coupled inputs, NC switches recommended.
Opto-coupled outputs with 200mA open drain drive for spindle on, spindle direction, flood and mist.
Can drive most relays and solenoids directly.
Output section can be powered from internal 3V3 or 5V source, or from external source.
If powered from external source outputs can be made opto-isolated via jumper setting.
PWM-output for spindle speed currently directly connected to MCU pin (could be changed to open drain).
I2C (IIC) interface with selectable voltage level (3V3 or 5V) via level shifter, dedicated interrupt input.
I2C pinout compatible with my 4x4 keyboard project, supports jogging etc.
Optional EEPROM for configuration settings for MCUs with no internal EEPROM.
Polulu 8825 motor driver breakout board compatible. Fault signal routed to GPIO input.
Considered for later revision:
Break out SPI interface and add full support for Trinamic motor drivers.
Optional (SPI) DAC for motor speed (laser power) control.
This might require a 4-layer PCB and also solving the pinout cabal...
---
Anything you want changed?
Terje

Hello,
I could not find complete answer so posting this question.
Is it possible to use MSP432 hardware serial (2..3) in Energia? Is there any specific reason it is not implemented or special syntax has to be used?
Thanks in advance

In the standard Button example in Energia (Examples->02.Digital->Button), it works fine when I upload it to the MSP432P401R. But if I add a delay to the loop that is greater than 250ms, then the LED that's supposed to turn back on when the button is released, never turns back on.
If the delay is less than 250ms, then the sketch works as expected.
Why do you think this happens?
const int buttonPin = PUSH2; // the number of the pushbutton pin
const int ledPin = GREEN_LED; // the number of the LED pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT_PULLUP);
}
void loop(){
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
delay(500); //BUG: when this is here, then the LED never turns back on
}

I just spotted these and couldn't find any other thread about them. Headline is it an MSP432 with Ethernet, USB and CAN.
http://www.ti.com/microcontrollers/simplelink-mcus/msp432/overview/msp432e4.html http://www.ti.com/product/msp432e401y http://www.ti.com/product/msp432e411y
Launchpad: http://www.ti.com/tool/msp-exp432e401y

Hi guys,
The new Launchpad MSP-EXP432P111 was released some days ago. I bought one and it arrived today .
The board use the XMS432P1111 (pre-production version of MSP432) microcontroller, a Cortex M4 with 48MHz, 2MB of flash, 256KB of SRAM (very impressive), 14bit ADC and many other peripherals, like the LCD driver.
Apparently, the LCD is the same of other launchpads (eg.: EXP430FR6989), very interesting to understand how to use the LCD driver and develop some projects.
The Out-of-Box demo has two modes:
- Blink LED, where you can controll the frequency of blink pressing the button S1 and controll the color by pressing the button S2.
- Temperature mode: Show the temperature based in the internal sensor (pressing S2), or based in an external temperature sensor (pressing S1), a LMT70, but it's necessary to put a jumper in R8, powering the sensor.
There is a online GUI enabling to control other parameters like special characters in the LCD.
The finishing of PCB's is impeccable, as always.

How to use EEPROM on MSP432P401R LaunchPad? I've found library for msp430 launchpads, but there's no library for MSP432P401R LaunchPad. How to use EEPROM on this launchpad? Where can I download it?
Energia version: 1.6.10E18.
Operating system: Linux Mint 18.3

Hello,
I'm trying to run a code I found for a water depth sensor MS5540C and I'm coming across a compilation error:
"error: 'TCCR1B' was not declared in this scope"
anyone know what is going on?
code can be found here http://www.fut-electronics.com/wp-content/uploads/2015/10/water_depth_sensor_MS5540C_Arduino_tutorial.pdf
thank you!

Hello,
I've been trying to run an example called "graphicstest" from adafruit's ST7735 library on a TFT display using an MSP432. My problem is that, for some reason, software SPI works but not hardware SPI.
The example "graphicstest" has an option to switch to software SPI by setting the MOSI and SCK pins to whatever i want and when i do that it works, the program does it's little test, but the problem with that is that it runs VERY slow so i kinda need this to work at its intended speed by using hardware SPI.
if i hook up MOSI pin to P1.6 and SCK to P1.5 on my MSP432, nothing happens while using hardware SPI. but once i switch to software SPI and set MOSI as pin 15(P1.6) and SCK as pin 7(P1.5), it works.
Can anyone help explain what is going on?
P.S. this is what the code looks like when changing from Hardware to Software:
// For the breakout, you can use any 2 or 3 pins
// These pins will also work for the 1.8" TFT shield
#define TFT_CS 18 //P3.0 on MSP432
#define TFT_RST 5
#define TFT_DC 8
// Option 1 (recommended): must use the hardware SPI pins
// (for UNO thats sclk = 13 and sid = 11) and pin 10 must be
// an output. This is much faster - also required if you want
// to use the microSD card (see the image drawing example)
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
// Option 2: use any pins but a little slower!
#define TFT_SCLK 7 // set these to be whatever pins you like!
#define TFT_MOSI 15 // set these to be whatever pins you like!
//Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);