-
My apologizes, I was rushing it in desparation. I've stripped evrything down to minimum, https://pastebin.com/A19GtGvW
Everything runs fine, except that I2C is still not working.
-
-
I've tried modifying MDBT42Q to the following: https://pastebin.com/TUwLqDxN
Espruino works out fine, connects nicely to BLE through NUS, but still gives the above errors.
-
I've tried setting D6.pinMode('output') in E.setBootCode(), but it doesn't seem to have any effect.
I also just tried removing the pins from boards/NRF52832DK.py and building firmware from source. Doesn't seem to have any effect either.
Oh, and changing the pin physically would be my absolutely the last resort, since it's a custom PCB.
-
Hi guys,
I've made a custom board and installed Espruino (Comiled from GitHub with board NRF52832DK). I've done that before, and everything works fine. However, for this build I changed some pins around, and are using SDA: D6, SCL:D7 for I2C. This time, it causes a lot of troubles:
If reading or writing on I2C1, it simply crashes.
If reading or writing using software I2C, it throws "Uncaught Error: I2C Error: Arbitration (start)"I looked at the source, and changed the source and noticed in boards/NRF52832DK.py that D6 is used for serial RX console. I changed that to some other pin, but didn't solve the problem.
I've spend quite some time and money on the hardware - is there a way to fix this issue through software? I'm out of ideas. Let me know, if more information (debug, code, etc) is needed. My code and build do work on previous prototypes, so I'm quite sure it has something to do with using the pins D6 and D7 for I2C.
I pulled out my oscilloscope and debugged the hardware. It turned out that the manufacturer had mounted one component the wrong way around, which caused a current leak. Amazingly nothing was shorted.
However, I still need to define other pins than D6 and D7 for Serial1 and recompile, which is fine for now.
Thanks for the help! I definitely learned a lot in the process :)