Replace the vague step about grounding with one that says to connect a USB cable and explain its purpose.
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Flashing firmware
 | |
| 
 | |
| ## Internal programmer
 | |
| 
 | |
| Use this method for flashing a system already running System76 EC.
 | |
| 
 | |
| This will trigger a watchdog reset causing the system to immediately power off.
 | |
| Save and close all applications before flashing.
 | |
| 
 | |
| ```
 | |
| make BOARD=<vendor>/<model> flash_internal
 | |
| ```
 | |
| 
 | |
| ## External programmer
 | |
| 
 | |
| Use this method for first-time flashing or flashing a bricked controller.
 | |
| 
 | |
| This requires:
 | |
| 
 | |
| - [A configured Mega 2560](./mega2560.md): For programming the EC itself
 | |
| - A USB cable: For creating a common ground and providing power
 | |
|     - USB-C is recommended, but USB-A will work as well
 | |
| - A second computer: For building and flashing the firmware
 | |
| 
 | |
| **The system must not have any power!**
 | |
| 
 | |
| 1. Turn off the laptop
 | |
| 2. Unplug the AC adapter
 | |
| 3. Remove the bottom panel
 | |
| 4. Disconnect the battery
 | |
| 5. Disconnect the keyboard from its port
 | |
| 6. Replace the bottom panel and flip the laptop back over
 | |
| 7. Connect the USB cable from the laptop to the host machine
 | |
| 8. Connect the Mega 2560 to the host machine
 | |
| 9. Attach the programmer to the keyboard port
 | |
| 10. Flash the firmware
 | |
| 
 | |
| ```
 | |
| make BOARD=<vendor>/<model> flash_external
 | |
| ```
 |