Composite ( Mass Storage + Serial ) library for LPC17xx

We are looking for an embedded C++ developer to create a small library for a specific USB functionality for the LPC17xx family of MCUs ( Cortex-M3 ).

User-side functionality :

The library must allow the LPC17xx chip, when connected to the PC via it’s USB pins, to show up as TWO usb devices :

* One USB Serial (CDC) device

* One USB MSC (Mass Storage Controller) device

Showing up as one or the other is very simple, example source code is available on the internet to do so ( example : [url removed, login to view] ). The complicated feature here is to have both devices at the same time on the same USB cable ( Composite ). However this is known to be possible ( Search Google, examples : [url removed, login to view], [url removed, login to view], [url removed, login to view], [url removed, login to view] ).

This functionality must work when connected to PCs under Windows, Mac, and Linux.

Developer-side functionality :

We have very strict requirements as to what the API to this library should look like.

Basically your work on a Composite device will be used to replace two currently separate libraries we use, so your library will have to provide exactly the same interface in order to be a drop-in replacement inside our current code.

* On the Serial side, your code will have to implement the same interface as this : [url removed, login to view], including all methods, and interrupt handling. Your library will have to be in Object-Oriented form, extending the same object as mBed’s Serial object : the Stream object ( [url removed, login to view] ).

* On the Mass Storage side, you will have to implement several interrupt handlers ( for when a file is opened, closed, etc ... using [url removed, login to view] ), and must access the various possible file systems using the standard mBed file interface ( of which you can see an example here : [url removed, login to view] ).

Compatibility :

Your code will have to be provided with a simple example covering all functionality. It will have to compile with CodeSourcery’s free GCC Toolchain, and run on both mBed ( LPC1768 ) and LPCXpresso ( LPC1769 ). In order to interface with mBed functionality you will have to use the GCC4MBED project ( [url removed, login to view] ).

Materials :

You will be provided with all required materials, namely : An LPCXpresso-LPC1769, a Serial-to-USB converter cable for debugging, an USB-B Breakout board, a SD-Card breakout board, a SD Card, and wires. They will have to be returned upon completion of the project.

Code quality :

You are expected to

* Write Object-Oriented, well commented code

* Be available for any question on your code

* Thoroughly test your code

* Be available for bug correction even after the project has been completed

* Communicate in a regular fashion ( disappearing for several days, not answering emails, etc ... will result in project cancellation ). This includes emailing even if you are late or have not made progress. This is extremely important.

* Re-use as much of existing open source code as possible, knowing that the final code will itself be open source. This is very important to reduce the quantity of required work.

* Write code that achieves maximal possible performance. This includes using DMA if possible.

* Ideally you should have previous experience with coding for USB on Cortex-M3 devices. If you do please mention it in your bid.

Please ask by Private Message if you have any question.

The bid that will be chosen will be the lowest bid amongst those that prove they understand what is needed and demonstrate they are capable of doing it.

Skills: C++ Programming, Embedded Software, Linux, Microcontroller

See more: lpc1768 usb mass storage, lpc1769 usb mass storage, lpc1768 mass storage, lpc1768 usb composite, usb mass storage controller device, lpc1768 serial, lpc1769 mass storage, card mass storage lpc1768, lpc1768 mass storage card, lpc1768 example, lpcxpresso lpc1769 usb, search mbed serial linux, composite mass, mass storage library, linux composite mass storage device, lpc1768 mass, lpc1768 usb mass storage device example, linux embedded lpc1768, lpc1768 usb device mass storage, lpc1768 library, usb composite lpc1768, lpc1768 serial usb, lpc1769 usb cdc example, lpc1768 usb, usb serial lpc1768

About the Employer:
( 8 reviews ) valencia, France

Project ID: #1246048

11 freelancers are bidding on average $492 for this job


We have a project which used the LPC1768 as CAN bus monitor . Please check your PMB for detail . Thanks

$780 USD in 25 days
(1 Review)

Please check PM.

$1250 USD in 40 days
(2 Reviews)

please check your PMB

$750 USD in 15 days
(1 Review)


$220 USD in 4 days
(0 Reviews)


$220 USD in 4 days
(0 Reviews)

As an experienced programmer of various LPC microcontrollers and embedded system architect I can offer you my services :)

$1000 USD in 30 days
(0 Reviews)


$250 USD in 4 days
(0 Reviews)

I have good experience in low level device driver for various peripherals including USB. Please contact for further discussions.

$310 USD in 25 days
(0 Reviews)

Our engineers had worked on composite driver for Samsung Soc. Mass strorage and serial.

$400 USD in 20 days
(0 Reviews)

OK Boss, Bye . Have a nice day!

$30 USD in 3 days
(0 Reviews)

Dir Mr. globafrlinc, I can fill all of the project requirements. I have some questions. Please look at my PM. Regards, Embedded Programmer

$200 USD in 30 days
(0 Reviews)