Commit Graph

844 Commits

Author SHA1 Message Date
László Monda
c46dcad490 Use reenumerate.js instead of jump-to-bootloader.js and make left/blhost-unix.sh handle argument related errors. 2017-10-23 16:52:15 +02:00
László Monda
ab807cd0c8 Make sendKbootCommand() accept various command types, not only reset. 2017-10-23 01:19:19 +02:00
László Monda
92ee3b5606 Add KBOOT I2C slave driver, its related USB command, and make the firmware updater script of the left half successfully reset the left half after firmware update. 2017-10-22 02:17:43 +02:00
László Monda
e57d199b40 Move FIXED_BUSPAL_BOOTLOADER to buspal/command.c 2017-10-21 03:53:01 +02:00
László Monda
95faf64b76 Remove the now unused FORCE_BUSPAL macro. 2017-10-21 03:50:07 +02:00
László Monda
89fef3d933 Upon receiving the reset BusPal command, reset the MCU and reenumerate in normal keyboard mode. 2017-10-21 01:29:05 +02:00
László Monda
25f8017879 Get rid of the now obsoleted bootloader_config.h 2017-10-20 00:52:32 +02:00
László Monda
968c6c0416 Call NVIC_SystemReset() instead of custom code. 2017-10-20 00:34:01 +02:00
László Monda
3d46584b79 Don't try to npm install the dependencies of jump-to-bootloader.js but rather display instructions. 2017-10-20 00:31:06 +02:00
László Monda
37c90cc4a7 Fix indentation. 2017-10-17 00:30:03 +02:00
László Monda
b3e025f443 Make reenumerate() set Wormhole.timeoutMs based on GenericHidInBuffer+2 2017-10-16 23:26:37 +02:00
László Monda
53cb8aa129 Delete armgcc build scripts because they aren't planned to be used anymore. 2017-10-14 13:04:39 +02:00
László Monda
0b120a3286 Fix generic HID descriptor enumeration error by making UsbGenericHidReportDescriptor extern. 2017-10-13 22:49:09 +02:00
László Monda
d4200524d7 Make the firmware depend of the wormhole.[ch] files of the bootloader. Remove local wormhole.[ch] files. 2017-10-13 22:09:52 +02:00
László Monda
ef34094004 Add jump to slave bootloader command. 2017-10-12 19:57:41 +02:00
László Monda
302a750621 Improve file according to our coding standards. 2017-10-07 16:37:20 +02:00
László Monda
9f411dc1d4 Throw ParserError_InvalidKeymapCount if keymapCount == 0. 2017-10-06 23:37:05 +02:00
László Monda
fd7f2c3b25 Expose the currently attached module ids via getKeyboardState() 2017-10-05 20:53:15 +02:00
László Monda
8c067b9190 Use UhkModuleDriverId_* enum values instead of magic numbers wherever possible. 2017-10-05 20:36:29 +02:00
László Monda
bea13f063a UpperCamelCase UhkModuleStates now that it's a global. 2017-10-05 20:27:57 +02:00
László Monda
9842a6ff60 Merge UhkModuleVars into uhkModuleStates. Also make uhkModuleStates globally accessible because it must be accessed by other parts of the firmware, so it's unpractical to keep it private and write accessor functions for it. 2017-10-05 20:18:57 +02:00
László Monda
f8e83b139d Rerequest transfer if CRC is invalid. 2017-10-05 20:02:12 +02:00
László Monda
6be45c4521 Add uhk_module_state_t->isEnumerated and maintain its state. 2017-10-05 19:56:26 +02:00
László Monda
a9ba8a1907 Remove redundant module members. 2017-10-05 19:51:15 +02:00
László Monda
96eb2ef7a3 Make slaves send their protocol version to the master. 2017-10-05 17:55:59 +02:00
László Monda
bd76fb44c2 Make slaves send their module id to the master. 2017-10-05 17:26:10 +02:00
László Monda
21beb59cb6 Add merge sensor state to getKeyboardState() 2017-10-05 14:21:37 +02:00
László Monda
3ed3272fa3 Write the validated user config area to the EEPROM, not the staging area. 2017-10-05 09:12:50 +02:00
László Monda
377fe4a2b2 Make EEPROM transfers receive an operation and a buffer id parameter. This allows reading and writing both staging and validated user configurations which will aid future debugging. This API is also cleaner. 2017-10-05 02:45:22 +02:00
László Monda
259f4d3299 Add config_buffer_id_t. 2017-10-04 23:57:43 +02:00
László Monda
8e420f8592 Rename and rearrange some variables in config_globals.c for better readability. 2017-10-04 22:39:40 +02:00
László Monda
63674e02b7 Now rename the other guard macro, too. I thought it was renamed by the IDE. 2017-10-04 22:36:27 +02:00
László Monda
e27fb83693 Rename guard macro according to the filename. 2017-10-04 22:35:17 +02:00
László Monda
4295793fb9 Add ATTR_* macros in the newly created attributes.h and use them wherever possible for improved readability. 2017-10-04 22:26:48 +02:00
László Monda
f348aec97a Rename UserConfigBuffer to ValidatedUserConfigBuffer. 2017-10-04 22:10:55 +02:00
László Monda
9ecdfc0b71 Improve the readability of ApplyConfig() 2017-10-04 22:06:45 +02:00
László Monda
af52c017d8 No need to assign a value to I2C_WATCHDOG. Just define it. 2017-10-04 13:02:40 +02:00
László Monda
316602bb02 Rename the obsoleted LED_DRIVER_FORCE_UPDATE macro to LED_DRIVER_STRESS_TEST. 2017-10-04 12:59:05 +02:00
László Monda
6658d62805 Group module phases. 2017-10-04 02:52:53 +02:00
László Monda
c707f0e408 Transfer a synchronization message to make I2C recovery more robust. 2017-10-04 02:24:34 +02:00
László Monda
efb0f982d2 Only try to recover I2C if SDA is low. 2017-10-04 01:22:22 +02:00
László Monda
2027940b4c Use the correct I2C_MAIN_BUS_{SDA,SCL}{PORT,PIN} macros at the right spots. 2017-10-04 01:04:56 +02:00
László Monda
e5595bc757 Extract I2C recovery code to recoverI2c() 2017-10-03 23:59:27 +02:00
László Monda
72812724ef Now do send a STOP condition at the end of the I2C recovery which might make it more robust. 2017-10-03 23:37:16 +02:00
László Monda
1daf43b751 Set SDA as GPIO upon trying to recovering I2C, not just SDL. 2017-10-03 23:23:26 +02:00
László Monda
2804d3e447 Don't cycle SDA just before initialzing I2C. Merely pull it high to generate a STOP condition. 2017-10-03 22:05:42 +02:00
László Monda
ff1d5dffaa Cycle through the I2C clock by using 20 cycles instead of 16. Should be a bit more reliable, although I can't see a definite improvement. 2017-10-03 21:56:08 +02:00
László Monda
5de396bb68 Don't mess around with SDA and SCL before cycling through the clock because it seems redundant. 2017-10-03 21:37:35 +02:00
László Monda
7af8042c93 Fine tune delay to match the I2C peripheral driven at 100kHz. 2017-10-03 21:06:04 +02:00
László Monda
51a9acbb68 Extract delay() from InitI2cMainBus() 2017-10-03 20:54:05 +02:00