GoPlus2 Module and Core2 for AWS
-
I have both, but when I connect a servo to the GoPlus2 it doesn't move at all.
I have flashed Core2 firmware and I'm using Flow to do it.
Very simple program with a loop for moving the servo, full stop.
I've measured header voltages and there's 5V to GND.
Oscilloscope at "S" shows no PWM and even no pulses at all. S keeps at 0v always and therefore servo doesn't move.I've run out of ideas...
-
Hello @ciconde
have you tried a different servo output. I remember that in the past there was an issue with the first output. Could you share your UIFlow program?
Thanks
Felix -
Have you tried setting the correct servo port and selecting the correct GOplus?
The Core2 uses a goplus2 -
@felmue I have the servo in the port with a small 2, the LED between the servos is green, I've measured 5V between G and V but when I connect a oscilloscope beween S and G there's no trace of PWM.
I'm using GoPlus2 (big label on the side) and program is very simple:
MD5 is as follows (can't attach)
{"components":[{"id":"_coretwoscreen","createTime":1637687096589,"name":"screen","x":0,"y":0,"width":320,"height":240,"backgroundColor":"#000000","backgroundImage":"","type":"screen"},{"id":"____buttonA","createTime":1637687096589,"name":"ButtonA","buttonIndex":0,"x":35,"y":216,"width":64,"height":24,"text":"ButtonA","visibility":false,"type":"button"},{"id":"____buttonB","createTime":1637687096589,"name":"ButtonB","buttonIndex":1,"x":125,"y":216,"width":64,"height":24,"text":"ButtonB","visibility":false,"type":"button"},{"id":"___buttonC","createTime":1637687096589,"name":"ButtonC","buttonIndex":2,"x":215,"y":216,"width":64,"height":24,"text":"ButtonC","visibility":false,"type":"button"},{"id":"vQLJe4OCV%u2m-f","createTime":1637687307599,"isCoreTwo":true,"isPaper":false,"name":"label1","x":129,"y":42,"color":"#ffffff","text":"Text","font":"FONT_MONT_24","rotation":0,"type":"label","layer":8}],"type":"core2","versions":"Beta","units":[],"hats":[],"blockly":"<variables><variable id="L_m|(4}/9eWO:%!NisHe">i</variable></variables><block type="basic_on_setup" id="setup_block" deletable="false" x="70" y="30"><next><block type="go_plus2_set_servo_angle" id="m}D
:c{KG33R]}RXg1/V\"><field name=\"list\">S2</field><value name=\"angle\"><shadow type=\"math_number\" id=\"QsGvi0lK/)FFALXIgOSL\"><field name=\"NUM\">0</field></shadow></value><next><block type=\"variables_set\" id=\"QZp~!Wkrc;aad.O7:
mD"><field name="VAR" id="L_m|(4}/9eWO:%!NisHe">i</field><value name="VALUE"><block type="math_number" id=")Fa9}swif6+wjRJ]zZYg"><field name="NUM">0</field></block></value><next><block type="controls_whileUntil" id="lDZ^V=;B;ktf51})gG,Q"><field name="MODE">WHILE</field><value name="BOOL"><block type="logic_boolean" id="#e+UDjF=ZP*_zKi|A1=3"><field name="BOOL">TRUE</field></block></value><statement name="DO"><block type="math_change" id="|S}G[^R}eHN.HYtHq[PZ"><field name="VAR" id="L_m|(4}/9eWO:%!NisHe">i</field><value name="DELTA"><shadow type="math_number" id="V0Fr*{8Z(!@_2BAW2T7:"><field name="NUM">1</field></shadow></value><next><block type="label_set_text" id="mJLH;9Yi#NH=3F`ox_c#"><field name="COMPONENT">label1</field><value name="TEXT"><shadow type="text" id="g45]+A0%b)o%xK1=NsPX"><field name="TEXT">Hello M5</field></shadow><block type="convent_str" id="]uOw~L$C7g1h(|:j^vV|"><value name="VALUE"><block type="variables_get" id="h2=+o(mniB8nLZx9Fmr?"><field name="VAR" id="L_m|(4}/9eWO:%!NisHe">i</field></block></value></block></value><next><block type="timer_delay_ms" id="7_S;$=2$ElNesD2!Ng?8"><value name="DELAY"><shadow type="math_number" id="DNPc@Zz]lRaK`D5tCPwW"><field name="NUM">500</field></shadow></value><next><block type="go_plus2_set_servo_angle" id="`+(McF$E6N3Xp!P4LQZQ"><field name="list">S2</field><value name="angle"><shadow type="math_number" id="{^B~OEG$3u`VL{6Q?hA"><field name="NUM">0</field></shadow><block type="variables_get" id="}!?c}vLh:jNJMG_DzWx7"><field name="VAR" id="L_m|(4}/9eWO:%!NisHe">i</field></block></value><next><block type="controls_if" id="kl1FQ4?cRAS_n[%z6M(x"><value name="IF0"><block type="logic_compare" id=".CHpi]qAHlMRug5/kIXZ"><field name="OP">EQ</field><value name="A"><block type="variables_get" id="VE}}%{K640JGp~8o|ycr"><field name="VAR" id="L_m|(4}/9eWO:%!NisHe">i</field></block></value><value name="B"><block type="math_number" id="v7n}ps)KNXK(6in~6op!"><field name="NUM">180</field></block></value></block></value><statement name="DO0"><block type="variables_set" id="WobrJJDK?SIveZ9SVWM"><field name="VAR" id="L_m|(4}/9eWO:%!NisHe">i</field><value name="VALUE"><block type="math_number" id="kov:[v~_vn=Kj7imf7;3"><field name="NUM">0</field></block></value><next><block type="timer_delay_ms" id="lG5Q^c;@:H=;`},HDqs="><value name="DELAY"><shadow type="math_number" id="FUtp2)JEwql6hgOs1{(."><field name="NUM">1000</field></shadow></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></statement></block></next></block></next></block></next></block>","Blockly.Remotes":[],"Blockly.RemotePlus":[{"id":"__title","blockId":"","createTime":1637920356349,"name":"M5RemoteTitle","dragAndDrop":false,"resizable":false,"options":{"minWidth":1,"minHeight":1,"maxWidth":6,"maxHeight":10,"defaultWidth":2,"defaultHeight":1},"w":2,"h":1,"bgColor":"#0080FF","color":"#fff","fontsize":"M","label":"M5Remote","type":"title","x":0,"y":0}],"modules":[]} -
@ajb2k3 Tested all 4 ports, no PWM signal on any of them. All of them have 5V power.
-
@ajb2k3 This is the one I have: https://docs.m5stack.com/en/module/goplus2
-
Hello @ciconde
I've tried your code with UIFlow 1.8.7 and my M5Core2 (firmware 1.8.7) and M5GoPlus2 and it works as expected.
Did you make sure your M5Core2 and M5GoPlus2 are firmly stacked together? Sometimes the modul's pins are a tad short and maybe not all of them make proper contact. The only other thing at this point I can think of is defective hardware.
Thanks
FelixP.S. I had to rebuild your code from the picture as the 'file' you posted couldn't be read by UIFlow properly.
-
Hello @ciconde
ok, I think I found the real reason it might or might not work. The M5GoPlus2 uses the same I2C address (0x38) as the touch screen in the M5Core2.
That also explains as to why for me when I use servo output 1 the touch screen stops working. See thread here.
In other words the M5GoPlus2 module is not really compatible with the M5Core2.
Thanks
Felix -
-
Hello @ciconde
I don't know for sure, but I don't think you can change the I2C address of the GoPlus2. We had this discussion before in this thread. It seem like the GoPlus2 firmware is not re-programmable and there are no provisions (like dip switches) to change the I2C address.
BTW: I've read through the touch IC datasheet, but I have not found anything which would allow to change its I2C address.
BTW: I think M5Stack knows about this issue (same I2C address) as for M5Core2 there is no GoPlus2 Arduino example in github (only for M5Stack devices).
Thanks
Felix -
@felmue M5stack store just confirmed the incompatibility:
In the GoPlus2 product page:
-
-
@ciconde I have an M5Stack Core2 AWS working with the GoPlus2. I'm using Arduino not the UIflow. The issue I worked around was that the Wire Bus there are two I2C buses on the Core2. The demo code is set for Wire.begin() which is the wrong bus for the Core2. I changed the code in my copy of GoPlus2.cpp which was on GitHub and changed all references of Wire to Wire1 although to make it easy to swap it back I made a #define WIRE Wire1 and replaced all the Wire.function with WIRE.function. For example WIRE.begin() or WIRE.write(angle).
I've tested this with 9 volts into the GoPlus2, running two different 180 degree servos. -
Hello @Hyperspherical
just curious. Are you using the touch screen in your project? If so, does it still work?
Thanks
Felix -
@felmue There's no exact information on compatibility in your links.
I found problems, then contacted directly M5 and they explained that Core2 and GoPlus2 are not compatible in a direct message.
Hope this thread helps next people.
BTW, I bought a new Core Gray device (Core1, not Core 2) but still GoPlus2 is not recognized.
I'm starting to think I'll never make it work... :'(