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:300 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