-
• #2
Pico or Standard board? Did you try the devices separately using the examples provided by espruino.com/Modules?
-
• #3
-
-
• #4
This is almost certainly because you need pullup resistors on the SDA and SCL data wires. Pretty much all I2C devices need it. Some modules have them pre-installed, but some don't
-
• #5
- Pico
- I tried them all separately, using the modules provided on the website
- I purchased all my gear from adafruit, on the breakout boards (which come with resistors?)
- Not sure what's going wrong here..
// Here's the error message:
"Uncaught InternalError: Timeout on I2C Write Transmit Mode 2
at line 1 col 41
...eTo(C.MPL3115A2_ADDRESS,reg);var d=this.i2c.readFrom(C.MPL31...
^
in function "readS16" called from line 1 col 67
...L3115A2_REGISTER_CAL_A0_MSB)/8;this.b1=this.readS16(C.MPL311...
^
in function "MPL3115A2" called from line 1 col 19
new MPL3115A2(_i2c)
^
in function "connect" called from line 1 col 38
var mpl = require("mpl").connect(I2C3);
^
Uncaught Error: Field or method "getAltitude" does not already exist, and can't create it on undefined
at line 1 col 4
mpl.getAltitude(function(x) {
^
=undefined
> "
- Pico
-
• #6
The I2C timeout is when it's not able to communicate with the module over I2C.
So...
- Did you set up
I2C3
withI2C3.setup(...)
? - Is it powered properly? Looks like it needs connecting up with
Vin
not 3.3v.
Finally, try adding some 10k pull-up resistors. the Adafruit page doesn't mention that it has them and I think some Arduino boards to have them on so they may have left them off of the adaptor board?
- Did you set up
-
• #7
Also, are SDA and SCL actually connected up to the right places? They could have got crossed over.
-
• #8
SDA and SCL are hooked up in the right spots,
It's running on 5v to Vin
I don't have any resistors, so I'll run to the store and pick some up. Would the DHT22 also require those? (It works for me...sometimes, but it's finnicky)
-
• #9
When boards have the resistors, then they usually have a pin or solder jumper to enable them, because only on resistor is needed for each line... (otherwise, the behavior would be dependent on the number of connected devices to a point where either drivers could not fan the load anymore and signals become useless.... like: if too many people hold the rope down or up, no single individual would be able to raise or lower it! Espruino (STM MC) has a pull-down/pull-up option on the pins, but in this case it is too weak for I2C: 30..40K vs 4K7 (even though 4K7 works for most cases, the answer for 'What value the resistor should have?' is not that simple). --- How to get something tested right away until you get your resistors? Do you have some unused GPIO ports left? Configure 2..4 of them as pinMode(,"input_pullup") and connect them to SCL and SDA - of course for each individually - that gives you at least some pulling and may already help... ;-) --- This is not the 'production' solution... but Apollo13 parents still a lot of creativity!
Some error messages get a bit convoluted on bubbling up, especially the uncaught / unexpected ones, because it is expected that under normal circumstances the hardware is properly setup - no offense here, the culprit could just be the well known faulty breadboard contact - and wasting space to bubble up all variations is a waste of space... especially when there is a stack trace available as in Espruino (thank you @Gordon... robust and concise software design and implementation).
-
• #10
I think the DHT22 should be ok without them - it's not I2C. The DHT22 module got updated this week though, so it might be a bit better?
Hello there!
I posted something similar on this a while back, but I abandoned the project then. Arrogant as I am, I am back at the project again, which is going (slightly) better. I am building a weatherstation using:
-TSL2561 for Light Measurements
-MPL3115A2 for Pressure
Basically, I have the light sensor and Temp sensor working, but I can't get the pressure board to go
The configuration is:
-TSL @ B6 + B7,
-MPL @ B4,A8
I keep getting TIMEOUT errors, but the power and ground work for the TSL
Can someone help me!
Cheers,
Scott