Jump to content

Only for the brave. Russian Hack for the Mini Pro


Recommended Posts

Progress update: My chip arrived from MRN76. As we were warned, it was protected from reading, so I can no longer JTAG flash a 'normal' version to help debug the MiniPRO-360, nor can I make a backup copy in case the MiniPRO gets stolen (etc).

I removed the 'old' CPU by using Methylene Chloride solvent to dissolve and remove the waterproof coating on the MiniPRO circuit board. This is a dangerous solvent, maybe something less toxic will work, but I used the best solvent I had available. I work with these CPU chips quite a lot, so I used a pre-heater to 100C under the board, with a 420C hot-air gun to quickly remove the old CPU. My Hakko Vacuum-suction thingy safely lifted the CPU after only a few seconds, and I saw there was no damage to the circuit board. I carefully soldered the 'new' CPU in place, connected all the wiring and turned on the MiniPRO. First I placed it upside down to recalibrate the unit. That procedure went as expected. But when I turned the MiniPRO right way up it was apparent that something was very wrong. The platform would fail to level, beeping all the while, and a string of warnings from the app such as "motor is stalling, please drive more carefully." I heard an assortment of beeps, most frequent were one long followed by 3 short and one long followed by 8 short beeps.

Figuring a CPU pin must not have connected properly, I stripped the circuit board out again and carefully checked the CPU leads, heating them to reflow the solder. They all looked OK. When reassembled it is still the same.

So I guess I need to put the old CPU (actually I will use a new part and JTAG program it) and see if I can figure out what is wrong. Maybe then I will put in the modified firmware again, maybe not. I am not sure that I want to have a MiniPRO whose CPU is fully 'locked down'. Normally, at this point I could just flash in the old firmware and trace the possible hardware problem, but if I do that I can never go back to MRN76's modified firmware. So I change the CPU again, I guess...

  • Like 2
  • Upvote 1
Link to comment
Share on other sites

17 minutes ago, trevmar said:

Progress update: My chip arrived from MRN76. As we were warned, it was protected from reading, so I can no longer JTAG flash a 'normal' version to help debug the MiniPRO-360, nor can I make a backup copy in case the MiniPRO gets stolen (etc).

I removed the 'old' CPU by using Methylene Chloride solvent to dissolve and remove the waterproof coating on the MiniPRO circuit board. This is a dangerous solvent, maybe something less toxic will work, but I used the best solvent I had available. I work with these CPU chips quite a lot, so I used a pre-heater to 100C under the board, with a 420C hot-air gun to quickly remove the old CPU. My Hakko Vacuum-suction thingy safely lifted the CPU after only a few seconds, and I saw there was no damage to the circuit board. I carefully soldered the 'new' CPU in place, connected all the wiring and turned on the MiniPRO. First I placed it upside down to recalibrate the unit. That procedure went as expected. But when I turned the MiniPRO right way up it was apparent that something was very wrong. The platform would fail to level, beeping all the while, and a string of warnings from the app such as "motor is stalling, please drive more carefully." I heard an assortment of beeps, most frequent were one long followed by 3 short and one long followed by 8 short beeps.

Figuring a CPU pin must not have connected properly, I stripped the circuit board out again and carefully checked the CPU leads, heating them to reflow the solder. They all looked OK. When reassembled it is still the same.

So I guess I need to put the old CPU (actually I will use a new part and JTAG program it) and see if I can figure out what is wrong. Maybe then I will put in the modified firmware again, maybe not. I am not sure that I want to have a MiniPRO whose CPU is fully 'locked down'. Normally, at this point I could just flash in the old firmware and trace the possible hardware problem, but if I do that I can never go back to MRN76's modified firmware. So I change the CPU again, I guess... 

And what does the native application write when connected? Can you take a screenshot?
Link to comment
Share on other sites

1 minute ago, MRN76 said:
Error 38 I have not encountered

I got the long_8short beeps error after applying pressure to the footpad while the platform was trying to level. I think it is telling me that both footpads have to have pressure applied. 

 

2 minutes ago, MRN76 said:
 
And what does the native application write when connected? Can you take a screenshot?

The app has a normal screen, speed guage. If I move the MiniPRO manually (its motors disengage on error) then I see a speed being indicated (0.1 or 0.2 mph). I could see nothing in the app to indicate that the miniPRO had de-energized its motors...

Link to comment
Share on other sites

Yes, I understand that. I am not dealing with anything I have seen before, nor anything which makes sense.

 As I said, the upside-down recalibration works fine. I need to strip the cpu and resolder it again, I think...

Link to comment
Share on other sites

14 minutes ago, trevmar said:

Yes, I understand that. I am not dealing with anything I have seen before, nor anything which makes sense.

 As I said, the upside-down recalibration works fine. I need to strip the cpu and resolder it again, I think...

3rd time lucky I hope.

Link to comment
Share on other sites

MRN76, I don't think you understand. I have been using surface mount components for 30 years. The pitch has gotten finer this last decade, but this is the first time I have had trouble. I soldered some identical STM32F103 chips last week, with no problems. The difficulty here is that I can't debug by flashing simple test programs, like I do with my own code :) The MiniPRO is a well-designed complex piece of equipment :)

I do have the special Hakko tip capable of soldering individual pins, the T18-BRO2, I use it all the time :)

I did note that the CPU I desoldered was labelled "ARM2" while I typically see ARM3 from STMicro, and ARMx from Chinese chip suppliers. You sent me a chip properly marked as ARM3 STM, so I don't suspect any problems there.

I will desolder and inspect the CPU and board. Maybe some problem will become apparent...

  • Like 1
Link to comment
Share on other sites

No, I failed. This time I was very careful to make sure every pin was anchored, soldering and 'tugging' every pin, but approx 10 seconds after the MiniPro began its calibration-routine everything went dead, and the battery pack shows a constant red light (overload).  The control board is bricked, it measures a short circuit across the power pins. Two dead power-FET's I assume. Probably another floating CPU pin, but in a different area of the board this time.

Never mind - I have 2 spare miniPRos, I will swing the good wheels and tires across to one of them while I figure out what to try next.

  • Like 1
Link to comment
Share on other sites

I re-installed the control board, re-installed the battery, switched the miniPRO on while it was upside down. Lights activated, it beeped a few times as it usually does, then the wheels started to spin in opposite directions for about 10 seconds, then everything went dead  Removed the battery, there was a solid red light. After a few minutes it changed to flashing green again. Measured zero ohms across the control board positive and negative power connector.

I will take a photo for you when I check out the FETs. But I feel so helpless trying to test a complex device like the MiniPRO without even a circuit diagram to point me to the pins which are giving the trouble. With my own designs I can do a JTAG Boundary scan to see which pins are connected, and which are not. But I think the data protection blocks that, and in any case I don't have any idea of the interconnects, no idea which pins to start looking at on this control board. Because you have used RDP1 to secure the data in the CPU from reading, I cannot properly check the CPU's integrity, but I was able to check that after reset the Program counter had loaded 0x08000144 and the stack pointer 0x20003b08, which is correct for the MiniPRO boot loader. So it seems the CPU had not been damaged in the mail

Edited by trevmar
  • Like 1
Link to comment
Share on other sites

On 11/15/2018 at 12:02 AM, MRN76 said:

Hello. If anyone wants to flash in Israel, our comrade will be in Tel Aviv until November 19th. And in December he will be in a New York.

Hey!

I'm from Israel and i really want to flash my mini pro

How can I contact your friend?

 

thanks!  :)

Link to comment
Share on other sites

Here is a photo of the CPU pins. Too much flux everywhere, which becomes obvious under the microscope. I apologize for the photographic imperfections (the camera focused on the CPU top, not the pins) but microscopy is difficult. Nothing obviously wrong with pin soldering, although I will probe a few with the multimeter and double-check. Not sure if it is worth replacing the powerFETs, will look into that too... Meanwhile have switched over to using my backup MiniPRO for riding  :)

 

CPU_pins.jpg

Edited by trevmar
  • Like 1
Link to comment
Share on other sites

Power FETs are all STmicro type STP15810 which is sold in the USA as STP150N10F7, 100V / 110A / 0.0036 ohms. Not stocked by DigiKey or Mouser, but readily available from China at about $1 each. There is that plastic waterproof coating everywhere, making any servicing of the control board extremely difficult.

UPDATE: Sat 17 Nov

Ordered some PowerFETs from China, they will arrive Tuesday, according to Fedex. Will resolder the CPU pin by pin under the microscope and try to get everything working again...

Edited by trevmar
  • Like 1
Link to comment
Share on other sites

On ‎10‎/‎17‎/‎2018 at 4:15 PM, Ninebot.run said:

Of course it's expensive! But replacing the motherboard is not the same that replacing the processor. It's much more easy for the regular user.

Well. For replacing the motherboard all you need is to unscrew several bolts. It's is not hard, especially, when you have a video of full disassembling, really. 

Replacing the processor - is much more difficult, but much cheaper :) 

From what I read there are many people on this board who are interested in a modified motherboard, would it be possible to have a special discount for a bulk order for the users of electricunicycle forum? If the price would be a little cheaper I'm sure there will be many people here willing to do an upgrade.

I would be interested myself however 200USD are a pretty steep price.

Thank you.

Link to comment
Share on other sites

On 11/14/2018 at 5:02 PM, MRN76 said:

Hello. If anyone wants to flash in Israel, our comrade will be in Tel Aviv until November 19th. And in December he will be in a New York.

 

On 11/14/2018 at 5:02 PM, MRN76 said:

Hello. If anyone wants to flash in Israel, our comrade will be in Tel Aviv until November 19th. And in December he will be in a New York.

I just ordered a CPU from you, but if you’ll be in New York (which I am) in December, I’d definitely prefer a flash instead.

Please contact me because this forum won’t let me message anyone apparently because I’m new here. Thanks! 

Link to comment
Share on other sites

It never occurred to me that the MiniPRO motor commutation would be done directly by 12 pins of the CPU. Here is the ST Microsystems explanation of how to feed the two 3-phase motors directly from the timers of an STM32F103RC CPU. SIgh! Of course if any of these driver pins are open or short circuited, one could expect the fireworks which occurred in my case. As it turned out, only one pair of the 12 MOSFETs was faulty, dead short circuit across them both. The others test OK. I suspect the top and bottom transistors of the phase were both enabled at the same time.

STM32_Motor_Driver.jpg

Edited by trevmar
  • Like 1
  • Upvote 1
Link to comment
Share on other sites

7 hours ago, MRN76 said:

One of our forum participants began to make a scheme. Maybe she will help.

MiniSxema.rar

Yes indeed, that is a great help. It saves me figuring out the driver circuitry, so I can check that the PowerFETs didn't take any drivers with them.

I didn't notice any mechanical resistance from the wheel motor when the MiniPRO was turned off. Wouldn't mechanical resistance need two set of drivers to fail so that both ends of one phase are short circuited?

Link to comment
Share on other sites

Why are you able to provide flashing options via Bluetooth for the euc community but not the mini pro? 

After the problems users here have documented changing cpus there is no way I'm paying any money unless it's got a software update. 

Let me know when that's available, this process is just going to end badly for everyone involved. 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...