Close

trying to get the GoodFET running on mac

A project log for im-me messenger - 12 years later

let's see if all that code still works that's flying around

davedarkodavedarko 08/05/2022 at 11:304 Comments

# download mps compilers
brew tap tgtakaoka/mspgcc

# prepare folders

sudo mkdir /opt/homebrew/lib/msp430 /opt/homebrew/lib/msp430/lib /opt/homebrew/include/msp430 /opt/homebrew/include/msp430/include
sudo chown -R $(whoami) /opt/homebrew/lib/msp430 /opt/homebrew/lib/msp430/lib /opt/homebrew/include/msp430 /opt/homebrew/include/msp430/include

# run install 
brew install libc-msp430 gdb-msp430

https://exfil.co/2016/02/11/goodfet-on-os-x/ 

Found a good starting point to talk with the MSP430, but sadly it runs into a weird bootloader password issue.

goodfet.bsl -P ./goodfet.hex --fromweb
Use -h for help
Use --fromweb to upgrade a GoodFET.
MSP430 Bootstrap Loader Version: 1.39-goodfet-8
Invoking BSL...
Transmit password ...
Use -h for help
Use --fromweb to upgrade a GoodFET.
MSP430 Bootstrap Loader Version: 1.39-goodfet-8
Invoking BSL...
Transmit password ...
Traceback (most recent call last):
  File "/usr/local/bin/goodfet.bsl", line 1987, in 
    main(0);
  File "/usr/local/bin/goodfet.bsl", line 1887, in main
    bsl.actionStartBSL()
  File "/usr/local/bin/goodfet.bsl", line 1166, in actionStartBSL
    self.txPasswd(self.passwd)                  #transmit password
  File "/usr/local/bin/goodfet.bsl", line 1136, in txPasswd
    wait=wait)           #if wait is 1, try to sync forever
  File "/usr/local/bin/goodfet.bsl", line 801, in bslTxRx
    rxFrame = self.comTxRx(cmd, dataOut, len(dataOut))  #Send frame
  File "/usr/local/bin/goodfet.bsl", line 480, in comTxRx
    rxHeader, rxNum = self.comRxHeader()        #receive header
  File "/usr/local/bin/goodfet.bsl", line 386, in comRxHeader
    if not hdr: raise BSLException("Timeout")
__main__.BSLException: Timeout

aha! So the tutorial uses a capital P where the flag should be a small p. Or not, maybe the password stuff is set somewhere else or while compiling. writing the ./prebuilt firmware worked.

board=goodfet42 goodfet.bsl -p goodfet.hex

Well that wasn't really a solution, but somehow I got it to except the firmware, probably by using the "fromweb" flag for it, where it wasn't confused by all that.

Discussions

vladllen1054 wrote 01/31/2024 at 12:48 point

Unfortunately, I can’t implement a similar task on my Mac. Perhaps the problem may be with my MacBook or the software. I find the computer I use to be powerful and productive enough to handle a wide range of tasks. However, since I am not a very experienced user of this model, to understand all the nuances I may need such high-quality manuals as https://setapp.com/how-to/kernel-task-high-cpu This way I can optimize my workflow and use all the features of this device more efficiently. In this case, I think I will be able to cope with this task.

  Are you sure? yes | no

davedarko wrote 02/01/2024 at 12:51 point

I think I forgot to finish what made it work in the end and now two years later I'm wondering myself

  Are you sure? yes | no

Mateerleen wrote 01/31/2024 at 12:41 point

Interesting decision, but it surely needs to be improved

  Are you sure? yes | no

davedarko wrote 02/01/2024 at 12:50 point

which decision do you mean exactly?

  Are you sure? yes | no