Help me wire a whole bunch of buttons & parts to Artemis Nano!

Hey all,

I’m trying to use the Artemis Nano as the brains of a functional Pip Boy conversion, and I am running into some mental roadblocks here. You can read all about the project in my [Hackaday IO Project Page. I am rather scared of breaking off soldered cables when I am manhandling the PipBoy, so I was looking for a Qwiic solution. However, most of the things I want to connect are just simple two wire buttons or LEDs.

The Fritzing diagram below shows the rough components of what I currently need to wire together:

http://veldkamp.it/Pipboy%20layout.png

Question 1:

The OLEDs have the same I2C address, so ideally I would hook them up on separate I2C ports/pins so I don’t have to put a Mux inbetween. Would that work? If yes, how would I address them?

Question 2:

The Rad Module has 3 2-wire buttons, a 3-pin rotary encoder, a VU meter that handles 3.3V and a LED inside that VU module that also takes 3.3V. Ideally I would have as few wires going from the Rad Module to the Artemis Nano. How could I go about that?

Question 3:

Ideally I would make the connections between modules, well… modular. I don’t think you can easily drive those buttons and switches on a Qwiic connection, right? Space is an issue, and bascially any connector I add reduces that space.

Apart from soldering, would there some more mechanical solutions to attach the wires to the Artemis Nano?](Fully Functional* Pip-Boy™ 2000 Mk VI | Hackaday.io)

Q1:

The nano exposes at least two IOM modules (which handle I2C/ SPI) - one through the Qwiic connector and another on pins 6 / 7. IN the current core version you can declare a new TwoWire object on those pins like this:

TwoWire ExtraWire(3);

Where 3 indicates which IOM module is used - the number 3 is the one that controls pins 6,7,8 (Apollo3 pads 43, 42, and 38).

Soon we are releasing a new core (v2.0.0) that will:

a) provide Wire1 on the Nano (connected to those pins)

b) change the way you declare additional TwoWire objects (you will then use a constructor with the pin names that you want to use)

Q2

You could probably use an I2C GPIO expander like either of these:

(Qwiic) https://www.sparkfun.com/products/16443

(More I/O) https://www.sparkfun.com/products/13601

Otherwise you only need one wire from each button (the other is common an you use internal or external pull resistors for each button) - one more wire for the LED (the other side could be common with the button common) two more for the rotary encoder (I think… b/c one is GND) and it looks like just one more for the VU meter (but I don’t know what that is exactly so I can;t be sure - what kind of communication does the VU meter use?) I think that is 8 wires including a common GND to all devices. Besides the VU meter (which I am not sure about) these can all be any GPIO

Q3

If I were doing this project I would find some good connectors to use in between the modules and the Nano. I would then solder one side to the Nano and the other to your module. You can find pretty small ones - perhaps a 2*5 1.27mm pitch cable with a breakout to PTH holes for easier soldering?

The labels on this one are for SWD debug cables, but you can use them however you like (you get 10 wires in a convenient cable!)

https://www.adafruit.com/product/2743

https://www.adafruit.com/product/1675