Proto-App / Proto-Android

Realtime circuit simulator for Android platform.
101 stars 2 forks source link

Relay Enhancements/other suggestions #188

Open MaxChooch opened 1 year ago

MaxChooch commented 1 year ago

Firstly, I'd like to state that I am an auto mechanic delving heavily into electrical diagnostics. This app is amazing, but from an automotive perspective, I've discovered a few things this app is lacking. After sinking at least 40 hours into playing around with this app I've made some notes.

  1. When selecting a relay, it would be nice to be able to select between 4 pin or 5 pin relays as well as normally open or normally closed and to be able to reverse them like the npn and pnp.

  2. I find it really weird how I can edit the parameters for DC power source but I cannot change the base voltage of the battery or select its amps rating.

  3. Add a 3-phase automotive alternator option ( with variable rpm choices and selectable max amp output, WITH a case ground to the alternator's housing), and a 3-phase diode rectifier for turning it into usable d.c.. Basically an alternator button would be nice as building that circuit with a charging and starting circuit takes up more space than is available on the board provided in the app.

  4. Switches. In the auto world we have pressure switches, temperature switches, and magnetic clutches (air conditioning compressors in cars have magnetic clutches to engage the compressor via a pressure switch). You've got "temp sensors" and "pressure sensors," but no pressure switches or temperature switches. I need more switches. The switches I am proposing merely need to complete a path to ground via a conditional variable. The variable for the pressure switch, for example, needs to go up to at least 500psi for modern air conditioning systems. The temperature switches in cars for example, switch at temperatures anywhere between 0°c and 205°c for the liquid cooant system to electronically kick the radiator fans on. Can't currently build that with this app.

  5. The switches also need to have a way to simulate the trip condition being met to turn them on in the circuit. Like a simulated heat source or a simulated pressure source.

  6. There are inductors in the app, but no field windings.

  7. There are numerous sensors in the app's components list. I don't understand how to use them. I've spent hours trying to figure it out. There seriously needs to be some sort of instructional for each component in this app. The pre-built examples don't cut it. An app of this magnitude definitely needs an instructional/tutorial. I've looked and I can find nothing online except one foreign guy's YouTube video that has no subtitles, and your promo video which is just flashy advertising. It would go a long way with usability if there were examples of how to utilize certain components like the pressure sensors and temperature sensors..

  8. The capacitors in the app, theres no voltage selection in the editable parameters. This is a massive oversight.

  9. Several times now, I've had the oscilloscope function "break." When this happens, current doesn't flow, voltage sources don't produce, circuits don't operate, and the oscilloscope is either completely gone or reads nothing across anything, and there is nothing I can do to fix the circuit except delete it and start completely over from cratch on a new simulation page.

Like I said, this app is great. But for the amount of money I paid, I have yet to be able to construct a single circuit from my field of work, because the component options are too limited, and there is no instructional within the app to show you exactly how to use the components that you do have so that they function properly within the app. It's a bit of a guessing game. And it's disappointing.

Also, due to the extremely limited IC options within the app, I've tried to build other ICs but haven't been able to because there is no way to reference Vcc and Gnd across an opamp in order to build a dual comparator like an LM258 or LM358

I've read all the other reviews and suggestions people have made and I've seen your responses too. I am impressed by your continued dedication to making this a better app, which is why I made a github account just so I can post this here. Hopefully it gets seen and I see some of my suggestions implemented in the future.

That is all for now You guys rock! Thanks for all your hard work.

Proto-App commented 1 year ago

Hi @MaxChooch Thank you for very detailed description! Please check answers below:

  1. Good idea, we will try to implement
  2. DC power source has voltage option, it is ideal model and it has no amp rating.
  3. It is very hard without mathematical model or some kind of subcricuit. Do you have any source?
  4. Same as above. To make any not typical component we need models or circuits.
  5. Ok, you mean some dependent sources?
  6. Correct, now we have only inductors.
  7. Sensors read values from your device and produce output values. You can check accelerometer LED example, you can observe output values based on device's orientation.
  8. We agree, we will implement it soon.
  9. If you have issue like this, please share your circuit via mail proto.playstore@gmail.com. We will try to debug it.
LucasBS1 commented 1 year ago

4 - To avoid the creation of infinite types of switches (magnetic, temperature, etc), there should be one dummy switch that is programmable. Or a microcontroller, as I suggested on another unread tread

After all, if I had a temperature switch, then the app would also need a heat source, and that heat source itself would need programming. So on...

Edit: I read only later that the OP suggested environment sources/variables to act on the switches, but that would make things complicated, and my suggestion above could work better

2 - Hell yeah. I also complained about the lack of a voltage/current capacity for the batteries, but I was ignored there, as you were ignored here.

MaxChooch commented 1 year ago

So you're agreeing with my review that there needs to be more switches? I don't think 3 or 4 styles of switches is "infinite" and there definitely needs to be pressure switches. Like, for sure. So many things use pressure switches it's ridiculous. All this would have to be, is a switch you could click on that's labled pressure switch with an arbitrary value. You clicking on that switch, would be simulating it being activated by pressure. That's all I'm asking for.. screw the device sensor activated switches, who has a thermometer they can plug into their phone anyway? Give me something I can freakin manually activate for crying out loud, how hard is that to program?

On Mon, Feb 20, 2023, 1:33 PM LucasBS1 @.***> wrote:

To avoid the creation of infinite types of switches (magnetic, temperature, etc), there should be one dummy switch that is programmable.

After all, if I had a temperature switch, then the app would also need a heat source, and that heat source itself would need programming. So on...

— Reply to this email directly, view it on GitHub https://github.com/Proto-App/Proto-Android/issues/188#issuecomment-1437575828, or unsubscribe https://github.com/notifications/unsubscribe-auth/A45YGKV63AOX6JQQCYETJ3LWYPPJFANCNFSM6AAAAAATINB5FI . You are receiving this because you were mentioned.Message ID: @.***>

LucasBS1 commented 1 year ago

Totally agree that we need something to emulate sensor switches (transducer). Don't necessarily agree that this transducer must read environment variables (because we would need to program those variables)

Right now, I use push and latch on/off switches. Like you, probably. Those simple kinds. All we need (that is EASY for the developers to do) is a PROGRAMMABLE switch. Then I can label that programmable thing to whatever I want, like "pressure switch"

MaxChooch commented 1 year ago

Yes, I agree. Completely.

On Tue, Feb 21, 2023, 9:13 AM LucasBS1 @.***> wrote:

Totally agree. We need something to emulate sensor switches (transducer). Don't necessarily agree that this transducer must read environment variables.

Right now, I use on/off switches, or push on/off switches. Like you. Those simple ones. All we need (that is EASY for the developers to do) is a PROGRAMMABLE switch. Then I can label that programmable thing to whatever I want, like "pressure switch"

— Reply to this email directly, view it on GitHub https://github.com/Proto-App/Proto-Android/issues/188#issuecomment-1438829479, or unsubscribe https://github.com/notifications/unsubscribe-auth/A45YGKVBPGWMZVFKLTG7243WYTZSFANCNFSM6AAAAAATINB5FI . You are receiving this because you were mentioned.Message ID: @.***>

Proto-App commented 1 year ago

@LucasBS1 Please explain on example what do you mean by saying programmable switch. It is obvious to you but not for everyone.

LucasBS1 commented 1 year ago

Easy to explain:

PROTO already has magnetism, gyro, and light sensors. For those, we can simply attach a relay to it. Attaching a relay to it, it becomes a switch. So basically, the switch we are talking about is a sensor attached to a relay.

(see also note 1 at the end)

There. Explained.

But those sensors are attached to our phone, and we don't need the variables that the phone gives us: we need variables that we will find on cars, industries, air conditioners, etc.

We could very well attach a voltage source to a relay, and call it switch. But what if we wanted that voltage to vary during the simulation ?

And to vary in a controlled manner

MaxChooch's suggestion of switch would require PROTO to simulate an environment with pressure, temperature, magnetism, humidity, etc Here comes my suggestion, instead: Let's imagine a black box. With how many terminals we decide. When we edit the content of the box, we can write a code on it. For instance:

So on. We can simulate real life values with this.

I probably just described a microcontroller, which is why I suggested a microcontroller (twice: once in this thread and on another one of mine)

Note 1: Sensor+relay takes SPACE. It this regard, there's this suggestion, not made by me, that could help overcome it: https://github.com/Proto-App/Proto-Android/issues/183

Proto-App commented 1 year ago

@LucasBS1 You simply described mcu because your description requires some kind of code execution. And it is not that easy for devs as you described because this solution needs language interpreter in runtime! But idea is great, we will think about it.

MaxChooch commented 1 year ago

Proto Team, thank you for your continued interaction and willingness to hear people out. I know sometimes we don't have the full picture of what it takes to get things done, but I really appreciate your correspondence.

Troy

On Wed, Feb 22, 2023, 11:59 AM PROTO Team @.***> wrote:

@LucasBS1 https://github.com/LucasBS1 You simply described mcu because your description requires some kind of code execution. And it is not that easy for devs as you described because this solution needs language interpreter in runtime! But idea is great, we will think about it.

— Reply to this email directly, view it on GitHub https://github.com/Proto-App/Proto-Android/issues/188#issuecomment-1440717996, or unsubscribe https://github.com/notifications/unsubscribe-auth/A45YGKXH43WYRM7H34ZOFFLWYZV3TANCNFSM6AAAAAATINB5FI . You are receiving this because you were mentioned.Message ID: @.***>

Proto-App commented 1 year ago

Yes, we prefer to get as much info as we can :)

@MaxChooch @LucasBS1 is there any possibility to give us your requirements about "programmable" switches (short summary)? Do you need only outputs, or maybe also inputs? how much? what about JavaScript as main language that controls logic inside switch?

LucasBS1 commented 1 year ago

I'm more convinced about the idea of a microcontroller than a programmable switch.

In the end, it's the same.

I already abducted Max's thread, so I'll leave switches for him to describe. But in my opinion, uC fulfills the needs of everyone.

We are accostumated with C language. It's the predominant language in microcontrollers.

But Java is good. At least for the moment - the developers already have a lot on their hands Maybe more options in the future. Maybe even a graphic language, without actual programming, like Ladder

Microcontrollers have timers, AD/DA, PWM, interrupts, flags, registers, etc... All we need is timers really. The rest PROTO already has.

And ports, of course Inputs and outputs (sink/source), lows and highs, maybe even analog levels The amount of ports ? Infinite.

This is BIG, if you think about it. A microcontroller can replace so many other components... And I don't know of any other software that can do this.

I'd like to remind the other stuff still to be dealth with: https://github.com/Proto-App/Proto-Android/issues/176

Proto-App commented 1 year ago

@LucasBS1 @MaxChooch We will implement something between regular component and mcu. You will get N inputs, N outpus and code editor to write IC logic.

Proto-App commented 1 year ago

@LucasBS1 @MaxChooch In version 1.20.0 you can try JavaScript addon. It allows to write custom logic and drive outputs.

LucasBS1 commented 1 year ago

Nice. Exaclty what the doctor ordered. I'll take some time to test it, since I'm familiar with C language