Jump to content
zlalanne

Deploying MSP430 Firmware using Ansible

Recommended Posts

Hello all!

 

If anyone else is interested in devops tools like ansible/vagrant/docker or linux administration this project might interest you.

 

I recently started learning about ansible a tool used to configure/orchestrate servers. So I thought I would try and use that to push firmware updates out to MSP430s. I came up with a solution that allows me to run a command on my machine which then copies the firmware to Rapsberry Pis and then flashes any MSP430 LaunchPads connected to them.

 

I first had to compile the msp430 dll and the latest version of mspdebug for the ARM architecture (rather than x86). Essentially this allows me to program MSP430s from a Raspberry Pi using mspdebug. I talk about the steps here:

http://zacklalanne.me/automated-deployment-of-msp430-firmware-part1/

 

Then I wrote an ansible playbook to automatically deploy the dll and mspdebug as well as the firmware to the connected Raspberry Pis which then push the firmware to the MSP430s.

http://zacklalanne.me/automated-deployment-of-msp430-firmware-part2/

 

Don't think this is too realistic for an actual production environment but getting it all to run was a good learning exercise in compiling code on linux and system administration.

 

Share this post


Link to post
Share on other sites

That pretty cool. It has me wondering if over the air updates could be performed with wireless processors.

 

Also, it appears on their website that Ansible is a fairly expensive solution.  

 

Is it safe to say that Ansible is not an open source system?

 

Or is there an open source version and I am missing something?

 

Still, this is fascinating to me.

Share this post


Link to post
Share on other sites

Hello all!

 

If anyone else is interested in devops tools like ansible/vagrant/docker or linux administration this project might interest you.

 

I recently started learning about ansible a tool used to configure/orchestrate servers. So I thought I would try and use that to push firmware updates out to MSP430s. I came up with a solution that allows me to run a command on my machine which then copies the firmware to Rapsberry Pis and then flashes any MSP430 LaunchPads connected to them.

 

I first had to compile the msp430 dll and the latest version of mspdebug for the ARM architecture (rather than x86). Essentially this allows me to program MSP430s from a Raspberry Pi using mspdebug. I talk about the steps here:

http://zacklalanne.me/automated-deployment-of-msp430-firmware-part1/

 

Then I wrote an ansible playbook to automatically deploy the dll and mspdebug as well as the firmware to the connected Raspberry Pis which then push the firmware to the MSP430s.

http://zacklalanne.me/automated-deployment-of-msp430-firmware-part2/

 

Don't think this is too realistic for an actual production environment but getting it all to run was a good learning exercise in compiling code on linux and system administration.

Love it!

In your first blog post, you may want to put in a link for Part-2.

Share this post


Link to post
Share on other sites

That pretty cool. It has me wondering if over the air updates could be performed with wireless processors.

 

Also, it appears on their website that Ansible is a fairly expensive solution.  

 

Is it safe to say that Ansible is not an open source system?

 

Or is there an open source version and I am missing something?

 

Still, this is fascinating to me.

 

Ansible is actually free and open source. They have a tool called "Ansible Tower" that is a GUI that sits on top of ansible that gives you a nice bunch of stats and options for running playbooks. I haven't used it so can't comment on how useful it is. I have been using ansible with smaller scale setups so it might be more useful when you're managing 100s of servers all based in the cloud (Amazon, DigitalOcean, etc..). This is probably a better link to learn about it:

https://docs.ansible.com/ansible/index.html

 

 As for updates using wireless processor, if there is enough memory to hold the new image that's always an option. Ansible though needs a python interpreter running on the client, so it can't scale down to microcontrollers.

 

@@bluehash

 

Thanks for the reminder. Will add the link.

Share this post


Link to post
Share on other sites

I left a couple of posts on your first blog post on a couple of things - but this may be exactly what I need.  I've had trouble with the MSP430 device I use for my home security system getting locked up (there's a bug somewhere) and it keeps breaking when I'm not home.  I've got mspdebug connecting to a 2553 LP - hopefully I can get the rest working!

Share this post


Link to post
Share on other sites

Currently it's not connected to anything except a cc3200 for uploading data - but I have several RPi's sitting around - so it seems like a good solution.  I've got the CC3200 outputting data via serial for debugging - so I'll probably see about connecting that to the RPi as well to collect the data.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×