I am trying to figure out the communication protocol of the transmitter chip found inside an RC remote (FS-GT2B). Originally, I thought it was I2C but after some research it seems less likely because it is lacking some characteristic lines. The silkscreen says "SCK", "SCS" and "SDIO". Here's a picture of the chip's pinouts: . Can anyone offer some pointers as to what the communication protocol of this guy is?
Thanks!
The pins correspond to clock (SCK), chip select (SCS), and data input output (SDIO). You need to toggle the SCK pin in the appropriate way as you change or read the data on the SDIO pin. the SCS pin is likely for data direction (read or write).
There is no easy way to determine the protocol from a black box. Instead, you need to remove the RF shielding case to see the chip. A soldering iron and a solder sucker will do the job. Be careful not to overheat the circuit inside.
Use the number on chip to determine what kind of chip it is, then find the datasheet by searching the internet.
Once you have all that and write some code, this is appropriate place to ask questions about it.
Related
I want to build a project with an STM32G070.
I need a couple of PWM pins.
I look at the datasheet and user manual, and I cannot find anyware if all pins of if only some are PWM capable and so, witch one it is.
I want to know because, if i look at the BluePill, not all pin are PWM.
Anyone can guide me ?
To answer the question - no, not all pins can be configured for PWM. However, most STM32s (including the STM32G070) have multiple timers, many with multiple channels which can generate PWM signals, and these can be mapped to many pins. So it's almost guaranteed that you'll find two spare pins that are not used by other peripherals, that you can use for PWM.
As mentioned, PWM signals are generated by timers. You can consult the reference manual for the STM32G070 to see which timers are available, and which ones have channels that can generate PWM signals. And you can reference the datasheet to see which pins they can be mapped to.
If I was designing a board, I'd create (e.g. in STM32CubeIDE) the crucial peripherals first (e.g. any SPI, I2C, UARTs, etc.) Then I'd see which pins are left over that could be used for PWM. There are bound to be several.
When I search online for EMG sensors, I often see these sensors are just made of a few transistors, resistors and sometimes diodes. Also I once read on a site that EMG sensors are some kind of modified voltmeters. But while I managed to make a voltmeter from an Arduino, I haven't been able to make an EMG sensor from an Arduino.
Does someone know whether it is possible to make an EMG sensor from an Arduino and how they did achieve this?
I think the biggest problem here is that of dynamic range. EMG signals are AC voltages typically in the low mV range and would need a gain of 100 or so to get them up to +/-2.5V, then a simple offset circuit to convert that to 0-5V for the Arduino analog inputs. However, that's not the whole story, since the small EMG signals can ride up and down on large low-frequency background voltages. Your AC amplifier would need a high-pass filter to remove those, or they could drive it off-scale which would prevent the EMG from getting through. If you reduce the gain to keep things in range, the EMG will be a rather small part of the 10-bit ADC range on the Arduino.
So the thing to ask is what is the point of using the Arduino in the first place? If you are going to connect it to a computer in order to look at the EMG signals, then why not just skip the Arduino and use the computer's sound card? The Mic input probably has enough gain already, and you get at least 16-bit resolution to handle any large non-EMG background that wasn't filtered out.
IMPORTANT! EMG measurements require direct electrical connection to the body. For safety, you should make certain that your recording equipment is electrically isolated. If you use only a standalone Arduino, you should power it from batteries. If you use a computer, it should be a laptop running on batteries, with no other connections to ground.
I often see these sensors are just made of a few transistors,
resistors and sometimes diodes.
That's true for pretty much all electronics devices...
Does someone know whether it is possible to make an EMG sensor from an
Arduino and how they did achieve this?
You cannot build an EMG sensor from an Arduino. But you read sensor values with an Arduino either through serial interfaces or by measuring voltages.
With a bare Arduino you can neither measure negative voltages nor can you amplify small signals. (we're in the µV range here...)
Just buy something ready or learn more on electronics
I have a weird problem. I am currently building a BB-8. Therefore, I am using an Arduino Uno. On top, I have stacked an Adafruit Motor Shield v2.3 and, again, on top of this, I have stacked the Sparkfun USB Host Shield. The Arduino is powered by a 9V-Block battery, the motors are powered separately by two 18650 Li-Ion batteries. To control the two Pololu motors, which have a stall current of 1.6 amps each, I use a Xbox 360 wireless controller, where the receiver is connected to the USB Host Shield.
Now to my problem. Every seems to work fine, until i cover everything with a styrofoam hemisphere. Yes, you've read right. If that happens, the controller signals is lost and does not connect again, unless I restart the Arduino. I have uploaded a small video on youtube, where you can see the problem.
I guess, this is a power problem, since this issue does not occur, when I connect the Xbox receiver to my Mac. Has anyone an idea, how to solve this problem?
I already tried another power source. And the USB host shield should give enough power, since the specs are saying, that 500 mA is no problem, and hit is exactly the USB 2.0 spec. The combination of the shield shouldn't be a problem, too. I carefully chose this shields, because the motor shield is just using the pins A4 and A5, the USB host shield is using some of the digital pins, so I think there is no interference.
Thank you for your help.
EDIT
I have tested it a bit more now and i think i can reduce the probable reasons. First, i tried some other power supplies, from AA batteries on the VIN pin to external power adaptors. Next, i tried other xbox receivers and controllers. I also tried a playstation 3 controller with a Bluetooth dongle. Nothing solved the problem. I also covered the Arduino with other things than styrofoam, like a garbage can, cardboard and some metal box. This worked, so the problem was only with styrofoam. Now i haven't covered the Arduino, but i slowly got closer. About 20 cm from the Arduino, it stopped working. My clue: static electricity. Do you think this can be a problem? And if yes, how can i solve this?
Try use single battery + separate voltage regulators for every load. Otherwise if one of the batteries discharges while other are ok, it can take all power of the system, something like short-circuit. Also you can receive a trouble if do error in ground connections.
Select good battery, which can provide enough power. If cant find a battery which can supply enough current think about using low current batteries in series to achieve extra voltage. Then reduce voltage using dc-dc step down converter.
For example if you have a battery of 24V which provides 1A (power p1 = 24*1). It can provide 5A if reduce the voltage to 5V using dc-dc. (power p2 = 5*5). Because p1*h=p2, where [h=0.8 - efficiency].
So, I solved the problem. As is mentioned in my question, the problem was static electricity. I primed the styrofoam sphere with some special primer to make the styrofoam a little more stable and so on. That's it. Luckily I didn't touch the Arduino with the sphere. I think it would have damaged the Arduino.
Well I've looked and looked and just cant find data on the max current of the 5 v output (or even a suggested reasonable max)
They all mention 50 mA for the 3.3v output.
Looking at the chip it's a smaller board than the Arduino Uno so I don't want to pop it.
I assume someone will know the max current that the regulator on this board can handle and surmise what the 5v current out could be? Thanks in advance!
EDIT: The regulator / board 5v pin out, not chip related.
EDIT: Assuming supply is from the 12v power adapter.
The schematic shows a NCP1117ST50T3G. The datasheet shows 1500mA (typical).
Note that you may not actually be able to draw that at the higher end of the input voltage range since the Arduino may not provide sufficient heatsinking, needed since the regulator will shut down if it gets too hot (and the regulator will melt down if it doesn't shut down).
Also note that the traces on the board may not be designed to allow that much current to flow safely, and you could end up damaging the board itself regardless.
I'm going on record that you can put any amperage as input as long as the voltage in within range. So, if you have a 5V 200A high power input you are still fine. Now, If you have a short, you're cooked. But a properly designed circuit will draw what it needs and nothing more.
Hyperbole. I know absolutely nothing about this topic. I'm hoping a lot of people will call me names and one of those will correct me with a correct electrical engineering based answer. Either my view is correct or it isn't.
On Arduino board, I see two port gnd : one in power line (a list of port has power label beside), that I call gnd(1). And the one is on the other (the line that has port from 0 --> 13 and gnd), that I call gnd(2).
I don't know the difference between two port, but when I test a LED on breadboard, if one line I connect to gnd(1), the LED will be lighter than gnd(2) (gnd(2) just has a small red light)
Please explain for me the difference.
Thanks :)
From reading this page: http://arduino.cc/en/Main/ArduinoBoardUno/ (if this is your board) I can't see that it should be any difference in your gnd ports. Maybe you provide different amount of power? Or do you have too much resistance at one time?
I have used Arduino pretty much and I've never had your issue even if I am using all gnd ports available.
The ground connections are usually directly connected on the board. In my opinion there are at least two good reasons for this design:
1) Ground connections are needed very often. Thus it is convenient to have as many ground connections as possible. Especially if you are experimenting with jumper wires.
2) Ground connections are very important and should be reliable. Thus redundant connections will improve reliability in case of vibrations and or bumps.
In my experience adding an extra GND to my breadboard greatly increases reliability and stability. I have had the same experience of LED turning brighter, but also of digital results becoming unreliable if i'am only using one GND.
I tried fixing my stability issues by adding capacitors to the breadboard, but adding an extra GND was much more effective.