TFTP Bootloader, update firmware over ethernet?

Wow guys, this is a great thread. Thank you all for your time an effort on creating a solution. My biggest interest is reprogramming the teensy 3.1 via bluetooth using the Arduino IDE. Unfortunately so much of what is discussed above is way over my head. I am a very novice programmer (trained in fine art rather than CS or MechE) and am just learning how deep this rabbit hole really goes. If there's anything I can do to support this project please let me know. I do know that if I could reprogram my teensies over bluetooth I would continue to buy more and more of them. This is a very valuable feature.

Thanks again,
Chris

I too would like to load code into the Teensy via network (ethernet). The reason being that my teensy-based project is now 10 feet in the air inside an enclosure, two teensys which I communicate with via a wifi router that's also 10 feet in the air. So it's become fairly inconvenient...

Since the teensy boot loader is apparently off limits and will remain off limits, I am thinking that perhaps it is possible to do this totally outside the boot loader.. by changing teensyduino to located the compiled sketch somewhere other than the regular entry point.. and locate the network loader at the normal entry point. Then upon boot the network loader could check for a new sketch and if available, load it in the (new) sketch location and jump execution there.

Has anyone pursued this already? Is it a fatally flawed idea?
Figure I should ask before I really get into it.

Thanks
 
Hi All

I have just completed connecting a Microchip ENC424J600 (http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en542414&redirects=ENC424J600) to the Teensy (via the WIZ820io & Micro SD Card Adaptor).
This is a 10/100M Ethernet controller that communicates via SPI and has a factory programmed MAC address (which can be used or optionally overwritten). It costs about $2.60 and then needs an RJ45 socket with magnetics and a 25MHz crystal (although could potentially be driven from a clock from the processor). I used a Microchip PICtail evaluation board connected via the WIZ820io connector pins, whereby no WIZ820io was needed of course.

The results are here:
http://www.utasker.com/kinetis/TEENSY_3.1.html#LAN

First of all I built a Web Server based boot loader for the Teensy (about 18k Flash is needed) but combined it with USB-MSD loading, USB-HID (KBOOT) and also UART 0 (KBOOT 57'600 Baud) to take up about 30k of Flash.

Then I made an application configuration with internal TCP/IP stack including web server, FTP server, TELNET, SNTP, SNMPv1/v2, SMTP (for sending emails), NetBios, DNCP client - FTP and Web servers use the SD card (also USB-MSD can read and write it) to be able to load and serve large web server content. If there is not SD card present it will fall back to a small file system in internal Flash, which also works with FTP and the web server.

There is a command line menu (shell) on Telnet, USB-CDC and a UART 0 (115200 Baud) and the code size is around 110k. RAM requirement is about 25k.

There are details of the wiring if anyone would like to try the Teensy performing independent TCP/IP.

The difference between the WIZ820io solution is that the Teensy runs all code and the HW is a little cheaper (although not hugely cheaper). Of course there is more code in the Teensy since it has the compete stack locally but there are advantages of being very flexible and independet from a stack in the HW; as well as having protocols that the WIZ820io doesn't include it is IPv6 capable (including 6in4 tunnelling to transvers non raw IPv6 networks) and allows multiple network operation (multiple IP addresses can be assigned so that the device can operate in multiple networks and perform bridging between them) plus VLAN.

If I find time I will make a video to show it in operation.

Regards

Mark
 
Hi Mark,

It`s been 3 days since I search how to update Teensy firmware over ethernet, and I must admit I`m getting nowhere... Actually I have use UP-board to upload Teensy firmware, but that`s mean assign new IP address on UP-board, and that`s not really good if I want to deploy hundred Teensy on the field. Not to mention UP-board cost and bandwidth allocation by using VNC Server...

I have back and forth read uTasker websites, and found there some web server bootloader here:
http://www.utasker.com/kinetis/TEENSY3-1/uTaskerSerialBoot_Teensy3-1__KBOOT_UART_HID_MSD_WEB.hex

,download uTasker v1.4 on github websites:
https://github.com/uTasker/uTasker-Kinetis

and read:
http://www.utasker.com/docs/uTasker/uTaskerSerialLoader.PDF

which only gives headache to me... :confused:

So here is what I want. Let`s say I have an "blink.hex" on PC with IP 192.168.202.113. There is Teensy 3.2 connected with Wiznet WIZ550io with IP 192.168.202.250. I want to upload "blink.hex" from PC to Teensy using Ethernet Cable. Can you please tell me step-by-step how to do that?

Please note that I`m more electrical-guys rather than networking-and-programming guru, so please kindly bare with me. Sorry for bad English. Thank you for your time and guidance.

Papatonk
 
Hi

The uTasker project has a solution for Kinetis parts with Ethernet or the Teensy with ENC424J600 (potentially over RNDIS on USB but I never tried it and it probably has no advantage over USB-MSD since it is short range via cable and not long range of Ethernet/Internet).

It doesn't support with Wiznet WIZ550io which has its own TCP/IP stack and so would need to be worked out using this instead. Therefore I can't help here.

Regards

Mark
 
Back
Top