DJI RoboMaster Development Boards now available
123
19242 99 2019-8-6
Uploading and Loding Picture ...(0/1)
o(^-^)o
albertr
lvl.3
Offline

The teensy 4.0 specifications says:
"3 CAN Bus (1 with CAN FD) "

I think you should be fine - CAN FD is what you need for 2Mbaud speed. I was not even aware of Teensy 4.0, and the previous teensy model (3.6) didn't have CAN FD.
Teensy 4.0 in fact looks quite fast (and small too!).

-albertr
2019-9-3
Use props
albertr
lvl.3
Offline

Looking at the specs, the MCU used on Teensy 4.0 should have three CAN Buses, one of which is CAN FD and should be capable of 2MBaud speed. One thing I'm not so certain about is whether CAN FD is supported in software on teensy 4.0. Checking the FlexCAN_t4 library gives me some feeling that FD support still might be work in progress, i.e.:
https://github.com/tonton81/Flex ... er/FlexCAN_T4FD.tpp
If you need FD on Teensy 4.0 working right now, you might be pushing your luck.

EDIT: Here's some discussion about the library progress on PJRC forum:
https://forum.pjrc.com/threads/56035-FlexCAN_T4-FlexCAN-for-Teensy-4/page2


-albertr



2019-9-4
Use props
Duane Degn
Second Officer
Flight distance : 622234 ft
Offline

albertr Posted at 9-4 05:21
Looking at the specs, the MCU used on Teensy 4.0 should have three CAN Buses, one of which is CAN FD and should be capable of 2MBaud speed. One thing I'm not so certain about is whether CAN FD is supported in software on teensy 4.0. Checking the FlexCAN_t4 library gives me some feeling that FD support still might be work in progress, i.e.:
https://github.com/tonton81/Flex ... er/FlexCAN_T4FD.tpp
If you need FD on Teensy 4.0 working right now, you might be pushing your luck.

Thanks for your thoughts about CAN FD.

Hopefully the people working on the library will get it working by the time I've figured out how to use the Teensy 4.0 well enough to take advantage of CAN FD.

The motor bus is less then half the speed of the black CAN bus so hopefully it will be easier to interface with it.
I can already read data on the Motor bus using a Propeller microcontroller. I haven't been able to make sense of the data yet. I'm concerned the inconsistent baud on the Motor bus is causing me to read in garbage without knowing it's garbage.
2019-9-4
Use props
rhoude57 - YUL
lvl.4
Offline

albertr Posted at 9-3 08:18
Thanks, rhoude57. I have researched and have found some references too. Doesn't look too complicated, so I'm thinking of getting S1 now. Even if we cannot hack its controller boards, I can add an STM32 MCU capable of CAN FD   to try to control its motors. Basically, all I need from S1 is its four motors with speed controllers and mecanum wheels. It would be nice if DJI will release the code for M3508I speed controllers so we can see which capabilities they have. I specifically interested in odometry data. Are M3508I motors available for sale separately? I was trying to find them, but was not successful. One possible problems I see with these motors is that they are being powered by the 3S battery, would be interesting to see if this  controller/motor can take 6S voltage...

-albertr

I have contacted DJI Support to try to buy replacement M3508I motors. They acknowledged my request last week and are research the DJI supply status for them. Hopefully, I will get a response this week.

As for the M3508I command set and API, I suspect it is a subset of the CAN commands and API of the M3508 P19/C620 motor/ESC set.
2019-9-4
Use props
Duane Degn
Second Officer
Flight distance : 622234 ft
Offline

rhoude57 - YUL Posted at 9-4 07:20
I have contacted DJI Support to try to buy replacement M3508I motors. They acknowledged my request last week and are research the DJI supply status for them. Hopefully, I will get a response this week.

As for the M3508I command set and API, I suspect it is a subset of the CAN commands and API of the M3508 P19/C620 motor/ESC set.

"Hopefully, I will get a response this week."
I hope you let us know what you find out. I'd also like to purchase one of those motors. I haven't taken one apart yet out of fear of not being able to replace it.
2019-9-4
Use props
albertr
lvl.3
Offline

Yes, please let us know once you hear back. I'm interested in the extra M3508I for purposes of dissection and study its internals.
I'm not very hopeful that they are using the same formats/protocol and code in the M3508I controller as opposed to its big brother. I have a feeling that DJI has closed the S1 source and made it incompatible with the real thing on purpose to prevent others for playing and making/selling add-ons.

-albertr
2019-9-4
Use props
rhoude57 - YUL
lvl.4
Offline

albertr Posted at 9-4 08:24
Yes, please let us know once you hear back. I'm interested in the extra M3508I for purposes of dissection and study its internals.
I'm not very hopeful that they are using the same formats/protocol and code in the M3508I controller as opposed to its big brother. I have a feeling that DJI has closed the S1 source and made it incompatible with the real thing on purpose to prevent others for playing and making/selling add-ons.

I was advised by DJI Support that my request for a replacement M3508I motor was approved and that motors were in stock.
Next step, DJI will invoice me for the motor once they have reviewed whether they will cover it under warranty or not. I'll let you know how much a replacement motor costs.
2019-9-5
Use props
MarkusXL
lvl.4
Offline

Hmmm juicy.  Looking forward to seeing what's inside the motor.  Custom DJI microcontroller?  I suspect DJI uses a modified or even encrypted CAN bus protocol.  I wonder if that can be determined?
2019-9-5
Use props
justinzak
lvl.2

Offline

So has anyone had success using these dev boards with the consumer grade S1?
I'm looking for ways to program the Ros system directly as the provided environment is rather proprietary.
My alternative is to go port sniffing for hints of ROSBridge or other protocols.
2019-9-22
Use props
Duane Degn
Second Officer
Flight distance : 622234 ft
Offline

justinzak Posted at 9-22 18:04
So has anyone had success using these dev boards with the consumer grade S1?
I'm looking for ways to program the Ros system directly as the provided environment is rather proprietary.
My alternative is to go port sniffing for hints of ROSBridge or other protocols.

I suspect the Robomaster Dev boards don't use the same communication protocol as the S1 uses with its motors. Some Robotmaster (non-S1) motors have a CAN Bus interface but the S1's interface is an 8-bit protocol using a RS-485 physical layer.
Check out the thread below for more information about the motor control protocol.
https://forum.dji.com/forum.php?mod=viewthread&tid=197642
The title of the thread is S1 can bus investigation.

I'm almost positive the Development Boards can't communicate with the S1 hardware without changes to the available software. It's unknown DJI will support this sort of inter product communication. I think it's a huge shame if they don't.

Personally, I intend to find a way to use the S1 motors with other projects. I'll continue to try to figure out the protocol as time permits.
2019-9-22
Use props
justinzak
lvl.2

Offline

ohh Guess ill kick back until someone else does the work haha.
I FTP'd into the S1 and found nothin but a folder system of encrypted dats, dreams crushed
2019-9-22
Use props
JB63
lvl.4
  • >>>
Offline

Related question ... can the stock camera be replaced with a higher definition one? I tried connecting mine (stock) to my computer but it's not recognized .. scanned its USB port and nothing ?
2019-9-22
Use props
MarkusXL
lvl.4
Offline

justinzak Posted at 9-22 19:27
I FTP'd into the S1 and found nothin but a folder system of encrypted dats, dreams crushed

Not surprising.  And no, we are stuck with this particular camera for now.

In those encrypted dat files are the codecs for the camera and audio.   And probably the CAN bus definitions.

Dead end for now.  But...  In the other thread - if someone can reverse engineer the CAN bus commands to the motors,  then maybe those motors could be used with another controller.
2019-9-22
Use props
rhoude57 - YUL
lvl.4
Offline

justinzak Posted at 9-22 18:04
So has anyone had success using these dev boards with the consumer grade S1?
I'm looking for ways to program the Ros system directly as the provided environment is rather proprietary.
My alternative is to go port sniffing for hints of ROSBridge or other protocols.

The set of Dev Boards I ordered are still in the mail. The package was put in the mail on 9 August. I'm expecting them anytime now.

2019-9-23
Use props
rhoude57 - YUL
lvl.4
Offline

justinzak Posted at 9-22 18:04
So has anyone had success using these dev boards with the consumer grade S1?
I'm looking for ways to program the Ros system directly as the provided environment is rather proprietary.
My alternative is to go port sniffing for hints of ROSBridge or other protocols.

Did you go through the RoboMaster RTS?
It is Open Source and available on GitHub.
RoboMaster GitHub Repositories
I will be using that code on the Development Boards to validate CAN-Bus Communications with the M3508 P19 motors, then work towards a solution for the M3508I, likely using a RS-485 interface through one of the UARTs on the Type A Development Board.
2019-9-23
Use props
Duane Degn
Second Officer
Flight distance : 622234 ft
Offline

rhoude57 - YUL Posted at 9-23 20:12
Did you go through the RoboMaster RTS?
It is Open Source and available on GitHub.
RoboMaster GitHub Repositories

"with the M3508 P19 motors, then work towards a solution for the M3508I,"

From the traces I've captured, I think it's very clear the S1 does NOT use CAN Bus to communicate with the motors. The motor bus uses a very clear 8-bit data size. All bytes are received with an appropriate start and stop bit.
The CAN Bus does NOT use an 8-bit data size. I suppose it could be CAN but from what I've read CAN protocol shouldn't have more than 5 consecutive bits at the same level except as specific locations in the packet. There are many locations within packets I've captured which have 7, 9 and 11 consecutive bits. I'm not confident the packets don't conform to some CAN protocol but the packets I've captured from the S1 sure don't look like any of the example CAN messages I've found online.
I'm pretty sure there are free programs which can open files saved from Saleae logic analyzers. I've posted a capture of the motor bus and CAN Bus to my Hackaday IO Page. Anyone so inclined my examine the data to see if they can make sense of it. I've also attached the Python code running at the time of the data capture.
A while back I purchased DJI's RoboMaster Development Board Type A and DJI's RoboMaster GM6020 Brushless DC Gear Motor. Once I realized the M3508I motors did not use a traditional CAN protocol, I cancelled my order.
When asked why I cancelled, I told DJI it was because I didn't think the Development Board was compatible with S1's motors. Once I gave them this reason they started the refund process. The items were shipped before the process was complete and I received an email from UPS letting me know the package was being returned to DJI. I was surprised I could return the items when the items were in route.

tl;dr I don't think the M3508 P19 motors use the same protocol as the M3508i motors.

2019-9-24
Use props
rhoude57 - YUL
lvl.4
Offline

Duane Degn Posted at 9-24 07:25
"with the M3508 P19 motors, then work towards a solution for the M3508I,"

From the traces I've captured, I think it's very clear the S1 does NOT use CAN Bus to communicate with the motors. The motor bus uses a very clear 8-bit data size. All bytes are received with an appropriate start and stop bit.

I totally agree with you that the M3508I uses a completely different, custom, RS/EIA-485 serial interface instead of CAN-Bus. My intent, for the M3508I and a Development Board Type A is to work off one of the many UART ports available on the board (3 UARTs, 1 SDK UART and 1 BT UART). I would add a RS/EIA-485 transceiver in from of the UART and then connect to the M3508I.
The RoboMaster RTS may need some refactoring to make it possible to switch between the two versions of the M3508 and their respective communications protocols.
That refactoring will be part of the fun for me.
2019-9-24
Use props
fans2057ec70
lvl.3
Flight distance : 213 ft
  • >>>
Russia
Offline

Help me, please.
I want to build a radio-controlled platform based on Development Board A, terminal board, four M3508 motors, and a DJ6 RC, without gimbal.
I connected motors to the terminal board, supplied power to the dev board A and connected the CAN cable to the dev board.
Engines do not start from the remote control. I understand that they need to be activated. But the Robomaster Assistant does not see the dev board connected via USB.
What do I need to do to make the platform work?
2020-3-10
Use props
rhoude57 - YUL
lvl.4
Canada
Offline

fans2057ec70 Posted at 3-10 09:16
Help me, please.
I want to build a radio-controlled platform based on Development Board A, terminal board, four M3508 motors, and a DJ6 RC, without gimbal.
I connected motors to the terminal board, supplied power to the dev board A and connected the CAN cable to the dev board.

The Type A Development Board does not have any software loaded other than the bootloader.
You need to Clone the RoboMaster RTS Repository and build an executable file which the RoboMaster Assistant will be able to download into the Development Board.
Are you using a DJI DT7 Remote Controller with DR16 Receiver? The Development Board is configured to work with that equipment combination and channel configuration.
Your RoboMaster Assistant is probably not seeing the Development Board because you may not have installed the USB Drivers for it. When you connect the powered up Development Board to your computer, do you hear the beep sequence typical of the computer recognizing a USB device?

Hope this helps.

2020-3-10
Use props
fans2057ec70
lvl.3
Flight distance : 213 ft
  • >>>
Russia
Offline

rhoude57 - YUL Posted at 3-10 10:52
The Type A Development Board does not have any software loaded other than the bootloader.
You need to Clone the RoboMaster RTS Repository and build an executable file which the RoboMaster Assistant will be able to download into the Development Board.
Are you using a DJI DT7 Remote Controller with DR16 Receiver? The Development Board is configured to work with that equipment combination and channel configuration.

Thank you for the answer.
Yes, I use dji DT7 with DR16. Drivers are installed. When I plug in the development board, a virtual STM port appears in the system. But when I run Robomaster Assistant 1.9, I only see the boot screen.
2020-3-10
Use props
123
Advanced
You need to log in before you can reply Login | Register now

Credit Rules