Skip to content

Direct wired reversible "Forager Plus" PCB using Seeed XIAO nRF52840 Plus#19

Draft
peterjc wants to merge 41 commits intocarrefinho:mainfrom
peterjc:forager-plus-rev
Draft

Direct wired reversible "Forager Plus" PCB using Seeed XIAO nRF52840 Plus#19
peterjc wants to merge 41 commits intocarrefinho:mainfrom
peterjc:forager-plus-rev

Conversation

@peterjc
Copy link

@peterjc peterjc commented Oct 3, 2025

This would close #16, and builds on my initial idea shared on #17 but this time is a single reversible board with a reversible footprint for the Seeed XIAO nRF52840 Plus. This might be a bit tricky to solder as you really don't want to short the B- and B+ pins:

Screenshot 2025-10-03 at 12 57 26

It also makes a big edge change as a battery cutout, so would close #18 - potentially just allowing a LiPo 501535 battery at 250mAh with twice the capacity.

Screenshot 2025-10-03 at 20 40 35 Screenshot 2025-10-03 at 20 40 21

And finally, I changed the battery connector (which now has to be on both sides), see #14. This is https://github.com/KiCad/kicad-footprints/blob/master/Connector_Molex.pretty/Molex_PicoBlade_53261-0271_1x02-1MP_P1.25mm_Horizontal.kicad_mod from Molex PicoBlade series 1.25mm connector in the SMD horizontal form (under 4mm high so should fit). This should fit the misleadingly labeled "JST 1.25mm" plugs offered on lots of suitably sized LiPo batteries.

Screenshot 2025-10-03 at 20 42 08

The connector is fairly close to the battery cut out to avoid a beam in the bottom case - so we may not be able to fit the LiPo 501535 battery?

I kept the power trace along the board edge as before, so the power switch idea and tiny case change suggested on #14 could probably be done here too.


Any feedback? In your shoes I might hestitate to merge this until it has actually been built and proven - which I'd like to try after a second opinion (eg check this still fits the case in your preferred 3D software).

This will be the Forager Plus PCB, direct wiring without diodes
using the Seeed XIAO nRF52840 Plus controller which exposes 20
GPIO pins using '9 extra 1.27mm pitch SMD castellation pins beyond
standard XIAO nRF52840'.
Used sed to search and replace, and then opened and resaved in
KiCad which renumbered the now much smaller list of nets:

sed -i.bak 's/net .. "Net-(RD.*-A)/net 33 "RGND/g' forager-plus-pcb.kicad_pcb
Again, used sed and then opened & saved in KiCad to renumber:

sed -i.bak 's/net . "Net-(LD.*-A)/net 1 "LGND/g' forager-plus-pcb.kicad_pcb
sed -i.bak 's/net .. "Net-(LD.*-A)/net 1 "LGND/g' forager-plus-pcb.kicad_pcb
Changing to top/middle/bottom and thumbs to follow manually:

sed -i.bak -e 's#"/RCOL0"#"RM4"#g' -e 's#"/RCOL1"#"RM3"#g' \
    -e 's#"/RCOL2"#"RM2"#g' -e 's#"/RCOL3"#"RM1"#g' \
    -e 's#"/RCOL4"#"RM0"#g' forager-plus-pcb.kicad_pcb

sed -i.bak -e 's#"/LCOL0"#"LM4"#g' -e 's#"/LCOL1"#"LM3"#g' \
    -e 's#"/LCOL2"#"LM2"#g' -e 's#"/LCOL3"#"LM1"#g' \
    -e 's#"/LCOL4"#"LM0"#g' forager-plus-pcb.kicad_pcb
These only exposed 11 GPIO pins (plus 2 NFC pads on the back),
not enough for direct wiring.
Using the Forager author's Seeed XIAO nRF52840 Plus footprint
from https://github.com/carrefinho/visorbearer

The plus pads do stick out slightly more than before and are on
or over the top PCB edge. Should be fine...

Note there is not quite enough clearance with the radio keepout
to do single sided wiring (and thus potentially a reversible PCB
with suitable switch footprints).
Also tweaked a few traces, lined up the vias etc.
This just doubles the controller footprint and addresses the
controller wiring with vias. Switch footprints pending...
Using ceoloide's ergogen-footprints/switch_choc_v1_v2.js
in v1 only mode (not enough space near controller for v2).
These are CLK, DIO, GND, RST - can't connect GND due to mirroring
with RST.
These are CLK, DIO, GND, RST - can't connect GND due to mirroring
with RST.
The inaccurate term JST 1.25mm, or 'Micro JST 1.25mm' is often
used for these. The connector socket is under 4mm so should fit,
and this is commonly offered as the connector with LiPo batteries.

Putting this on both sides in place of the original (harder to
find) connector and soldering points.
@MSmaili
Copy link

MSmaili commented Oct 4, 2025

I’m no expert, but I really like this idea. It’ll make for a much cheaper build. Great work, and you got it done really fast!

@peterjc
Copy link
Author

peterjc commented Oct 4, 2025

Cost wise, we save on the diodes, but pay a couple of dollars more for the more expensive Xiao nRF52840 plus controllers. The battery connectors will be similar. A slightly larger battery will be a fraction more expensive.

All in all, the build cost in parts will be about the same.

It should be quicker without soldering 34 diodes, but the plus controllers are going to be harder to solder. That alone means this is not going to be a beginner friendly build 😢

@MSmaili
Copy link

MSmaili commented Oct 4, 2025

The saving time for soldering the diodes is a big win, but why are you saying the plus is going to be harder to solder ? Is it becuase the space between pins is smaller ? or becuase we have to solder also the 4 pins behind ?

@peterjc
Copy link
Author

peterjc commented Oct 4, 2025

We only need to solder the B+ on the back (very carefully not to short with B-), so little change compared to the Seeed XIAO nRF52840 and the original PCB. The other four back pins are not used (CLK, DIO, RST, and another GND - for this PCB that cutout could be removed).

The hard bit is the pins pads on the Seeed XIAO nRF52840 Plus are roughly half the size of those on the Seeed XIAO nRF52840 - and there are more of them.

These should both be up off (towards controller corner), and
down on (away from controller). Ought to be able to solder
bridge the pads if not using the switch?

Hat tip https://github.com/letmegobacktosleep/forager/tree/power-switch/forager-pcb
Using same location, so same case modifications should work.
I rotated the battery connection and moved back to give more clearance
for the plug - beware the bottom case rib.

Hat tip https://github.com/letmegobacktosleep/forager/tree/power-switch/forager-pcb
for the thru-hole solder point idea, which seems a little easier to use.
@peterjc
Copy link
Author

peterjc commented Oct 9, 2025

Further changes:

Screenshot 2025-10-09 at 14 22 31

@peterjc
Copy link
Author

peterjc commented Oct 9, 2025

You could perhaps now make the cutout bigger to take longer thinner batteries like the 220mAh 501240 instead, but since that's lower capacity I'm not going to bother.

@MSmaili
Copy link

MSmaili commented Oct 9, 2025

@peterjc, thanks a lot for adding the Power Switch to this PR. Please feel free to include the case if you think it should be here. Thanks a lot.

@letmegobacktosleep
Copy link

letmegobacktosleep commented Oct 10, 2025

@peterjc This looks really good, however your choc hotswap footprints look a little off - shouldn't the pads on both sides of the hotswap socket have the same maximum width? It looks like the pad which you have connected to ground is less wide than the other, causing a very small overhang.
Untitled
499369310-261330fc-78e9-4126-954c-45cfa16a463d

@peterjc
Copy link
Author

peterjc commented Oct 10, 2025

Good question, thank you. I don't know, but agree it does look like that pad could be more generous.

This reversible Choc v1 hotswap footprint was generated with https://github.com/ceoloide/ergogen-footprints/blob/main/switch_choc_v1_v2.js (acknowledged in the git commit comment), so I assume it has been tested multiple times in production.

I used the non-reversible version of this footprint (which looks to have the same smaller pad on one side) successfully in my first keyboard PCB, so it should be fine.

@letmegobacktosleep
Copy link

letmegobacktosleep commented Oct 10, 2025

Good question, thank you. I don't know, but agree it does look like that pad could be more generous.

This reversible Choc v1 hotswap footprint was generated with https://github.com/ceoloide/ergogen-footprints/blob/main/switch_choc_v1_v2.js (acknowledged in the git commit comment), so I assume it has been tested multiple times in production.

I used the non-reversible version of this footprint (which looks to have the same smaller pad on one side) successfully in my first keyboard PCB, so it should be fine.

I find it quite suspicious how that file is named "v1_v2" though the center hole seems too small for v2 (the original forager is only choc v1 compatible), and the pad sizing (the less-wide pad) is inconsistent compared against Marbastlib, which is what the original forager PCB uses.

Might be a good idea to modify that footprint to be more consistent with what the forager currently uses.

@peterjc
Copy link
Author

peterjc commented Oct 10, 2025

That Ergogen footprint can generate both choc v1 only footprints (used here), or also compatible with v2 thanks to a larger centre hole and optional stabilizer. There isn't room on the key next to the controller to use Choc v2 on the Forager - I tried that.

Is there a similar reversible Choc v1 hotswap footprint you would recommend instead? It is only 17 switches so a manual edit is doable.

Update: The Ceoloide Ergogen hotswap pads are 2x2.6mm (square) and 2.6x2.6mm (chamferred due to the hole). If I make that smaller one into a 2.6x2.6mm square (and move it to match), then it is very close to the original Forager hotswap footprint.

Update: Done by hand on the graph theory version in #20, not possible for the pad by the battery cutout, and a couple more only got only a slight enlargement due to wiring constraints. Hopefully slightly easier to solder now.

Update: We could do this for all the pads of the direct wired one (even the one by the corner of the controller), except the one on the edge of the battery cutout.

@peterjc
Copy link
Author

peterjc commented Oct 10, 2025

I got cold feet about the tiny castellated soldering needed on the Seeed XIAO nRF52840 Plus, so have decided to try something slightly different for my first Forager build. Alternative design #20 builds on all the work here (reversible hotswaps, battery connector, battery cutout, power switch) but redoes the diode-free wiring with the original Xiao controller plus the two NFC rear GPIO pins.

I think/hope this will be easier, but if you were confident solderer, the direct wiring here is much simpler. I'd be delighted if someone wanted to build this direct wired Seeed XIAO nRF52840 Plus version.

Which if any Carrefinho might want to merge into the Forager repository is another question.

@letmegobacktosleep
Copy link

That Ergogen footprint can generate both choc v1 only footprints (used here), or also compatible with v2 thanks to a larger centre hole and optional stabilizer. There isn't room on the key next to the controller to use Choc v2 on the Forager - I tried that.

Is there a similar reversible Choc v1 hotswap footprint you would recommend instead? It is only 17 switches so a manual edit is doable.

I would recommend making your own or modifying an existing one, or you could try these which I had made previously which are derived from marbastlib footprints:

SW_choc_v1_reversible.zip

@peterjc
Copy link
Author

peterjc commented Oct 10, 2025

Editing Ceoloide Ergogen choc hotswap footprints went smoothly on the "Acid" version where the wiring near some of the switches is tighter. Here the wiring at the controller is tighter, so the switch footprint editing here will be easier.

This is more symetric and more closely matches the original Forager
hotswap footprint. Unclear why the Ceoloide Ergogen hotswaps are
that small on one side - although they work fined fine for me as is
on another board.

The one by the battery cutout is still small.
@peterjc
Copy link
Author

peterjc commented Oct 16, 2025

My pair of 250mAh LiPo 501535 batteries with the "JST 1.25mm" connectors, and the SMD horizontal Molex PicoBlade series 1.25mm connector clones (which match the 3D model), arrived and they click together beautifully.

The plug body sticks out about 1.5mm from the connector, and then there is the wire itself. The original connector placement lined up with the battery cutout but only a few mm away might work, but the new placement seems fine.

Disconnecting them takes a little force, there could be a risk of pulling the SMD connector off the board if not soldered firmly.

@peterjc
Copy link
Author

peterjc commented Jan 25, 2026

Just to note the battery fits fine, but the connector may have the opposite polarity depending on the supplier (see #20 with same battery cutout and power switch). Also, make sure to get a longer handle version of the power switch if you build this (again, read #20)!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Enhancement - Adding a cutout to the PCB for a thicker battery Direct wiring with Seeed XIAO nRF52840 Plus

3 participants