MyUSB 1.5.2

This month’s “bizzare search terms which found this site” award has to go to whoever searched for the words “hack the gibson monkey” and found my site. Yes, I did mention all those terms on my blog at some point, but I’m still amazed that someone would be looking for websites about that…

MyUSB 1.5.2 has been released. This new minor release is *very* minor, only correcting one big mistake in the device chapter 9 handling code and enhancing the RNDIS demo to have a working (barely) TELNET and webserver for users to try out. Keep in mind that my TCP/IP implmentation isn’t the greatest — I wrote it as I learned about each layer — and so for proper projects it should be ripped out and replaced with a proper stack, such as Adam Dunkel’s uIP TCP/IP stack for embedded systems.

The real reason to release the new version with so little changed is because of the new licence. Denver Gingerich has agreed to relicence his portions of the library under the same new MIT license, so the latest release reflects the changes to the new open source license. I hope the change will appease the masses, including those shifty Germans who were suggesting that others use earlier library releases where the LGPL licence wasn’t strictly enforcable due to my failure to state the license restructions in every source file.

The changelog for the new version as as stated very minor, but reproduced for completeness:

  • Fixed SwapEndian_32() function in Common.h so that it now works correctly (wrong parameter types)
  • Updated RNDIS demo – notification endpoint is no longer blocking so that it works with faulty Linux RNDIS implementations (where the notification endpoint is ignored in favour of polling the control endpoint)
  • Fixed incorrect Vendor Description string return size in RNDIS demo for the OID_GEN_VENDOR_DESCRIPTION OID token
  • Added very basic TCP/IP stack and HTTP/TELNET servers to RNDIS demo
  • Fixed DFU bootloader exit causing programming software to complain about failed writes
  • Fixed DFU bootloader EEPROM programming mode wiping first flash page
  • Fixed Clear/Set Feature device standard request processing code (fixing MassStorage demo in the process)
  • Added support for the ATMEGA16U4 AVR microcontroller
  • Library licence changed from LGPLv3 to MIT license

Notice there’s no migration information in the documentation, the reason for which is twofold:

  1. I forgot to add it in before uploading the files
  1. There isn’t any for this release anyway

So that should cement the devision to upgrade, as existing code will work *exactly* as it is with no changes whatsoever. That means no excuses for using older versions!

Also added in the new library as shown in the changelog is support for Atmel’s just-announced ATMEGA16U4 microcontroller. I only saw the new datasheet last night, but due to it’s similarity to the ATMEGA32U4 the changes required to implement it were extreamely minor. With any luck, someone will be able to test out MyUSB on either/both models when the silicon eventually starts shipping later this year.

Tomorrow I’ll be posting about my new magnetometer toy I received, powered by MyUSB…

 

Comments: 1

Leave a reply »

 
 
 

I just tested the RNDIS and it is working great 😀

Any plans of actually including uIP in a future release? That would be great.

 

Leave a Reply

 
(will not be published)
 
 
Comment
 
 

 

Vital Stats

  • 35 Years Old
  • Australian
  • Lover of embedded systems
  • Firmware engineer
  • Self-Proclaimed Geek

Latest Blog Posts

RSS