is firmware public ?

Discuss use it and firmware update
  • helectromagneticus wrote:I have not yet setup a hardware toolchain to load code on the Yocto MCU. Any suggestions here would be appreciated - my C experience comes from PICs, so I don't really know Atmel tools at all.
    the atmegas are programmed via an SPI-like interface, and some also have this JTAG thing
    this can be done with a range of available programmers, or even with a computer which has a parallel port (that's what i use at home)
    avrdude is the program that deals with the software side of programming (it's similar to pk3cmd, except it's fast and actually works)

    that doesn't matter too much since the yocto uses a bootloader
    now, that's also where i see a problem - the bootloader (afaik) uses MIDI as communication and SYSEX for the firmware transfer - that's common practice including in many commercial products
    the good part about this is that all you need from the computer side is a MIDI librarian program (and there are a bunch of them already)
    however, MIDI itself is slow.. if you're a user - that's not a problem
    if you're a developer - that's another story, specifically in my case, i re-flash the firmware i'm working on frequently, and my patience is not infinite.. having to plug/unplug MIDI cables to the computer also sux big time for me

    so i was considering looking into replacing the yocto bootloader with one which offers serial (UART) support besides MIDI, like in our other project

    so, if you want to program the atmega - you need a programmer (even just a parallel port plus some DIY), and avrdude
    if you want to flash the firmware - you need a MIDI librarian app capable of sending sysex, but i can't help any further with that since i haven't flashed my yocto yet
  • What I like about using MIDI to flash the firmware is that I don't have to open up the box. It's not the fastest thing, sure, but it works.

    I wrote a little script here that converts firmware from binary to the sysex format used by the Yocto/Nava bootloader. https://gitlab.com/jacobvosmaer/yocto-b ... to-hex2syx

    Hmm I need to rename that file, it doesn't actually accept Intel HEX :) it reads binary.
  • MIDI is slow, and you need both directions if you want the programming app to catch errors
    you don't have to open the box.. just connect wires to a free USART (RX TX GND) and get these wires out of the yocto box via some existing hole (or gap)
    this is not elegant, surely, but it's better than switching cables around all the time
    all that it needs is a serial bootloader on that USART, at a fast bitrate

    i might try to adapt the x0xb00t2.1 to the atmega1284P
    it has both serial support (stk500v2, so avrdude works fine with it) and also MIDI sysex
  • Yes I only use MIDI one-way, to upload firmware. My workflow is:

    - compile new firmware
    - restart Yocto in bootloader mode (1-3-5)
    - send firmware
    - test by using the Yocto interface or by sending MIDI from the computer

    I don't need to switch MIDI cables while doing this because the computer that does the upload also sends MIDI data.

    The low speed of MIDI is not an issue for me at the moment because I started writing my own firmware from scratch which is currently 10x smaller than the official firmware.

    I'm not disputing that it would be nice to have serial access to the 1284P; all I'm saying is that one can do useful stuff using just MIDI and the stock bootloader. As an encouragement to others who want to hack on this machine.