Sensorless at standstill, development updates and status

Another early drill video (sorry this one is sideways to get the laptop screen in the picture):

[youtube]-bS9-QNsUpE[/youtube]

BLDC drill running at (close to) full torque, sensorless running on saliency... meaning the phase information for the FOC control loop comes from additional code that measures the differences in the motor inductances.
This is an early version, later versions have improved accuracy for the phase detection (and so require a bit less phase current). At this point there was no transition to standard sensorless FOC yet.

Note: the voltage indicated on the laptop is double the actual voltage, a mistake in the LabVIEW program...
 
billvon said:
Lebowski said:
I am not a company starter. I cannot really do anything with this tech except build a one-of-a-kind ebike :? . Want to get rid of it (sell it), maybe get a consultancy job with the buyer...
I'd recommend doing a reference design - a PWB that you can build 20 of, that will also drive a motor. (Pick a motor you like and design for that.) That gets you your controller, and it gives you the ability to easily demo it to other people. Get them to sign a non-disclosure that states they will not reverse engineer it or tell other people how it works. That's your legal protection.

A Zero would make a nice test vehicle...
 
Maybe not a Zero, but something similar... in the meantime we have 2 Quantya's sitting around unused with broken DC-Controllers and I would be happy to bring you one (street legal) for experimenting as long as you want. For the motor I'm thinking about buying a Revolt RV-160Es, not a monster (~20kWp) but enough to have fun if combined with the right controller. A nice combo for demonstration/prove of concept purposes?
 
Lebowski said:
A Zero would make a nice test vehicle...
It could be literally anything you wanted - but ideally it should be something that other people could get their hands on too.
 
Great work Lebowski.

This is very exciting but becomes less exciting when I read you don't want to make IC's.... SO someone like me can't play with it??
I have a new build coming on line VERY soon....

I can send you a Zero motor for Christmas if you like.
 
With transition between saliency and bemf running. The transition is around 6 k-erpm, drill can now reach top speed (44k-erpm), limited by battery voltage:

[youtube]8KOiBHHkPI4[/youtube]
[youtube]IHRV6XjLCgE[/youtube]
 
Very cool. I wonder if there might be an analog embodiment of your technique?

If you can ditch the processor and build it on a fully depreciated Fab with a simple process (12-13 masks), you might make something cheap enough that it wouldn't be worth copying.

If you can get it in every cordless tool, vacuum cleaner and toy car, the volume might make some $$$.

I used to work for a company that did that with DC-DC switch mode regulators and saw them go from start-up to a legitimate player in the industry.
 
Great work lebowski.
 
Lebowski said:
Thinking about what to do now with this tech. I do not plan a controller IC with this as for me it is more of the same, basically lots of not interesting work. Also setup might be too difficult and would ideally require a PC with Labview for drawing performance diagrams. I was thinking about building an ebike with this, but again lots and lots of work with no real return... Am busy trying to get other companies interested, but found the whole process with the first company very stressfull, just not my cup of tea. I am a researcher, not a business person. Coming up with the concept, build a working prototype, but after that I loose interest and want 'to throw it over the wall' so to say (expression we used in Philips meaning giving it over to a product division who then build the consumer version).

Just wanted to let you guys know where I'm at with this...
What about crowd funding an initial open source release then charging for technical advice and feature requests? When it comes to open source FOC controllers there's very little around despite the demand, the only real option is the VESC which is quite good but Benjamin who made it is usually too busy to work on it and turns down paid work.
 
Every open source project I've found has a very happy and enthusiastic "paying customer" base. I can't speak for everyone, but from my perspective, my support of an "open source" product over proprietary is that I know if the company (or original creator) abandons the updates and support, there is a community that can (and will) provide answers to questions.

When something proprietary goes bankrupt, the products will often get orphaned. One recent example is BionX kits. Places like ES will have answers to some questions, but the best way to quickly get an orphaned BionX kit working is to hack an external controller and throttle. If the BionX controller was "open source" then many more enthusiasts would feel comfortable buying a used BionX.

One example is the KT controllers, and specifically, the KT-based Tong Sheng TSDZ2 controller. The ES thread on them is over 100 pages. It has been reported that the open-source firmware performs much better than the stock settings. Not only that, a used TSDZ2 would gladly be snapped up on sale, over a used BionX.

ES posters typically have a soldering iron and know how to use it, but there are millions of potential customers with money to spend who do not want to take the time to learn something new, then download a program and adjust the settings. Don't look at the number of customers you will lose by being open source, look at the number of customers you will gain BECAUSE you are open source. The trend for the near future is open source...

SamD performs firmware adjustments remotely on Mobipus controllers, "for a fee", so keep some of the obscure techie settings difficult to access. Like Spotify, there is a large free section with ads, and for a small monthly fee, there are additional upgraded features for the platinum-member users.
 
Well, I am considering writing down how the 'standard' Lebowski controller works, but not releasing the code.

All I think about when I hear open source is lots of companies getting rich of my work without any kickback to me (even though I spent a few 100k$ worth of time and thousands of my own money on computers, lab equipment and parts). Second, as an unemployed at the moment I also think about all the people who will not have a job because their company uses open source instead of a few engineers to develop their own solution...
 
The path forward is open source. The more you share the more others want to help. Patreon is a good platform. Jordan Peterson and another guy are bringing out a new platform as well.

Jordan Peterson shared all of his lectures for free on you tube 20+year's worth and people are giving him close to $100k/month because of it though Patreon.
 
Lebowski, Another thing to consider is making sure nobody else uses the same system. I meen what you have might be the same Idea as TI instaspin.
 
Lebowski said:
All I think about when I hear open source is lots of companies getting rich of my work without any kickback to me (even though I spent a few 100k$ worth of time and thousands of my own money on computers, lab equipment and parts). Second, as an unemployed at the moment I also think about all the people who will not have a job because their company uses open source instead of a few engineers to develop their own solution...
There's not much individuals or small businesses can do if someone is desperate enough to steal code, all closed source does is punish legitimate users by making it difficult to use due closed obfuscated libraries or having to try and ship locked physical MCUs. Making it opensource also doesn't mean you can't commercialize it either, you can easily release a GPL version while offering commercial licenses to companies that want to integrate it but not release all of their code. Quite a bit of software ranging from embedded stuff such as chibiOS to large game engines like unreal engine 4 use similar business models. You can also trademark the name of the software, if it becomes popular companies will pay to be allowed to use your brand in their advertising for controllers that run on the software. It's much more feasible to register and enforce a trademark vs multiple patents on software.

I don't think it would impact other engineers having jobs, Ti and many others offer sensorless software based off rotor saliency and induction, they just aren't on the public sections of their websites and are only offered to larger companies under NDA. It's unlikely many are writing their own implementations. I'm not completely sure why they have opted to be so secretive about it, I suspect the methods were patented decades ago and expired but only became relevant recently as MCUs became powerful enough. I have seen a few start ups trying to sell similar things but they never seem to appear in products or be bought out, which makes me suspect there's too much prior art for them to be bought out. Here's one I stumbled upon recently. [youtube]fBMcbu7OPI8[/youtube]
 
lizardmech said:
I don't think it would impact other engineers having jobs, Ti and many others offer sensorless software based off rotor saliency and induction, they just aren't on the public sections of their websites and are only offered to larger companies under NDA. It's unlikely many are writing their own implementations. I'm not completely sure why they have opted to be so secretive about it, I suspect the methods were patented decades ago and expired but only became relevant recently as MCUs became powerful enough. I have seen a few start ups trying to sell similar things but they never seem to appear in products or be bought out, which makes me suspect there's too much prior art for them to be bought out. Here's one I stumbled upon recently.

I assume it is considered valuable IP (giving a real advantage over competitors) so they keep quiet about it. TI for instance can patent their method but everyone can read the patents and copy the system. Including the whole of China. So I can imagine they just keep quiet about it. You may also be right that they are using old expired patents and just don't want to point anyone to those.

But I build my system all on my own without any knowledge of TI's or anyone else's system. I don't think there is anything TI can do to stop me just publishing how my system works, and so take away their advantage. I have a 100 page pdf with detailed explanation on my other non-internet PC. I don't have an NDA with TI, I actually never used processors from TI because their software is/was not available for Ubuntu Linux. Maybe, without being aware, I'm using things already patented, but this also cannot stop me from telling how my stuff works.
 
Lebowski said:
I assume it is considered valuable IP (giving a real advantage over competitors) so they keep quiet about it. TI for instance can patent their method but everyone can read the patents and copy the system. Including the whole of China. So I can imagine they just keep quiet about it. You may also be right that they are using old expired patents and just don't want to point anyone to those.

But I build my system all on my own without any knowledge of TI's or anyone else's system. I don't think there is anything TI can do to stop me just publishing how my system works, and so take away their advantage. I have a 100 page pdf with detailed explanation on my other non-internet PC. I don't have an NDA with TI, I actually never used processors from TI because their software is/was not available for Ubuntu Linux. Maybe, without being aware, I'm using things already patented, but this also cannot stop me from telling how my stuff works.
I don't think there would be any issues with documenting it or making an open source version. I mean't when it comes to making some money off it, the business model of just selling it as locked down commercial software doesn't appear to work for other smaller companies trying to do similar. Open source projects that make money off support, feature requests and the occasional commercial license request seem to have more success.
 
Lebowski said:
I actually never used processors from TI because their software is/was not available for Ubuntu Linux.
TI C2000 processors come with an Eclipse-based IDE that works on linux. Been using it for quite a while in my ubuntu laptop, works ok provided your machine can haul Eclipse.
If your main value is your IP just try to jump ahead and use a FPU-enabled chip like the higher end C2000 or an STM32F4. Will save you time thinking about fixed point issues. ST can be built using much leaner tools on ubuntu (or use eclipse if you want). I prefer to develop on STM32 unless the spec requires automotive grade.

Impressive job man. :bigthumb:
 
Been using home brew FP in my controller IC (and also this one) for some time now...

I use two words, one is between -32767 and -16384, and 16384 and 32767, the other words is the exponent. 1.0 for instance is 16384 2^-14
 
My control board is running this code

code snippet.png

All "float" variables are 32 bit, math is done with the hardware floating point instruction set.

Just my 2 cents, might speed up your algorithm-fu.
 
marcos said:
Lebowski said:
I actually never used processors from TI because their software is/was not available for Ubuntu Linux.
TI C2000 processors come with an Eclipse-based IDE that works on linux. Been using it for quite a while in my ubuntu laptop, works ok provided your machine can haul Eclipse.
If your main value is your IP just try to jump ahead and use a FPU-enabled chip like the higher end C2000 or an STM32F4. Will save you time thinking about fixed point issues. ST can be built using much leaner tools on ubuntu (or use eclipse if you want). I prefer to develop on STM32 unless the spec requires automotive grade.

Impressive job man. :bigthumb:
I reckon the best way would be to make it into an abstracted library coded in C using floats. You could run it on any 32bit MCU with a FPU and appropriate PWM/ADC hardware. Getting it up and running would just be a matter of connecting the code to timers and other peripherals for each MCU.
 
My code is all written in assembly :D , I use lots of macros which are faster to execute than call / return combos. Those take around 10 cycles, while most floating point functions are also roughly 10 cycles (meaning that its better to waste 10 memory locations here and there, instead of doubling the execution time)...

Code:
;************************************************************************************
; fp_oneover						
;************************************************************************************
;[w13] = 1 / [w13]
									
.macro fp_oneover
	                           ;ye = -29 - xe 
    mov #-29, w0
    sub w0, [w13], [w13]
                                    ;ym = 2^29-1 / xm
    mov #0x1FFF, w1
    setm w0
    mov [++w13], w2
    repeat #17
    div.sd w0, w2
    mov w0, [w13--]

.endm
	
;************************************************************************************
; fp_mult			
;************************************************************************************
;[w13] = [w12] * [w13]
									
.macro fp_mult
	                            ;zm = xm * ym
    mov [w12+2], w0
    mul.ss w0, [++w13], w2
                                    ;find shift in w3
    fbcl w3, w0
    neg w0, w0
    subr w0, #16, w1
                                    ;shift mantissa
    sl w3, w0, w3
    lsr w2, w1, w2
    ior w3, w2, [w13--]
                                    ;calculate exponent
    add w1, [w12], w1
    add w1, [w13], [w13]

.endm

and

Code:
;************************************************************************************
; angle_to_w0
;************************************************************************************
; reg8 and reg9 will be corrupted !
	
.macro angle_to_w0 reg8, reg9							
						;initialise
	mov #0, w10
						;to correct quadrant
	neg \reg8, w0
	cpbgt \reg9, w0, 9f
						;imag < -real, rotate over 180
	neg \reg8, \reg8
	neg \reg9, \reg9
	mov #32768, w10
9:
	cpblt \reg9, \reg8, 9f
						;imag > real, rotate over -90
	neg \reg8, \reg8
	exch \reg8, \reg9
	mov #16384, w0
	add w0, w10, w10
9:	
						;calculate to max 45 degree part, phi =(1/6.28) * 0.78049*(y/x) / (0.78049 + 0.21951*(y/x)^2)
						;keep sign in w11
	setm w11
	btss \reg9, #15
	clr w11
	btsc \reg9, #15
	neg \reg9, \reg9
	
	bset \reg8, #0
	mov \reg9, w1
	clr w0
	repeat #17
	div.ud w0, \reg8
	
	mul.uu w0, w0, w2
	mov #14386, w2
	mul.uu w2, w3, w2
	mov #51149, w2
	add w2, w3, w3
	
	mul.uu w2, w0, w0
	
	repeat #17
	div.ud w0, w3
						;times 1/6.28
	mov #10430, w1
	mul.uu w0, w1, w0
						;make neg = xor with 0xFFFF and add 1
	xor w11, w1, w1
	btsc w11, #0
	inc w1, w1
	add w10, w1, w0

	
.endm
 
Back
Top