~ruther/qmk_firmware

035e7fdb8ba2e4533c809b2dfe0f15ea7116c508 — jack 3 years ago f3d52d8
Add boardsource/lulu RP2040 support (#18200)

by waffle87
A keyboards/boardsource/lulu/avr/info.json => keyboards/boardsource/lulu/avr/info.json +21 -0
@@ 0,0 1,21 @@
{
  "build": {
    "lto": true
  },
  "development_board": "elite_c",
  "matrix_pins": {
    "cols": ["F6", "F7", "B1", "B3", "B2", "B6"],
    "rows": ["C6", "D7", "E6", "B4", "B5"]
  },
  "split": {
    "soft_serial_pin": "D2"
  },
  "rgblight": {
     "pin": "D3"
  },
  "encoder": {
    "rotary": [
      { "pin_a": "F0", "pin_b": "F1" }
    ]
  }
}

A keyboards/boardsource/lulu/avr/rules.mk => keyboards/boardsource/lulu/avr/rules.mk +1 -0
@@ 0,0 1,1 @@
# This file intentionally left blank

M keyboards/boardsource/lulu/config.h => keyboards/boardsource/lulu/config.h +0 -2
@@ 2,8 2,6 @@
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once
#include "config_common.h"
#define RGB_DI_PIN D3
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150
#define DRIVER_LED_TOTAL 70
#define RGB_MATRIX_SPLIT { 35, 35 }

M keyboards/boardsource/lulu/info.json => keyboards/boardsource/lulu/info.json +7 -15
@@ 2,11 2,7 @@
  "manufacturer": "Boardsource",
  "keyboard_name": "lulu",
  "maintainer": "waffle87",
  "bootloader": "atmel-dfu",
  "diode_direction": "COL2ROW",
  "build": {
    "lto": true
  },
  "features": {
    "bootmagic": true,
    "extrakey": true,


@@ 15,11 11,6 @@
    "rgb_matrix": true,
    "oled": true
  },
  "matrix_pins": {
    "cols": ["F6", "F7", "B1", "B3", "B2", "B6"],
    "rows": ["C6", "D7", "E6", "B4", "B5"]
  },
  "processor": "atmega32u4",
  "url": "https://boardsource.xyz/projects/60de24d6847112054777bbdd",
  "usb": {
    "device_version": "1.0.0",


@@ 27,16 18,17 @@
    "vid": "0x4273"
  },
  "split": {
    "enabled": true,
    "soft_serial_pin": "D2"
    "enabled": true
  },
  "encoder": {
    "enabled": true,
    "rotary": [
      { "pin_a": "F0", "pin_b": "F1" }
    ]
    "enabled": true
  },
  "matrix_size": {
     "cols": 6,
     "rows": 10
  },
  "rgb_matrix": {
    "driver": "WS2812",
    "layout": [
      { "flags": 2, "x": 86, "y": 55 },
      { "flags": 2, "x": 51, "y": 55 },

M keyboards/boardsource/lulu/readme.md => keyboards/boardsource/lulu/readme.md +10 -3
@@ 12,13 12,20 @@ The lulu is what the ergo community has needed for a long time, a high-end aesth

Make example for this keyboard (after setting up your build environment):

    make boardsource/lulu:default
    make boardsource/lulu/rp2040:default
    make boardsource/lulu/avr:default

Flashing example for this keyboard:

    make boardsource/lulu:default:flash
    make boardsource/lulu/rp2040:default:flash
    make boardsource/lulu/avr:default:flash

Reset keyboard by holding down top left key while you plug in the usb cable. Or by pushing the reset switch on the pcb.

Compile `rp2040` firmware if you purchased PCB in lulu group buy (integrated microcontroller).
Compile `avr` firmware if your PCB uses a drop-in microcontroller like Pro Micro.


Enter bootloader by holding down the upper outer key while you plug in the usb cable, or by pushing the reset switch on the pcb.


See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

A keyboards/boardsource/lulu/rp2040/config.h => keyboards/boardsource/lulu/rp2040/config.h +11 -0
@@ 0,0 1,11 @@
// Copyright 2022 jack (@waffle87)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U
#define SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_TX_PIN GP0
#define SERIAL_USART_RX_PIN GP1
#define I2C_DRIVER I2CD2
#define I2C1_SDA_PIN GP22
#define I2C1_SCL_PIN GP23

A keyboards/boardsource/lulu/rp2040/halconf.h => keyboards/boardsource/lulu/rp2040/halconf.h +5 -0
@@ 0,0 1,5 @@
// Copyright 2022 jack (@waffle87)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define HAL_USE_I2C TRUE
#include_next <halconf.h>

A keyboards/boardsource/lulu/rp2040/info.json => keyboards/boardsource/lulu/rp2040/info.json +17 -0
@@ 0,0 1,17 @@
{
  "bootloader": "rp2040",
  "matrix_pins": {
    "cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7"],
    "rows": ["GP14", "GP15", "GP16", "GP17", "GP18"]
  },
  "processor": "RP2040",
  "rgblight": {
     "pin": "GP29",
     "led_count": 70
  },
  "encoder": {
    "rotary": [
      { "pin_a": "GP8", "pin_b": "GP9" }
    ]
  }
}

A keyboards/boardsource/lulu/rp2040/mcuconf.h => keyboards/boardsource/lulu/rp2040/mcuconf.h +6 -0
@@ 0,0 1,6 @@
// Copyright 2022 jack (@waffle87)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include_next <mcuconf.h>
#undef RP_I2C_USE_I2C1
#define RP_I2C_USE_I2C1 TRUE

A keyboards/boardsource/lulu/rp2040/rules.mk => keyboards/boardsource/lulu/rp2040/rules.mk +2 -0
@@ 0,0 1,2 @@
SERIAL_DRIVER = vendor
WS2812_DRIVER = vendor

M keyboards/boardsource/lulu/rules.mk => keyboards/boardsource/lulu/rules.mk +1 -1
@@ 1,1 1,1 @@
RGB_MATRIX_DRIVER = WS2812
# This file intentionally left blank