Fixing default ErgoDox layout and adding FlashMode button
- Adds proper flashMode support for all keyboards and microcontrollers (usb and serial) - flashModeEnabled must be set to 1 otherwise it will only show an error * This is on purpose (somewhat dangerous feature as it allows remote flashing) - Capability cleanup
This commit is contained in:
parent
1cbc175551
commit
9c52fb32fa
11 changed files with 148 additions and 62 deletions
|
@ -34,6 +34,7 @@
|
|||
// Project Includes
|
||||
#include <Lib/OutputLib.h>
|
||||
#include <print.h>
|
||||
#include <kll_defs.h>
|
||||
|
||||
// Local Includes
|
||||
#include "usb_dev.h"
|
||||
|
@ -872,6 +873,14 @@ void usb_tx( uint32_t endpoint, usb_packet_t *packet )
|
|||
|
||||
void usb_device_reload()
|
||||
{
|
||||
if ( flashModeEnabled_define == 0 )
|
||||
{
|
||||
print( NL );
|
||||
warn_print("flashModeEnabled not set, cancelling firmware reload...");
|
||||
info_msg("Set flashModeEnabled to 1 in your kll configuration.");
|
||||
return;
|
||||
}
|
||||
|
||||
// MCHCK
|
||||
#if defined(_mk20dx128vlf5_)
|
||||
|
||||
|
@ -882,7 +891,7 @@ void usb_device_reload()
|
|||
PORTA_PCR3 = PORT_PCR_PFE | PORT_PCR_MUX(1); // Internal pull-up
|
||||
|
||||
// Check for jumper
|
||||
if ( GPIOA_PDIR & (1<<3) )
|
||||
if ( GPIOA_PDIR & (1<<3) && flashModeEnabled_define != 0 )
|
||||
{
|
||||
print( NL );
|
||||
warn_print("Security jumper not present, cancelling firmware reload...");
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
Name = pjrcUSBCapabilities;
|
||||
Version = 0.5;
|
||||
Version = 0.6;
|
||||
Author = "HaaTa (Jacob Alexander) 2014-2015";
|
||||
KLL = 0.3b;
|
||||
KLL = 0.3c;
|
||||
|
||||
# Modified Date
|
||||
Date = 2015-07-12;
|
||||
Date = 2015-08-21;
|
||||
|
||||
|
||||
# Output capabilities
|
||||
|
@ -21,3 +21,12 @@ kbdProtocolNKRO => Output_kbdProtocolNKRO_capability();
|
|||
keyboardLocale => KeyboardLocale_define;
|
||||
keyboardLocale = 0;
|
||||
|
||||
# Bootloader Mode capability
|
||||
# XXX
|
||||
# By default this is disabled on purpose
|
||||
# It is a large security hazard
|
||||
flashModeEnabled => flashModeEnabled_define;
|
||||
flashModeEnabled = 0;
|
||||
|
||||
flashMode => Output_flashMode_capability();
|
||||
|
||||
|
|
|
@ -484,6 +484,19 @@ void Output_usbCodeSend_capability( uint8_t state, uint8_t stateType, uint8_t *a
|
|||
}
|
||||
}
|
||||
|
||||
void Output_flashMode_capability( uint8_t state, uint8_t stateType, uint8_t *args )
|
||||
{
|
||||
// Display capability name
|
||||
if ( stateType == 0xFF && state == 0xFF )
|
||||
{
|
||||
print("Output_flashMode(usbCode)");
|
||||
return;
|
||||
}
|
||||
|
||||
// Start flash mode
|
||||
Output_firmwareReload();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ----- Functions -----
|
||||
|
|
|
@ -84,20 +84,6 @@ extern uint8_t Output_DebugMode; // 0 - Debug disabled, 1 - Debug enab
|
|||
|
||||
|
||||
|
||||
// ----- Capabilities -----
|
||||
|
||||
// Output capabilities
|
||||
void Output_consCtrlSend_capability( uint8_t state, uint8_t stateType, uint8_t *args );
|
||||
void Output_noneSend_capability( uint8_t state, uint8_t stateType, uint8_t *args );
|
||||
void Output_sysCtrlSend_capability( uint8_t state, uint8_t stateType, uint8_t *args );
|
||||
void Output_usbCodeSend_capability( uint8_t state, uint8_t stateType, uint8_t *args );
|
||||
|
||||
// Configuration capabilities
|
||||
void Output_kbdProtocolBoot_capability( uint8_t state, uint8_t stateType, uint8_t *args );
|
||||
void Output_kbdProtocolNKRO_capability( uint8_t state, uint8_t stateType, uint8_t *args );
|
||||
|
||||
|
||||
|
||||
// ----- Functions -----
|
||||
|
||||
void Output_setup();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue