Quirkbot Arduino AVR Board
- Install node dependencies:
```
npm install`
- Use node version 10 (tested with 14 and it doesn't work):`
nvm use 10package.json
- Update the version in `
- Run:`
npm run gulp -- build`
- When you are completely satisfied with the deployed release, run:`
npm publish
- Create a git tag.
- Make a manual Github release and upload the generated _quirkbot-arduino-hardware-*.zip_.
- Make sure to update the Unofficial list of 3rd party boards support urls.
Check what is the latest version at the package index.
You need to patch the D_CONFIG macro from USBCore.h so it reports the board as self powered and with a maximum consumption of 100mA.``
#define D_CONFIG(_totalLength,_interfaces) \
{ 9, 2, _totalLength,_interfaces, 1, 0, USB_CONFIG_SELF_POWERED | USB_CONFIG_REMOTE_WAKEUP, USB_CONFIG_POWER_MA(USB_CONFIG_POWER) }
You need to patch CDC.cpp auto-reset routine. Add the line for (;;); right after the wdt_enable(WDTO_120MS);:``
// Store boot key
(uint16_t )magic_key_pos = MAGIC_KEY;
// Save the watchdog state in case the reset is aborted.
wdtcsr_save = WDTCSR;
wdt_enable(WDTO_120MS);
for (;;); // add this line
You need to patch USBCore.cpp USB_Send function. We want to remove the 250
timeout completely.
Replace the block:
``
u8 n = USB_SendSpace(ep);
if (n == 0)
{
if (!(--timeout))
return -1;
delay(1);
continue;
}`
With:`
u8 n = USB_SendSpace(ep);
if (n == 0)
{
return -1;
}
##### Wire
Copied from Arduino AVR Boards.
*(*)`Check what is the latest version at the package index.##### Servo
From git - https://github.com/Quirkbot/Servo
##### Keyboard
From git - https://github.com/Quirkbot/Keyboard
##### Mouse
From git - https://github.com/Quirkbot/Mouse
##### MIDIUSB
From git - https://github.com/Quirkbot/MIDIUSB