MSP430 Editor

I’ve chosen to use 43oh as the base for the discussion forum for Inventortown. If you want to ask for help, suggest features or come with general feedback, that is probably the best place to do it. 43oh is a good site for looking at different MSP430 Launchpad projects. You can of course post comments here or email me if you prefer.

The www.inventortown.com site is a service I have made which will contain multiple tools for developers and inventors. The first tool is an online editor for MSP430 value line firmware. You can edit the source code inside the web browser, and press a link to download the compiled binary firmware to your computer. Upload this firmware to your MSP430 value line Launchpad board for testing and development.

This editor is simpler than an installed development environment like CCS or IAR, but does not (yet) allow for debugging and similar advanced features. The editor is based on the Editarea component and MSPGCC. You have to install a small component that uploads the firmware to your device, but this is quite simple compared to learning an advanced development environment like IAR.

The service is still in beta and will be updated a lot in the future. If you try it, please keep local backups of important source files. I plan to add various social and opensource sharing features. If you have suggestions or comments, please post below.

The Inventortown firmware editor is free-of-charge to use, but will initially only be for open source code (although there is a feature to mark your project as ‘closed’, which will prevent sharing.)

23 thoughts on “MSP430 Editor”

      1. If a Biotechnology examiner is examining Pharma/Drug cases how will he/she know whether to raise 3(d) or not? There is an urgent requirement for Pharma experts as examiners. but the patent office has not even a single M.Pharm examiner and no indication about plans to recruit such people. Also allotment of applications to examiners by Controllers should be sujbbct-eased, free and fair.

      1. As you say, I’m not getting the password. I get the email address, first and last name. I’m using the first name to list in the shared projects, but I’m keeping the email in my db, which is protected (but not encrypted). I have been thinking I should allow people to use something else than their first name in the ‘shared projects’ list. If this is an issue for anyone, let me know. I’d like to have the email also for security purposes, in case someone misuses the service, but I will not send out emails to people or share their email. I do not get the Google password at all. Only Google gets this. I think this is a safer way of doing it than storing the password on my server, as many people often use the same password for multiple sites, so I’d rather not have it. This is why I want to use the Google Federated Login.

        However, if you’re worried about using this feature, you can of course set up a separate gmail account that’s only for such sites as this and use that. Instead of using your personal gmail account. If you wish.

    1. CHICOS SOY DE MARDEL !! LOS ESCUCHO TODOS LOS DIAS Y PARA MI SON UNOS GENIOS!! ME ENCANTA EL PROGRAMA!! JULI SOS UNA IDOLA!! Y EL VIDEO CON CIRO ESTA BU!E!SIMOI!!!!!!!!!!!N!!!!!!!!!!!!!!

    1. Hmm… I guess I could allow that? I’ll look into it, but it’s going to take a bit of time to do the change, as I’m busy on some other projects.
      Edit: I’ve looked into it, and it seems difficult to provide stable support for it. If you think otherwise, send me an email and we can discuss how I can do it.

  1. I want to congratulate Lars for a great job he has done with inventortown. My suggestion, if it possible, to add support for the CC430F6137, which is basically the MCU in the EZ-Chronos watch. I would like to develop projects for the watch but without the hassle of learning CCS or IAR. Thanks

    1. Thanks. That should be possible. I’ll see what I can do. Unfortunately I don’t support directory structures yet, which might have been a good thing for such a large project.

  2. If possible, please add support for the MSP430F2013 of the eZ430 USB Stick programmer. Very interested to try this.

    1. I’ve tried to add this now. I don’t have this chip so can’t test, but if you can try and let me know how it goes, that’d be great.

      1. Works. The mspupload does not work as this target board is using SBW2 but able to use the commandline mspuploader -m SBW2… command.
        Thanks.

  3. Hi, I have a trouble with my MSP430 Servo Robot the two servos spin in the same direction and when i assemble the robot, it spin in his own axis and didnt move forward

  4. Hi. You may need to play with the values that are passed to the servo. Change the values after BIT0 and BIT1 in the various functions (forward, left, right) to see if you can make the servos go the other way. Also try to comment out reading the sensor, and just go forward() instead, which makes it easier to test.

  5. My 10yo downloaded your servo code and tryed it on ccs #include “servo.h” came up as an error, we could not find a servo library and have no idea what to type.

    1. Hi. I have made various servo code, so I’m not sure which one you’re pointing to. But here’s one at least. The comment system may mess up the formatting, replacing various characters etc… There are some other alternative servo libraries (and perhaps better) on 43oh.com

      servo.h:
      —————–
      /*
      * Developed by Lars Kristian Roland, APUS
      * License: BSD
      */

      void setServo1(int angle1);
      void setServo2(int angle1);
      void ServoInit();
      int calculate_pulse(int angle);
      —————–

      servo.c
      —————–
      /*
      * Developed by Lars Kristian Roland, APUS
      * License: BSD
      *
      * This is a servo library supporting many servos with a single timer.
      * More accurate servo movement can be achieved by using one timer capture
      * per servo which means you could support 2 on the value line MSP430.
      * Using separate timers for each servo would make it more accurate, which is
      * an issue with this library.
      *
      */

      #include
      #define interrupt(x) void __attribute__((interrupt (x)))
      #include “servo.h”

      int on_1;
      int on_2;

      #define PERIOD 100000

      int servo1_on;
      int servo2_on;

      void ServoInit()
      {
      WDTCTL = WDTPW + WDTHOLD; // Stop WDT

      BCSCTL1 = CALBC1_1MHZ; // Set DCO
      DCOCTL = CALDCO_1MHZ;

      on_1 = 2500;
      on_2 = 10000;

      P1DIR |= BIT0 | BIT1;
      CCTL0 = CCIE; // CCR0 toggle mode
      CCTL1 = CCIE;
      CCR0 = on_1;
      CCR1 = on_2;
      TACTL = TASSEL_2 + MC_2; // SMCLK, up-downmode

      _BIS_SR(GIE);
      }

      void setServo1(int angle)
      {
      on_1 = calculate_pulse(angle);
      }

      void setServo2(int angle)
      {
      on_2 = calculate_pulse(angle);
      }

      int calculate_pulse(int angle)
      {
      int pulse = 500;
      //if (angle > 180) {
      // angle = 180;
      // }
      pulse += angle * 10;
      return pulse;
      }

      interrupt (TIMERA0_VECTOR) Timer_A0(void)
      {
      if (servo1_on) {
      P1OUT &= ~BIT0;
      CCR0 += PERIOD-on_1 ;
      servo1_on = 0;
      }
      else {
      P1OUT |= BIT0;
      CCR0 += on_1;
      servo1_on = 1;
      }
      }

      interrupt (TIMERA1_VECTOR) Timer_A1(void)
      {
      switch( TAIV )
      {
      case 2:
      if (servo2_on) {
      P1OUT &= ~BIT1;
      CCR1 += PERIOD-on_2;
      servo2_on = 0;
      }
      else {
      P1OUT |= BIT1;
      CCR1 += on_2;
      servo2_on = 1;
      }
      break; // CCR1 not used
      case 4: break; // CCR2 not used
      case 10: break; // overflow

      }
      }
      —————–

Leave a Reply

Your email address will not be published. Required fields are marked *