#firmware not building

1 messages ยท Page 1 of 1 (latest)

tall gulch
#

right this is probably going to sound really stupid, but I have no idea what i'm doing.

Github is just giving me this error on a (what I think is still default) config, which is a brand-new repo using corne/nice!nano v2 as a preset. I know some things changed in V0.3, so it might be that, but the last time I tried this (5 weeks ago) it pulled the same stuff.

Also slight side note, i feel like the docs aren't particularly clear about what files go where

Anyone got advice?

agile pilot
#

Just by the error message alone it's probably a misformated build.yaml. Don't have any specific advice without seeing your repository.

tall gulch
#

local repo in visual studio looks like this rn

#

ive probably messed with the repo too much lol

tall gulch
#

looks like this

#

it has not been edited whatsoever

agile pilot
#

Are you still having build problems? Can you link you repository?

tall gulch
#

uh its currently on private, gimme a sec

#

its a mess rn

#

working on it mostly locally, its missing a bunch of stuff

#

currently looks more like this (just pasting existing files in)

#

github is not gonna like the absolute mess that this is lol

#

probably going to have to copy those files over again, working on them in visual studio for ease of use

agile pilot
#

If you're using shield wizard, some feedback (good and bad, mostly interested in bad) would be nice after it's done.

tall gulch
#

will do!

#

gotta go handle some irl stuff first

#

ok, back for a little bit but i got a few things i can list off the top of my head

#

for reordering, undo/redo don't work

#

indicators for rows and columns can cover each other, and there's no way to bring one or the other forward

tall gulch
#

...this is a help forum thread for the specific problems im working out for my board. If you want help, i'd recommend making your own thread

tall gulch
#

i might have read something about being incompatible with LEDs, displays, etc at the start but i don't remember, if it doesn't that would be a great addition

agile pilot
#

Those are a bit more complex to configure. Encoder support is high on the list.

#

I really should stop trying to be perfect, get the new version to a good enough state and get it out of just my PC.

tall gulch
#

yeah that makes sense

#

guess im gonna have to figure those out on my own or with help from this place

tall gulch
#

im assuming this is related to stuff like 'column to row' and similar, but there's no explanation of what input or output means for this specific use case in the pinout section

agile pilot
#

Output is driving, input is sensing. In the new UI I have a diode icon for this (hopefully it's clearer)

tall gulch
#

oh ok

#

so using col to row (as seems to be the default then)

tall gulch
#

esp for idiots like me

#

(time to go look back at my pinout lol)

agile pilot
#

col2row and row2coly is calculated based on the shape of the wiring so you don't have to think about it. Just think about the diode direction.

If the same input pin is used mostly vertically (and output pin horizontally) it'll generate as row2col, if the same output pin is used horizontally (input pin vertically) it'll generate col2row

tall gulch
#

it's not used the same lol

#

i put the column pins on the top (relative to me, with the board USB-in and back-mounted) on both halves, so they switch sides

agile pilot
#

I'm a bit confused but just map your PCB wiring. Anode side of the diode is output (driving, output VCC voltage), cathode side is input (sensing, reading voltage on the line).
It won't necessary be col2row but will work regardless.

tall gulch
#

this might make more sense

#

(both n!n are mounted to the back, but orientation is reversed

#

so

#

i went through it

#

i cant really find anything wrong other than the aforementioned stuff

#

that also prob just saved me 6 hours of headaches

#

if i can just import the file from the keymap editor and basically be done, im gonna be so happy

#

ZMK should really have a place where all this is linked to, its so useful

agile pilot
#

The big question is does the firmware work? ๐Ÿ˜›

agile pilot
tall gulch
#

nor have i compiled it

#

(i have to do a few other things, ill do that sometime today prob)

tall gulch
#

yo @agile pilot im back for actual needed help (sorry yes ik its the pine tree day)

#

github spits this out

#

prob something to do with the v0.3 naming scheme (or something like that)

#

found the details on the error for the left half, prob has smth to do with the nice!view gem adapter but idk, gonna see if i can find details. Might be a problem with the gem adapter

#

think i might have found the issue for at least one, a hyphen was indented because i copy/pasted from the gem stuff. lets hope that was the only issue, rerunning the build workflow

#

(i love sounding like i know what im doing lol)

#

and no i dont know what im doing

#

oh looks like smth failed, lemme check what

#

nice, only one failed

#

literally no idea what this means

#

this prob has something to do with the fact that i haven't actually defined the nice!view lol

tall gulch
#

found it

#

@agile pilot (sorry to ping you again) the issue seems to be with the enabling zmk studio support. That section was generated by shield wizard, so idk what's up with it.

#

just uncommented this to enable it (recommented it to see if it works), its the main thing that fails rn

#

oh look it built properly

#

time to figure out rgb, then debug it all over again

agile pilot
#

FYI config/lemonshark.keymapis the current keymap, boards/shields/lemonshark/lemonshark.keymap is meant to be the default keymap if users don't have a custom one in config/

#

The studio build 1 commit ago failed because it doesn't have a display device assigned in devicetree, but all other build have a display (because the nice_view_gem shield adds them)

tall gulch
agile pilot
#

How deep do you want the explanation to be

#

Devicetree

Display

SPI Bus

  • nice_view_adapter provides nice_view_spi https://github.com/zmkfirmware/zmk/blob/main/app/boards/shields/nice_view_adapter/boards/nice_nano.overlay It's meant to be replacing an OLED screen in place, so it's setup to disable the default I2C bus, configure SPI on those pins and disable the SSD1306 driver.
    • The controller is the board nice_nano_v2 (for ZMK 0.3)
    • Some PCB is the shield my_keyboard_with_oled
    • The adapter shield converts the OLED 4 pin header into a SPI bus, with the 5th pin bodge wired somewhere
    • The display nice_view plugs into a SPI bus nice_view_spi converted by nice_view_adapter
  • You can use the nice_view_adapter shield directly as is if it matches your wiring. The semantically correct way to do it is defining a nice_view_spi label in your own shield. This maps to the PCB directly:
    • The controller is the board nice_nano_v2 (for ZMK 0.3)
    • Your PCB is the shield lemonshark
    • The display nice_view plugs directly to a SPI bus nice_view_spi provided by your PCB

Configuring bus pins is the more annoying parts of Zephyr (within context of a ZMK user), see https://zmk.dev/docs/development/hardware-integration/pinctrl for docs and all the links above for example.

Display content

https://github.com/zmkfirmware/zmk/tree/main/app/src/display is the "default" built in screen content.
Code under https://github.com/zmkfirmware/zmk/tree/main/app/boards/shields/nice_view provides the custom screen. Same for gem.

tall gulch
#

that made some level of sense

#

board is already wired for to be native nice!view

#

i just gotta figure out how to define the display pins now ig

#

it's just the ZMK default, prob just need to tell it the display exists tho?

agile pilot
#

tell it the display exists
Setting the display device to /chosen/zephyr,display does that.

agile pilot
#

Both the nice_view and nice_view_gem shield does that already so you don't need to do it again in your shield.