Has anybody done a firmware build on a windows machine?
  • I want to try some simple hacking, but I'm very new at this stuff. I figure the first step would be to compile the firmware myself and make sure I can get it running before I try messing with any code. Unfortunately, I am currently running WinXP. Has anyone successfully compiled the firmware on a windows machine? If so, what compiler did you use? Thanks.
  • Yes, someone on the v0.92 thread has done it.

  • Thanks, I'll look there.
  • I did :-)

    Use WinAVR and Python 2.5.
    Make sure the winavr and python directories are in the path variable (google this).
    Check the Firmware page on how to set things up: http://mutable-instruments.net/shruthi1/firmware

    Note: you have to enter the directories in the base.mk file with backslashes, like “C:\WinAVR\bin” . However, if the make script returns errors like “file … not found”, try to put a slash at the end, e.g. “ C:\WinAVR\bin/ “. This did it for me with the lastest source code.

  • Great! Thanks for the tips. I'll try to do a build this weekend and report back.
  • hello to the community !

    i've order on kit of Shruthi and i'm trying to build firmware on windows machine in order to add addon feature on midi out. I'm using WinAVR with GCC compiler and Python.
    I've some trouble with external make files (relative paths, "\" instead of "/" ...). Is it possible to use and edit WinAVR internal makefile without using externals make files ?

    thanks,
    Fred
  • Here is my attempt to build a 0.92 firmware in a winXP machine:
    Already had arduino-0022 software with GCC-4.3.2 somewhere in my computer, moved to C:\ (that looks to be necessary).
    Installed WinAVR-20100110 and Python 2.6.6 (msi).
    Downloaded shruthi-1-a4544c0.zip and avril-54d37ea.zip, inside the shruthi-1 there’s an empty avrlib folder where I expanded the avril one.
    Like explained in the firmware page, edited the avrlib/makefile.mk paths:
    AVRLIB_TOOLS_PATH = C:\arduino-0022\hardware\tools\avr\bin/
    AVRLIB_ETC_PATH = C:\arduino-0022\hardware\tools\avr\etc/
    then cmd, navigated to the folder and “make resources”, “make”.
    Make size didn’t work to me, maybe because of this or for the older GCC version at the end I have two file that are larger than the ones you can download from this website, mine are shruthi1.hex 177KB and shruthi1.mid 130KB.
    I’m afraid there’s something wrong, ideas?
    Bye

  • make size doesn’t work because you don’t have the moose installed :)

    but you should still be able to find the size in shruthi1.size (the actual firmware size is the sum of the first two columns).

  • Thanks pichenettes,
    my shruthi1.size shows 63252 (text)+ 532 (data) = 63784, same as downloaded it doesn’t change after “make” commands.
    I tried new paths:
    AVRLIB_TOOLS_PATH = C:\WinAVR-20100110\bin/
    AVRLIB_ETC_PATH = C:\WinAVR-20100110\bin/
    now smaller file sizes, shruthi1.hex 176KB and shruthi1.mid 129KB.

  • @# ermangaver
    have you tried to bootload it to the Shruthi ?
    (You can’t damage it – if your firmware file is mumbo-jumbo, you’ll see some erratic or no LED reaction and it won’t boot up properly after restart – but you’ll simply have to upload the original firmware again)

    If the problem persists, you may also try Python 2.5 (Python does the hex to mid / syx conversion).
    I had trouble with the python things on some older make script, however the .hex file was apparently fine.
    Worked perfectly with Python 2.5.

  • Hello stuartm,
    no I can’t, my shruthi is away at a friend’s house, but I will and let you know.

  • I’ve got my Shruthi back and looks like I’ve successfully uploaded the firmware via MIDI, thanks stuartm :-)
    I had troubles too, wasn’t enough to rename the .mid file to .syx I had to use the —syx option.

  • Hooray!
    The .mid file is basically the .syx encapsulated in a MIDI Playback file, and you spotted correctly that just renaming does not do the trick.

  • with great effort make ​​it work, have but “make midi” command says:

    python tools/hex2sysex/hex2sysex.py -o build/shruthi1/shruthi1.mid build/shruthi1/shruthi1.hex
    process_begin: CreateProcess(NULL, python tools/hex2sysex/hex2sysex.py -o build/shruthi1/shruthi1.mid build/shruthi1/shruthi1.hex, ...) failed.
    make (e=2): The system cannot find the file specified.
    make.EXE: *** [build/shruthi1/shruthi1.mid] Error 2

    (shruthi1.hex exists at above-mentioned path)

  • Do you have python installed on your computer ?

  • Yes, version 2.5. Path variable is set too.

  • Looks like the “python” tool is not in the path (at least not in the environment in which make is spanning processes) In avrlib, locate the line with the HEX2SYSEX = ... definition. Try to replace “python” by the path to your python install.

    If python is in the path of your shell, you can try directly typing:

    python tools/hex2sysex/hex2sysex.py —syx -o build/shruthi1/shruthi1.syx build/shruthi1/shruthi1.hex

    Add the —obsolete_manufacturer_id flag if your Shruthi is running an old version of the bootloader.

  • editing makefile.mk python path gives the same result.
    typing command in shell returns:

    Usage: hex2sysex.py [options]
    hex2sysex.py: error: no such option: -y

  • Hmmm, you're on the right track. Maybe it's just that this forum thing makes two dashes -- look like a single one.
  • Thanks, now it works! =)

  • Just tried new windows client
    http://windows.github.com
    Works like a charm.

    UPD: solved my python issue. It’s was missing in PATH variable.

  • Also a complete neophyte here, trying to build the unmodified firmware on Windows 7 64-bit. I’ve followed the instructions in this thread and on the firmware page as closely as possible. I have installed Python 2.7, WinAVR-20100110, and numpy. The “make resources” works, but “make” ends with the following every time (and no file written) :

    C:\arduino-0022\hardware\tools\avr\bin/avr-g++ -c -mmcu=atmega644p -I. -g -Os -w -Wall -DF_CPU=20000000 -fdata-sections -ffunction-sections -fshort-enums -fno-m
    ove-loop-invariants -DDISABLE_DEFAULT_UART_RX_ISR -DATMEGA644P -DSERIAL_RX_0 -m
    call-prologues -fno-exceptions shruthi/shruthi.cc -o build/shruthi1/shruthi.o
    shruthi/shruthi.cc: In function ‘void UpdateLedsTask()’:
    shruthi/shruthi.cc:126: error: ‘struct avrlib::Serial<avrlib::SerialPort<avrlib:
    :BitInRegister<avrlib::UCSR1BRegister, 3u>, avrlib::BitInRegister<avrlib::UCSR1A
    Register, 5u>, avrlib::BitInRegister<avrlib::UCSR1BRegister, 4u>, avrlib::BitInR
    egister<avrlib::UCSR1ARegister, 7u>, avrlib::BitInRegister<avrlib::UCSR1BRegiste
    r, 7u>, avrlib::BitInRegister<avrlib::UCSR1ARegister, 1u>, avrlib::UBRR1HRegiste
    r, avrlib::UBRR1LRegister, avrlib::UDR1Register, 32u, 32u>, 115200ul, DISABLED,
    POLLED, false>’ has no member named ‘Disable’
    make: *** [build/shruthi1/shruthi.o] Error 1

    Any ideas?

  • Sorry, I’m working on the code at the moment! I have fixed this. Note that you’d better work with the v0.96 branch since the “bleeding edge” might not always be stable – especially while I am working on it!

  • FILTER_BOARD_DLY. something new and exiting?

  • there war some talk about a ms20 clone+delay filter board some time ago i think…. “DLY” might stand for delay.

  • Proof –

    (Link from twitter, to the flickr, where it is described as a delay)

  • and soundcloud

  • Please keep the thread on topic and continue discussing “the other thing” here

  • Great, I’ve downloaded the v0.96 firmware as a zip from github. The avrlib folder was empty, so I downloaded it seperately as a zip from https://github.com/pichenettes/avril.git and unzipped it in the shruthi-1/avrlib folder. Now “make” works and the file shruthi1.hex is created.
    My tools folder was also empty, so I downloaded it from https://github.com/pichenettes/avril-firmware_tools.git and unzipped it in shruthi-1/tools – success, now “make midi” also works and I have a shruthi.mid file.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion