EmbeddedRelated.com
Forums
Memfault State of IoT Report

How much should it cost to develop a secondary bootloader?

Started by tc_lawabider May 10, 2012
Well said Richard.

Unfortunately the money they make comes out of technology and
innovation, from the ( poorer )
customers into the hands of greed. It does make life look unfair. :(

Billy

On 10/05/12 19:57, FreeRTOS Info wrote:
> Oracle Vs Apple
> Apple Vs Samsung (even though Samsung are a big Apple supplier)
> Samsung Vs Apple (go figure)
> Motorola Vs Apple (anything to do with Google's acquisition of Motorola!)
> Etc.
>
> The layers are have a ball, and getting very rich, fine tooth combing
> tiny dubious patents that will stand up to scrutiny in some courts and
> be completely invalid in others (apparently). There is no end so long
> as there are fortunes to be made and lost.
>
> Patents were supposed to protect and motivate the small guy, but do the
> opposite. No matter who is in the right or wrong, the person who will
> win is the person with the deepest pockets - and that is not the small
> guy. The layers don't care about anything as long as they get paid.
> The layers make a fortune, but I don't care because I can laugh at how
> dull and boring their lives are compared to mine. They can sit in their
> dark rooms and count there money if it makes them feel valued ;o)
>
> I went to an innovation seminar once where they were proud of the fact
> that, as a business in its own right, they took out patents on things
> they never intended to actually make. Really silly things, like "a
> piece of card that makes your toffee crispier when you microwave it",
> just in case anybody actually made it one day. Highly immoral, but they
> make more money than me too...unfortunately.
>
> Regards,
> Richard.
>
> + http://www.FreeRTOS.org
> Designed for microcontrollers. More than 7000 downloads per month.
>
> + http://www.FreeRTOS.org/trace
> 15 interconnected trace views. An indispensable productivity tool.
>
> On 10/05/2012 19:19, Paul Curtis wrote:
>>> The problem with our courts is that you just never know how it's going to
>>> come out or how long it will take before the dust settles. This lawsuit
>>> could cloud the software business for years and years what with appeals to
>>> higher and higher courts.
>> Whatever the judgement, there will be an appeal. Google have already called
>> for a mistrial on one point.
>>
>> --
>> Paul Curtis, Rowley Associates Ltd http://www.rowley.co.uk
>> SolderCore running Defender... http://www.vimeo.com/25709426
>

An Engineer's Guide to the LPC2100 Series

Hi,
>>>I have a feeling that a lot of that money is paying someone to learn a technology with which they are not familiar.

Take it easy, every time when you are paying for something you pay for learning technolody by somebody.
No matter are they familiar already, or will they learn in future (instead you).
Writing a bootloader is the most complicated embedder's job, cost is OK for programmer in west Europe.
You may find developer in the middle- and east Europe countries.
Second solution is to keep searching hoping that you will find someone who will sell you for half price product developed for own employer.

Good luck!
Regards
Vlad

----- Original Message -----
From: tc_lawabider
To: l...
Sent: Thursday, May 10, 2012 4:51 PM
Subject: [lpc2000] How much should it cost to develop a secondary bootloader?

Hi,

I'm writing regarding a job I posted at oDesk (I would have posted here, but was unsure of the etiquette for job postings in this group).

I'm working with an LPC2129 for a remote telematics project. I use a cell module with an encapsulated serial port that can cut in and out, but the module also has FTP commands (Telit GM862).

The LPC2129 has a connected SD card running a FAT filesystem. I want to download a file - using FTP, or using TFTP/some other resumable solution using the encapsulated serial port (in case we change cell modules and our new hardware doesn't support FTP by AT command).

I want to download a new compiled firmware to the SD card, remotely reboot the device, and reflash it with the updated software (this would require versioning and checksum validation). If the flash is corrupted, I want to reflash using a "known good" version loaded to the SD card at the factory, but otherwise a typical boot should run through the primary bootloader, and if all is good (i.e. no new firmware present), enter the typical runtime code.

Essentially, I want a secondary bootloader to load code off an SD card. I took over this project and am not an embedded coder, but it seems we might be able to save (either through linking or some other way) the SPI driver and FAT code the previous developer wrote.

How much should a project like this cost? Maybe it's the naive mechanical engineer in me, but it doesn't seem like this project is really groundbreaking and it shouldn't be that expensive. I have one quote for $5,000 in four weeks, which seems like a lot. I have a feeling that a lot of that money is paying someone to learn a technology with which they are not familiar.

Any suggestions on where else I might find a developer? This is a part of a research project that might turn into a company - so we're on a shoestring budget, and won't be trading (potential, future) equity for this.

Thank you for your suggestions. I really just need a gut check here.



> BTW, TFTP is based on UDP which is not a reliable transport protocol. It
> doesn't matter which application layer protocol you use (FTP, HTTP), it
> should be one that relies on TCP, not UDP.

This is a nonsense reasoning. FTP relies on the reliability of TCP, TFTP
has its own built-in reliability.

TFTP is much less efficient in its use of the communication lien, but
requires much less code. You can't have your cake and eat it.
--

Wouter van Ooijen

-- -------
Van Ooijen Technische Informatica: www.voti.nl
consultancy, development, PICmicro products
docent Hogeschool van Utrecht: www.voti.nl/hvu
C++ on uC blog: http://www.voti.nl/erblog

Richard,
should you consider to enter in a no profit association regulated with
reciprocal gentlemen agreement to regulate patent rights and delegating
the association to represent you as all the members in courts to
mutually protect you by infringements and protect also your patents from
infringements made by non associated members?

I know that there are some ideas to do associations like this may be
interesting for all of us.

Il 10/05/2012 20:57, FreeRTOS Info ha scritto:
> Oracle Vs Apple
> Apple Vs Samsung (even though Samsung are a big Apple supplier)
> Samsung Vs Apple (go figure)
> Motorola Vs Apple (anything to do with Google's acquisition of Motorola!)
> Etc.
>
> The layers are have a ball, and getting very rich, fine tooth combing
> tiny dubious patents that will stand up to scrutiny in some courts and
> be completely invalid in others (apparently). There is no end so long
> as there are fortunes to be made and lost.
>
> Patents were supposed to protect and motivate the small guy, but do the
> opposite. No matter who is in the right or wrong, the person who will
> win is the person with the deepest pockets - and that is not the small
> guy. The layers don't care about anything as long as they get paid.
> The layers make a fortune, but I don't care because I can laugh at how
> dull and boring their lives are compared to mine. They can sit in their
> dark rooms and count there money if it makes them feel valued ;o)
>
> I went to an innovation seminar once where they were proud of the fact
> that, as a business in its own right, they took out patents on things
> they never intended to actually make. Really silly things, like "a
> piece of card that makes your toffee crispier when you microwave it",
> just in case anybody actually made it one day. Highly immoral, but they
> make more money than me too...unfortunately.
>
> Regards,
> Richard.
>
> + http://www.FreeRTOS.org
> Designed for microcontrollers. More than 7000 downloads per month.
>
> + http://www.FreeRTOS.org/trace
> 15 interconnected trace views. An indispensable productivity tool.
>
> On 10/05/2012 19:19, Paul Curtis wrote:
>>
>>
>>> The problem with our courts is that you just never know how it's going to
>>> come out or how long it will take before the dust settles. This lawsuit
>>> could cloud the software business for years and years what with appeals to
>>> higher and higher courts.
>> Whatever the judgement, there will be an appeal. Google have already called
>> for a mistrial on one point.
>>
>> --
>> Paul Curtis, Rowley Associates Ltd http://www.rowley.co.uk
>> SolderCore running Defender... http://www.vimeo.com/25709426
>
Thanks Paul, valuable insight there. The reason we haven't bought a COTS bootloader is because we haven't found something that meets all our specifications that would work as a "drag and drop" experience.

--- In l..., "Paul Curtis" wrote:
>
> > How much should a project like this cost? Maybe it's the naive mechanical
> > engineer in me, but it doesn't seem like this project is really
> > groundbreaking and it shouldn't be that expensive. I have one quote for
> > $5,000 in four weeks, which seems like a lot. I have a feeling that a lot
> > of that money is paying someone to learn a technology with which they are
> > not familiar.
>
> $5k and 4 weeks? So, that's ~$1k / week which is peanuts. Developing a
> bulletproof bootloader from scratch takes some time (let others chime in
> here about how amazing/disasterous this has been for them). Having just
> completed such an undertaking, it will take you longer than you ever expect.
>
> In my case, I already had my own FAT file system code and all the necessary
> drivers to read/write files from microSD. I needed to compile the app
> separately, and then prepare the app for downloading by writing some extra
> tools to add a firmware label block and CRC, and then encrypt it. I needed
> to write the bootloader to verify the installed firmware and start a reflash
> if it is defective. The bootloader verified the downloaded firmware which
> entails decrypting it, checking the CRC, then checking the firmware label to
> ensure that the firmware is intended for the target. Once all integrity and
> compatibility checks pass, and only then, does it reflash things.
>
> All in all, starting from nowhere-near ground zero took a couple of
> all-nighters to 5am and 7 days of hard work. (I would add that the upgrade
> firmware happens to be collected from a server over the Internet using our
> existing TCP/IP stack, and that firmware acquisition code was also
> constructed during that time).
>
> So, $5k and 4 weeks? To me this sounds tight on time, but then I don't know
> anything about the specification or qualification of the engineer
> undertaking this task. What would say that is ABSOLUTELY BARGAIN BASEMENT,
> nowhere near expensive. The proviso would be that you don't know what
> you're going to end up with.
>
> > Any suggestions on where else I might find a developer? This is a part of
> > a research project that might turn into a company - so we're on a
> > shoestring budget, and won't be trading (potential, future) equity for
> > this.
>
> Why find a developer? Why not take a COTS solution? Segger do one.
>
> http://shop-us.segger.com/BootLoader_s/34.htm
>
> This reduces your risk and raises your chances of success, but for a price.
>
> Regards,
>
> --
> Paul Curtis, Rowley Associates Ltd http://www.rowley.co.uk
> SolderCore running Defender... http://www.vimeo.com/25709426
>

Thanks Vlad,

I'm not trying to be critical, but I feel there's a difference between a developer who knows what SPI is and a developer who doesn't. There are some things you learn on the job - like individual chip registers, or how TCP/IP works - but some things, you need to know just to get a job (just like I would never hire someone as a programmer if they had never programmed before). It's a vacuous definition, but my point is that I'd rather have someone who has experience or a desire to learn the topic already.

The quote I received was for $30/hr for a team in the middle east. I don't know how that changes the relative value of my quote, but they seemed quite willing to learn and knowledgeable about micros in the first place.

--- In l..., "Vladimir Ljaschko" wrote:
>
> Hi,
> >>>I have a feeling that a lot of that money is paying someone to learn a technology with which they are not familiar.
>
> Take it easy, every time when you are paying for something you pay for learning technolody by somebody.
> No matter are they familiar already, or will they learn in future (instead you).
> Writing a bootloader is the most complicated embedder's job, cost is OK for programmer in west Europe.
> You may find developer in the middle- and east Europe countries.
> Second solution is to keep searching hoping that you will find someone who will sell you for half price product developed for own employer.
>
> Good luck!
> Regards
> Vlad
> ----- Original Message -----
> From: tc_lawabider
> To: l...
> Sent: Thursday, May 10, 2012 4:51 PM
> Subject: [lpc2000] How much should it cost to develop a secondary bootloader?
>
> Hi,
>
> I'm writing regarding a job I posted at oDesk (I would have posted here, but was unsure of the etiquette for job postings in this group).
>
> I'm working with an LPC2129 for a remote telematics project. I use a cell module with an encapsulated serial port that can cut in and out, but the module also has FTP commands (Telit GM862).
>
> The LPC2129 has a connected SD card running a FAT filesystem. I want to download a file - using FTP, or using TFTP/some other resumable solution using the encapsulated serial port (in case we change cell modules and our new hardware doesn't support FTP by AT command).
>
> I want to download a new compiled firmware to the SD card, remotely reboot the device, and reflash it with the updated software (this would require versioning and checksum validation). If the flash is corrupted, I want to reflash using a "known good" version loaded to the SD card at the factory, but otherwise a typical boot should run through the primary bootloader, and if all is good (i.e. no new firmware present), enter the typical runtime code.
>
> Essentially, I want a secondary bootloader to load code off an SD card. I took over this project and am not an embedded coder, but it seems we might be able to save (either through linking or some other way) the SPI driver and FAT code the previous developer wrote.
>
> How much should a project like this cost? Maybe it's the naive mechanical engineer in me, but it doesn't seem like this project is really groundbreaking and it shouldn't be that expensive. I have one quote for $5,000 in four weeks, which seems like a lot. I have a feeling that a lot of that money is paying someone to learn a technology with which they are not familiar.
>
> Any suggestions on where else I might find a developer? This is a part of a research project that might turn into a company - so we're on a shoestring budget, and won't be trading (potential, future) equity for this.
>
> Thank you for your suggestions. I really just need a gut check here.
>
>
>
>
>

No boot loader is a drag and drop experience. The nearest you can come to it is something like the mbed dual-processor system where one LPC device acts as a mass storage device and you drag firmware onto it--this device then flashes the target processor. Quite neat.

A rather large, household-name customer does the same type of thing with a sophisticated input device.

As has been said, there are lots of boot loaders around, but given the security requirements and connectivity requirements of how to acquire the new firmware, and the different architectures in the world, there is just no simple solution. Everybody is different.

-- Paul.

On 10 May 2012, at 22:55, lawzaz wrote:

> Thanks Paul, valuable insight there. The reason we haven't bought a COTS bootloader is because we haven't found something that meets all our specifications that would work as a "drag and drop" experience.
>
> --- In l..., "Paul Curtis" wrote:
>>
>>> How much should a project like this cost? Maybe it's the naive mechanical
>>> engineer in me, but it doesn't seem like this project is really
>>> groundbreaking and it shouldn't be that expensive. I have one quote for
>>> $5,000 in four weeks, which seems like a lot. I have a feeling that a lot
>>> of that money is paying someone to learn a technology with which they are
>>> not familiar.
>>
>> $5k and 4 weeks? So, that's ~$1k / week which is peanuts. Developing a
>> bulletproof bootloader from scratch takes some time (let others chime in
>> here about how amazing/disasterous this has been for them). Having just
>> completed such an undertaking, it will take you longer than you ever expect.
>>
>> In my case, I already had my own FAT file system code and all the necessary
>> drivers to read/write files from microSD. I needed to compile the app
>> separately, and then prepare the app for downloading by writing some extra
>> tools to add a firmware label block and CRC, and then encrypt it. I needed
>> to write the bootloader to verify the installed firmware and start a reflash
>> if it is defective. The bootloader verified the downloaded firmware which
>> entails decrypting it, checking the CRC, then checking the firmware label to
>> ensure that the firmware is intended for the target. Once all integrity and
>> compatibility checks pass, and only then, does it reflash things.
>>
>> All in all, starting from nowhere-near ground zero took a couple of
>> all-nighters to 5am and 7 days of hard work. (I would add that the upgrade
>> firmware happens to be collected from a server over the Internet using our
>> existing TCP/IP stack, and that firmware acquisition code was also
>> constructed during that time).
>>
>> So, $5k and 4 weeks? To me this sounds tight on time, but then I don't know
>> anything about the specification or qualification of the engineer
>> undertaking this task. What would say that is ABSOLUTELY BARGAIN BASEMENT,
>> nowhere near expensive. The proviso would be that you don't know what
>> you're going to end up with.
>>
>>> Any suggestions on where else I might find a developer? This is a part of
>>> a research project that might turn into a company - so we're on a
>>> shoestring budget, and won't be trading (potential, future) equity for
>>> this.
>>
>> Why find a developer? Why not take a COTS solution? Segger do one.
>>
>> http://shop-us.segger.com/BootLoader_s/34.htm
>>
>> This reduces your risk and raises your chances of success, but for a price.
>>
>> Regards,
>>
>> --
>> Paul Curtis, Rowley Associates Ltd http://www.rowley.co.uk
>> SolderCore running Defender... http://www.vimeo.com/25709426
>>
>
--- In l..., "tc_lawabider" wrote:
>
> Hi,
>
> I'm writing regarding a job I posted at oDesk (I would have posted here, but was unsure of the etiquette for job postings in this group).
>
> I'm working with an LPC2129 for a remote telematics project. I use a cell module with an encapsulated serial port that can cut in and out, but the module also has FTP commands (Telit GM862).
>
> The LPC2129 has a connected SD card running a FAT filesystem. I want to download a file - using FTP, or using TFTP/some other resumable solution using the encapsulated serial port (in case we change cell modules and our new hardware doesn't support FTP by AT command).
>
> I want to download a new compiled firmware to the SD card, remotely reboot the device, and reflash it with the updated software (this would require versioning and checksum validation). If the flash is corrupted, I want to reflash using a "known good" version loaded to the SD card at the factory, but otherwise a typical boot should run through the primary bootloader, and if all is good (i.e. no new firmware present), enter the typical runtime code.
>
> Essentially, I want a secondary bootloader to load code off an SD card. I took over this project and am not an embedded coder, but it seems we might be able to save (either through linking or some other way) the SPI driver and FAT code the previous developer wrote.
>
> How much should a project like this cost? Maybe it's the naive mechanical engineer in me, but it doesn't seem like this project is really groundbreaking and it shouldn't be that expensive. I have one quote for $5,000 in four weeks, which seems like a lot. I have a feeling that a lot of that money is paying someone to learn a technology with which they are not familiar.
>
> Any suggestions on where else I might find a developer? This is a part of a research project that might turn into a company - so we're on a shoestring budget, and won't be trading (potential, future) equity for this.
>
> Thank you for your suggestions. I really just need a gut check here.

It's not just writing code, is it? The secondary bootloader and the loadable image has to be located, interrupt vectors mapped to RAM, maybe there is some OS integration? After that, it has to be tested, delivered, accepted and then, hopefully, the developer has to get paid.

I have already developed my own secondary bootloader for 2129, (and 2378), so I have some experience in this area.

$5000/four weeks? Assuming the developer will sign up to your spec and is doing all the test/integration, take it!

Rgds,
Martin

Just an FYI...
I developed a secondary bootloader (LPC21xx) - used for devices in the field which have LAN connections and to the Internet. I couldn't retrofit an SD card for economics reasons. The bootloader had to be bulletproof, lockup-proof, etc - as the need is to update the application firmware on that same CPU remotely, with zero on-site intervention. Had to be an in-place, on-the-fly replacement of firmware in flash with new, and cope with incomplete downloads, loss of IP connectivity mid-update, etc. There was already an ethernet interface with onboard TCP/IP (Wiznet) so that stack was outside the bootloader - just a socket interface.

Long story short.. it works well, figures out how/when to download updates from what server, validate, restart if incomplete, etc. It was not inexpensive, in labor time, to get through the above. But it was worth it, to not have to update fielded hardware. Even if we had an SD card in the device, it wasn't practical to do card swaps.. these things are inaccessible/outdoors, and union labor issues say don't touch them, etc.

The bootloader had to fit in one flash sector (NXP's erasure boundary) of 8KB, which it does.

No airplane trips to update!
--- In l..., "tc_lawabider" wrote:
>
> Hi,
>
> I'm writing regarding a job I posted at oDesk (I would have posted here, but was unsure of the etiquette for job postings in this group).
>
> I'm working with an LPC2129 for a remote telematics project. I use a cell module with an encapsulated serial port that can cut in and out, but the module also has FTP commands (Telit GM862).
>
> The LPC2129 has a connected SD card running a FAT filesystem. I want to download a file - using FTP, or using TFTP/some other resumable solution using the encapsulated serial port (in case we change cell modules and our new hardware doesn't support FTP by AT command).
>
> I want to download a new compiled firmware to the SD card, remotely reboot the device, and reflash it with the updated software (this would require versioning and checksum validation). If the flash is corrupted, I want to reflash using a "known good" version loaded to the SD card at the factory, but otherwise a typical boot should run through the primary bootloader, and if all is good (i.e. no new firmware present), enter the typical runtime code.
>
> Essentially, I want a secondary bootloader to load code off an SD card. I took over this project and am not an embedded coder, but it seems we might be able to save (either through linking or some other way) the SPI driver and FAT code the previous developer wrote.
>
> How much should a project like this cost? Maybe it's the naive mechanical engineer in me, but it doesn't seem like this project is really groundbreaking and it shouldn't be that expensive. I have one quote for $5,000 in four weeks, which seems like a lot. I have a feeling that a lot of that money is paying someone to learn a technology with which they are not familiar.
>
> Any suggestions on where else I might find a developer? This is a part of a research project that might turn into a company - so we're on a shoestring budget, and won't be trading (potential, future) equity for this.
>
> Thank you for your suggestions. I really just need a gut check here.
>

Il 11/05/2012 20:20, mjames_doveridge ha scritto:
>
>
> --- In l... ,
> "tc_lawabider" wrote:
> >
> > Hi,
> >
> > I'm writing regarding a job I posted at oDesk (I would have posted
> here, but was unsure of the etiquette for job postings in this group).
> >
> > I'm working with an LPC2129 for a remote telematics project. I use a
> cell module with an encapsulated serial port that can cut in and out,
> but the module also has FTP commands (Telit GM862).
> >
> > The LPC2129 has a connected SD card running a FAT filesystem. I want
> to download a file - using FTP, or using TFTP/some other resumable
> solution using the encapsulated serial port (in case we change cell
> modules and our new hardware doesn't support FTP by AT command).
> >
> > I want to download a new compiled firmware to the SD card, remotely
> reboot the device, and reflash it with the updated software (this
> would require versioning and checksum validation). If the flash is
> corrupted, I want to reflash using a "known good" version loaded to
> the SD card at the factory, but otherwise a typical boot should run
> through the primary bootloader, and if all is good (i.e. no new
> firmware present), enter the typical runtime code.
> >
> > Essentially, I want a secondary bootloader to load code off an SD
> card. I took over this project and am not an embedded coder, but it
> seems we might be able to save (either through linking or some other
> way) the SPI driver and FAT code the previous developer wrote.
> >
> > How much should a project like this cost? Maybe it's the naive
> mechanical engineer in me, but it doesn't seem like this project is
> really groundbreaking and it shouldn't be that expensive. I have one
> quote for $5,000 in four weeks, which seems like a lot. I have a
> feeling that a lot of that money is paying someone to learn a
> technology with which they are not familiar.
> >
> > Any suggestions on where else I might find a developer? This is a
> part of a research project that might turn into a company - so we're
> on a shoestring budget, and won't be trading (potential, future)
> equity for this.
> >
> > Thank you for your suggestions. I really just need a gut check here.
>
> It's not just writing code, is it? The secondary bootloader and the
> loadable image has to be located, interrupt vectors mapped to RAM,
> maybe there is some OS integration? After that, it has to be tested,
> delivered, accepted and then, hopefully, the developer has to get paid.
>
> I have already developed my own secondary bootloader for 2129, (and
> 2378), so I have some experience in this area.
>
I have also some experience about and for a serial one I spent 6 weeks
and 2 more weeks to enhance it to manage power faults and other mistakes
may happen that I didn't plan from the beginning.
> $5000/four weeks? Assuming the developer will sign up to your spec and
> is doing all the test/integration, take it!
>
I would know what hourly rates there are around the world. Would you
tell me what are in your area and what is your area?
Mine are EUR 50/hour and area is north east of Italy (so should be
EUR2000/week).
> Rgds,
> Martin




Memfault State of IoT Report