joeh

Using EV3 motors and sensors with Spike Prime hub

Recommended Posts

Anyone knows if it is possible to use old EV3 motors and sensors with the Spike Prime hub?  Are there adaptors I can buy to do this?

I suspect many people have old EV3 sets lying around collecting dust.  It would be useful if one can make good use of these old components.

Share this post


Link to post
Share on other sites

Yes, I totally understand the challenge with absolute angular positioning.  If the motor is without the absolute angular position functionality, would such an adaptor still be of value? I meant not all use cases require this functionality. A motor is still a very useful building block in any robotic project.  Instead of letting them sit them collecting dust, do you think you would use your old EV3 motors in a Spike Prime project if such adaptor exists?

Share this post


Link to post
Share on other sites
34 minutes ago, joeh said:

Yes, I totally understand the challenge with absolute angular positioning.

It's not a matter of absolut positioning, but of rotation feedback in general.

36 minutes ago, joeh said:

do you think you would use your old EV3 motors in a Spike Prime project if such adaptor exists?

That could be useful, but nor for me.

Share this post


Link to post
Share on other sites

@Lok24 I meant that because the EV3 motors (running on EV3 hub) can be controlled to turn by specified angle relative to the original position, it should theoretically be possible to make the same functionality work with Spike Prime, using some extra hardware (a microcontroller) for signal translations.  And of course, such adaptor would only make sense if it can be made cheap.

You said "not for me", do you mind to give some insight to why you would not use EV3 motors with your Spike Prime projects?

Share this post


Link to post
Share on other sites
18 hours ago, joeh said:

You said "not for me", do you mind to give some insight to why you would not use EV3 motors with your Spike Prime projects?

Sure, I have no Spike prime, that's all.

16 hours ago, Tcm0 said:

How does the EV3 measure rotations?

Don't know, but it does.

Share this post


Link to post
Share on other sites

I think the EV3 motors use a double encoder to count rotations.  It is not impossible to make an adapter so the EV3/NXT servo motor looks like one of the supported motors to SPIKE. It won't be as simple as an adapter to use your collection of Power Function train motors with the Powered UP city hub.  EV3 sensors use I2C serial communication.  You can probably use an Arduino as an in-between device interface.  Happy hacking.  :pir-classic:

 

Share this post


Link to post
Share on other sites
7 hours ago, dr_spock said:

I think the EV3 motors use a double encoder to count rotations.  It is not impossible to make an adapter so the EV3/NXT servo motor looks like one of the supported motors to SPIKE. It won't be as simple as an adapter to use your collection of Power Function train motors with the Powered UP city hub.  EV3 sensors use I2C serial communication.  You can probably use an Arduino as an in-between device interface.  Happy hacking.  :pir-classic:

 

Actually EV3 sensors use a pre version of the powered up UART protocol. That's the reason why mindsensors can sell a PUP to EV3 sensor adapter for around 10USD (http://www.mindsensors.com/ev3-and-nxt/222-spike-prime-sensor-adapter-for-ev3). The NXT sensors use I2C and EV3 can use it for backwards compatibility (but SPIKE can bit bang it, too).

But that's only for the sensor ports. How do the motor rotation encoders work? Which protocol do they use?

Share this post


Link to post
Share on other sites

Here's some information on how EV3/NXT's encoders work:

https://www.instructables.com/How-to-use-LEGO-NXT-sensors-and-motors-with-a-non-/?fbclid=IwAR18b73sMFUUppPeNAk4ZgSjChHNpp_9BNi_QKKRPDZono7LyHlPlmFk6GY

Look at the paragraphs under "Step 3: The Motor". The EV3 hub has to listen to the inputs from the encoders to interpret the rotation angle changes.

For the SPIKE motors, they communicate through UART instead.

For EV3:

  • Their official sensors all use UART protocol
  • The motors directly outputs the encoder signals (two of them) for EV3 Hub to interpret. 
  • Some 3rd party components use i2c.  As far as I know, the lego official ones don't.

Share this post


Link to post
Share on other sites

thanks @joeh

There is no problem to connect EV3 motors with their full functionally to any hub if you use some kind of adapter. But as a L-PU-motor is available  for app 16 € it would be really useful, I fear.

The only difference might be the precision of measurement.

Share this post


Link to post
Share on other sites
On 11/9/2021 at 6:16 AM, Tcm0 said:

Actually EV3 sensors use a pre version of the powered up UART protocol. That's the reason why mindsensors can sell a PUP to EV3 sensor adapter for around 10USD (http://www.mindsensors.com/ev3-and-nxt/222-spike-prime-sensor-adapter-for-ev3). The NXT sensors use I2C and EV3 can use it for backwards compatibility (but SPIKE can bit bang it, too).

But that's only for the sensor ports. How do the motor rotation encoders work? Which protocol do they use?

One major issue with the Mindsensor board is that the old sensors only work with Python and not the scratch based word blocks.  Also, because of voltage difference (EV3 runs on 5V, and Spike Prime runs on 3.3V), there is a good chance that you will run into power related issues.

Below is a new board that my friend and I worked on that actually do protocol level translation so that the EV3 sensors will be recognized as Spike Prime sensors.  This allows you to program your EV3 sensor in Word Block. The board is powered by an ESP8266 MCU.  As such, even EV3 motors work with this board.

https://www.qikeasy.com/

Share this post


Link to post
Share on other sites
8 hours ago, joeh said:

... do protocol level translation so that the EV3 sensors will be recognized as Spike Prime sensors.  ...
The board is powered by an ESP8266 MCU.  As such, even EV3 motors work with this board.

https://www.qikeasy.com/

Hello,

Inreresting module.

But I can not see the 6pin Cable to the HUB with its connector.
What does you use here and why is it not visible ?

What was the reason to use an ESP8266 ?
For what does you need WLAN/WIFI ?

What happens if you plug in NXT Sensors/Motor ?

How did you translate the EV3 UART IDs to PoweredUp-ID numbers ?
You also listed the analog EV3 Touch Sensors. How ist it reported to the Hub ?

How is translated the IR-Sensor to the Hub ?

 

Jo

Share this post


Link to post
Share on other sites
10 hours ago, BrickTronic said:

Hello,

Inreresting module.

But I can not see the 6pin Cable to the HUB with its connector.
What does you use here and why is it not visible ?

>>>  For the Spike Prime side, we use a cable like this one (with the flat male 6 pin plug on both sides) :  https://www.aliexpress.com/item/1005003198409991.html?spm=a2g0o.detail.1000060.1.1fa34a2axpw9bs&gps-id=pcDetailBottomMoreThisSeller&scm=1007.13339.274681.0&scm_id=1007.13339.274681.0&scm-url=1007.13339.274681.0&pvid=da3cca25-ddd9-400e-9637-6ca4997c451c&_t=gps-id:pcDetailBottomMoreThisSeller,scm-url:1007.13339.274681.0,pvid:da3cca25-ddd9-400e-9637-6ca4997c451c,tpp_buckets:668%232846%238112%231997&pdp_ext_f=%7B%22sku_id%22%3A%2212000024620730009%22%2C%22sceneId%22%3A%223339%22%7D&pdp_pi=-1%3B104.27%3B-1%3B-1%40salePrice%3BHKD%3Brecommend-recommend


What was the reason to use an ESP8266 ?

>>>  Reasons:  cost, processing power, familiarity.

 

For what does you need WLAN/WIFI ?

>>>  For now, Wifi is only used for "Over The Air" firmware updates

 

What happens if you plug in NXT Sensors/Motor ?

>>>  For now, it is only designed to support EV3 sensors and motors.  NXT ones will definitely not work, as the firmware in fact recognizes each known EV3 device, and does protocol level translation to emulate new Spike Prime device.  For unknown devices, the adapter will perform any emulation.  Having said that, if there is enough demand for it, it is possible to add support for NXT devices in the future.   However, at this point, we are not keen in supporting these, as the NXT platform is 15 years.

 

How did you translate the EV3 UART IDs to PoweredUp-ID numbers ?

>>> In the MCU processing, there are in fact two different threads running.  One side emulates the EV3 hub to work with EV3 device.  The other side will emulate a Spike Prime device (with the equivalent ID) to work with the spike prime hub.


You also listed the analog EV3 Touch Sensors. How ist it reported to the Hub ?

>>> It emulates a Spike Prime Pressure force sensor.

 

How is translated the IR-Sensor to the Hub ?

>>> It emulates a Spike Prime Color Sensor.  See here for details: https://www.qikeasy.com/infrared-sensor/

 

 

Share this post


Link to post
Share on other sites

What are the costs? Cable included?

Is it cheaper than a new RI-Motor (which has more options)?

What Device IDs are used?

The shop on the website is empty?

Share this post


Link to post
Share on other sites
6 hours ago, joeh said:

>>> In the MCU processing, there are in fact two different threads running.  One side emulates the EV3 hub to work with EV3 device.  The other side will emulate a Spike Prime device (with the equivalent ID) to work with the spike prime hub.

>>> It emulates a Spike Prime Pressure force sensor.

>>> It emulates a Spike Prime Color Sensor.  See here for details: https://www.qikeasy.com/infrared-sensor/

Hello,

Is it possible to publish more Datails on this emulation ?

I've tried to bring this into the following unconfirmed Table :

EV3 :												emulated Spike/Inventor
Devive			UART ID	Mode						Device		UART ID	Mode	Remark
Touch			analog	-							Touch		0x3F	tbd		Mode 0x00 to 0x06, maybe 0x01 used ?
Color			0x1D	0x00	Reflect				Color		0x3D	tbd		Mode 0x00 to 0x09, maybe Mode 0x01 ?
						0x01	Ambient									tbd		Mode 0x00 to 0x09, maybe Mode 0x02 ?
						0x02	Color									tbd		Mode 0x00 to 0x09, maybe Mode 0x00 ?
						0x03	Ref-Raw									tbd
						0x04	RGB-Raw									tbd
						0x05	Col-Cal									tbd
IR-Seeker		0x21	0x00	Prox				Color		0x3D	tbd
						0x01	Seek									tbd
						0x02	Remote									tbd		Mode 0x00 to 0x09, maybe Mode 0x02 ?
						0x03	Remote-A								tbd
						0x04	Seek-Alternate							tbd
						0x05	IR-Cal									tbd
Ultrasonic		0x1E	0x00	Cont Dist cm		Ultrasonic	0x3D	tbd		Mode 0x00 to 0x08, 
																				maybe Mode 0x00 or 0x01 ?
						0x01	Cont Dist Inch							tbd
						0x02	Listen									tbd		Mode 0x00 to 0x08, maybe Mode 0x03 ?
						0x03	Single Dist cm							tbd		Mode 0x00 to 0x08, maybe Mode 0x02 ?
						0x04	Single Dist Inch						tbd
						0x05	Cont Dist cm Alt						tbd
						0x06	Cont Dist Inch Alt						tbd
Gyro			0x20	0x00	Gyro-Angle			Ultrasonic	0x3D	tbd
						0x01	Gyro-Rate								tbd
						0x02	Fast-Raw								tbd
						0x03	Gyro-Rate&Angle							tbd		Mode 0x00 to 0x08, 
																				maybe Mode 0x00, 0x01 or 0x02 ?
						0x04	Cal										tbd
						0x05	Tilt-Rate								tbd		Mode 0x00 to 0x08, maybe Mode 0x01 ?
						0x06	Tilt-Angle								tbd		Mode 0x00 to 0x08, maybe Mode 0x04 ?
Large Motor		analog		-						tbd			tbd		tbd		what Spike-Prime Motor ID used ?
																				0x30, 0x31, 0x41, 0x4B or 0x4C
Medium Motor	analog		-						tbd			tbd		tbd		what Spike-Prime Motor ID used ?
																				0x30, 0x31, 0x41, 0x4B or 0x4C
                                                    
How Access EV3-Sensor Modes not "translated" ?
What is delivered when accessing PoweredUp-Sensor Modes not used for translation ?

Jo

Edited by BrickTronic

Share this post


Link to post
Share on other sites
4 hours ago, Lok24 said:

What are the costs? Cable included?

Is it cheaper than a new RI-Motor (which has more options)?

What Device IDs are used?

The shop on the website is empty?

We are in the last phase of finalizing the design of the board.  Once we are ready for production, we will put it up on Indiegogo.  It sounds like you are very interested in the product, you should subscribe so that you will get notified before our crowdfunding campaign goes live.  To get our product at discounted price, you can join the VIP program (the link to join the program will appear after you subscribe).  By joining the program, you will be able to get the product at these prices:

        Buying 1 unit @     US$20 each

        Buying 2 units @     US$19 each

        Buying 4 units @     US$17 each

        Buying 10 units @     US$16 each

Cable will be extra.  Unfortunately, we couldn't include it in the price, as the cost of the cable is expensive.  We will sell the cable at price similar to or lower than what you saw on the AliExpress page.

Comparing the cost of the the motor with the cost of the adapter isn't an apple-to-apple comparison.  With the motor, you only get one motor.  With adapter, you enable multiple types of EV3 devices that you already have (even though each adapter can only power one EV3 device at a time).

The emulated device IDs will be exactly the same IDs as the equivalent Spike Prime devices.

 

Regarding details of translation/emulation, that's going to take me a bit of time to prepare the table.  I will try to give you something later.

 

How Access EV3-Sensor Modes not "translated" ?

For the EV3 modes that are not translated, you won't be able to access them.  However, we believe we have translated pretty much all the practically useful modes.  So, I don't see that being a problem.  If you see that being a problem, I would like to know.

 

What is delivered when accessing PoweredUp-Sensor Modes not used for translation ?

... you would get 0's or some other meaningless values. 

 

Share this post


Link to post
Share on other sites

@BrickTronic  See attached table for device mode mappings performed by our Adapter board.

717553588_QikEasyAdapterDeviceModeMapping.jpg.441f24fd9fc207ae2a4cf4e2e3c963c9.jpg

Edited by joeh

Share this post


Link to post
Share on other sites
22 hours ago, joeh said:

@BrickTronic  See attached table for device mode mappings performed by our Adapter board.

717553588_QikEasyAdapterDeviceModeMapping.jpg.441f24fd9fc207ae2a4cf4e2e3c963c9.jpg

Thanks,

Your Table helped a lot to understand.

I assume, that EV3 Device communicates with UART "A" of ESP8266 and PoweredUp is connected to an UART "B", right ?

But at attached Motor there are the Encoder-Signals on UART "A" and TxD must then also be an Input.

A Schematic diagram would be very helpfull to can understand how this is solved (does ESP8266 have a Time- Capture & Compare Funconality  also on this UART "A" ? Does this Cap-Com Trigger react also on rising and folling edges ? Or must you do Bit-Bang for this function ?
 

Jo

Share this post


Link to post
Share on other sites
22 hours ago, BrickTronic said:

Thanks,

Your Table helped a lot to understand.

I assume, that EV3 Device communicates with UART "A" of ESP8266 and PoweredUp is connected to an UART "B", right ?

But at attached Motor there are the Encoder-Signals on UART "A" and TxD must then also be an Input.

A Schematic diagram would be very helpfull to can understand how this is solved (does ESP8266 have a Time- Capture & Compare Funconality  also on this UART "A" ? Does this Cap-Com Trigger react also on rising and folling edges ? Or must you do Bit-Bang for this function ?
 

Jo

Sorry, the details on implementation are proprietary, as disclosing such details to our users would not help them in any way, therefore I can't provide further information.

Share this post


Link to post
Share on other sites

Are you also going to support the HiTechnic NXT/EV3 sensors? I have a lot of them and would love to use them with the Spike Hub. I guess there are quite a few people out there who still have some HiTechnic stuff on the shelves. Or provide some kind of SDK where support of additional sensors can be added to the firmware.

Share this post


Link to post
Share on other sites

At this moment, we are only planning to support EV3 sensors.  If it turns out that there is enough demand for supporting NXT sensors, we will consider adding support for them.  And when we decide to do so, assuming there is no hardware compatibility issue, it should most likely be just a firmware update in order to support them.

Share this post


Link to post
Share on other sites

We will be launching our adapter product soon (December 5).  It allows you to use your EV3 devices on Spike Prime or Robot Inventor.  See https://www.qikeasy.com/ for more details.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.