9-axis MotionTracking gyroscope accelerometer magnetometer
Moderator: Benj
-
- Valued Contributor
- Posts: 654
- Joined: Fri Aug 19, 2016 2:09 pm
- Location: switzerland
- Has thanked: 182 times
- Been thanked: 179 times
- Contact:
9-axis MotionTracking gyroscope accelerometer magnetometer
Hi Ben
First of all a praise. Using flowcode to use various motion sensors is incredibly practical. Also the simulation is wonderful.
In the meantime, there are many 9-axis sensors. Why not integrate a 9-axis in FC8?
My suggestion is the MPU 9250. (the old mpu6050 with only 6 axis is already inFC7)
The MPU-9250 is a 9-axis MotionTracking device that combines a 3-axis gyroscope, 3-axis accelerometer, 3-axis magnetometer and a Digital Motion Processor™ (DMP) all in a small 3x3x1mm package.There are already various breakout boards from this sensor. Also small board with the sensor and Bosch digital pressure sensor. Sparkfun offers a small board with Microchip CPU and MPU 9250. For hardware developers, there are symbols and modele for eagle and altium has it also even with a 3D model.
https://store.invensense.com/datasheets ... REV1.0.pdf
https://www.seeedstudio.com/Grove-IMU-9 ... -2400.html
https://www.seeedstudio.com/Grove-IMU-10DOF-p-2386.html
https://www.sparkfun.com/products/13762
https://www.sparkfun.com/products/14001d
First of all a praise. Using flowcode to use various motion sensors is incredibly practical. Also the simulation is wonderful.
In the meantime, there are many 9-axis sensors. Why not integrate a 9-axis in FC8?
My suggestion is the MPU 9250. (the old mpu6050 with only 6 axis is already inFC7)
The MPU-9250 is a 9-axis MotionTracking device that combines a 3-axis gyroscope, 3-axis accelerometer, 3-axis magnetometer and a Digital Motion Processor™ (DMP) all in a small 3x3x1mm package.There are already various breakout boards from this sensor. Also small board with the sensor and Bosch digital pressure sensor. Sparkfun offers a small board with Microchip CPU and MPU 9250. For hardware developers, there are symbols and modele for eagle and altium has it also even with a 3D model.
https://store.invensense.com/datasheets ... REV1.0.pdf
https://www.seeedstudio.com/Grove-IMU-9 ... -2400.html
https://www.seeedstudio.com/Grove-IMU-10DOF-p-2386.html
https://www.sparkfun.com/products/13762
https://www.sparkfun.com/products/14001d
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
That looks great, thanks I'll get it on the list.
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
-
- Valued Contributor
- Posts: 654
- Joined: Fri Aug 19, 2016 2:09 pm
- Location: switzerland
- Has thanked: 182 times
- Been thanked: 179 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Hi Ben
Do you have some news about it?
will be the chip connected with I2C or SPI, or both?
Do you have some news about it?
will be the chip connected with I2C or SPI, or both?
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Hello,
I've made a start using I2C but not finished yet.
Going forward for v8 I am making the underlying CAL components do more of the hard work and allowing them to easily be switched on and off so we should be able to support both comms interfaces reasonably easily.
I've made a start using I2C but not finished yet.
Going forward for v8 I am making the underlying CAL components do more of the hard work and allowing them to easily be switched on and off so we should be able to support both comms interfaces reasonably easily.
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
I've had a go at a first pass using I2C.
If you have a sensor available then would you mind testing out the component for me. The datasheet is not very clear so I have made a number of assumptions which could easily be incorrect.
Simply copy the attached into your "Flowcode 7/components" directory and restart Flowcode and the device will be present in the Sensors component dropdown.
Looks like a nice device so will have to get my hands on a couple.
If you have a sensor available then would you mind testing out the component for me. The datasheet is not very clear so I have made a number of assumptions which could easily be incorrect.
Simply copy the attached into your "Flowcode 7/components" directory and restart Flowcode and the device will be present in the Sensors component dropdown.
Looks like a nice device so will have to get my hands on a couple.
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
-
- Valued Contributor
- Posts: 654
- Joined: Fri Aug 19, 2016 2:09 pm
- Location: switzerland
- Has thanked: 182 times
- Been thanked: 179 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Hi Ben
Thats nice.
I will also order some small boards because my own board is not quite finished yet.
So I can start testing on monday.
Thats nice.
I will also order some small boards because my own board is not quite finished yet.
So I can start testing on monday.
-
- Valued Contributor
- Posts: 654
- Joined: Fri Aug 19, 2016 2:09 pm
- Location: switzerland
- Has thanked: 182 times
- Been thanked: 179 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Hi Ben
Tomorrow the sensors will arrive at my place.
I have written a program for STM32F469 (touchscreen-board)
And the simulation works .....
I have still one question...
How can I read the values from the gyro and the compass?
)
Tomorrow the sensors will arrive at my place.
I have written a program for STM32F469 (touchscreen-board)
And the simulation works .....
I have still one question...
How can I read the values from the gyro and the compass?
)
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Hello,
Brilliant, let us know how you get on. I've ordered a board too but from China so not sure when it will arrive.Tomorrow the sensors will arrive at my place.
The same way you do with the accelerometer.How can I read the values from the gyro and the compass?
Code: Select all
UpdateAccelerometerData()
AX = CollectXYZ(0)
AY = CollectXYZ(1)
AZ = CollectXYZ(2)
UpdateCompassData()
CX = CollectXYZ(0)
CY = CollectXYZ(1)
CZ = CollectXYZ(2)
UpdateGyroData()
GX = CollectXYZ(0)
GY = CollectXYZ(1)
GZ = CollectXYZ(2)
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
-
- Valued Contributor
- Posts: 654
- Joined: Fri Aug 19, 2016 2:09 pm
- Location: switzerland
- Has thanked: 182 times
- Been thanked: 179 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Hi Ben
The MPU9250 is working !
Temparatur,Accelerometer,Gyro looks good
Compass is not ok. It's shows me always -1 on all axis, but in the simulation it's ok.
With the 32F469Discovery Board it's not possible to choose a hardware I2C port, with the picboard it's working.
I suspect my 32F469IDiscovery.fcdx is not ok.
I used a Sparkfun SEN-13762 for 12,51 €
https://www.digikey.ch/product-detail/d ... UR&lang=de
https://learn.sparkfun.com/tutorials/mp ... 1503401756
The MPU9250 is working !
Temparatur,Accelerometer,Gyro looks good
Compass is not ok. It's shows me always -1 on all axis, but in the simulation it's ok.
With the 32F469Discovery Board it's not possible to choose a hardware I2C port, with the picboard it's working.
I suspect my 32F469IDiscovery.fcdx is not ok.
I used a Sparkfun SEN-13762 for 12,51 €
https://www.digikey.ch/product-detail/d ... UR&lang=de
https://learn.sparkfun.com/tutorials/mp ... 1503401756
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Hello,
Thanks for letting us know. It could be the magnetometer needs further initialising to start producing values, I'll have a look for you.
We don't currently support the I2C hardware peripherals on the ST ARM devices as they are subtly different from the other microcontroller devices. We have made efforts to get this working and have made progress but it's proved more difficult than expected so currently we only support the software I2C channels.
Thanks for letting us know. It could be the magnetometer needs further initialising to start producing values, I'll have a look for you.
We don't currently support the I2C hardware peripherals on the ST ARM devices as they are subtly different from the other microcontroller devices. We have made efforts to get this working and have made progress but it's proved more difficult than expected so currently we only support the software I2C channels.
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Have you set the AD0 property to Ground or +VCC?
Looks like the magnetometer address might be wrong for the +VCC setting but should be correct for the Ground setting?
From other libraries it appears the magnetometer address doesn't change whereas I assumed it would like the accelerometer address does.
Looks like the magnetometer address might be wrong for the +VCC setting but should be correct for the Ground setting?
From other libraries it appears the magnetometer address doesn't change whereas I assumed it would like the accelerometer address does.
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
-
- Valued Contributor
- Posts: 654
- Joined: Fri Aug 19, 2016 2:09 pm
- Location: switzerland
- Has thanked: 182 times
- Been thanked: 179 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Hi Ben
I tested the adresspin and FC7 setting in all positions for the Pin A0 on the board and for the setting for the Pin A0 gnd/Vcc on FC7
There is a reversed fuction ....
Pin A0 | FC7 |
0 | 0 | bad
1 | 0 | ok
0 | 1 | ok
1 | 1 | bad
Unfortunately the compass never works
I tested the adresspin and FC7 setting in all positions for the Pin A0 on the board and for the setting for the Pin A0 gnd/Vcc on FC7
There is a reversed fuction ....
Pin A0 | FC7 |
0 | 0 | bad
1 | 0 | ok
0 | 1 | ok
1 | 1 | bad
Unfortunately the compass never works
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Hi Stefan,
That's brilliant many thanks for testing that out for me. I have now reversed the bit so it should now work as expected with the AD0 Pin property.
I've also added a new property which enables the compass for either 8Hz or 100Hz operation. Hopefully this should solve the problems you were having with the magnetometer portion.
That's brilliant many thanks for testing that out for me. I have now reversed the bit so it should now work as expected with the AD0 Pin property.
I've also added a new property which enables the compass for either 8Hz or 100Hz operation. Hopefully this should solve the problems you were having with the magnetometer portion.
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
-
- Valued Contributor
- Posts: 654
- Joined: Fri Aug 19, 2016 2:09 pm
- Location: switzerland
- Has thanked: 182 times
- Been thanked: 179 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Hi Ben
Thank You for solving. The adress is ok now.
Pin A0 | FC7 |
0 | 0 | ok
1 | 1 | ok
Unfortunately the compass is not working.
Sometimes chip manufacturers pack different sensors into one chip.
I suspect there is a AK8963 magnetometer built-in. And then this sensor has a strange address
"
Pass-Through mode is useful for configuring the external sensors, or for keeping the MPU-9250 in a low-power mode when only the external sensors are used. In this mode, the system processor can still access MPU-9250 data through the I2C interface.
Pass-Through mode is also used to access the AK8963 magnetometer directly from the host. In this configuration the slave address for the AK8963 is 0X0C or 12 decimal.
"
Thank You for solving. The adress is ok now.
Pin A0 | FC7 |
0 | 0 | ok
1 | 1 | ok
Unfortunately the compass is not working.
Sometimes chip manufacturers pack different sensors into one chip.
I suspect there is a AK8963 magnetometer built-in. And then this sensor has a strange address
"
Pass-Through mode is useful for configuring the external sensors, or for keeping the MPU-9250 in a low-power mode when only the external sensors are used. In this mode, the system processor can still access MPU-9250 data through the I2C interface.
Pass-Through mode is also used to access the AK8963 magnetometer directly from the host. In this configuration the slave address for the AK8963 is 0X0C or 12 decimal.
"
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Ok close but no cigar. I already have the AK8963 datasheet as the magnetometer registers weren't included in the MPU-9250 datasheet.
Here is what I am currently doing.
I use the Accel Address for reading back the Accel/Gyro/Temperature and the Compass Address for reading back the Magnetometer.
The addresses already contain the bit shift for the added R/W bit.
I'll have another look through some of the other code libraries later today and see if I can find anything useful.
If you look at the value returned from the initialise function then what value do you get back?
255 = Accelerometer not returning correct value
254 = Magnetometer not returning correct value
0 = Both devices replying correctly
If you're getting 254 then this implies the Magnetometer address is wrong or we are doing something incorrectly when trying to talk to it.
Here is what I am currently doing.
I use the Accel Address for reading back the Accel/Gyro/Temperature and the Compass Address for reading back the Magnetometer.
The addresses already contain the bit shift for the added R/W bit.
I'll have another look through some of the other code libraries later today and see if I can find anything useful.
If you look at the value returned from the initialise function then what value do you get back?
255 = Accelerometer not returning correct value
254 = Magnetometer not returning correct value
0 = Both devices replying correctly
If you're getting 254 then this implies the Magnetometer address is wrong or we are doing something incorrectly when trying to talk to it.
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
-
- Valued Contributor
- Posts: 654
- Joined: Fri Aug 19, 2016 2:09 pm
- Location: switzerland
- Has thanked: 182 times
- Been thanked: 179 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
I get a 255
255 = Accelerometer not returning correct value
255 = Accelerometer not returning correct value
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Well I wouldn't have expected that! Hmm I've turned off all the checks and now just enable the accel and magnetometer.
Before I would bail out and not do the magnetometer initialise if the accel or magnetometer checks failed.
Before I would bail out and not do the magnetometer initialise if the accel or magnetometer checks failed.
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
-
- Valued Contributor
- Posts: 654
- Joined: Fri Aug 19, 2016 2:09 pm
- Location: switzerland
- Has thanked: 182 times
- Been thanked: 179 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Hi Ben
I have already used the MPU9250 with FC7.
Now I have problems with FC8. Once I initialize the component, the program remains frozen. but the interrupt still goes ...
I used a Pic32MZ2048ECG
I have already used the MPU9250 with FC7.
Now I have problems with FC8. Once I initialize the component, the program remains frozen. but the interrupt still goes ...
I used a Pic32MZ2048ECG
-
- Valued Contributor
- Posts: 654
- Joined: Fri Aug 19, 2016 2:09 pm
- Location: switzerland
- Has thanked: 182 times
- Been thanked: 179 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Hi Ben
When I choosed in the propertis from the MPU9250 => Stop Delay to "yes" then the MPU9250 is working
Stefan
When I choosed in the propertis from the MPU9250 => Stop Delay to "yes" then the MPU9250 is working
Stefan
-
- Valued Contributor
- Posts: 654
- Joined: Fri Aug 19, 2016 2:09 pm
- Location: switzerland
- Has thanked: 182 times
- Been thanked: 179 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Hi Ben
I dont now why every time I load the program I have to set the I2C from the MPU to channel 5.....
I dont now why every time I load the program I have to set the I2C from the MPU to channel 5.....
-
- Valued Contributor
- Posts: 654
- Joined: Fri Aug 19, 2016 2:09 pm
- Location: switzerland
- Has thanked: 182 times
- Been thanked: 179 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Hi Ben
The MPU9250 is comfortabel to use with FC8.
The small problem is that I have to select I2C channel nr 5, every time I load the program in FC8.
But the bigger problem where I have is the update accelerometer needs 2.6mS
If I set the clock to 1 Mega (it's 1 Mega in the hardware) and needs 2.6mS
If I set the clock to 400k (it's 400k in the hardware) and needs 2.8mS
So checked the time from the first clock to the last clock..... it's only 96uS.
Can You have a look why there is a long waiting time?
The MPU9250 is comfortabel to use with FC8.
The small problem is that I have to select I2C channel nr 5, every time I load the program in FC8.
But the bigger problem where I have is the update accelerometer needs 2.6mS
If I set the clock to 1 Mega (it's 1 Mega in the hardware) and needs 2.6mS
If I set the clock to 400k (it's 400k in the hardware) and needs 2.8mS
So checked the time from the first clock to the last clock..... it's only 96uS.
Can You have a look why there is a long waiting time?
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Hello,
I can't see anything specific in the component that could be causing the slowdown between comms. We basically set the address and then clock in 6 bytes in a single transaction before storing into RAM to be picked up by the CollectXYZ macro. I can't see the RAM access taking ms, should be very quick.
Are you drawing to a display in between sampling the accelerometer or anything else that could account for the additional delay.
I can't see anything specific in the component that could be causing the slowdown between comms. We basically set the address and then clock in 6 bytes in a single transaction before storing into RAM to be picked up by the CollectXYZ macro. I can't see the RAM access taking ms, should be very quick.
Are you drawing to a display in between sampling the accelerometer or anything else that could account for the additional delay.
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
-
- Valued Contributor
- Posts: 654
- Joined: Fri Aug 19, 2016 2:09 pm
- Location: switzerland
- Has thanked: 182 times
- Been thanked: 179 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Hi Ben
No I do not do anything in this time. But I use a lot of Ram (64K) for a 2 buffer, but I dont read/write at this time.
No I do not do anything in this time. But I use a lot of Ram (64K) for a 2 buffer, but I dont read/write at this time.
-
- Valued Contributor
- Posts: 654
- Joined: Fri Aug 19, 2016 2:09 pm
- Location: switzerland
- Has thanked: 182 times
- Been thanked: 179 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Hi Ben
In my program I use a free Pin for my osciloscope. Before I update the acelerometer I turn it on and after I collect the date I turn it off.
So it needs 2.6ms for this. On the green channel I show the I2C bus. This just need 115us
In this way, I can not used it in my system with 2kHz samplerate..... I just have 0.5ms time for all.....
Then I removed my big RAM. Did not help. I did a measurment to test the collect date. This need just 280ns
In my program I use a free Pin for my osciloscope. Before I update the acelerometer I turn it on and after I collect the date I turn it off.
So it needs 2.6ms for this. On the green channel I show the I2C bus. This just need 115us
In this way, I can not used it in my system with 2kHz samplerate..... I just have 0.5ms time for all.....
Then I removed my big RAM. Did not help. I did a measurment to test the collect date. This need just 280ns
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Re: 9-axis MotionTracking gyroscope accelerometer magnetometer
Hello,
Please can you post your program and we will have a look for you.
Please can you post your program and we will have a look for you.
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel