Solution for end user firmware updates?

Go To Last Post
9 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello. Im new in this forum. My name is Michael and I am currently working on a commercial product using an atmega328p.

I believe that selling a product without being able to update the firmware is a bit risky - what if theres a bug or the users asks for new features.

I have been searching the web for solutions, but it seems to be a less covered topic.

 

I image the user to be able to connect a PC/MAC to the device via a USB cable. Then using a simple graphical UI, they will be able to update firmware and adjust configurations saved in EEPROM.

It seems that burning a bootloader on the AVR and embedding a usb/ttl converter to the circuit should do the job, or maybe embedding a USBASP circuit? What can you guys recommend. Links for a project or solutions would be perfect.

 

As a sidenote, I only have some experience designing GUI for iOS devices, so if you have any advice for a cross-platform PC/MAC GUI solution that is simple to use, that would be appreciated as well. If it weren't for strict FCC regulations when embedding bluetooth, i would definitely embed a bluetooth module and then create an iOS application.

 

Thanks for reading! I hope you will post your thoughts and advice. :)

Best Michael

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

michaelDK wrote:
but it seems to be a less covered topic.
michaelDK wrote:
It seems that burning a bootloader on the AVR
Those two statements would appear to be oxymoronic. If I google "avr bootloader" google gives half a million results. Is that really "less covered" ?

 

And, yes, a bootloader is the way to do this. As it's a 328p you can even use a read y made Optiboot though you will need to find a version that has EEPROM support if you want to be able to change that too.

 

On the PC side almost everyone drives bootloaders using avrdude. If you want "GUI" then there are a number of those for avrdude. Or you could just put it in a batch file and give that an icon. Or you could invoke it from a GUI of your own devising such as Python.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:

michaelDK wrote:
but it seems to be a less covered topic.
michaelDK wrote:
It seems that burning a bootloader on the AVR
Those two statements would appear to be oxymoronic. If I google "avr bootloader" google gives half a million results. Is that really "less covered" ?

I get your point. Although I have probably been searching with the wrong keywords. Not knowing bootloading is the way to go, i've not used that keyword enough in my research.

 

clawson wrote:

And, yes, a bootloader is the way to do this. As it's a 328p you can even use a read y made Optiboot though you will need to find a version that has EEPROM support if you want to be able to change that too.

 

On the PC side almost everyone drives bootloaders using avrdude. If you want "GUI" then there are a number of those for avrdude. Or you could just put it in a batch file and give that an icon. Or you could invoke it from a GUI of your own devising such as Python.

Thank you! I will look into optiboot and your listed options for GUI.

Best Michael

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

... or an Arduino interface/bootloader

Ross McKenzie ValuSoft Melbourne Australia

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Or, since you're doing a commercial project, have a look at chip45.com who will customise the GUI to include your name and logo.

'This forum helps those who help themselves.'

 

pragmatic  adjective dealing with things sensibly and realistically in a way that is based on practical rather than theoretical consideration.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

michaelDK wrote:
... what if theres a bug or the users asks for new features.
Mail back and forth an auto-programmer containing the updated firmware to the customer or operator.

michaelDK wrote:
... or maybe embedding a USBASP circuit?
or a USB megaAVR running LUFA AVRISP2.

michaelDK wrote:
If it weren't for strict FCC regulations when embedding bluetooth, i would definitely embed a bluetooth module and then create an iOS application.
Has Imagecraft Smart.IO been through the nation state RF certs?

http://imagecraft.com/smartio

 


http://www.avrfreaks.net/forum/wts-standalone-pdiisp-auto-programmers

http://www.fourwalledcubicle.com/AVRISP.php

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks for all contributions to this thread. I appreciate that.

It seems that the solution was a bit easier than first anticipated. Since the product is a midi-device, uploading firmware can be done with sysex files with software as https://www.snoize.com/SysExLibr... for mac or midi-ox for windows. Although this requires the user to have a midi-interface, but I think that is ok. Now I just need to figure out how to use a bootloader with sysex files. After 2 minutes of googling, that shouldn't be an issue: https://blogs.bl0rg.net/netzstau...

Best Michael

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

For a consumer product, do you really want the cost and hassle of supporting the user. Would it be better to keep the cost low and offer a new/improved model when bug fixes/new features are wanted...(repeat sales, continuing revenue/cash flow)

i.e. iphone xxx, android xxx, samsung Gxxx, windoes xxx .....    works for them! 

 

 

Jim

 

 

Last Edited: Wed. Oct 4, 2017 - 08:25 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

http://imagecraft.com/smartio

The Ganssle Group logo

The Ganssle Group

TEM Logo The Embedded Muse
Issue Number 340, December 4, 2017

Editor: Jack Ganssle, jack@ganssle.com

A No BLE Code, No App Code, Smartphone Interface

http://www.ganssle.com/tem/tem340.html#article4

 

"Dare to be naïve." - Buckminster Fuller