<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://freemyipod.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wolftail</id>
	<title>freemyipod - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://freemyipod.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wolftail"/>
	<link rel="alternate" type="text/html" href="https://freemyipod.org/wiki/Special:Contributions/Wolftail"/>
	<updated>2026-05-17T01:14:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmCORE_Releases&amp;diff=3900</id>
		<title>EmCORE Releases</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmCORE_Releases&amp;diff=3900"/>
		<updated>2011-05-09T14:52:24Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: /* Release notes / Known issues */ fixed a typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a list of all builds of [[emCORE]] that have been released into public so far.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please do not use any other builds unless you really know what you&#039;re doing!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==r708: April 24th, 2011==&lt;br /&gt;
===Release notes / Known issues===&lt;br /&gt;
* The display doesn&#039;t work on some iPod Nano 2G devices. If this happens to you, we suggest to stick with iLoader for now.&lt;br /&gt;
* Reducing the CPU core voltage on the iPod Classic has been disabled. Battery life might be adversely affected.&lt;br /&gt;
* There&#039;s a small number of iPod Classic devices where USB doesn&#039;t work unless the device was booted through DFU.&lt;br /&gt;
&lt;br /&gt;
===Fixes / Improvements===&lt;br /&gt;
* Fixed several kernel bugs that affected CPU exception and panic handling and caused the device to just lock up instead of showing proper error messages.&lt;br /&gt;
* Added trivial memory protection to catch most null pointer or garbage memory address accesses.&lt;br /&gt;
* Fixed a race condition in libUI that caused the boot menu to crash occasionally.&lt;br /&gt;
* Fixed various graphics glitches in the boot menu.&lt;br /&gt;
&lt;br /&gt;
===Files===&lt;br /&gt;
[http://files.freemyipod.org/releases/20110406/bootstrap-ipodclassic-r692-20110406.dfu  bootstrap-ipodclassic.dfu]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110424/fastboot-r708-20110424.emcoreapp fastboot.emcoreapp]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110424/installer-ipodclassic-r708-20110424.ubi installer-ipodclassic.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110424/installer-ipodnano2g-r708-20110424.bootnote installer-ipodnano2g.bootnote]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110424/installer-ipodnano2g-r708-20110424.ipodx installer-ipodnano2g.ipodx]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110424/installer-ipodnano2g-r708-20110424.ubi installer-ipodnano2g.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110424/rockbox-ipodclassic-r29777-20110424.zip rockbox-ipodclassic.zip]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110424/rockbox-ipodnano2g-r29777-20110424.zip rockbox-ipodnano2g.zip]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==r692: April 6th, 2011==&lt;br /&gt;
===Release notes / Known issues===&lt;br /&gt;
* The boot menu occasionally locks up due to a combination of a kernel bug and a libUI bug. Rebooting the iPod the hard way by holding the menu and select buttons for 5 seconds should help.&lt;br /&gt;
* The display doesn&#039;t work on some iPod Nano 2G devices. If this happens to you, we suggest to stick with iLoader for now.&lt;br /&gt;
* Reducing the CPU core voltage on the iPod Classic has been disabled. Battery life might be adversely affected.&lt;br /&gt;
* There&#039;s a small number of iPod Classic devices where USB doesn&#039;t work unless the device was booted through DFU.&lt;br /&gt;
&lt;br /&gt;
===Fixes / Improvements===&lt;br /&gt;
* Disabled undervolting for the iPod Classic.&lt;br /&gt;
* Fixed a kernel bug that causes lockups when injecting a firmware image while the boot menu is updating the display.&lt;br /&gt;
&lt;br /&gt;
===Files===&lt;br /&gt;
[http://files.freemyipod.org/releases/20110406/bootstrap-ipodclassic-r692-20110406.dfu bootstrap-ipodclassic.dfu] &amp;lt;small&amp;gt;(some people have reported that this file gives an error: &#039;&#039;Exception: DFU upload failed! (2 / 7)&#039;&#039; so if you also see this message, please use bootstrap-ipodclassic.dfu from the previous release)&amp;lt;/small&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110406/fastboot-r692-20110406.emcoreapp fastboot.emcoreapp]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110406/installer-ipodclassic-r692-20110406.ubi installer-ipodclassic.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110406/installer-ipodnano2g-r692-20110406.bootnote installer-ipodnano2g.bootnote]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110406/installer-ipodnano2g-r692-20110406.ipodx installer-ipodnano2g.ipodx]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110406/installer-ipodnano2g-r692-20110406.ubi installer-ipodnano2g.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110406/rockbox-ipodclassic-r29681-20110406.zip rockbox-ipodclassic.zip]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110406/rockbox-ipodnano2g-r29681-20110406.zip rockbox-ipodnano2g.zip]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==r674: March 25th, 2011==&lt;br /&gt;
===Release notes / Known issues===&lt;br /&gt;
* This is the first public release, so please be aware that there might be a bunch of still unknown bugs in the wild.&lt;br /&gt;
* The boot menu occasionally locks up due to a cinbination of a kernel bug and a libUI bug. Rebooting the iPod the hard way by holding the menu and select buttons for 5 seconds should help.&lt;br /&gt;
* The display doesn&#039;t work on some iPod Nano 2G devices. If this happens to you, we suggest to stick with iLoader for now.&lt;br /&gt;
* This release reduces the CPU core voltage to conserve battery power, but apparently by a bit too much for some iPod Classic devices, causing all kinds of weird behavior. This was disabled in the r692 release, so please update if you suspect that you&#039;re affected by this.&lt;br /&gt;
* We found a kernel bug in this release that causes lockups when injecting a firmware image while the boot menu is updating the display. This should not affect normal users.&lt;br /&gt;
* There&#039;s a small number of iPod Classic devices where USB doesn&#039;t work unless the device was booted through DFU.&lt;br /&gt;
===Fixes / Improvements===&lt;br /&gt;
* Initial public [[emCORE]] release&lt;br /&gt;
&lt;br /&gt;
===Files===&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/bootstrap-ipodclassic-r674-20110325.dfu bootstrap-ipodclassic.dfu]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/fastboot-r674-20110325.emcoreapp fastboot.emcoreapp]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/installer-ipodclassic-r674-20110325.ubi installer-ipodclassic.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/installer-ipodnano2g-r674-20110325.bootnote installer-ipodnano2g.bootnote]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/installer-ipodnano2g-r674-20110325.ipodx installer-ipodnano2g.ipodx]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/installer-ipodnano2g-r674-20110325.ubi installer-ipodnano2g.ubi]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/rockbox-ipodclassic-r29644-20110325.zip rockbox-ipodclassic.zip]&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://files.freemyipod.org/releases/20110325/rockbox-ipodnano2g-r29644-20110325.zip rockbox-ipodnano2g.zip]&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=User_talk:TheSeven&amp;diff=3483</id>
		<title>User talk:TheSeven</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=User_talk:TheSeven&amp;diff=3483"/>
		<updated>2011-01-08T19:55:34Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;is there any scope of finding vulnerabilities, being able to execute code through the nike+ ipod kits? as in control the alter the sensor to send modified data to the ipod through the kit? i guess we havent already tried that. -- [[User:Psgarcha92]], 19:29, 21 November 2010&lt;br /&gt;
:I don&#039;t the sensor will ever send data that&#039;s complex enough for the parser to have an exploitable bug. --[[User:TheSeven|TheSeven]] 18:22, 22 November 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Hello.my classic 3g&#039;s HDD just broke,as no one provide classic 3g&#039;s PCB scan yet,if l4n need this,i will snap some photos of it..&lt;br /&gt;
Then where should i upload it? -- [[User:sinless]]&lt;br /&gt;
:I think you should upload them here [http://www.freemyipod.org/wiki/Special:Upload] and then add them to the Classic 3G page. --[[User:Benedikt93|Benedikt93]] 15:00, 17 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
OK.I will take apart it soon,and does anybody know can classic work with a ssd? -- [[User:sinless]]  23:00, 17 December 2010 (GMT+8)&lt;br /&gt;
:It should be able to handle pretty much everything that&#039;s PATA or CE-ATA, and the OF also supports LBA48. --[[User:TheSeven|TheSeven]] 13:49, 20 December 2010 (UTC)&lt;br /&gt;
I just took apart my classic 3g,but the only camera I can use is Nokia 5310..the pictures are not clear enough&lt;br /&gt;
Notice that my classic(MC293,160GB,firmware 2.o.4)&#039;s motherboard is the same to the 2g classic board in hardware page,Apple&#039;s mark is the same 820-2437-- [[User:sinless]]  21:00, 21 December 2010 (GMT+8)&lt;br /&gt;
&lt;br /&gt;
== Asked about IPL on the Nano 2G ==&lt;br /&gt;
&lt;br /&gt;
When will I be able to use ipl on my Nano 2g?  I assume it needs to be ported, but I don&#039;t know how to do so.  Is there someone working on that? --[[User:ArthuruhtrA|ArthuruhtrA]]&lt;br /&gt;
:AFAIK no --[[User:TheSeven|TheSeven]] 00:00, 4 January 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Can you point me to any sort of information that would help me do it?  The IPL site is down currently, no idea when it will be up.  I do have the files found on SourceForge, but they are not very recent.  I also have no experience with this, and don&#039;t want to brick my iPod.  However, I may be able to get a spare Nano 2G to try it on.  Thanks. --[[User:ArthuruhtrA|ArthuruhtrA]]&lt;br /&gt;
&lt;br /&gt;
I found [http://ipl.derpapst.eu/ this] mirror of the ipl site last updated in &#039;09.  That is more recent. --[[User:ArthuruhtrA|ArthuruhtrA]]&lt;br /&gt;
:I don&#039;t have much more either, and I don&#039;t think there are newer files. iPodLinux hasn&#039;t really been developed any more for quite some time now. As this is a completely different architecture, I would suggest throwing the iPL kernel away and starting from a recent vanilla kernel, but I haven&#039;t really dealt with Linux kernels myself yet, so I probably can&#039;t help you much with this. --[[User:TheSeven|TheSeven]] 07:23, 5 January 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
If I can port it, will you create the installer/incorporate it into what you have?  And can you help me with porting to an extent?  I bet you know more about it then I do.  I got the latest kernel from linux.org (released yesterday) and the old kernel from ipl, and will look in them, and hopefully find something that I can do, but I don&#039;t quite know what I&#039;m doing, as I don&#039;t quite understand the ipod as well as you.  Should I be using the uCLinux kernel instead? --[[User:ArthuruhtrA|ArthuruhtrA]]&lt;br /&gt;
:I really don&#039;t know anything about embedded Linux. IIUC uCLinux is a fork of Linux 2.4 for MMU-less systems, but someone told me that the Linux 2.6 branch supports those natively. That&#039;s about everything I can tell you regarding Linux. I will of course be able to help you on the hardware side of things, i.e. answer questions about the hardware and the drivers emBIOS uses. What I certainly won&#039;t to is incorporating any kind of non-FAT filesystem support into my tools, as this would be a huge amount of work. But if the user handles creating an e.g. ext2 partition himself and the installer only needs to copy some files and add Linux to the iLoader menu, that&#039;s rather trivial. --[[User:TheSeven|TheSeven]] 13:13, 7 January 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Still can&#039;t recognized by UMSboot ==&lt;br /&gt;
Sorry to trouble you but...&lt;br /&gt;
First,the INF file has some error..After I mod the driver(follow microsoft&#039;s WDK guide),it finally installed,but UMS can&#039;t recognized classic,windows recognized it as a freemyipod.org ipod nano3/classic dfu&lt;br /&gt;
I hope you provide us a one-click install tool or just fix the inf file,or just tell us what other software is needed,I have installed .NET 2.0 and WDK.thanks&lt;br /&gt;
:Which changes to the inf file were needed? Did you change anything else besides the CoInstallers? Did you change one of the GUIDs? The DFU tool uses the GUID, VID and PID to recognize the device. If one of those doesn&#039;t match, it won&#039;t work. --[[User:TheSeven|TheSeven]] 15:59, 7 January 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Compared to microsoft&#039;s example file,i think your inf lost these lines,and filled them after dev_addreg like this&lt;br /&gt;
 [Dev_AddReg]&lt;br /&gt;
 HKR,,DeviceInterfaceGUIDs,0x10000,&amp;quot;{2084a03c-04b1-4acc-9236-69fe2e7d5770}&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 [USB_Install.CoInstallers]&lt;br /&gt;
 AddReg=CoInstallers_AddReg&lt;br /&gt;
 CopyFiles=CoInstallers_CopyFiles&lt;br /&gt;
 [CoInstallers_AddReg]&lt;br /&gt;
 HKR,,CoInstallers32,0x00010000,&amp;quot;WdfCoInstaller01009.dll,WdfCoInstaller&amp;quot;,&amp;quot;WinUSBCoInstaller2.dll&amp;quot;&lt;br /&gt;
 [CoInstallers_CopyFiles]&lt;br /&gt;
 WinUSBCoInstaller2.dll&lt;br /&gt;
 WdfCoInstaller01009.dll&lt;br /&gt;
Of course,I put the two .dll files under the same floder with winusb.inf&lt;br /&gt;
Then,I can install the driver successful,but the new problem is UmsBOOT not recognized.&lt;br /&gt;
&lt;br /&gt;
Addition:I have just reinstall WINXP,and directly install winusb without itunes.here are the details:&lt;br /&gt;
* put classic 3g into DFU,and connected it to computer,windows recognized a usb dfu device,i force windows to install winusb.inf,windows said installed driver filed,some lines may missing or error,with a error code 28. After that, the hardware name was freemyipod.org-usb dfu device&lt;br /&gt;
* install MICROSOFT WDK and reboot,still had the same problem.&lt;br /&gt;
* add that lines to winusb.inf and copy the two dll files,reinstall the driver,then succeed.the new hardware name is iPod Classic/Nano 3G Bootrom DFU.&lt;br /&gt;
* open umsboot,show an error window,I know it is because the lack of .NET framework&lt;br /&gt;
* install .NET 2.0,open ums again,it said no dfu device found.&lt;br /&gt;
* reboot and try,filed.&lt;br /&gt;
* still filed...&lt;br /&gt;
And I have some small questions about the wiki...how to show my ID at the last of the words i say,and,where can i find file/picture upload link...In my country no one uses wiki pages like this,sorry:)&lt;br /&gt;
And sorry for my poor English..--[[User:Sinless|Sinless]] 01:02, 8 January 2011 (GMT+8)&lt;br /&gt;
this time i copied ID from your massage..&lt;br /&gt;
And here is the &amp;quot;driver&amp;quot; i made,if it can help http://down.qiannao.com/space/file/qiannao/share/2011/1/8/iPodClassicWindowsInstaller.rar/.page&lt;br /&gt;
:The changes look good, I can&#039;t see why that shouldn&#039;t work. If the  first installation try failed because of the coinstallers, there might  have been some leftovers. Uninstall the device completely, choose yes if  windows asks you if you want to remove the driver. Then try installing  the modified one directly. Other than that, I&#039;m pretty much out of  ideas. You might want to go the Python/PyUSB/libusb-win32 route instead.&lt;br /&gt;
:The wiki editor will replace a sequence of four ~ signs with your signature. The upload link is hiding in the toolbox on the left side. --[[User:TheSeven|TheSeven]] 17:57, 7 January 2011 (UTC)&lt;br /&gt;
::I finally got it worked!the problem was umsboot need microsoft .net framework 3.5,it seemd that .net 2.0 not support USB.&lt;br /&gt;
And you should update the winusb driver,surely your driver lack that two dll files that install Winusb service,I couldn&#039;t upload a .rar file.--[[User:Sinless|Sinless]] 12:17, 8 January 2011 (UTC)&lt;br /&gt;
:::Interesting... I actually compiled it for .NET 4.0, but it seemed to work on 2.0 as well. I should probaby make another zip file with all the things needed by XP. --[[User:TheSeven|TheSeven]] 13:11, 8 January 2011 (UTC)&lt;br /&gt;
::::Yes,.net 2.0 can open umsboot but it can&#039;t work.XP need that two dll,I met the display problem,LCD=2,I just upload the photo and with LCD take apart and write the LCD SN.Hopefully you can make use of the photos&lt;br /&gt;
:::::The type 2 LCD of my 3G classic works fine within iLoader at least. --[[User:TheSeven|TheSeven]] 13:35, 8 January 2011 (UTC)&lt;br /&gt;
::::::maybe it has several versions,I just tested on my friend&#039;s classic 1g 80g,also has the problem.&lt;br /&gt;
:::::::Is the problem you&#039;re experiencing similar to the photo on the wiki page?&lt;br /&gt;
::::::::Yes,Look at the picture,I took apart the screen.Maybe it&#039;s a type 3,have taken many classic,I saw at least 4 versions of screen.&lt;br /&gt;
::::::::http://www.freemyipod.org/wiki/File:IMG_0014.jpg&lt;br /&gt;
::::::::http://www.freemyipod.org/wiki/File:IMG_0013.jpg&lt;br /&gt;
::::::::If you need to test new display driver..call me,and if it is possible,please make classic&#039;s rockbox can bass to 24db,I really miss that super bass on ipod mini..&lt;br /&gt;
:::::::::The tone controls are handled by hardware (to save processing power and thus battery power), and that can only handle up to +12dB. If you need more, you&#039;ll have to use a build which uses software-based tone controls instead. --[[User:TheSeven|TheSeven]] 14:09, 8 January 2011 (UTC)&lt;br /&gt;
:::::::::The problem LCD has a small tube looks like a rheostat on the wire.It is similiar to NANO2G&#039;s type 2 lcd,type1 lcd doesn&#039;t has a rheostat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  ==&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_6G&amp;diff=3356</id>
		<title>Nano 6G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_6G&amp;diff=3356"/>
		<updated>2010-12-27T12:42:28Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: /* Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:nano_6g_frt_a.png|500px]]&lt;br /&gt;
[[Image:nano_6g_bck_a.png|500px]]&lt;br /&gt;
==Components==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Red&amp;lt;/span&amp;gt;&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| &lt;br /&gt;
| Toshiba TH58NVG6E2FLA4C&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:cyan&amp;quot;&amp;gt;Cyan&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Apple 33850859 C0E111022&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Orange&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Apple 338S0783-B1 10298HLS&lt;br /&gt;
| Could be the Power Manager? Someone please confirm this.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#e8e838&amp;quot;&amp;gt;Yellow&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 0650 D0UY 027&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Blue&amp;lt;/span&amp;gt;&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8723&lt;br /&gt;
| Apple 339S0104 YGC7 1031 K4X51323P1 YRF 020A3 ARM N2HXHZMP 4 1031&lt;br /&gt;
| Rusty Mercury says it&#039;s a Samsung S5L8723, a step up from the previous Samsung 8730. [http://twitter.com/RustyMercury/status/23268805957 source]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#cf5eea&amp;quot;&amp;gt;Pink&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 35758907 1025 A 04 629749&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
The &amp;quot;Nano&amp;quot; 6G is something entirely new, that doesn&#039;t seem to have much in common with the older generations of the Nano series. We don&#039;t yet know how this device works and if we want to do something with it at all.&amp;lt;br /&amp;gt;&lt;br /&gt;
The red and black wires lead to the battery.&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.ifixit.com/Teardown/iPod-Nano-6th-Generation-Teardown/3563&lt;br /&gt;
Reviews:&lt;br /&gt;
*http://arstechnica.com/apple/reviews/2010/09/6th-generation-ipod-nano.ars&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_6G&amp;diff=3185</id>
		<title>Nano 6G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_6G&amp;diff=3185"/>
		<updated>2010-09-11T21:25:29Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: added a link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:nano_6g_frt_a.png|500px]]&lt;br /&gt;
[[Image:nano_6g_bck_a.png|500px]]&lt;br /&gt;
==Components==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Red&amp;lt;/span&amp;gt;&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| &lt;br /&gt;
| Toshiba TH58NVG6E2FLA4C&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:cyan&amp;quot;&amp;gt;Cyan&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Apple 33850859 C0E111022&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Orange&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Apple 338S0783-B1 10298HLS&lt;br /&gt;
| Could be the Power Manager? Someone please confirm this.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#e8e838&amp;quot;&amp;gt;Yellow&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 0650 D0UY 027&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Blue&amp;lt;/span&amp;gt;&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8723&lt;br /&gt;
| Apple 339S0104 YGC7 1031 K4X51323P1 YRF 020A3 ARM N2HXHZMP 4 1031&lt;br /&gt;
| Rusty Mercury says it&#039;s a Samsung S5L8723, a step up from the previous Samsung 8730. [http://twitter.com/RustyMercury/status/23268805957 source]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#cf5eea&amp;quot;&amp;gt;Pink&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 35758907 1025 A 04 629749&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
The &amp;quot;Nano&amp;quot; 6G is something entirely new, that doesn&#039;t seem to have much in common with the older generations of the Nano series. We don&#039;t yet know how this device works and if we want to do something with it at all.&amp;lt;br /&amp;gt;&lt;br /&gt;
The red and black cables lead to the battery.&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.ifixit.com/Teardown/iPod-Nano-6th-Generation-Teardown/3563&lt;br /&gt;
Reviews:&lt;br /&gt;
*http://arstechnica.com/apple/reviews/2010/09/6th-generation-ipod-nano.ars&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_6G&amp;diff=3184</id>
		<title>Nano 6G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_6G&amp;diff=3184"/>
		<updated>2010-09-09T20:11:54Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: /* Components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:nano_6g_frt_a.png|500px]]&lt;br /&gt;
[[Image:nano_6g_bck_a.png|500px]]&lt;br /&gt;
==Components==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Red&amp;lt;/span&amp;gt;&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| &lt;br /&gt;
| Toshiba TH58NVG6E2FLA4C&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:cyan&amp;quot;&amp;gt;Cyan&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Apple 33850859 C0E111022&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Orange&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Apple 338S0783-B1 10298HLS&lt;br /&gt;
| Could be the Power Manager? Someone please confirm this.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#e8e838&amp;quot;&amp;gt;Yellow&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 0650 D0UY 027&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Blue&amp;lt;/span&amp;gt;&lt;br /&gt;
| CPU&lt;br /&gt;
| Samsung S5L8723&lt;br /&gt;
| Apple 339S0104 YGC7 1031 K4X51323P1 YRF 020A3 ARM N2HXHZMP 4 1031&lt;br /&gt;
| Rusty Mercury says it&#039;s a Samsung S5L8723, a step up from the previous Samsung 8730. [http://twitter.com/RustyMercury/status/23268805957 source]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#cf5eea&amp;quot;&amp;gt;Pink&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 35758907 1025 A 04 629749&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
The &amp;quot;Nano&amp;quot; 6G is something entirely new, that doesn&#039;t seem to have much in common with the older generations of the Nano series. We don&#039;t yet know how this device works and if we want to do something with it at all.&lt;br /&gt;
The red and black cables lead to the battery.&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.ifixit.com/Teardown/iPod-Nano-6th-Generation-Teardown/3563&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Hardware&amp;diff=3180</id>
		<title>Hardware</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Hardware&amp;diff=3180"/>
		<updated>2010-09-09T14:23:08Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a basic comparison of each generation&#039;s main components. For a detailed hardware analysis of a generation, click on it&#039;s link.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Generation !! CPU !! RAM !! size !! Utility flash !! size&lt;br /&gt;
|-&lt;br /&gt;
|[[Nano 1G]]&lt;br /&gt;
|PP5021C-TDF&lt;br /&gt;
|[http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=753&amp;amp;partnum=K4M56163PG K4M56163PG]&lt;br /&gt;
|32MB&lt;br /&gt;
|[http://www.sst.com/products/?inode=41856 SST39WF400A]&lt;br /&gt;
|512kB&lt;br /&gt;
|-&lt;br /&gt;
|[[Nano 2G]]&lt;br /&gt;
|S5L8701&lt;br /&gt;
|[http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=753&amp;amp;partnum=K4M56163PG K4M56163PG]&lt;br /&gt;
|32MB&lt;br /&gt;
|[http://www.sst.com/products/?inode=41422 SST39WF800A]&lt;br /&gt;
|1MB&lt;br /&gt;
|-&lt;br /&gt;
|[[Nano 3G]]&lt;br /&gt;
|S5L8702&lt;br /&gt;
|[http://www.samsung.com/global/system/business/semiconductor/product/2007/11/13/236652ds_k4x56163pi.pdf K4X56163PI]&lt;br /&gt;
|32MB&lt;br /&gt;
|[http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|1MB&lt;br /&gt;
|-&lt;br /&gt;
|[[Nano 4G]]&lt;br /&gt;
|S5L8720&lt;br /&gt;
|Integrated&lt;br /&gt;
|32MB&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|[[Nano 5G]]&lt;br /&gt;
|S5L8730&lt;br /&gt;
|Integrated&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|[[Nano 6G|&amp;quot;Nano&amp;quot; 6G]]&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|[[Classic 1G]]&lt;br /&gt;
|S5L8702&lt;br /&gt;
|[http://www.samsung.com/global/system/business/semiconductor/product/2007/11/13/236652ds_k4x56163pi.pdf K4X56163PI]&lt;br /&gt;
|32MB&lt;br /&gt;
|[http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|1MB&lt;br /&gt;
|-&lt;br /&gt;
|[[Classic 2G]]&lt;br /&gt;
|S5L8702&lt;br /&gt;
|[http://www.samsung.com/global/system/business/semiconductor/product/2007/11/13/236652ds_k4x56163pi.pdf K4X56163PI]&lt;br /&gt;
|32MB&lt;br /&gt;
|[http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|1MB&lt;br /&gt;
|-&lt;br /&gt;
|[[Classic 3G]]&lt;br /&gt;
|S5L8702&lt;br /&gt;
|[http://www.samsung.com/global/system/business/semiconductor/product/2007/11/13/236652ds_k4x56163pi.pdf K4X56163PI]&lt;br /&gt;
|32MB&lt;br /&gt;
|[http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|1MB&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Concerning the detailed generation pages:&lt;br /&gt;
*If you can prove or disprove any of these chip names, please let us know on the mailing list.&lt;br /&gt;
*The sources for the original and annotated PCB scans can found at http://l4n.clustur.com/data/board_imgs.&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Chip analyses&lt;br /&gt;
*http://www2.electronicproducts.com/Apple_iPod_Touch-whatsinside-57.aspx&lt;br /&gt;
*http://www2.electronicproducts.com/Apple_iPhone-whatsinside-4.aspx&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Hardware&amp;diff=3179</id>
		<title>Hardware</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Hardware&amp;diff=3179"/>
		<updated>2010-09-09T14:20:01Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: added the new nano 6g to the list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is just a basic comparison of each generation&#039;s main components. For a detailed hardware analysis of a generation, click on it&#039;s link.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Generation !! CPU !! RAM !! size !! Utility flash !! size&lt;br /&gt;
|-&lt;br /&gt;
|[[Nano 1G]]&lt;br /&gt;
|PP5021C-TDF&lt;br /&gt;
|[http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=753&amp;amp;partnum=K4M56163PG K4M56163PG]&lt;br /&gt;
|32MB&lt;br /&gt;
|[http://www.sst.com/products/?inode=41856 SST39WF400A]&lt;br /&gt;
|512kB&lt;br /&gt;
|-&lt;br /&gt;
|[[Nano 2G]]&lt;br /&gt;
|S5L8701&lt;br /&gt;
|[http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=753&amp;amp;partnum=K4M56163PG K4M56163PG]&lt;br /&gt;
|32MB&lt;br /&gt;
|[http://www.sst.com/products/?inode=41422 SST39WF800A]&lt;br /&gt;
|1MB&lt;br /&gt;
|-&lt;br /&gt;
|[[Nano 3G]]&lt;br /&gt;
|S5L8702&lt;br /&gt;
|[http://www.samsung.com/global/system/business/semiconductor/product/2007/11/13/236652ds_k4x56163pi.pdf K4X56163PI]&lt;br /&gt;
|32MB&lt;br /&gt;
|[http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|1MB&lt;br /&gt;
|-&lt;br /&gt;
|[[Nano 4G]]&lt;br /&gt;
|S5L8720&lt;br /&gt;
|Integrated&lt;br /&gt;
|32MB&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|[[Nano 5G]]&lt;br /&gt;
|S5L8730&lt;br /&gt;
|Integrated&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|[[Nano 6G]]&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|?&lt;br /&gt;
|-&lt;br /&gt;
|[[Classic 1G]]&lt;br /&gt;
|S5L8702&lt;br /&gt;
|[http://www.samsung.com/global/system/business/semiconductor/product/2007/11/13/236652ds_k4x56163pi.pdf K4X56163PI]&lt;br /&gt;
|32MB&lt;br /&gt;
|[http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|1MB&lt;br /&gt;
|-&lt;br /&gt;
|[[Classic 2G]]&lt;br /&gt;
|S5L8702&lt;br /&gt;
|[http://www.samsung.com/global/system/business/semiconductor/product/2007/11/13/236652ds_k4x56163pi.pdf K4X56163PI]&lt;br /&gt;
|32MB&lt;br /&gt;
|[http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|1MB&lt;br /&gt;
|-&lt;br /&gt;
|[[Classic 3G]]&lt;br /&gt;
|S5L8702&lt;br /&gt;
|[http://www.samsung.com/global/system/business/semiconductor/product/2007/11/13/236652ds_k4x56163pi.pdf K4X56163PI]&lt;br /&gt;
|32MB&lt;br /&gt;
|[http://www.sst.com/products/?inode=41340 SST25VF080B]&lt;br /&gt;
|1MB&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Concerning the detailed generation pages:&lt;br /&gt;
*If you can prove or disprove any of these chip names, please let us know on the mailing list.&lt;br /&gt;
*The sources for the original and annotated PCB scans can found at http://l4n.clustur.com/data/board_imgs.&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Chip analyses&lt;br /&gt;
*http://www2.electronicproducts.com/Apple_iPod_Touch-whatsinside-57.aspx&lt;br /&gt;
*http://www2.electronicproducts.com/Apple_iPhone-whatsinside-4.aspx&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_6G&amp;diff=3178</id>
		<title>Nano 6G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_6G&amp;diff=3178"/>
		<updated>2010-09-09T14:10:24Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: made some of the colors more readable&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:nano_6g_frt_a.png|500px]]&lt;br /&gt;
[[Image:nano_6g_bck_a.png|500px]]&lt;br /&gt;
==Components==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Red&amp;lt;/span&amp;gt;&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| &lt;br /&gt;
| Toshiba TH58NVG6E2FLA4C&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:cyan&amp;quot;&amp;gt;Cyan&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Apple 33850859 C0E111022&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Orange&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Apple 338S0783-B1 10298HLS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#e8e838&amp;quot;&amp;gt;Yellow&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 0650 D0UY 027&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Blue&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Apple 339S0104 YGC7 1031 K4X51323P1 YRF 020A3 ARM N2HXHZMP 4 1031&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:#cf5eea&amp;quot;&amp;gt;Pink&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 35758907 1025 A 04 629749&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
The &amp;quot;Nano&amp;quot; 6G is something entirely new, that doesn&#039;t seem to have much in common with the older generations of the Nano series. We don&#039;t yet know how this device works and if we want to do something with it at all.&lt;br /&gt;
The red and black cables lead to the battery.&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.ifixit.com/Teardown/iPod-Nano-6th-Generation-Teardown/3563&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_6G&amp;diff=3177</id>
		<title>Nano 6G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_6G&amp;diff=3177"/>
		<updated>2010-09-09T14:04:55Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: Added Colors to the components table.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:nano_6g_frt_a.png|500px]]&lt;br /&gt;
[[Image:nano_6g_bck_a.png|500px]]&lt;br /&gt;
==Components==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Red&amp;lt;/span&amp;gt;&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| &lt;br /&gt;
| Toshiba TH58NVG6E2FLA4C&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:cyan&amp;quot;&amp;gt;Cyan&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Apple 33850859 C0E111022&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;Orange&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Apple 338S0783-B1 10298HLS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:yellow&amp;quot;&amp;gt;Yellow&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 0650 D0UY 027&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Blue&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Apple 339S0104 YGC7 1031 K4X51323P1 YRF 020A3 ARM N2HXHZMP 4 1031&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;Pink&amp;lt;/span&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 35758907 1025 A 04 629749&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
The &amp;quot;Nano&amp;quot; 6G is something entirely new, that doesn&#039;t seem to have much in common with the older generations of the Nano series. We don&#039;t yet know how this device works and if we want to do something with it at all.&lt;br /&gt;
The red and black cables lead to the battery.&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.ifixit.com/Teardown/iPod-Nano-6th-Generation-Teardown/3563&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_6G&amp;diff=3176</id>
		<title>Nano 6G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_6G&amp;diff=3176"/>
		<updated>2010-09-09T13:51:14Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: /* Components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:nano_6g_frt_a.png|500px]]&lt;br /&gt;
[[Image:nano_6g_bck_a.png|500px]]&lt;br /&gt;
==Components==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Red&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| &lt;br /&gt;
| Toshiba TH58NVG6E2FLA4C&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Cyan&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Apple 33850859 C0E111022&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Orange&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Apple 338S0783-B1 10298HLS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Yellow&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 0650 D0UY 027&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Blue&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Apple 339S0104 YGC7 1031 K4X51323P1 YRF 020A3 ARM N2HXHZMP 4 1031&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Pink&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 35758907 1025 A 04 629749&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
The &amp;quot;Nano&amp;quot; 6G is something entirely new, that doesn&#039;t seem to have much in common with the older generations of the Nano series. We don&#039;t yet know how this device works and if we want to do something with it at all.&lt;br /&gt;
The red and black cables lead to the battery.&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.ifixit.com/Teardown/iPod-Nano-6th-Generation-Teardown/3563&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Nano_6G&amp;diff=3175</id>
		<title>Nano 6G</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Nano_6G&amp;diff=3175"/>
		<updated>2010-09-09T13:48:10Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: Created a page for the new iPod Nano 6G.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:nano_6g_frt_a.png|500px]]&lt;br /&gt;
[[Image:nano_6g_bck_a.png|500px]]&lt;br /&gt;
==Components==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Label !! Component !! Part !! Markings !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Red&lt;br /&gt;
| NAND Flash&lt;br /&gt;
| &lt;br /&gt;
| Toshiba TH58NVG6E2FLA4C 8GB NAND&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Cyan&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Apple 33850859 C0E111022&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Orange&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Apple 338S0783-B1 10298HLS&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Yellow&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 0650 D0UY 027&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Blue&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Apple 339S0104 YGC7 1031 K4X51323P1 YRF 020A3 ARM N2HXHZMP 4 1031&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Pink&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 35758907 1025 A 04 629749&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
The &amp;quot;Nano&amp;quot; 6G is something entirely new, that doesn&#039;t seem to have much in common with the older generations of the Nano series. We don&#039;t yet know how this device works and if we want to do something with it at all.&lt;br /&gt;
The red and black cables lead to the battery.&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
Teardowns:&lt;br /&gt;
*http://www.ifixit.com/Teardown/iPod-Nano-6th-Generation-Teardown/3563&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=File:Nano_6g_bck_a.png&amp;diff=3173</id>
		<title>File:Nano 6g bck a.png</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=File:Nano_6g_bck_a.png&amp;diff=3173"/>
		<updated>2010-09-09T13:35:26Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: This is the back of the logic board of the newly released iPod Nano 6g (the one with multitouch).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the back of the logic board of the newly released iPod Nano 6g (the one with multitouch).&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=File:Nano_6g_frt_a.png&amp;diff=3172</id>
		<title>File:Nano 6g frt a.png</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=File:Nano_6g_frt_a.png&amp;diff=3172"/>
		<updated>2010-09-09T13:34:52Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: This is the front of the logic board of the newly released iPod Nano 6g (the one with multitouch).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the front of the logic board of the newly released iPod Nano 6g (the one with multitouch).&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Firmware_decryption&amp;diff=3170</id>
		<title>Firmware decryption</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Firmware_decryption&amp;diff=3170"/>
		<updated>2010-09-06T13:44:44Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: /* Background */  corrected a typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Background==&lt;br /&gt;
Encrypting the firmware started with the release of iPod 4G. Only the AUPD part is encrypted, it uses RC4 encryption and the key is contained within the firmware. The iPodLinux project has more information about understanding and decrypting it: http://ipodlinux.org/wiki/Flash_Decryption&lt;br /&gt;
&lt;br /&gt;
Starting with [[Nano 2G]], the encryption method changed. The best guess so far is that the encryption is AES-CBC with 128-bit blocks and a 128-bit key. The key isn&#039;t found yet, but it is not needed to decrypt the firmware.&lt;br /&gt;
&lt;br /&gt;
After discovering the notes exploit, it became possible to upload and execute custom code on the ipods. TheSeven wrote an utility (ipodcrypt.py), which allows decrypting parts of the firmware using the iPod&#039;s crypto engine. The utility is being loaded via [[iBugger]] in the iPod&#039;s memory then the encrypted data is being sent. After the decryption process completes, the decrypted data is downloaded.&lt;br /&gt;
&lt;br /&gt;
==ipodcrypt==&lt;br /&gt;
The ipodcrypt utility has the following features:&lt;br /&gt;
&lt;br /&gt;
for [[Nano 2G]]:&lt;br /&gt;
&lt;br /&gt;
*encrypt/decrypt DFU image&lt;br /&gt;
*encrypt/decrypt firmware file contents&lt;br /&gt;
*encrypt/decrypt dump of NOR flash&#039;s contents&lt;br /&gt;
&lt;br /&gt;
for [[Nano 4G]]:&lt;br /&gt;
&lt;br /&gt;
*decrypt firmware file contents&lt;br /&gt;
&lt;br /&gt;
The process of decrypting is taking part on the iPod itself, so you must have a compatible device in order to use the utility. Also, you must run the iBugger utility on the device before using ipodcrypt.&lt;br /&gt;
&lt;br /&gt;
You can find both utilities in the development snapshot, which is located on the iLoader homepage: http://the-seven.tk/ipod/iloader/sourcecode.php&lt;br /&gt;
&lt;br /&gt;
In order to run these utilities, you will need the Python interpreter installed, the pyUSB module and libusb. It is possible to run the utilities on both Windows and Linux.&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
===Windows===&lt;br /&gt;
First you need TheSeven&#039;s iBugger USB driver (http://l4n.clustur.com/data/theseven/releases/iBugger%20Windows%20Driver.7z). It uses libusb-win32 1.1.x. (see notes below)&lt;br /&gt;
&lt;br /&gt;
Next, you need ActivePython (http://www.activestate.com/activepython) or another Python distribution for Windows. You can get ActivePython&#039;s latest version at: http://www.activestate.com/activepython/downloads&lt;br /&gt;
&lt;br /&gt;
You also need [http://pyusb.sourceforge.net/ pyUSB] - a Python module for communicating with USB devices. Its download page is: You can get it from the [http://sourceforge.net/projects/pyusb/files/ download page] or [http://developer.berlios.de/project/showfiles.php?group_id=4354 another mirror]. The 0.x branch is compatible with the libusb version included TheSeven&#039;s iBugger driver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important note&#039;&#039;&#039;: If you are using Windows Vista/7, you&#039;ll need the signed (1.2.x) version of libusb-win32. Otherwise the driver will install (after confirmation that it is unsigned), but it will not load unless you disable driver signature check, which is not recommended.&lt;br /&gt;
&lt;br /&gt;
To use the 1.2.x version, you need to extract in the folder where you extracted the iBugger driver, then overwrite the .dll and .sys with the ones in 1.2.x package. Installing the driver then is as usual.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important note 2&#039;&#039;&#039;: You may need to kill iTunes&#039;s iPod service if you have iTunes installed, and to uninstall the iPod drivers that iTunes installed, before following the above instructions&lt;br /&gt;
===Linux===&lt;br /&gt;
Python is usually included in most distributions, so you don&#039;t need to worry about installing it. If you have easy_install, you can install pyUSB with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
easy_install install pyusb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Otherwise, you need to download it and install it manually as in the Windows instructions.&lt;br /&gt;
&lt;br /&gt;
To install libusb, you need to use your distribution&#039;s package management utility and look for libusb, then install it.&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
(to be added later)&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
http://ipodlinux.org/wiki/Flash_Decryption&lt;br /&gt;
&lt;br /&gt;
http://home.gna.org/linux4nano/download/crypto_synth-1.0.pdf&lt;br /&gt;
&lt;br /&gt;
http://code.google.com/p/iphone-elite/w/list&lt;br /&gt;
&lt;br /&gt;
http://code.google.com/p/chronicdev/w/list&lt;br /&gt;
&lt;br /&gt;
http://wikee.iphwn.org/&lt;br /&gt;
&lt;br /&gt;
http://iphonejtag.blogspot.com/&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=User:Wolftail&amp;diff=3165</id>
		<title>User:Wolftail</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=User:Wolftail&amp;diff=3165"/>
		<updated>2010-09-02T20:42:12Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: Moved some stuff from my profile to the talk page where it belongs. Nothing new.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey, there!&lt;br /&gt;
&lt;br /&gt;
My name is Lala Ionuț, I live in Romania and I own an iPod Classic 1G (160GB) and can&#039;t wait for Rockbox and/or iPodLinux to be available for it. I am willing to do non-destructive testing  in order to help the project.&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=User_talk:Wolftail&amp;diff=3164</id>
		<title>User talk:Wolftail</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=User_talk:Wolftail&amp;diff=3164"/>
		<updated>2010-09-02T20:41:50Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: Moved some stuff from my profile to the talk page where it belongs. Nothing new.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PS: If anyone will read this... Is it possible to update the 1G Classic (160GB) to the 2.0.x firmware of the 2G/3G Classic? (I know that the hardware is almost a perfect match.) I think it could be done by getting an image of the HDD of an iPod Classic with the new software and overwrite it to the older one. Has anyone tried this? Can it be done?&lt;br /&gt;
&lt;br /&gt;
Thank You very much for all your work!&lt;br /&gt;
&lt;br /&gt;
:Yes, this should be possible and in fact we have done something similar with the 4G. One time we copied the contents of a 8GB Nano 4G and gave it to me to put on my 16GB Nano 4G. It booted fine. But the thing is the Classic 2G has some headphone hardware that the 1G does not, and this could cause a crash when booting or using. We are more interested in copying the Classic 2G firmware to the Classic 3G since the 3G ships with firmware that has the notes vulnerability patched. [[User:Cmwslw|Cmwslw]] 05:18, 16 August 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks for the quick reply! I know about the headphone difference but I still hope that those really tiny chips that are added on the motherboard of the Classic 2G aren&#039;t so important that the OS will crash without them. I believe that porting new features to iPods via the original firmware if possible should also be included in this wiki. I do also understand that porting Rockbox on the new iPods is of higher priority and just hope that someone will find some spare time for this. [[User:Wolftail|Wolftail]] 12:55, 16 August 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=User:Wolftail&amp;diff=3127</id>
		<title>User:Wolftail</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=User:Wolftail&amp;diff=3127"/>
		<updated>2010-08-16T12:55:01Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey, there!&lt;br /&gt;
&lt;br /&gt;
My name is Lala Ionuț, I live in Romania and I own an iPod Classic 1G (160GB) and can&#039;t wait for Rockbox and/or iPodLinux to be available for it. I am willing to do non-destructive testing  in order to help the project.&lt;br /&gt;
&lt;br /&gt;
PS: If anyone will read this... Is it possible to update the 1G Classic (160GB) to the 2.0.x firmware of the 2G/3G Classic? (I know that the hardware is almost a perfect match.) I think it could be done by getting an image of the HDD of an iPod Classic with the new software and overwrite it to the older one. Has anyone tried this? Can it be done?&lt;br /&gt;
&lt;br /&gt;
Thank You very much for all your work!&lt;br /&gt;
&lt;br /&gt;
:Yes, this should be possible and in fact we have done something similar with the 4G. One time we copied the contents of a 8GB Nano 4G and gave it to me to put on my 16GB Nano 4G. It booted fine. But the thing is the Classic 2G has some headphone hardware that the 1G does not, and this could cause a crash when booting or using. We are more interested in copying the Classic 2G firmware to the Classic 3G since the 3G ships with firmware that has the notes vulnerability patched. [[User:Cmwslw|Cmwslw]] 05:18, 16 August 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks for the quick reply! I know about the headphone difference but I still hope that those really tiny chips that are added on the motherboard of the Classic 2G aren&#039;t so important that the OS will crash without them. I believe that porting new features to iPods via the original firmware if possible should also be included in this wiki. I do also understand that porting Rockbox on the new iPods is of higher priority and just hope that someone will find some spare time for this. [[User:Wolftail|Wolftail]] 12:55, 16 August 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=User:Wolftail&amp;diff=3123</id>
		<title>User:Wolftail</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=User:Wolftail&amp;diff=3123"/>
		<updated>2010-08-15T18:54:48Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey, there!&lt;br /&gt;
&lt;br /&gt;
My name is Lala Ionuț, I live in Romania and I own an iPod Classic 1G (160GB) and can&#039;t wait for Rockbox and/or iPodLinux to be available for it. I am willing to do non-destructive testing  in order to help the project.&lt;br /&gt;
&lt;br /&gt;
PS: If anyone will read this... Is it possible to update the 1G Classic (160GB) to the 2.0.x firmware of the 2G/3G Classic? (I know that the hardware is almost a perfect match.) I think it could be done by getting an image of the HDD of an iPod Classic with the new software and overwrite it to the older one. Has anyone tried this? Can it be done?&lt;br /&gt;
&lt;br /&gt;
Thank You very much for all your work!&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=User:Wolftail&amp;diff=3122</id>
		<title>User:Wolftail</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=User:Wolftail&amp;diff=3122"/>
		<updated>2010-08-15T18:45:00Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: Created page with &amp;quot;Hey, there!  My name is Lala Ionuț, I live in Romania and I own an iPod Classic 1G (160GB) and can&amp;#039;t wait for Rockbox and/or iPodLinux to be available for it.  PS: If anyone wil...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey, there!&lt;br /&gt;
&lt;br /&gt;
My name is Lala Ionuț, I live in Romania and I own an iPod Classic 1G (160GB) and can&#039;t wait for Rockbox and/or iPodLinux to be available for it.&lt;br /&gt;
&lt;br /&gt;
PS: If anyone will read this... Is it possible to update the 1G Classic (160GB) to the 2.0.x firmware of the 2G/3G Classic? (I know that the hardware is almost a perfect match.) I think it could be done by getting an image of the HDD of an iPod with the new software and overwrite it to the older one. Has anyone tried this? Can it be done?&lt;br /&gt;
&lt;br /&gt;
Thank You very much for all your work!&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Firmware&amp;diff=3120</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Firmware&amp;diff=3120"/>
		<updated>2010-08-15T08:16:57Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: /* Nano 4G */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is about the different parts of the iPod&#039;s firmware. There is also a very basic analysis of the firmware headers. If you are trying to get a copy of the firmware files, please see [[Dumping firmware]] and [[Extracting firmware]]. NOTE: Please excuse the chaotic layout of this article. It is not very comprehensive, but it&#039;s still useful.&lt;br /&gt;
==Nano 2G==&lt;br /&gt;
===osos===&lt;br /&gt;
This is the main firmware image of the iPod. This part has been encrypted ever since the iPod Nano 2G.&lt;br /&gt;
[[Image:IN2G firmware osos header.png|thumb|caption]]&lt;br /&gt;
[[Image:Firmware layout.png|150px]]&lt;br /&gt;
===aupd===&lt;br /&gt;
Here is a comparison between the different aupd partitions of firmware version in the iPod Nano 2G:&lt;br /&gt;
[[Image:IN2G firmware aupd header.png|thumb|caption]]&lt;br /&gt;
[[Image:IN2G cipher aupd diffs.png|500px]]&lt;br /&gt;
===rsrc===&lt;br /&gt;
This is the resource filesystem of the iPod firmware. It is unencrypted and of not much use to this project.&lt;br /&gt;
==Nano 3G==&lt;br /&gt;
The Nano 3G has the same &#039;&#039;osos&#039;&#039;, &#039;&#039;aupd&#039;&#039;, and &#039;&#039;rsrc&#039;&#039; sections as the Nano 2G, but it also has an added &#039;&#039;hash&#039;&#039; section. The &#039;&#039;hash&#039;&#039; section is populated with 0x1800 bytes of 0xFF.&lt;br /&gt;
==Classic 1G (6G)==&lt;br /&gt;
The Classic 1G has the same firmware structure as the Nano 3G. This makes sense because they were released at the same time.&lt;br /&gt;
&lt;br /&gt;
==Nano 4G==&lt;br /&gt;
The Nano 4G kept the &#039;&#039;osos&#039;&#039; but all the old sections were removed. Instead, seven new sections were added:&lt;br /&gt;
&lt;br /&gt;
* Binaries&lt;br /&gt;
** &#039;&#039;diag&#039;&#039; - Diagnostic mode. This depends on EFI modules being loaded so it can&#039;t be booted directly.&lt;br /&gt;
** &#039;&#039;disk&#039;&#039; - Disk mode&lt;br /&gt;
* Bitmaps&lt;br /&gt;
** &#039;&#039;appl&#039;&#039; - Apple logo for booting&lt;br /&gt;
** &#039;&#039;bdhw&#039;&#039; - Bad hardware image&lt;br /&gt;
** &#039;&#039;bdsw&#039;&#039; - Bad software image (Use iTunes to restore)&lt;br /&gt;
** &#039;&#039;lbat&#039;&#039; - Low battery image&lt;br /&gt;
** &#039;&#039;chrg&#039;&#039; - Same as lbat but showing that the iPod is charging&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
http://home.gna.org/linux4nano/download/crypto_synth-1.0.pdf&lt;br /&gt;
&lt;br /&gt;
http://www.ipodlinux.org/wiki/Firmware&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=Firmware&amp;diff=3119</id>
		<title>Firmware</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=Firmware&amp;diff=3119"/>
		<updated>2010-08-15T08:16:03Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: clarified that 3G means Nano 3G&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article is about the different parts of the iPod&#039;s firmware. There is also a very basic analysis of the firmware headers. If you are trying to get a copy of the firmware files, please see [[Dumping firmware]] and [[Extracting firmware]]. NOTE: Please excuse the chaotic layout of this article. It is not very comprehensive, but it&#039;s still useful.&lt;br /&gt;
==Nano 2G==&lt;br /&gt;
===osos===&lt;br /&gt;
This is the main firmware image of the iPod. This part has been encrypted ever since the iPod Nano 2G.&lt;br /&gt;
[[Image:IN2G firmware osos header.png|thumb|caption]]&lt;br /&gt;
[[Image:Firmware layout.png|150px]]&lt;br /&gt;
===aupd===&lt;br /&gt;
Here is a comparison between the different aupd partitions of firmware version in the iPod Nano 2G:&lt;br /&gt;
[[Image:IN2G firmware aupd header.png|thumb|caption]]&lt;br /&gt;
[[Image:IN2G cipher aupd diffs.png|500px]]&lt;br /&gt;
===rsrc===&lt;br /&gt;
This is the resource filesystem of the iPod firmware. It is unencrypted and of not much use to this project.&lt;br /&gt;
==Nano 3G==&lt;br /&gt;
The Nano 3G has the same &#039;&#039;osos&#039;&#039;, &#039;&#039;aupd&#039;&#039;, and &#039;&#039;rsrc&#039;&#039; sections as the Nano 2G, but it also has an added &#039;&#039;hash&#039;&#039; section. The &#039;&#039;hash&#039;&#039; section is populated with 0x1800 bytes of 0xFF.&lt;br /&gt;
==Classic 1G (6G)==&lt;br /&gt;
The Classic 1G has the same firmware structure as the Nano 3G. This makes sense because they were released at the same time.&lt;br /&gt;
&lt;br /&gt;
==Nano 4G==&lt;br /&gt;
The Nano 4G kept the &#039;&#039;osos&#039;&#039; but all the old sections were removed. Instead, seven new sections were added:&lt;br /&gt;
&lt;br /&gt;
* Binaries&lt;br /&gt;
** &#039;&#039;diag&#039;&#039; - Diagnostic mode. This depends on EFI modules being loaded so it can&#039;t be booted directly.&lt;br /&gt;
** &#039;&#039;disk&#039;&#039; - Disk mode&lt;br /&gt;
* Bitmaps&lt;br /&gt;
** &#039;&#039;appl&#039;&#039; - Apple logo for booting&lt;br /&gt;
** &#039;&#039;bdhw&#039;&#039; - Bad hardware image&lt;br /&gt;
** &#039;&#039;bdsw&#039;&#039; - Bad software image (Use iTunes to restore)&lt;br /&gt;
** &#039;&#039;lbat&#039;&#039; - Low battery image** &#039;&#039;chrg&#039;&#039; - Same as lbat but showing that the iPod is charging&lt;br /&gt;
&lt;br /&gt;
==Helpful pages==&lt;br /&gt;
http://home.gna.org/linux4nano/download/crypto_synth-1.0.pdf&lt;br /&gt;
&lt;br /&gt;
http://www.ipodlinux.org/wiki/Firmware&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmBIOS_Monitor_Protocol&amp;diff=3012</id>
		<title>EmBIOS Monitor Protocol</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmBIOS_Monitor_Protocol&amp;diff=3012"/>
		<updated>2010-08-05T20:48:50Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: /* 9: Read from I2C device */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article describes the USB communcation protocol of emBIOS monitor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Endpoints ==&lt;br /&gt;
&lt;br /&gt;
The emBIOS Monitor interface contains 4 bulk endpoints, in the following order:&lt;br /&gt;
* Command OUT Endpoint&lt;br /&gt;
* Command IN Endpoint&lt;br /&gt;
* Data OUT Endpoint&lt;br /&gt;
* Data IN Endpoint&lt;br /&gt;
&lt;br /&gt;
If not stated otherwise, everything is little endian.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General Structure ==&lt;br /&gt;
Each packet send to the Command OUT Endpoint has a 16 byte header. The first 4 bytes, interpreted as a 32bit little endian word, contain the command ID. The meaning of the other bytes depends on the command. For commands that send data to the device, it will immediately follow that header.&lt;br /&gt;
&lt;br /&gt;
After sending a packet to the Command OUT Endpoint, listen on the Command IN Endpoint for a response. The response also has a 16 byte header, followed by an optional data stage, depending on the command. The first 4 bytes of the header, interpreted as a 32bit word, is the status code, the meaning of the other bytes depends on the command.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Status Codes&lt;br /&gt;
|-&lt;br /&gt;
! Status Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || Invalid response, you should bail out when receiving this&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 1 || OK (everything went fine)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 2 || Command not supported&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 3 || Device is busy, retry later (another asynchronous command is already running)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
&lt;br /&gt;
=== 0: Invalid ===&lt;br /&gt;
Never issue this command. It will be rejected with status code 2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 1: Get device information ===&lt;br /&gt;
Use this command to figure out various device properties.&lt;br /&gt;
&lt;br /&gt;
==== Get version information ====&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Requested information type (0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || SVN Revision Number&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 1 || Major version&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 9 || style=&amp;quot;text-align:right&amp;quot; | 1 || Minor version&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 10 || style=&amp;quot;text-align:right&amp;quot; | 1 || Patch version&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 11 || style=&amp;quot;text-align:right&amp;quot; | 1 || Software Type ID&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Device Type ID&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Software Types&lt;br /&gt;
|-&lt;br /&gt;
! Software Type ID !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || invalid&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 1 || emBIOS Debugger&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Hardware Types&lt;br /&gt;
|-&lt;br /&gt;
! Software Type ID !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || invalid&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0x47324e49 || iPod Nano 2G&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0x47334e49 || iPod Nano 3G&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0x47344e49 || iPod Nano 4G&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0x4c435049 || iPod Classic&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Get packet size information ====&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Requested information type (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 2 || Maximum Command OUT Endpoint packet size&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 6 || style=&amp;quot;text-align:right&amp;quot; | 2 || Maximum Command IN Endpoint packet size&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Maximum Data OUT Endpoint packet size&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Maximum Data IN Endpoint packet size&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2: Reset ===&lt;br /&gt;
Reboot the device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (2)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Type: Reboot forcibly (0) / Reboot gracefully (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Graceful reboots are asynchronous commands. Forced reboots won&#039;t send a response packet before rebooting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1 or 3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The response indicates that the request has been acknowledged, however there might be substantial delay before device actually reboots.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 3: Power off ===&lt;br /&gt;
Power the device off.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Type: Power off forcibly (0) / Shut down gracefully (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Both variants are asynchronous commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1 or 3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The response indicates that the request has been acknowledged, however there might be substantial delay before device actually powers off.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 4: Read memory ===&lt;br /&gt;
Use this command to read small amouts of memory through the command pipe. You may not request a transfer that would exceed the maximum Command IN Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (4)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to read from&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be read&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The data read from memory&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5: Write memory ===&lt;br /&gt;
Use this command to write small amouts of memory through the command pipe. You may not request a transfer that would exceed the maximum Command OUT Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (5)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to write to&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to write&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The data to be written&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 6: Read memory using DMA ===&lt;br /&gt;
Use this command to read large amouts of memory through the data pipe. You may not request a transfer that would exceed the maximum Data IN Endpoint packet size.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (6)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to read from&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be read&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After receiving the response, read the requested data from the Data IN Endpoint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 7: Write memory using DMA ===&lt;br /&gt;
Use this command to read large amouts of memory through the data pipe. You may not request a transfer that would exceed the maximum Data OUT Endpoint packet size.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (7)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to write to&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be written&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After receiving the response, send the data to be written to the Data OUT Endpoint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 8: Read from I2C device ===&lt;br /&gt;
Use this command to read from an I2C slave. You may not request a transfer that would exceed the maximum Command IN Endpoint packet size (including the header) or 255 bytes (excluding the header), whichever is smaller.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (8)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 1 || I2C bus index&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 5 || style=&amp;quot;text-align:right&amp;quot; | 1 || I2C slave address (in the upper 7 bits)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 6 || style=&amp;quot;text-align:right&amp;quot; | 1 || Start address on the I2C device&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 7 || style=&amp;quot;text-align:right&amp;quot; | 1 || Number of bytes to be read&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
I2C transactions are asynchronous commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1 or 3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The data read from the I2C device (undefined if the status code is not 1)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 9: Write from I2C device ===&lt;br /&gt;
Use this command to write to an I2C slave. You may not request a transfer that would exceed the maximum Command OUT Endpoint packet size (including the header) or 255 bytes (excluding the header), whichever is smaller.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (8)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 1 || I2C bus index&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 5 || style=&amp;quot;text-align:right&amp;quot; | 1 || I2C slave address (in the upper 7 bits)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 6 || style=&amp;quot;text-align:right&amp;quot; | 1 || Start address on the I2C device&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 7 || style=&amp;quot;text-align:right&amp;quot; | 1 || Number of bytes to be written&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The data to be written to the I2C device&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
I2C transactions are asynchronous commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1 or 3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 10: Read from the USB console ===&lt;br /&gt;
Use this command to get data written to the USB console. You may not request a transfer that would exceed the maximum Command IN Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
As long as the console application is running, make sure to issue this request at least once a second. Otherwise the console might start dropping data and inserting an &amp;quot;\n\n[overflowed]\n\n&amp;quot; mark. If you can&#039;t receive any data but need to keep the console from dropping data, issue zero-length read requests.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (10)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes requested&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Actual number of valid response bytes&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Size of the on-device USB console read buffer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes still waiting in the on-device USB console read buffer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || Valid console data padded with undefined data to meet the requested size&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 11: Write to the USB console ===&lt;br /&gt;
Use this command to write data to the USB console. You may not request a transfer that would exceed the maximum Command OUT Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (10)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be written&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || Data to be written&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Actual number of bytes written (the remainder will have to be resent)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Size of the on-device USB console write buffer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes still free in the on-device USB console write buffer&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
	<entry>
		<id>https://freemyipod.org/index.php?title=EmBIOS_Monitor_Protocol&amp;diff=3011</id>
		<title>EmBIOS Monitor Protocol</title>
		<link rel="alternate" type="text/html" href="https://freemyipod.org/index.php?title=EmBIOS_Monitor_Protocol&amp;diff=3011"/>
		<updated>2010-08-05T20:47:48Z</updated>

		<summary type="html">&lt;p&gt;Wolftail: /* 5: Read memory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article describes the USB communcation protocol of emBIOS monitor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Endpoints ==&lt;br /&gt;
&lt;br /&gt;
The emBIOS Monitor interface contains 4 bulk endpoints, in the following order:&lt;br /&gt;
* Command OUT Endpoint&lt;br /&gt;
* Command IN Endpoint&lt;br /&gt;
* Data OUT Endpoint&lt;br /&gt;
* Data IN Endpoint&lt;br /&gt;
&lt;br /&gt;
If not stated otherwise, everything is little endian.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General Structure ==&lt;br /&gt;
Each packet send to the Command OUT Endpoint has a 16 byte header. The first 4 bytes, interpreted as a 32bit little endian word, contain the command ID. The meaning of the other bytes depends on the command. For commands that send data to the device, it will immediately follow that header.&lt;br /&gt;
&lt;br /&gt;
After sending a packet to the Command OUT Endpoint, listen on the Command IN Endpoint for a response. The response also has a 16 byte header, followed by an optional data stage, depending on the command. The first 4 bytes of the header, interpreted as a 32bit word, is the status code, the meaning of the other bytes depends on the command.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Status Codes&lt;br /&gt;
|-&lt;br /&gt;
! Status Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || Invalid response, you should bail out when receiving this&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 1 || OK (everything went fine)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 2 || Command not supported&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 3 || Device is busy, retry later (another asynchronous command is already running)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
&lt;br /&gt;
=== 0: Invalid ===&lt;br /&gt;
Never issue this command. It will be rejected with status code 2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 1: Get device information ===&lt;br /&gt;
Use this command to figure out various device properties.&lt;br /&gt;
&lt;br /&gt;
==== Get version information ====&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Requested information type (0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || SVN Revision Number&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 1 || Major version&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 9 || style=&amp;quot;text-align:right&amp;quot; | 1 || Minor version&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 10 || style=&amp;quot;text-align:right&amp;quot; | 1 || Patch version&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 11 || style=&amp;quot;text-align:right&amp;quot; | 1 || Software Type ID&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Device Type ID&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Software Types&lt;br /&gt;
|-&lt;br /&gt;
! Software Type ID !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || invalid&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 1 || emBIOS Debugger&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Hardware Types&lt;br /&gt;
|-&lt;br /&gt;
! Software Type ID !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || invalid&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0x47324e49 || iPod Nano 2G&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0x47334e49 || iPod Nano 3G&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0x47344e49 || iPod Nano 4G&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0x4c435049 || iPod Classic&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Get packet size information ====&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Requested information type (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 2 || Maximum Command OUT Endpoint packet size&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 6 || style=&amp;quot;text-align:right&amp;quot; | 2 || Maximum Command IN Endpoint packet size&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Maximum Data OUT Endpoint packet size&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Maximum Data IN Endpoint packet size&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2: Reset ===&lt;br /&gt;
Reboot the device.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (2)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Type: Reboot forcibly (0) / Reboot gracefully (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Graceful reboots are asynchronous commands. Forced reboots won&#039;t send a response packet before rebooting.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1 or 3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The response indicates that the request has been acknowledged, however there might be substantial delay before device actually reboots.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 3: Power off ===&lt;br /&gt;
Power the device off.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Type: Power off forcibly (0) / Shut down gracefully (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Both variants are asynchronous commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1 or 3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The response indicates that the request has been acknowledged, however there might be substantial delay before device actually powers off.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 4: Read memory ===&lt;br /&gt;
Use this command to read small amouts of memory through the command pipe. You may not request a transfer that would exceed the maximum Command IN Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (4)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to read from&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be read&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The data read from memory&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5: Write memory ===&lt;br /&gt;
Use this command to write small amouts of memory through the command pipe. You may not request a transfer that would exceed the maximum Command OUT Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (5)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to write to&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to write&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The data to be written&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 6: Read memory using DMA ===&lt;br /&gt;
Use this command to read large amouts of memory through the data pipe. You may not request a transfer that would exceed the maximum Data IN Endpoint packet size.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (6)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to read from&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be read&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After receiving the response, read the requested data from the Data IN Endpoint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 7: Write memory using DMA ===&lt;br /&gt;
Use this command to read large amouts of memory through the data pipe. You may not request a transfer that would exceed the maximum Data OUT Endpoint packet size.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (7)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Memory address to write to&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be written&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After receiving the response, send the data to be written to the Data OUT Endpoint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 8: Read from I2C device ===&lt;br /&gt;
Use this command to read from an I2C slave. You may not request a transfer that would exceed the maximum Command IN Endpoint packet size (including the header) or 255 bytes (excluding the header), whichever is smaller.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (8)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 1 || I2C bus index&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 5 || style=&amp;quot;text-align:right&amp;quot; | 1 || I2C slave address (in the upper 7 bits)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 6 || style=&amp;quot;text-align:right&amp;quot; | 1 || Start address on the I2C device&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 7 || style=&amp;quot;text-align:right&amp;quot; | 1 || Number of bytes to be read&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
I2C transactions are asynchronous commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1 or 3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The data read from the I2C device (undefined if the status code is not 1)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 9: Read from I2C device ===&lt;br /&gt;
Use this command to write to an I2C slave. You may not request a transfer that would exceed the maximum Command OUT Endpoint packet size (including the header) or 255 bytes (excluding the header), whichever is smaller.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (8)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 1 || I2C bus index&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 5 || style=&amp;quot;text-align:right&amp;quot; | 1 || I2C slave address (in the upper 7 bits)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 6 || style=&amp;quot;text-align:right&amp;quot; | 1 || Start address on the I2C device&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 7 || style=&amp;quot;text-align:right&amp;quot; | 1 || Number of bytes to be written&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || The data to be written to the I2C device&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
I2C transactions are asynchronous commands.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1 or 3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 12 || Undefined&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 10: Read from the USB console ===&lt;br /&gt;
Use this command to get data written to the USB console. You may not request a transfer that would exceed the maximum Command IN Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
As long as the console application is running, make sure to issue this request at least once a second. Otherwise the console might start dropping data and inserting an &amp;quot;\n\n[overflowed]\n\n&amp;quot; mark. If you can&#039;t receive any data but need to keep the console from dropping data, issue zero-length read requests.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (10)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes requested&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Actual number of valid response bytes&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Size of the on-device USB console read buffer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes still waiting in the on-device USB console read buffer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || Valid console data padded with undefined data to meet the requested size&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 11: Write to the USB console ===&lt;br /&gt;
Use this command to write data to the USB console. You may not request a transfer that would exceed the maximum Command OUT Endpoint packet size (including the header).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Command Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Command ID (10)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes to be written&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 8 || Should be zero&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 16 || style=&amp;quot;text-align:right&amp;quot; | variable || Data to be written&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable prettytable&amp;quot;&lt;br /&gt;
|+ Response Packet&lt;br /&gt;
|-&lt;br /&gt;
! Offset !! Size (bytes) !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 0 || style=&amp;quot;text-align:right&amp;quot; | 4 || Status Code (1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 4 || style=&amp;quot;text-align:right&amp;quot; | 4 || Actual number of bytes written (the remainder will have to be resent)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 8 || style=&amp;quot;text-align:right&amp;quot; | 4 || Size of the on-device USB console write buffer&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right&amp;quot; | 12 || style=&amp;quot;text-align:right&amp;quot; | 4 || Number of bytes still free in the on-device USB console write buffer&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wolftail</name></author>
	</entry>
</feed>