6

Cut one pin off. Get some wire cutters and position them in the groove between the last and next to last pins in the row. Squeeze. One pin will pop off.


3

As noted by markshancock, you are using an older version of the Adrafruit Motor Shield library meant for the version 1 of the board (you have the version 2.3), and according to their forum they are not compatible (they use different communication protocols) use the newer version of the library https://forums.adafruit.com/viewtopic.php?f=31&p=276888


3

You can't. Once constructed, an object remains constructed until you delete it. You could either use dynamic allocation and new and delete to create and destroy objects at will, or you could create multiple objects with different settings and use different objects at different times. Another option would be to modify the library to create a new function ...


2

use Wemos table from your link. here is the mapping to esp8266 io pins RST/Reset D3 = io 0 SPI SS D8 = io 15 SPI MOSI D7 = io 13 SPI MISO D6 = io 12 SPI SCK D5 = io 14 If you want, you can use any pin for SS and reset. See the examples. #define SS_PIN 4 #define RST_PIN 5 MFRC522 mfrc522(SS_PIN, RST_PIN);


2

Use constructor Adafruit_ILI9341(10, 9, 8); to make the reset that works with software SPI. To SD card as second device on the bus: Every SPI device on SPI bus must be controlled by slave select pin. If a device is connected to the bus and the SS pin is left floating the device disturbs the bus. The empty SD card adapter is not a device on the bus, only ...


2

There is flux on the board and that is not going to cause the problems you are seeing. At worst the flux may have an affect on the ability to get a proper lock at 2.5GHz, and that is unlikely. Clean the board and use magnification to look for damage to the copper foil on the board and inside the plated holes. That will most likely be the problem. This was ...


2

It looks like you have soldering paste all over the circuit board. If enough paste bridges a gap between the ceramic resonator and the IC, it can attenuate the oscillator signal to the point where the board won't work. I use an old tooth brush and Isopropyl alcohol to clean excess soldering paste. As the alcohol evaporates, a lot of moisture forms on the ...


2

WDTCSR = bit(WDCE) | bit(WDE); // enter a very brief change mode WDTCSR = bit(WDP2); // prescaler without reset mode, 1001 means 8 seconds, 0101 means 0.5 seconds, 0100 means 0.25 seconds, 0011 means 0.125 seconds WDTCSR = bit(WDIE); // use interrrupt mode because we do not want an WDT triggered reset Your code above is not doing a WDT interrupt every 0.25 ...


2

Talking about I2C protocol. The slave Address is of 7 Bits that means one I2c can handle 127 Slave I2C devices of different address. So you can connect 127 devices with Single I2C Port just make sure there slave address is different from each other. Some I2C devices are provided with the option to select salve address by setting some pins high and low. If ...


2

Brief explanation: When you talk to the slave device through I2C you start with (slave) device address. Then you send the message. It is like calling your colleague in an office with many other people. You say: "John", and when he is aware you continue with message, like "let's go for coffee". This arrangement allows for adding up to 127 devices on one ...


2

Read SparkFun's guide, Serial Peripheral Interface (SPI), especially the multiple slaves section: Multiple slaves There are two ways of connecting multiple slaves to an SPI bus: In general, each slave will need a separate SS line. To talk to a particular slave, you'll make that slave's SS line low and keep the rest of them high (you don't ...


2

Possible hardware solution: Consider using 2 battery packs. One connected to the Arduino and the other connected to the motor drive board. Remember to connect the grounds of the 2 battery packs together. Possible software solution: Software is often over looked when solving what appears to be a hardware issue. Consider introducing a short pause between ...


2

Yes. There's not a lot more to be said really. It's a relay, and they provide a MOSFET and associated circuitry to drive it cleanly. Just connect power and ground to the Arduino, along with the "Signal" pin to the GPIO pin of your choice, and away you go. Note that the relay is a 3.3V relay, so you must power it by the 3.3V pin, not the 5V pin.


2

There is no problem with running multiple servers and use multiple clients with the WiFi library of the ESP32 core for Arduino as it is not a problem with most of the WiFi libraries for Arduino (some can't run servers (TinyGsm) or can run only one server (WiFiEsp(AT)). But you don't need a WiFiClient for NTP time. First because NTP runs on UDP and second ...


2

The commands you are using don't match the ones listed for this board. Here is the AF Documentation for the Motor Shield Board V2. Try #include <Wire.h> #include <Adafruit_MotorShield.h> #include "utility/Adafruit_MS_PWMServoDriver.h" Adafruit_MotorShield AFMS = Adafruit_MotorShield(); Adafruit_DCMotor *motor = AFMS.getMotor(2); void setup()...


1

From the description and comments it looks like the problem is HW related. I recommend you to do a relay module test (wthout NodeMCU): Try to switch the relays on/off just by connecting the power source you are using for powering the NodeMCU. Connect VCC–5V, GND–GND and one of the IN channels directly to 5V pin. If the relay switches on, try another ...


1

You seem to compile a sketch from a folder, where more than 1 .ino file is placed. I guess this from the paths, that are mentioned in the error messages. The Arduino IDE supports you to organize your code into multiple .ino files, so that big code can be read way easier. For this it put's together all .ino files in the folder of the main sketch, so that ...


1

Your loop is repeatedly writing and clearing the display, nearly as fast as possible (minus the 1ms delay at the bottom), which is the reason for the flicker you're seeing. If instead, you only update the display when something changes, it will look much smoother. Even a clear-and-rewrite the entire display when something changes (assuming the changes are ...


1

You didn't tell use the size of your QRCode, nor the type of Arduino you are using. So I am just going to guess that your problem is that you may have enough RAM to store the raw QRCode, but not enough to store a scaled bitmap version. The Adafruit tutorial for their thermal printer library suggests printing bitmaps with the method: printBitmap(width, ...


1

:'( it's a bitter sweet solution. After @majenko's last comment: Ah. So is there something you have to do in that IDE to say "Include the files in lib in the compilation`? I remembered that this issue has bitten me before. Specifically, the issue of including subfolders into a sketch. Normally in programming languages (at least all of the ones I work ...


1

I ended up taking Gerben's suggestion from the comments and ordering the stacking headers (adafruit.com/product/2830) and plugging the ESP32 into that. The reason it works is because the stacking headers (as Gerben mentioned) are thinner and fit down into the breadboard while the female ports on top are big enough for the male pins coming out of the ESP32. ...


1

The idea of shields is that they (in theory) can be stackable. (In practice they are usually not) This means that technically you can do this: That's why by design every shield connects to every Arduino pin but uses only some of them. That way shield is mechanically well attached to the Arduino, and can pass "unused" pins to the shield above it. Your ...


1

Your code looks pretty straightforward, and the fact that everything works properly with the laptop-USB connector makes me suspect that your problem lies with the battery pack. When you said "When the Arduino is connected to my laptop via USB, it works fine.", did you mean that the 4-cell battery pack is still connected to the motor shield as shown, but ...


1

use the C as the line start indicator. if received char is 'C' then do a file.println(); example with output to Serial #include <SoftwareSerial.h> SoftwareSerial mySerial(8,9); void setup() { Serial.begin(9600); mySerial.begin(9600); mySerial.print("C"); } void loop() { if (mySerial.available()) { char c = mySerial.read(); if (c ...


1

Pin 4 on Zero can't be used with attachInterrupt. It is pin PA08 of the SAMD21 and this has NMI as interrupt control function in EIC and can't be used as EXTINT. Adafruit Circuit Playground maps PA28 to pin 4, but the description of the pin is left as for Zero and doesn't declare interrupt capability. In file arduino/hardware/samd/1.6.21/variants/...


1

is it safe to wire the boost converter directly to the output terminals of the battery/batteries and take the 5V off the +5v pin using a common ground? Yes. That is the normal way of using them. Also, I'm not 100% sure how to go about charging this setup. One option would be to put the batteries in cases and use an external charger with replaceable cells....


1

The general technique for addressing multiple I2C devices is: If the device(s) have only one address: use an I2C bus multiplexer. If the device(s) have two addresses controlled by an addressing pin: use digital output pins from the Arduino to select which device to address, e.g., set the control pin for the selected device low and others high and use the ...


1

So it turns out the problem is that you're using the esp32 1.0.1 library provided by espressif. I'm assuming you're using the Arduino IDE board manager URL: https://dl.espressif.com/dl/package_esp32_index.json To fix this, don't use 1.0.1. Use 1.0.0! Remove 1.0.1 and install 1.0.0. That should get it to compile properly without the uart, app_main errors.


1

Pin 15 is one of the boot configuration pins (0, 2, 15) and must be LOW at boot. To ensure it, dev boards with esp8266 have external pull-down on pin 15 (and pull-up on 0 and 2). To read the pin HIGH you must overcome the pull-down. Adafruit Feather HUZZAH has 4.7kOhm resistor for the pull-down, so it is a 'strong' pull down. NodeMcu has 12kOhm resistor on ...


1

In your changealarm() function, you call atoi(buffer), and buffer is defined as char buffer[2]. atoi() expects a c-style string, which is null-terminated, and you have to include space for the null termination character ('\0', 0, 0x00, etc.), but you write to both allocated spaces in the changealarm() function. If your 2nd byte of each EEPROM space (1, 3, 5)...


Only top voted, non community-wiki answers of a minimum length are eligible