#help-with-radio
1 messages · Page 17 of 1
Hello everyone, I just ordered the RFM95W and would like to see some simulated results using this component and various antenna designs. Is this feasible using a program such as ANSYS HFSS software?
Hey! I have an urgent problem. Im usin rfm9x moodules connected to raspberry pi zero. When i run a send/receive test between two devices in close proximity i get RSSI of -100. And the max range is about 30 meters. I have no idea whats causing this...
Did you add an antenna to the modules?
Yes i have tried a normal whip antenna and better pole antenna. both rated to 433Mhz
So you're using the 433MHz version, not the 900Mhz version? A simple wire antenna is fine, soldered directly to the board. Which test program are you using?
Do you see the same signal level in both directions, if you run the test program on both boards?
@restive fjord I saw your forum post -- Have you tried the "simpletest" example https://github.com/adafruit/Adafruit_CircuitPython_RFM9x/blob/main/examples/rfm9x_rpi_simpletest.py just to verify that the settings you are using are not impacting things.
So with the simple test and 433Mhz setting it gives around -80 rssi for 1 meter range. If i switch it to 915Mhz it gives me -60 in same range. The circuit im using is RFM95C so i quess its 915Mhz board but i tought that you can change it with software?
@restive fjord The rfm9x module numbering has always confused me, but my understanding is that the 95 were tuned for 915MHz and the 96 for 433. That is, there are some differences in the module components that limit their response to those frequencies. The frequency can be set by software but only within a fairly narrow band of e each type. For example see table 48 on page 10 of of this datasheet for the rfm9xW https://cdn.sparkfun.com/assets/learn_tutorials/8/0/4/RFM95_96_97_98W.pdf I could not find a datasheet explicitly for the rfm95C. RSSI of -55 is typical of what I see on my workbench with rfm95s at 915MHz at 1 meter separation.
ok thats good to hear. So i had the wrong frequency. Now i need a new antenna and i have no idea what would work with that circuit. What power antenna should i choose?
Sorry, I'm not sure what you mean by "power antenna".. I just use a 78mm wire most of the time. I also have used these https://www.adafruit.com/product/4269 and these when I need the antenna outside of a box https://www.adafruit.com/product/3340 but I have not done a lot of range or rssi testing to compare them.
the wire length came from this guide https://learn.adafruit.com/adafruit-rfm69hcw-and-rfm96-rfm95-rfm98-lora-packet-padio-breakouts/assembly#wire-antenna-2433240-7
I use wire antennæ on mine and they work fine
Hey guys, so I looked into ANSYS HFSS and it seems too complex for me at the moment 😂 does anybody have any experience with MATLAB and where I should start in adding something like the RFM95W in a sim?
You may be interested in some real-world range tests first. There are some interesting references here: https://forums.adafruit.com/viewtopic.php?f=57&t=181788, and if do a websearch for "lora range tests" or similar there are many other results.
I did a real world range test with the pictured boards. At 433MHz with the simple wire antennæ, I got about 1.1km of range over reasonably level terrain, not bad.
For LoRa do you have to pick a data rate while writing the Arduino sketch? Is there a way to adaptively change data or to prioritize the modules to maintain long range connection while sacrificing data rate?
You can change the transmit power, spreading factor, data rate, etc. on the fly if you like. Presumably, you could write code to back off on the data rate if there are problems with the data link, but that might take some artful coding (I'll admit I haven't investigated whether the library offers that sort of functionality already)
Hmm. Something to investigate. I guess that would require the receiver to send a payload back to the transmitter with information about the RSSI.
That sort of thing can be tricky to implement properly, since when data is being partially lost in transmission, it's really easy for the two sides to get out of sync about the radio settings they should be using and lose the connection entirely. "Oh, wait, I thought I told you to drop the data rate, so I already switched my receiver to the new setting!" "Sorry, I didn't get that message, so I didn't..."
I agree, you'd need some sort of protocol that covers transmission failures, acknowledgement delays, recovery after total loss, etc.
As a snarky aside, this is something Niantic is spectacularly bad at, even though they're operating at a much higher level.
Niantic? The Pokemon Go developer?
Yes, them.
Their games have a bewildering variety of bizarre failure modes if there's even the briefest glitch in connectivity or GPS coverage.
Ah, gotcha...
Thanks for the response! I was looking into simulated results because I want to have the LoRa radios on a model rocket. Reaching 10 - 30k ft and traveling pretty darn fast
For simulations check out this website. https://www.ve2dbe.com/english1.html
Look at "Radio Mobile Online"
It lets you define a transmitting antenna and a receiving antenna. Then it creates a map of potential coverage
I am having trouble figuring out PA_BOOST. Using the RF95 Lora radios and setting the power, the adafruit examples say rf95.setTxPower(23, false). In the radio docs it seems to suggest that there are two output pins and to use PA_BOOST you would use true? Or is it just using that pin and you can do 0-23 instead of 0-20 like with the RF69 radios?
"RFM95/96/98(W) feature three distinct RF power amplifiers. Two of those, connected to RFO_LF and RFO_HF, can deliver
up to +14 dBm, are unregulated for high power efficiency and can be connected directly to their respective RF receiver
inputs via a pair of passive components to form a single antenna port high efficiency transceiver. The third PA, connected
to the PA_BOOST pin and can deliver up to +20 dBm via a dedicated matching network. Unlike the high efficiency PAs, this
high- stability PA covers all frequency bands that the frequency synthesizer addresses."
So, I saw this diagram, but I am unsure if that means there are physically different pins that would be wired up when the board was made, or you can choose the one that is used?
There's only one antenna pin, so these presumably internal modules
Has anyone had success with LoRa communication between a RF95 and a Semtech SX1272? I cannot for the life of me get the RF95 to receive data from the SX1272. All the lora settings are the same in the programs.
The two devices in question are the Pycom FiPy (SX1272) and the Dragino LoRa shield v1.4 (RF95)
For starters, I'm new to electrical engineering, especially rf applications, so I apologize in advance for anything dumb I say.
I currently have an ESP32-S2-DevKitM-1U, and am looking for an external antenna.
The documentation for this board is here: https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/hw-reference/esp32s2/user-guide-devkitm-1-v1.html
And the datasheet is here: https://www.espressif.com/sites/default/files/documentation/esp32-s2-mini-1_esp32-s2-mini-1u_datasheet_en.pdf
Looking at the datasheet, the external antenna connector is compatible with the following:
W.FL Series connector from Hirose
MHF III connector from I-PEX
AMMC connector from Amphenol
However, I've been unable to find an antenna with these connectors. I've looked at various manufacturers and suppliers, including Mouser, Digikey, Newark, Farnell, Allied, Arrow, and Molex. I've also looked at the creators of these connectors themselves, Hirose, I-Pex, and Amphenol. Any antenna I've found with the right connector isn't fit for the 2.4Ghz range, which is what I need for wifi. The best I can find is an adapter between one of these compatible connectors and a common connector such as SMA.
Additionally, through my search for an antenna, I've learned about the existence of impedance, radiation patterns, resistance, gain, etc. I have only a slight idea of what these indicate, and have no idea what kind of characteristics I need.
To be more specific with what I am using this for, I intend to use the ESP32-S2-DevKitM-1U with the external antenna to connect to another device (laptop or phone) via wifi at some distance away (Perhaps around 50m? Is this range even possible with my setup?). Both devices would be at ground level, outside.
So, to summarize my main question: What kind of antenna do I need, and where can I find it?
Alternatively, where can I go to learn more about this subject matter, so that I at least sorta know what I'm doing?
I guess for your main question, this particular antenna might not be available on the mass market yet. U.FL is the common standard for most WiFi modules, and I rarely even see W.FL antennas for Bluetooth modules, which seem to be its main market so far. If you have a line of sight with minimal obstruction, however, 50m might be doable with the PCB antenna.
There is also a LR protocol that exchanges data rate for significantly higher ranges. If your other device supports this protocol, you can reach significantly farther.
You could try a bluetooth antenna, since they both operate at similar frequency bands, but you might not get the range desired... https://www.digikey.com/en/products/detail/inventek-systems/B24P-W/11306874?s=N4IgTCBcDaIOoDoBiAZEBdAvkA
Isn't this a forum for discussion of Adafruit stuff?
What do you mean by "external" antenna? Like...a rooftop high gain antenna? or maybe an antenna external to your enclosure?
You probably want a short pigtail connector that converts to a Reverse polarity SMA connector. Then you'll have lots of options. At 2.4 gHz you want the antenna feedline as short as possible. Power loss thru the cable is significant.
To be more specific, the ESP32-S2 has an antenna normally, but the -1U version doesn't have a built in antenna. So when I refer to "external antenna," I'm referring to some antenna outside of the board.
Also, I apologize if this is meant for Adafruit specific products, I thought it was just general rf discussion.
Ok, thanks for the information. I might end up splicing some wires or something to get the desired antenna with the desired connector.
Interesting, I don't know too much about the specific protocols (since I'm completely new to all of this), but I'll see if I can use that with this board.
Also, thanks @worn bridge and @grand breach for the information! After getting lost in my own research and making several posts, this is the only place anyone responded.
Adafruit has one:
uFL = IPEX
Well, I actually currently have an antenna with a U.FL equivalent connector. However, after realizing the size doesn't quite fit, I delved much further into things, and one thing I was able to figure out is that U.FL isn't exactly the same as the connectors IPEX makes.
IPEX makes the MHF series. MHF1 is compatible with some U.FL connectors, but some of the other MHF connectors are not. The specific board I have specifies the IPEX MHF3 connector, which is also compatible with the Hirose W.FL connector, not the U.FL connector.
OK...it sounds like you know more about these connectors than I do. I have used a few uFL connectors. I remember having to push them on pretty hard. Harder than you would expect to push on such a small connector.
Yeah, I initially thought I had the right connector, and had heard they were difficult to put on. But after getting fairly nervous about breaking my board, I started looking at the manufacturing drawings, and realized they are slightly different dimensions
I have no idea why espressif decided on a different connector for this board.
Ok. I was having a lot of trouble finding a W.FL connector, but figured there's got to be something out there.
I linked a Digi-Key product that should work, I just don’t know how well…
The only connectors I could find were W.FL/MHFIII to SMA adapters sold by Hirose and IPEX directly, as well as one or two antennas with the connector, but I wasn't sure on the specifications
Thanks, I'll see how well it works with the board
Yeah antennas and RF in general are fairly complex. As long as you find something that works, don’t dig too deep into it, otherwise your project isn’t going to make progress for a while haha
People joke about rocket science, but this is probably harder stuff to wrap heads around heh
That one would be good for a directional antenna. It looks like a is is made for an drone controller. If you want omnidirectional, keep looking.
Yeah, so far I've been having an interesting time trying to figure things out. Especially once I started hearing terms like impedance, radiation patterns, resistance, gain, etc.
Is the linked antenna directional?
The one @worn bridge provided a link to DigiKey for? That one is directional. RF energy radiates perpendicular to the flat panel.
Oh, I didn't know that. Although looking at the data sheet (and using my rough understanding of radiation patterns), it looks like it's unidirectional?
Some of the listed applications (under 3.2 in the datasheet) include "Wearable devices," "keyboard," and "mouse," which seem more like unidirectional applications
It's looks more omni than I would guess. Don't forget, those charts are in db (logarithmic). Only 3 db more means twice the energy in that direction. It works good in the Y and Z directions...not so good in the X direction. Like hams like to say...all antennas are a compromise. There is no such thin as a perfect antenna.
Oh, I didn't realize the charts were logarithmic
Hmmm, I can probably make this antenna work, since I don't need quite as much vertical height.
And as @worn bridge mentioned, I don't want to did toooo deep into things or my project will never go anywhere, heh
Good Luck!
Thanks!
Also, looking more into the LR protocol, is this the "802.11 LR mode"?
Can't help you there. No Clue.
Ok, I'm hoping @worn bridge will respond when they get a chance, just to make sure I'm looking into the right thing
Yes
Ok, thanks
if you want to build an rf antenna get the ARRL ANTENNA hand book for frq over 1 ghz i find slot antennas work well
btw i am a ham (wb6joe)
k6aus here 🙂
I had a question about the TinyLoRa guide and registering the RMF95W as an end device. The guide: https://learn.adafruit.com/lora-and-lorawan-radio-for-raspberry-pi/tinylora-ttn-setup-2 looks a little outdated after the register device page. it's asking for the LoRaWAN version and the Regional Parameters version of the device, but I can't find that in the guide or in the documentation. Where can I find that info? Am I just not seeing it somewhere?
Hello, I have two RFM95W LoRa breakouts hooked up to Teensys using the Radiohead lib and Reliabledatagram... The server does print the message, but sendtoWait always fails on both client and server. The client never gets any messages from the server.
I've tried a ton of things but can't get it working and can't find any info online about what I might be doing wrong. help?
Can you post the code you are running on both devices?
it's almost exactly the rf95_reliable_datagram_client and server code. I can post it though, let me clean it up a little.
Also, a picture showing the wiring may help.
the client
server
wiring is like this... except I didn't end up using the reset pin on the radio. The server doesn't have a gps but is otherwise the same.
Why not use the Reset? It is usually toggled during the setup.
none of the demo code called it ¯_(ツ)_/¯
Hmm. Ok. It’ll be a few minutes before I can look at it.
thanks a ton, I'm really stuck 😄
The example has the RESET commented out // pinMode(4, OUTPUT); // digitalWrite(4, HIGH); When I use it, I do set the RESET pin HIGH. In your case I would try adding
the RESET connection and pinMode(9, OUTPUT); digitalWrite(9, HIGH);
hmm.. okay I can solder those up on both sides. would that really cause the problem I'm having?
not really sure, still studying the code. I think there are other issues -- You are not setting the frequency and I believe it defaults to 433, not 915....not certain of that, but I always set it.
I'll post my example in a minute...
I added driver.setFrequency(915); and now it just hangs XD
maybe i should go add that reset wire.
well -- I have two examples -- one uses the RESET, the other does not.... so I'm not sure...
server example
client example
I think it would be best to add the RESET and set it HIGH.
Then add the check when you set the frequency --- that will verify that you are communicating with the RFM95
just added the reset, i'll give these a try
most of my examples have the RESET being set HIGH. not sure why I left it out of that server example...
this is working! thank you! I think I can get it working in my code from here 😄
Great! Good luck!
I have a long standing question about radio kits for 2/3G cellular:
Is a carrier subscription required or can a cellular modem talk to another modem without a third party?
I have no clue. I've seen modems talk about carriers but when it comes to 2/3G, those bands are suppose to be unsupported by carriers. Sorry if this question is dumb.
Yes, I'm pretty sure a subscription is required. Modem-to-modem communication was never really a thing for cellular.
The services supported will depend on your locale, but a number of places should still have 3G running at least.
3G may have a limited future.https://www.washingtonpost.com/technology/2021/09/30/3g-networks-ending/
2G is essentially dead, 3G is dying, 4G is currently kinda far from EoL since 5G is still ramping up. It can be hard to tell how much longer something might be supported -- ideally you want to go as forward as possible, but of course costs can be a factor. And if you're not worried about upgrading in a relatively short amount of time [maybe months] you can go with the less expensive now and hope the newer radios get cheaper by then
I need 2 LORAs to perform some experiments. Which ones are good? I'm mostly interested in achieving as much range as possible. They are goingto be used for mine communication
I've used the HopeRF series of RFM9x modules with good results.
This also might be of interest: https://www.cavelink.com/cl3x_neu/index.php/en/
did you buy a module that you implemented on a PCB o did you buy a board ?
I've seen lots of boarsd with these RFM9x, I wonder if they all have properly implemented the RF frontend
I did a solder-down module, yeah.
it appanrelty can use other modulation modees such as OOK FSK, etc
can it also receive them?
Yep.
I'm wondering how they compare to chirping in terms of range
Lower range, but higher data rates.
interesting...
The datasheet has a big list of receiver sensitivities for the different schemes and options.
does it implement fec or anything?
It has a very crappy Hamming code option.
ok
Is t here any public spec of how lora operates?
I have not been able to find it if there is one...
I suppose maybe because the standard is propietary
I'd start from the Semtech transceiver chip documentation. Depends on how low-level you need to go, but it's at least enough to understand the various tradeoffs in the modulation options.
I have taken a quick look of it.. but im wondering more about the way data is encoded and modulated etc
is t hat info available at all?
Reasonably so. The discussion about the spreading factors gives you a picture of what they're basically doing.
And various people have long since looked at everything on a RF signal analyzer, so I don't think there are really any secrets involved.
thats soemthign at least
Anyone have any experience with the desktop software for a nanovna? I have a Sysjoin NanoVNA-F V2 and nanovna-saver 3.9 (most recent firmware and version). Vna-saver crashes whenever I attempt to connect the nano via usb.
Have you looked in the mailing list? https://groups.io/g/nanovna-f
There is also a general list: https://groups.io/g/nanovna-users, but in this case I'd start with the nanovna-f list.
Great, thanks. I’ll check out the mailing list
Anyone tried using a STM32 Nucleo 64 L4xxxx series with the LoRa radios 915 Adafruit makes?
If it supports SPI, it should work OK.
But I have had no experience with that MCU.
Are you using Arduino IDE or CircuitPython -- or something else.
I'm using an Si4713, and the first time it is plugged in, it doesn't work. If the board it is connected to is reset (but remains connected to power), then it works. Is there anything I can do about this? I've tried adding some delay to my code, as well as calling si4713.reset() (I'm using CircuitPython by the way)
Do you have the reset pin wired up, and the library configured to use the GPIO pin it's connected to?
Yes
I got a bit of a temporary workaround by using microcontroller.cpu.reset_reason, and then resetting the board the first time it is turned on
So I just ordered a RAK2245 RPi HAT Edition. Going to build a LoraWAN gateway. Anything I should be aware of?
It looks like it's got a max operating temperature of 85C, so I will have to pick a good spot outside that's in the shade at all times because it'll get at least 30-35C here in the summer.
Should I bother with POE?
I am probably going with an IP66 rated Polycase.
I don't even know what kind of antennas I can put on this sucker, and what the reach will be.
So, question about this line:
With RF output power level above +15 dBm a minimum distance to a transmitter should be 1m for avoiding too large input level.
What does that mean? Transmitter, as in antenna? I am kind of guessing that the TX antenna needs to be at least 1 meter from the RX antenna? Or something?
I am not a radio engineer. ¯_(ツ)_/¯
POE just lets you run fewer wires: whether that's important to you determines the value of POE. Note that many cases dissipate heat poorly, so anything inside them that generates heat will tend to get hot.
Yes, that's what they mean. Although often there will just be one antenna for both TX and RX on each device, so "transmitter" and "receiver" just refer to whichever antenna is playing that role at the time.
So. RAK Wireless looks like they're canceling all kinds of orders. I am not sure what's going on, I think maybe material shortage and crypto miners have bought up all the inventory. So much for my LoRaWAN gateway. They said they have a lead time of 40 weeks. Bro. I can travel to China, dig up the rare metals, forge them in the one mountain, shave some dwarves for giggles, have a big hobbit party, and build my own concentrator in 40 weeks. With like 36 weeks to spare. Fine, 35. I probably need a while to sober up after that hobbit party.
Does anyone have any idea of how feasible it is for someone to hit the 20Km mark with LoRa? I've just started tinkering with these so I'm just curious, even if it isn't feasible. I wouldn't be opposed to trying a low cost directional antenna for even shorter distances than that.
It depends a lot on your environment. Line of site… trees….buildings…hills…with simple wire antennas in my neighborhood of houses, hills, and trees I get 1km …
1Km is great I think. I haven't done any sort of major distance test with my modules, but I imagine I'll get a similar distance to you as I'm just using a wire antenna too
Yeah, 20km is feasible, but only with a better antenna, I'd say. And getting a clean line of sight over 20km is challenging to start with.
Well that's reassuring. I wouldn't mind investing in a better antenna if this becomes something I continue working on. My family owns like 500 acres outside of cell range, so setting something up like that would be really cool
I managed over 1km with these trivial wire antennæ
There are also some new satellite options available these days for low-bandwidth comms, such as Swarm, if that's appropriate to your use case.
Swarm, I'll have to check that out
The little (less than a meter across) satellite dishes used for television are frequently discarded and easy to find: aiming a pair of them at each other with a fairly ordinary antenna at the focus might do the business. Or the old style mesh dish UHF TV antennas (but those are harder to find these days). You could even try simple "Pringles can" antennæ
I would just connect the satellite with coax cable to the lora module?
Yeah, get a small antenna for the frequency you're using, put it at the focus of the dish, either via a short coax, or mount your entire receiver there (there's not enough RF power to cause problems unless you aim it at a weather or traffic radar or somesuch).
It's also possible to DIY a simple helical antenna https://hackaday.com/wp-content/uploads/2020/07/2.4-GHz-Dual-Feed-Helix-Antenna-For-QO100-YouTube-10-25.jpeg
Nice. That's a pretty slick idea
Can we operate NRF24 module on frequencies other than 2.4 ghz ??
How to make a antina ?? What are things to consider ??
A antina That has a high range
I wanted to make a antina that works on many frequencies
When search for radio antenna types, I got only monopol or dipolar antina
But most antina I have seen are copper coils
And are copper coils best type of antina ??
How receivers listing reserved frequencies are catched by police ??
🤔
It is impossible
Is function generator with antina enough to create noise at a frequency ??
I don't think the nRF24 modules operate on any other frequencies. Normally current in a conductor is what radiates, so more current is generally more range. The factors that govern range are an antenna's efficiency (how much of the input energy is converted to/from EM waves), and its directionality (how much of the signal is squeezed to a particular direction. Normally for high range, you'll see fairly directional antennæ such as helixes (as pictured above) and dish antennæ. For many frequencies, a "discone" is a popular choice, but it's not very directional. You can also look at Yagi and log periodic antennæ for some directionality and operation on multiple frequencies.
I don't understand your police question, but finding people using arbitrary frequencies is certainly not impossible.
Yes, sending a signal to an antenna will radiate RF noise.
@slender echo I didn't see these earlier because I was asleep.
i wanted to make all directional antina
and how to make it efficient ??
The most efficient antennæ are normally resonant designs with a good impedance matching network.
resonant ??
An omnidirectional antenna (or "isotropic") antenna will generally not have a high range.
A resonant antenna will have elements of the proper size to match the wavelength of whatever you're trying to receive/transmit.
normaly how much ??
formula ??
Like most engineering, these goals are contradictory: you can have high efficiency or multiple frequency support, but it's hard to have both. You have omnidirectionality or high gain/range, but not both.
@primal warren .
The formula depends on the propagation velocity of waves in your antenna elements. You can figure the wavelength in free space by dividing the speed of light (29970254700cm/s) by the frequency. For example, at 433MHz, the wavelength works out to 69cm, so a quarter wave would be 17.3cm. However, since the speed of light in wire is slower than the speed of light in free space, a quarter wave wire antenna will be slightly shorter (16.5cm is generally about right).
How much range depends on your transmitter power, your receiver sensitivity, and your path loss.
i have to devide wavelength or frequancy ??
It depends on what you have. If you have frequency, you can divide the speed of light by that to get wavelength.
and get quarter of it ??
That depends on what kind of antenna you are building.
a omnidirectional
antina
@primal warren https://upload.wikimedia.org/wikipedia/commons/b/bc/Fourier_series_for_square_wave.gif how harmonic waves are genrated automatically ??
Harmonics are innately a part of any non-sinusoidal wave. If your signal is generated by digital switching, they just come as part of the package.
It is possible (and recommended for the application we discussed earlier) to filter out the higher frequencies to some extent with a bandpass filter.
Can I calculate how much harmonics it will generate ??
Yes, from the Fourier series.
Yep
You can isolate the magnitude of each frequency by separating the terms of the summation.
Please in normal words 🙏
Do I have to pass frequency as x ??
Math explained in easy language, plus puzzles, games, quizzes, videos and worksheets. For K-12 kids, teachers and parents.
I have read formula carefully then i seen this
This means k will be devide k as much we add harmonic frequency
By this we will get frequency of square wave but not how much harmonic frequency it will generate
Is their any formula for that ??
Np, and thanks for resolving my doubts
And do mobile work like FM radios for transmitting or receiving data ??
And this community is very great and has specific helpers
Thankyou also @worn bridge
Theoretically, yes. For a square wave with fundamental frequency x, we get a 3x harmonic at 1/3 the magnitude, 1/5 of 5x, 1/7 of 7x, etc.
Practically, it's not so easy. Even assuming a perfect square wave, which it likely won't be, your signal is a myriad of square pulses in irregular patterns, so the actual magnitude of noise will vary. You can rest easy knowing that most of the noise will be at your harmonic frequencies, but the exact amount will be difficult to calculate.
Is there a reason you need the magnitude of harmonic noise?
I was thinking to make a jammer
And it will be easier for me to generate noise if harmonic noise is already their
Using raspberry Pi
Be sure to check the legality of such a device in your area. Jamming or interference of any authorized radio communications in the US is strictly prohibited, with no exceptions for educational or academic applications. Because of this, I cannot provide any help with such a project past very basic fundamental concepts.
Aa, don't be so serious it is just a experimental project
But .
Wireless communications is a subject riddled with legal restrictions. Law enforcement actively on the lookout for illegal radio activity doesn't make it any less illegal.
Sure, it's not robbing a bank, but if you accidentally mess up an emergency bandwidth, lives could be at stake...
@worn bridge can you tell this ??
Nope
Please ??
Because no one can see who is resiving signal
It is impossible
Even if the inquiry is made out of curiosity, I cannot in good conscience provide information that knowingly could be used to undermine the local authorities in your area.
I am learning cybersecurity that's why I asked how this works
And I read this https://medium.com/@gradlerix/play-with-your-walkie-talkie-in-india-without-getting-into-jail-e5ac207ff150 article
In India, One having a 5,000 Rs can order a pair of random “ Professional ” Wireless Walkie Talkies from Amazon.in and start using them…
@worn bridge I have this question also
Yes, cellular phones work the exact same way in much higher frequency bands. 2.4GHz and 5GHz is well known for BT/WiFi, and cellular signals vary based on your carrier's preference in communication network.
Thanks for information
And your time
Can I transmit 2 frequencies at same time in 1 antina ??
Or i need to do it simultaneously ??
Can I use my rassbery pi to receive fm signals like my radio ??
It should be highly sensitive
And how should I make antina for it ??? (It should be highly sensitive)
"at the same time" means the same thing as "simultaneously". Normally transmitting on two frequencies at once requires circuitry (such as a diplexer if the frequencies are far apart, or an isolator or directional coupler if the frequencies are close).
The Pi itself has no FM reception capability, but you can hook one to an FM tuner or SDR to receive material.
Can someone please tell me how fm works ??
I understand what is am
But fm is hard
Frequency modulation (FM) is the encoding of information in a carrier wave by varying the instantaneous frequency of the wave. The technology is used in telecommunications, radio broadcasting, signal processing, and computing.
In analog frequency modulation, such as radio broadcasting, of an audio signal representing voice or music, the instanta...
@vocal veldt I saw a new release of Adafruti_CircuitPython_TinyLoRa today, but I wanted to confirm that is it not compatible with TTN V3 at this time , is it?
It is not
OK, so now I have a LoRaWAN gateway like all the cool kids. My worst worry: "firmware" as in OS image, was from like over a year ago, and I am running a full upgrade now.
Let's see how badly it crashes. So, now to my actual questions. I will be running this guy in 433 MHz, what type of outdoor antennas would you recommend me put on my house? I mean, it's only 5V/2-3A so it can't be too big I guess. But, let's get it on the house before the Karens gang up on me and form an HOA.
(they will never be able to form an HOA)
it's alive!
It depends on how directional you want it, how much range you're looking for and of course HOAAF (HOA Acceptance Factor). I started with simple ¼λ wire antennæ, and they worked well. Those aren't very conspicuous at all, especially if you use wire with insulation a similar color to whatever's behind it.
I have no HOA. I want it to be fairly omni, looking for as much area coverage as possible.
I would never, ever live somewhere with an HOA. I am already a cranky old man at the age of 46.
I salute you, well done
So what kind of antenna would you recommend then? I am wobbly at any kind of math, and a little nudge in the right direction would be appreciated.
The math isn't really difficult on the face of it, just divide the speed of light by the frequency to get the wavelength, then take a quarter of that for an ordinary quarter-wave antenna. But there's some tweaking to adjust for the speed of electricity in a wire, so my suggestion is just to follow Lady Ada's recommendations. Scroll down to "Antenna Options" on this page, where lengths are given for several popular frequencies: https://learn.adafruit.com/adafruit-rfm69hcw-and-rfm96-rfm95-rfm98-lora-packet-padio-breakouts/assembly
I used the same approach to make these simple antennæ for a pair of LoRa boards, and achieved a link over a kilometer without really trying.
This one (the orange wire not connected on one end) worked well too
I checked that article, but it doesn't really explain what kind of antennas I can use for 433 MHz, just says get some that work. But, how do I figure out what size antenna I can get for the most amount of range? I have this RAK concentrator: https://store.rakwireless.com/products/rak2245-pi-hat?variant=39942878888134
I was wondering if I need something like this: https://store.rakwireless.com/collections/antennas-1/products/5-8dbi-fiber-glass-antenna?variant=39942855098566 or if I am OK with something smaller/cheaper?
The LoRa high gain antenna is one of RAK high-performance, omnidirectional monopole antennas. It has a frequency range of up to 930 MHz. This long range antenna, manufactured by RAKwireless is the solution to your connectivity problems and offers a myriad of features. It also supports all LoRa bands. To know more about IoT solutions and latest ...
This seemed pretty clear to me
I'd try a piece of wire before I went with something bigger, heavier, and more expensive.
Yeah, for development it came with a little antenna for the little uFL connector, I was more thinking once I've mounted this guy on the side of my house, what kind of antenna do I get? This is going to be a publicly available TTN gateway.
You have a bunch of options, depending on the kind of range you want to offer. You might be able to just put a simple wire antenna in a plastic pipe to protect it. The one you linked to is directional, which may or may not be what you want (it beams the signal in a particular direction)
the fiberglass? It says that it's omnidirectional?
Oh, you're right, I misread it
Hey, @primal warren, thank you so much for helping me understand these things and guiding me. ❤️
Hi, I am working on a multi sensor payload for a high altitude balloon. I am using a Lora feather board with an ESP32 Huzza feather and other boards/sensors. All is good, but the telemetry data is quite long. I see the radiohead lib has a 255 bytes fifo buffer limit defined in the library (maybe is hardware too?). The telemetry string is about 600bytes (long csv with about 30 columns). I could split the data, but do you guys know of a char[] compression function/library that I could use to see if I can shrink the size of the telemetry data? since the lora send is blocking and uses the same SPI bus as the SD card, I want to cut down on the transmission time (also save some power). I am sending all the data in case of a no recovery situation.
Is it possible that you could send the original binary data instead of a CSV? That would tend to be noticeably more efficient.
yes, you mean the sensor values from the register. I was thinking about that. The reason I have it in a long CSV is because this is for students and was trying to keep it simple so they could just pop out the sd card or download the data file from the web interface and open it in excel without much work. but I could use one set of data for the SD card and the other for the lora transmission
Yep, that seems to be a decent compromise.
Or, if you were planning on having LoRa decompressor software on the receiver anyway, you can have it translate the binary to CSV on the PC too.
I think that is what I will do. I was looking for something like compChars = comp(longCSVstring); and send that instead.
Another thing you might consider is to split up the telemetry into multiple packets at different transmission rates, since I assume that some of the variables will be changing slowly or of lesser importance than others.
that is what I am doing now, I am sending it in 3 chunks and that works, but it takes about 6 seconds. which is fine, but it would be nice if it was a smaller buffer
Sending the binary data is probably the best bet. But a very simple compression scheme for an all-numbers CSV would be to encode each character "0123456789,-" (and maybe "e"?) as 4 bits, so halving the size of your message.
oh, that is a great idea. I don't have anything other than numbers and ", . -" I think encoding to 4 bits is a great idea, it will actually cut the size in half and I can still use the uint8_t size, but each will have 2 values.. brilliant!
I was just now trying out https://github.com/siara-cc/Shox96_Arduino_lib/ but yeah half the data would definitely help, I can probably send the whole string in one packet instead of 3
lemme know how this works out
i'm curious to the results as it's something i'll be poking at later
Sure, there are probably a 100 different ways to do it, this is my implementation and it worked: https://github.com/EdgarBarranco/arduino_csv_encoder I codded it on an Arduino UNO, but the final project runs out of an ESP32, it just takes way too long to compile a simple project on those boards.
it compresses 332 bytes into 166 bytes, I am printing the output just to demonstrate the bits, but the final project doesn't.
Hey guys, does anyone here have a guide on how to learn about radio (like a roadmap)?
I think the call number in the library is 621.384
I know it because when I walked into the library, for several years, that shelf was my first stop ;)
The Amateur Radio Relay League (arrl.org) has a bunch of good educational materials. There are also some good kits and learning sets out there that cover radio. It's also covered in many electronics texts.
Do you have anything else? The UI/UX is really horrible.
Maybe those are more to your liking?
this is maybe a weird question, but does anyone know of a wider breadboard that I can use with RFM9x modules, the little rectangular 2.5cm x 3 cm ones from Adafruit? With a regular breadboard with 2 sides and 5 points to a row, the RFM9x modules are so wide that they only leave 1 column of points available between both sides, making me have to choose what side's pins I want to breadboard with.
and I'd rather not resort to the PCB type breadboards
I had a similar problem with an ESP32-S2 development board, and ended up sawing a half-size breadboard in half and sticking it to a piece of plastic (a large jar lid, in this case). Another idea is to solder stacking headers or extra-tall pin headers to the header holes, so you attach a jumper directly to the pin location and have a spare next to it
Headers are like the duct tape of electronics. They're great for connecting things together, soldering to perf-boards, sockets for wires or break-away header, etc. We go through ...
There's always this approach https://hackaday.com/2018/08/27/the-solution-to-oversized-dev-boards-a-literal-hack/
Remove one of the power rail assemblies, then connect the remaining pieces together.
I've been lobbying for a wide breadboard for a while. I don't think it's going to happen in this congressional session. I'll keep pushing though.
I am once again asking for your support. This time, with radios! OK, so are there any ways of building zigbee and z-wave stuff with CircuitPython, or whatever, something I can run on Home Assistant, or connected to my Home Assistant?
(also, I missed Bernie's face, so here he is in all his glory)
https://github.com/adafruit/circuitpython/issues/4007, but we don't have any libraries of our own
interesting! Alright, added to my list of deep-dives
alright, I added a comment to the issue, so maybe somebody bites
What about the latest gen XBee? https://www.sparkfun.com/products/15130
it says it works with CircuitPython MicroPython [edited, because duh]... Hmm
click on the Documents tab on that page, which has a MicroPython guide (not CircuitPython)
Looks like you could use straight up Python too, which would be excellent on a Raspberry Pi, like what I have my Home Assistant installed on. I have added a notify on that product so hopefully I can snag some at some point.
Thanks, @young cove! So, if I can get my hands on one of those modules then I might be able to see what needs to be done to port something to CircuitPython.
see if they have a Python library that might be adopted. But if there are native C modules used to support Zigbee, that is more work
They do have a Python library: https://xbplib.readthedocs.io/en/latest/
taking a look at it now
only requirements are:
pyserial>=3
srp
don't know enough about CircuitPython to understand if those two deps are available, or portable
srp looks to be depending on a bunch of crypt stuff, so ouch
import os
import sys
import hashlib
import random
import ctypes
import time
import six
oh wait, that was for cpython
import hashlib
import os
import binascii
import six
that's what the py version uses
well, the only obstacle I see to porting that would be no SHA1 (which isn't necessarily bad)
six we can just strip out anyway
though it's not great that the default for srp is SHA1, I don't know if XBee supports anything above that... Checking.
Well, the XBee 3 modules say they support 128/256 bit AES Encryption so that's promising, might be able to completely skip SHA1 and still port... Hmm.
@versed yew are there any good guides for how to porting libraries to CircuitPython? I'll give it a go.
Just don't have a module, and they're out of stock, everywhere. Probably used for crypto mining or some crap.
Cryptomining is why we can't have nice things.
I really doubt people are using XBee modules for cryptomining.
lol
probably not
I just like to blame the cryptominers for everything... no graphics cards, no Raspberry Pis, no anything NVIDIA...
then again, there's crypto mining meshes like Helium that use LoRaWAN to perform distributed calculations
A Pi might be a workable crypto engine if the GPU was available as a coprocessor, but last I checked (because I wanted to use it for machine learning), it was still a closed, graphics-only blob.
people are building clusters and using them for cryptomining
That seems silly to me, like using old IBM mainframes for mining.
yeah, dude... I guess it's cheaper than buying $2,000 NVIDIA cards at like $1,000 markup.
and probably cheaper as far as electricity goes
Few of those are being used for crypto either, most of those are being absorbed by gamers that insist on one of a very few specific cards.
A big chunk of crypto is being done in Iceland, where (geothermal) electricity is cheap, and (arctic) cooling is basically free.
Fortunately, the graphics cards I usually specify (V100) aren't in particularly short supply, unfortunately, they were expensive to start with.
True. I just happen to know a whole bunch of people that bought up entire farms worth of NVIDIA 2080/3080 and deployed them in their garages. Just to mine crypto.
They were not alone. A whole sub-section of the Internet did this.
Those silly people really don't understand effective crypto. Not that I'm surprised.
That's why there are no graphics cards that aren't marked up 500%.
There are lots of graphics cards available at better than list, just not the few popular ones.
I mean, yeah, no, they don't. Does that stop them from buying up all the graphics cards?
Just the particular graphics cards script kiddies have heard about.
You can get a Matrox C-series off the shelf today for a good price.
You can get a used V100 for about 1/3 of the new price, and new ones are widely available for about 15% off list.
Yeah, it's a bit weird the way they focus their particular madness at just a particular subset of cards, where some GPUs are actually better than say a 3080, for less amount of money.
So, this is weird. I am seeing no GPS coordinates being collected from my RAK 2245 Pi HAT.
weird part is that I am getting some GPS coordinates and altitude...
but, it still never updates
Good afternoon, everyone 🙂
Wondering if anyone can point me to a resource on how to build my own ble packets and use them? I've cobbled together some code, but I know I'm missing some important underlying ideas.
Alternatively, is there a downside to using UART over BLE?
do you mean BLE "UART"?
Yes
https://github.com/adafruit/Adafruit_CircuitPython_BLE_Adafruit is an example of "proper" BLE services vs an ad-hoc serial protocol
UART really is quite easy, but it's good to invent a relatively clean protocol, handle error recovery (lost bytes), etc.
https://github.com/adafruit/Adafruit_CircuitPython_BluefruitConnect is an example of UART packets
there are guides for both of these, too
there are arduino versions too
Sorry for the late reply @young cove - was on a call. I have uart/serial port emulation over ble working cleanly, but everything you just mentioned (error recovery, etc) are things I think will be difficult with that solution.
Was wondering if there were guides to properly create and use the BLE stack (i.e. something akin to the various "services" CPY offers).
As always, thanks for getting back to me 🙂
This came up in an offline discussion today: those of you who are spinning up your own boards with the ESP32-S2-FN4R2 for personal or small-scale use, what are you doing, if anything, regarding radio regulatory compliance?
@vocal veldt @young cove Following up on yesterdays discussion, should the Arduino TinyLora library also be flagged as deprecated https://github.com/adafruit/TinyLoRa It is referenced in this guide https://learn.adafruit.com/the-things-network-for-feather/using-a-feather-32u4
It could be "archived" for now, but one day it might be revised, I guess. But if it's archived then no one can submit a PR to bringi it up to date. Perhaps we should just PR a "DOESN'T WORK" README edit to these repos for now. Unfortunately there is no simple checkbox to mark as deprecated without archiving.
I think the a PR to the README is the way to go -- the guide that points to the Aduino TinyLora should be flagged as outdated or archived
I just deprecated the guide and added a red alert
Thanks
I don't think UART is that hard: you just need to be able to notice when the stream is out of sync. There are a devices we support that use a UART-style protocol: https://github.com/adafruit/Adafruit_CircuitPython_BLE_BerryMed_Pulse_Oximeter.
There are some older Arduino examples here of using or creating services: https://learn.adafruit.com/bluefruit-nrf52-feather-learning-guide
HIgher-level overview: https://learn.adafruit.com/introduction-to-bluetooth-low-energy
A service-oriented approach (not UART):
https://learn.adafruit.com/bluefruit-playground-app/ble-services
Outstanding 🙂 Thanks, @young cove
Evening, everyone 🙂
This is an modified example code for an nRF24L01 example. but it doesn't work what is wrong? or is the wiring wrong?
I don't have experience with this (sorry), but is there a particular error you're getting?
So one thing that looks potentially problematic in the code is that your message buffers are ints, but you're only sending and receiving a single byte. So the other bytes of the int might be garbage and not match your 123 check, even if the radio is otherwise working.
Question regarding BLE:
I have a service containing characteristics that I want to transmit. My devices find each other correctly (and the custom service) without issue, but slave sends data before the master is ready, and doesn't wait for confirmation. As a result, the information gets lost - it's never received by the master. I'm curious if anyone has (or can point me to) guidance on how to resolve this.
nope
Is it worth printing out the actual contents of ReceivedMessage?
its just an test. later i will conect an relay to the putput and buttons,... to the input
I hear you - this is just getting a feel for how it all fits together?
Ok, so you're saying if (RecievedMessage[0] == 123) is failing - you're not getting to Serial.println"123"?
yes
Ok. I guess if I were doing this, I'd print out ReceivedMessage before the if and find out what's in there - that's all I'm saying 😉
1 sec...
All good 🙂
if thats correct it receives nothing 😄
is it print or println?
doesnt matter (i think) the serial monitor is empty anyways
kk
Can you check if you're getting into the while?
something like Serial.print("Radio is available") after while(radio.available())?
looks like there is nothing available.
What would i have to change?
Looks like while (radio.available()) is failing to me - @granite spear ?
Also, you're sure your receiver is on COM15?
100%
(Y)
er 👍
Can you try putting this above the while? It's from the nrf42 docs at https://nrf24.github.io/RF24/classRF24.html#a048a20c73c7d9b2e02dcbae6fb9c4ba8
if (!radio.begin()) {
Serial.println(F("radio hardware not responding!"));
while (1) {} // hold program in infinite loop to prevent subsequent errors
}
Maybe where you init the radio in your setup method?
waaaaiiit ive just put Serial.println("active") in the loop and it doesn't output anything...
Ah - so maybe loop isn't getting called?
what does that mean?
You're writing in C?
kk, 1 sec
Ok. Having not written in this language, should you replace void loop(void) with void loop() in the receiver code?
i think i found it
And, in your setup have you checked to see if radio.begin() is returning true?
there is no Serial.begin(9800); in the setup
jup now it works °_°
👍
sorry for taking your time 😉 but funny that nether of us saw it
haha all good - I'm not working with arduino or c++ 😉 Sorry if I wasted your time 😉
Hi! I'm trying to learn how to amplify my crystal radio with a mosfet: https://www.adafruit.com/product/355?gclid=CjwKCAiA4veMBhAMEiwAU4XRrznR_p8YPwnhj2txmq43ayMBhuU63zWE6upg7Dz5KO9u6xynIBgklxoCVR8QAvD_BwE
I found this text about amplifying: https://www.electronics-tutorials.ws/amplifier/mosfet-amplifier.html
But was confused about the threshold voltage.
The mosfet datasheet says: Gate Threshold Voltage: Min: 1.35V Typ: 1.8V Max: 2.35V
Which one should I use in calculations for amplifying?
That MOSFET isn't really optimized for small signal work like that, but it should be possible. The idea is to get the gate voltage enough above the source voltage that the transistor will amplify. As you can see from the spec sheet, the threshold voltage can vary a fair amount. Additionally, that point is where the transistor just begins to turn on. So, how to get the transistor biased to a point where it will amplify? There's a circuit configuration known as "self bias", which will balance itself so the transistor is partially on, which is what you want: at that point, it will amplify. For a JFET, it's pretty easy, but for an enhancement mode MOSFET like that, it's a little more involved, but not ridiculously so. https://everycircuit.com/circuit/4538560117997568/self-bias-mosfet
Question regarding BLE:
I have a service containing characteristics that I want to transmit. My devices find each other correctly (and the custom service) without issue, but slave sends data before the master is ready, and doesn't wait for confirmation. As a result, the information is never received by the master. I'm curious if anyone has (or can point me to) guidance on how to resolve this.
Thanks for the information! I'll read up on self bias 👍
I am going to use the terms central and peripheral, since that's the BLE terminology. Are you doing UART for now? I'm assuming the peripheral is sending data to the central, is that right? You could make sure the central is all ready to get data before it actually makes the connection. Or you could have the central send an "I'm ready" message. Is the peripheral sending periodic data, or just sending once?
Hi Dan,
I'm not using UART - I was using it, and that worked well because it allowed me to do what you suggested: get both sides to wait until they were both ready.
Now I'm using Services with Attributes and Characteristics - which is fine, and wasn't that hard to figure out, but now I'm not sure how get both sides to send that "I'm ready" message.
are you doing a NOTIFY from the peripheral to the central?
No. This is where I'm stuck.
The peripheral can just write to the characteristic for the data, and the central can read that peripheral. So it's a pull instead of a push.
Not sure where/how to do that.
Ok, that went a bit fast for me 😉 1 sec and I'll give you an example if that'd help?
why is the central not ready, by the way?
Great question, and I don't know - it just takes longer to get itself together. That was true under UART as well.
def __init__(self):
super().__init__(
properties=Characteristic.READ,
read_perm=Attribute.NO_ACCESS,
max_length=self.packet_size,
fixed_length=True
)
This is how I'm defining the packet
NO_ACCESS means the other side can't read. You can set it to OPEN instead
so the peripheral will write to that characteristic, and then central can read it whenever it feels like reading it
let me see if there is an example
I appreciate it
https://github.com/adafruit/Adafruit_CircuitPython_BLE_Adafruit/blob/main/examples/ble_adafruit_simpletest.py (peripheral)
https://github.com/adafruit/Adafruit_CircuitPython_BLE_Adafruit/blob/main/examples/ble_adafruit_simpletest_client.py (central)
service definition: https://github.com/adafruit/Adafruit_CircuitPython_BLE_Adafruit/blob/main/adafruit_ble_adafruit/temperature_service.py : I am not sure the NOTIFY is necessary there if you are just reading it over and over, but leave it there for now
Ok.
Just to be clear, my current needs are to transmit sensor data that has a time and location stamp - this data is unique and can't/shouldn't be thrown away. This makes it different than many applications where data may be disposable - a HRM for example.
I create the time and location data - no issue - but once transmitted and destroyed the sensor can't recreate it.
you could use a WRITE characteristic from the central to say: please give me data now.
I think you understand, but want to make sure I'm clear so I don't frustrate you 😉
the central is in charge of making the connection, so the peripheral has to be throwing away data if the central is not connected, is that right?
Exactly.
Would this be part of the same service, or something entirely new?
Forgive my ignorance.
it's a service with multiple characteristics. The UART service uses one read and one write characterisitc
Ah! Ok. I get that.
This has been holding me up for a day, so really appreciate it 🙂
Thanks so much for dropping in and for the help 🙂
np
good luck!
@pastel granite Here is an example of interacting with a thermometer service. The central can request the battery level by send a request command, then it gets a NOTIFY of the battery level back: https://github.com/adafruit/Adafruit_CircuitPython_BLE_iBBQ/blob/main/adafruit_ble_ibbq.py, line 148 and ff.
this is just how this particular service works
Ok. It looks like there are many possible solutions here.
For example, I could have a property set by each party indicating "readiness" - transmission of data would start once both parties saw "ready" set by the other side.
Well, the request for data is implicitly "I'm ready".
I could also have methods like _send_ready and _wait_for_ready that both sides could call.
I don't think you necessarily have to negotiate "ready'.
and the connection can go down or be disrupted at any time
hmm I see. So this is where I'm getting confused: My sensor reads that the ble connection is connected and just starts blasting
so somehow the sensor is being thrown into a connected state before it's actually connected?
are you using two nRF boards here? What is running the central code?
I am running two nrf boards
so you wrote both sides here
Yes
the server runs the central code
the sensor runs the client code
for lack of a better term
the peripheral could keep sending the same data until it gets an ack from the central
Yes, I thought of that - and that seems the safest way to do it, but I wasn't sure how to implement
why is it important that you not lose the first reading, if the second one is coming along shortly?
you might lose state?
if the central is late to connect, you will lose data anyway
No, because the sensors collect data only periodically - say, once never 15 minutes for arguments sake
so you don't even need to use NOTIFY. The central can just read a READ characteristic that contains the data. Then it won't read it until it's ready. If it reads it again, it will get the same data unless the 15-minute mark has passed
in other words, it is not a stream, it is a mailbox or whiteboard
This is true, but I may have a stack of readings to send - multiple observations from the same sensor
and I'll need them all
512 bytes or so?
No, much smaller
then all the data can be concatenated in one characteristic, and you can parse it on the other side
Sure, unless there's been a big connectivity issue and the sensor as accrued 1000 records
oh, i see
I know that may seem like a ridiculous edge case, but my boss needs me to account for it
I may also try to create a limited ble mesh system where a sensor can hold some other sensor's data and transmit
well, the central can send a request for record #i and either get it or get a bogus value indicating it's not available
or the central can even ask which records are available in advance
True.
I don't think I need a NOTIFY. Having the sensor wake up, take readings, and transmit when ready seems like the most straightforward approach.
i think you want to keep the transactions short, in case a transaction is interrupted, you don't want to set up a many-second transaction
Exactly my thinking
I also have multiple devices on each sensor that will measure different things
I want to be able to transmit each device's data independently: if there's an issue with one of the onboard devices, I'll still be able to collect data from the others
this is more like MQTT or UDP (with a little negotiation) than reliable TCP
Not sure what MQTT is, but UDP is fine as long as there's an acknowledgement from the server saying "I've got all the readings I expect, go back to sleep now"
MQTT is like leightweight HTTP
Nice
I don't know much about it, but adafruit.io supports it
Ok - I think I have enough to put something together and test
anyway, just conceptually
Thanks again, Dan - I'll look at what you sent and hash something out. Again, I appreciate the time 🙂
yw!
@young cove Sorry to bother you, but I realize I'm missing one key component: actually putting data into the packet.
The example you sent (which I've just now gotten time to look at, apologies), seem to be receiving that data only.
where the_data is data that has been packed using some_stuct_format
let me double check, hold on
thanks 🙂
ok, yes, for a basic Characteristic, yes, just pass it some bytes
or a bytearray. There are many subclasses that take care of the packing for you (e.g. FloatCharateristic)
Ok. I'm using a ComplexCharacteristic, but perhaps that's unnecessary?
I'll show you
class myPacket(ComplexCharacteristic):
uuid = VendorUUID("e0000001-31f5-41da-a2b5-ca4f8e35df39") #UUID is 1 more than service in left-most byte
packet_format = "17sQdd" #how we will pack values - used by struct methods to pack/unpack before and after tx/rx
packet_size = struct.calcsize(packet_format) #size of pack in bits
def __init__(self):
super().__init__(
properties=Characteristic.READ,
read_perm=Attribute.OPEN,
max_length=self.packet_size,
fixed_length=True
)
def bind(self, service):
bound_characteristic = super().bind(service)
return PacketBuffer(bound_characteristic, buffer_size=1)
The data I'm passing is a namedtuple
Can show you my service code as well, if it helps
class My_Service(Service): # pylint: disable=too-few-public-methods
"""Sensor."""
uuid = VendorUUID("e0000000-31f5-41da-a2b5-ca4f8e35df39") #UUID is 1 less than packet in left-most byte
packet = myPacket() #the data we'll send - this is the named tuple, below
def __init__(self, service=None):
super().__init__(service=service)
self._packet_buffer = bytearray(myPacket.packet_size) #make the buffer big enough to hold one observation
@property
def observation(self):
""" All values of the sensor values, contained in the namedtuple.
Return ``None`` if no data available.
"""
buffer = self._packet_buffer
if self.packet.readinto(buffer) == 0:
# No new values
# NOTE: This shouldn't happen
print ("No info to read into buffer - returning None")
return None
return struct.unpack(myPacket.packet_format, buffer) #returned the unpacked buffer
i'm looking for an example... _TonePacket in adafruit_ble_adafruit is a ComplexCharacteristic that is not NOTIFY. On the other hand the temperature characteristic in the simple example/ code I tlinked to above is just a FloatCharacteristic, not Complex
is it not working?
the adafruit_ble library is not well documented, and it took me a week or two to understand the idioms needed to use it
I don't remember the implicit rules right now, unfortunately
Nono, that's ok
Here's my question in a nutshell
Is it enough on the sensor side to say
mySensorService.myPacket = packed_named_tuple_with_data
?
yes
and on the server say
mySensorService = My_Service()
new_observation = mySensorService.observation()
?
a primary reason to use ComplexCharacteristic is to be able to use a PacketBuffer, and know when there is data or not, but if you don't need to know that, just set the characteristic
Ok - so if I know there's data already because I have a list of observations I want to transmit, I don't need a PacketBuffer?
i am trying to remember why we used a packet buffer of length one paket. I think it was so the caller gets a None back if there is no new data.
typically that is done with NOTIFY. I'm trying to remember why one should use a packet buffer with just WRITE
From my side it looks like a way to wait for data
but maybe I'm looking at it incorrectly
you are polling, it does not block, you get back None if there is no packet
Right, so in the server side I could do something like
new_observation = None
while new_observation is None:
new_observation = my_service.observation
right, that is how all the sample programs for say a heart rate monitor work
That would block further execution - not sure of the implications
ok
would that be terrible if I were managing multiple concurrent connections?
(just looking down field)
If one doesn't have data, move on to the next one and check it, it's an event loop, basically
but there is no external event that will trigger you
eventually we might add asyncio.Event support, but it's not there yet
I understand
ok, I'll run with this
thanks for clearing that up - was really scratching my head on this one 😉
ok, the examples where the central reads data from the peripheral using a packetbuffer and a complexcharacteristic are all NOTIFY from the peripheral to the cnetral
ok, that makes sense - it's effectively saying "I have data, read from me"?
A packetbuffer is used to go the other way with a WRITE characteristic in a few cases, such as adafruit_ble_adafruit, where it is sending data TO the device, to get it to display neopixels or play a tone. I'm not sure why we used a packetbuffer there, but that's not your use case.
trying to find a message sequence chart for you for notify
Cheers - it's difficult to understand which to use in which circumstance
a notify is sent from the device to the client with the data. A notify does not expect an ack. An indicate is the same but does expect an ack
Have you already read a BLE tutorial of some kind?
Yes. I'm understanding this better.
I think a simple READ is good enough in my case:
The server is consistently looking for advertisements
When it gets one, I'll look for the desired service and establish a connection if it's present
Once connected, the server will ask for specific characteristics in a specific order, and wait
Once all characteristics have been received, the server will close the connection
Does that logic make sense?
yes, but actually, once the connection is established, it is symmetric. Either end can make requests of the other or notify the other. It's just that typically the peripheral sends data. As a counterexample, we have a library that advertises, an iPhone answers, and the peripheral asks the iPhone what time it is
That's good - it's more flexible
This seems like enough to run with - thank you again 🙂
lol
BLE is a strange mix of very low level concerns and higher level protocols
Indeed! lol
I am trying to get an rfm9x radio-(doesnt have a screen attached) to work with a raspberry pi 4 but i cannot find anywhere where it tells me to properly wire it and code it, does anyone have any websites or help?
Are you using the rfm9x breakout board? https://www.adafruit.com/product/3072
If so, you will need to connect 3.3V, GND MISO,MOSI,SCK to the same pins on the Pi. The Chip Select can be any GPIO pin (except not CE0). Same for G0 and RST -- this Guide for the "bonnet" is a good example of the pins to connect. https://learn.adafruit.com/adafruit-radio-bonnets/pinouts The pins you need are the same for breakout and the bonnet. You just don't need the buttons or I2C pins for the breakout.
hmm -- I see that the guide does not mention the SPI (MISO MOSI SCK) pins -- you do need those!
Yes I am using that one
Thank You I will try wiring it like that
Once you have it connected, you should be able to use the examples in the rfm9x libraray (with the pins set as you wire it). Have you installed "Blinka" on your pi4?
@sharp sundial Are you familiar with running CircuitPython Libraries on a Pi ( using Blinka) if not, you will need to install it as in this guide https://learn.adafruit.com/circuitpython-on-raspberrypi-linux and you will need to install the rfm9x library pip3 install adafruit-circuitpython-rfm9x
I do know i need to install some libraries but I just was not too sure which ones but thank you for telling me, I will try it and if it doesn't work I will come back
Thank you
What are the best ways for debugging issues with PubSubClient/SecureWifiClient, authentication, and client certs with MQTT (Mosquitto to be exact)? I am tinkering with a Seeed Wio Terminal against my Home Assistant MQTT. Just printing stuff isn't super great, I have a few options available for hardware debugging, but maybe that's overkill?
is there a way to get a mlx90640 thermal camera to work with a raspberry pi Pico
No need to ping me -- Many others can help -- this question would be better in #help-with-linux-sbcs -- what problem are you having? The answer is yes.
I have two rfm9x radios, i was wondering if i added this antenna to both, https://thepihut.com/products/simple-spring-antenna-433mhz, will this work correctly and will it be able to carry a message packet through a thin metal sheet, about a mileometer thick, through the wall of a coke can type thick
AdaFruit sells that antenna too https://www.adafruit.com/product/4394 It's a low gain antenna, and those aren't very powerful transmitters, thin metal sheet would tend to block the signal effectively. You might be able to couple a signal inductively (unless the metal is ferrous), or via other means, depending on the situation and your use case.
Would the signal work through the thin metal sheet of a coke can and a further 600 metres at max? or am i going to need to get a new one
I managed to get 1100 meters over open ground with quarter wave wire antennæ: I wouldn't expect to get that kind of range with those little springs, nor with a metallic shield in the way.
I will test it and see what happens
One experiment beats a dozen opinions
Hello
is there any updated documentation for connecting /sending data to the things network using the Radio feather Wing RFM95W 900 ?
our libraries don't support the V3 version of The Things Network, sorry.
Thank you Dan ! So i have this feather wing (RFM95W ) which I installed on the top of my main Feather (nRF52840) and I am trying to send packets to my own gateway
Do you have any recommendations or what libraries I can use ?
basically all what I am trying to do is to send some packets on 915 MHz using the feather Lora wing
Arduino or CircuitPython?
Arduino
Have you seen the examples in this guide? https://learn.adafruit.com/radio-featherwing/
yes and I was getting some errors while uploading the code
compile errors?
yes. I guess, maybe, something related to the [RadioHead] library ?
TCCR1A is used on the original Arduino. Did you set the board to nRF52840?
yes
it appears to me that the library code is not conditionally compiling for nRF52 (ARM Cortex-M4) properly.
For LoRaWan use the LMIC library
thank you @normal drift; I knew you would know
thank you so much @young cove and @normal drift . I'm still kind of new to this stuff but putting in some huge time on it as I am working on a big project
will do some research and test the LMIC library before I ask any further question
@novel hinge there are examples for "feather" boards that should be fairly easy to adapt for the feathewing -- just set the pins correctly.
Also take a look at this discussion -- https://forums.adafruit.com/viewtopic.php?f=57&t=186960#p905924 I found that I had to add a special setting for some nrf52840 boards. I don't think I needed it for the feather, but I did need it for the sense. Just something to be aware of if you start seeing "Event 20 "errors
All that said. I'm not sure why the Radiohead lib would not compile -- I'll try it here. But it os only for poin to point LoRa - not LoraWAN
okay that was so helpful ! I will stay active for the next 24 hours and take my time to check all the documentation you provided above to try to get something up and running.
hmm -- I get the same errors with RAdiohead on an nrf52840 --- must be an issue with that BSP
Good luck! Come back with questions.
okay noted. good to know that the issue wasn't from something that I was doing wrong
thank you !!!
I am testing the "ttn-otaa-feather-us915" sketch to send "hello world" and the sketch is compiling but I am getting this error " Board not supported - use an explicit pinmap"
even though I did define the lmic_pins.
Can you post the sketch you are running or at least the section where you define the pins.
Oh okay. So I guess the only error I have left is " MIC mismatch" on ttn
Where do you see that?
On The Things Network device
hmmm . I am playing around with the configuration for the LoRaWAN version
okay seems like I am getting results with the above configuration . Just had to make sure that the DEVEUI is in little-endian and the APP key is in big-endian
thanks Jerry again !
Yay! You are very welcome.
I am facing this weird problem now. Everything was running smoothly yesterday and I was able to see the payload "Hello World" in TTN ... but today it is kind of stuck somewhere
Stuck on " EV_TX start " ... and I tried adding this line of code " LMIC_setClockError(MAX_CLOCK_ERROR * 1 / 100)" in the setup function but didn't resolve it
Tried to run a new sketch , reset the feather nRF52840, created a new device in TTN but nothing improved. What could be the issue ? 😖
I'm going to copy from general
Hi everyone, I am a complete newbie. I'm trying to get into tinkering with electronics and building devices as a hobby. I've done some very simple projects using one of the relatively cheap kits. Putting the information from a temperature sensor onto a display, a button press counter, that kind of stuff.
Now for a while my dream has been to build a radio. I've had problems focusing on the project and trouble settling on the fm or am receiver, as well as finding the right components. Finding a proper variable capacitor, building an antenna, making a coil etc. I was wondering if I should talk about all of my questions here or whether there are other better suited discord servers to ask around in.
I want to build the actual signal receiving part myself
(But if there's an effective way of demodulating the signal digitally using a microcontroller I am very interested, as long as I would have to write the code)
My first question would probably be which one is less problematic to build, an AM or an FM receiver. In an AM receiver, the antenna seems complicated.
However there's clearly less components and less soldering and thus easier not to mess up
This is the variable capacitor I got
The second question would be tips for building a coil, like literally what kind of wire you would have used, whether I should use a core or not, what size it should be
Also tips for building an antenna
And finally, the third question is whether you think I should pick something else as a project
Again, if this is the wrong place I'll remove my messages
perfectly fine. Your very first radio could be a crystal radio. There are lots of projects on the web to build one, using some variable cap and a coil you can wind on an oatmeal container or other such thing. They recommend wire sizes.
The next step might be a TA7642 radio, which is a one-chip radio, again lots of projects
Thanks! Sorry, I am a university student and in a european timezone, I wasn't ignoring your actually quick response, I just typed it out and went to sleep.
Okay I'll look into that, thanks a lot again!
Ho, I'm Sorry but i'm a New user. I work on Nano RP2040 and if i try to use BLE i receive Always errore with no adapter. Can you help me?
The RP2040 doesn't have built-in BLE. Are you using it with some external Bluetooth module?
The Nano RP2040 Connect has an ESP32 coprocessor. I have not personally tried it. Are you using CircuitPython or Arduino? For CPy info, there is a brief discussion here: https://forums.adafruit.com/viewtopic.php?f=60&t=182077
it could potentially work but the firmware might not be set up for CPy to use it
Thanks, @young cove, I missed reading the "Nano" part.
I using circuitpython. So i searcha way to make a setup of NANO RP2040 of wifi and secrets (also ip, Mask, DNS, gw) at the First startup.
So, if i can, i would like ask you How i can change the Mame/hostname of the device to connect on the network with a custom hostname.
Thanks in advance
do you want to use wifi or BLE? I'm confused. There is no way to set the hostname via adafruit_esp32spi, though the underlying NINA-fw firmware appears like it might have a way.
There are currently issues with using the Nano Connect: https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI/issues/153
I would like use BLE to configure the wifi? Or there Is other solutions to make First setting of the IoT device?
You can't run BLE and Wifi at the same time: you'd have to restart the ESP32.
We don't support this board thoroughly, since it's not our own product. Yes, you could start it in BLE mode, get some wifi info, and then resetart the ESP32 in wifi mode and use that info. But at this point, it's not even clear it works with our current libraries.
So, what tools can I use to sniff/communicate with Zigbee devices? I'm not super-fond of the USB dongles since I'll have two USB dongles, one for Zigbee, and one for Z-Wave, and that's almost $100. I'm curious if there's some kind of thing I can buy/build for cheaper and connect to my Raspberry Pi that hosts my Home Assistant? Thankful for any advice.
Hi, has anyone tried to use anything other than circuit python on the Adafruit Feather M0 RFM69HCW Packet Radio - 868 or 915 MHz - RadioFruit https://www.adafruit.com/product/3176 ? was just wondering as I have arduino code for the RFM69 radio that I was hoping to not have to try and port ....
you can use that with Arduino IDE
do I need to change the boot loader from circuit python?
one sec, I think so
Follow that guide and you'll be up and running.
cool thanks @plush moon ! that looks much more promising!
Lady Ada to the rescue.
Look for this section on Adafruit product pages:
most of them do have something, unless it's a non-Adafruit product, but there's usually links out to the manufacturer in those cases
I did get to that but somehow got lost in the wilderness of circuitpython. (which looks like a great tool just not for this project)
with the RFM69 it was this bit that was the deal breaker
"Receiving packets is a 'best effort' in pure Python code. Unlike the Arduino versions of the RFM69 library there is no interrupt support which means when a packet is received it must be immediately processed by the Python code or it could be lost."
The Arduino RadioHead library should work well with the feather_m0_rfm69.
Is there any components, such as an Arduino antenna, that I can buy that will allow me to pick up a wide range of frequencies? (e.g. between 11 MHz on the SSTV frequency range, to the FM frequency range, all the way to areas like 2.4 GHz on the opposite end of the spectrum where RF, bluetooth and wifi signals are broadcasted)
Is there a good universal radio hat for my arduino uno that can pick up things like that
I'm sorry if that sounds like a stupid question, but I'm kind of new to that stuff
If I can get a radio box or a radio hat that can pick up a ton of signals on various frequencies, I'd be glad to know. I don't necessarily need a transmitter (because I don't have an FCC license), but a receiver would be nice.
What you're looking for is generally called a SDR (software defined radio) module. Unfortunately a Uno is pretty underpowered for dealing with things like that... they're more typically PC accessories running over USB, etc.
ah, I see.
Okay well I can also use my laptop, I was just figuring out what it was
Thanks for helping, but do you have any recommendations on a specific USB SDR receiver I can buy
Because searching for one that won't run me over $300 is kind of difficult
Not offhand, but "SDR dongle" should pop up some options.
that search is making ebay and amazon give me duplicates of the "RTL-SDR" dongle
so I'm gonna look into that
Only goes to 1850MHz though
Hey guys I have a question about baudot code ita2
I input some binary and think I received a valid ITA2 code and am unsure how best to interact with it
is there anyone who could assist me?
I don't have any expertise, but looking at the Wikipedia entry, it seems pretty simple. Where are you getting confused? https://en.wikipedia.org/wiki/Baudot_code#ITA2
Hey thanks for your correspondence, sorry about the delay in response
So input hex to ITA2 and got this peice of code but I dont know what to do now
if I can use it
ENQUIRY&78FHVUPZ
ENQUIRY!38/, )2:;BELL)8&4.?.2:$!;32778/ ,.+(8;+1!/1&!
04.BELL1,&3BELL!14.6BELL':+&9+!'12!
so how do I use this?
FXZPC/18NC6/$7
04.BELL1,&3BELL!14.6BELL':+&9+!'12!
ENQUIRY&78FHVUPZ
ENQUIRY!38/, )2:;BELL)8&4.?.2:$!;32778/ ,.+(8;+1!/1&!
this is complete code
That honestly looks like gibberish, so I'd be checking whether you actually have ITA2 data in the first place or if the decoder is working correctly. Maybe there's a mismatch in MSB-first versus LSB-first bit order, for example.
ok
thank you ed
I just saw the word Enquiry when inputting my hex data
and thought it was ITA2
how should I best use Hex Data?
i got it from converting binary?
What's the origin of this data in the first place?
a binary code
Could it be encrypted?
Well, something like ITA2 is designed for straightforward translation between text and binary. But you might have something which is actually a secret code, where you need a key to interpret it. Cryptography, I mean.
Ok so in that instance
Where do I input the code
I have a bunch of binary
and thank you for your correspondence because im very lost
If i use a Vigenere Tool do I use binary?
or do I translate to Hex first
Well, this is a very open-ended problem. It's like saying, "I have a book. I'm not sure what language it is. How do I read it?"
I understand, I applogize
I just Have this binary code
and I do not know which cyper to put it in
if I cant convert it to text
without it looking like jibberish
so for something where I need a key, how should I input the raw data. Binary or Hex?
Doesn't really matter, they're equivalent formats.
One hex digit is exactly 4 bits.
but when I use hex
I dont get the invalid symbol
mlg�l��d/w:a�dfv5�ezyd�p�qfk �7
but with hex its clean
that is just example I can send you full text code if you know how to look at it
ocg�n��n/h:e�vhm5�ebio�t�ihb �7
� n7yro��y�ofst�n��7o�M
That's just how things are printed, yeah.
so how do you think I should proceed
Could you upload as close to an original file of the data as you have?
I have binary
ok
its long I can post it here?
01101111 01100011
01100111 011011111
01101110
011011111 011000111
01101110 101111
01101000 0111010 001
01100101 011100010 111
01110110 01101000 00101
01101101 101 110101
0111001010 101 01100101
01110100011101
01100010 001
01101001 01101111 0011
011010001 0010 01110100
01110
011011111 011 01101001
1110 001
111
01101000
111
01100010 01001
011010000 10011
0110111 1101
011000010 01001
01101110 0110111
01111001 01110010 0011
01101111 011110100 101
011100110 01111001 0011
0111010100 01101111 10000
01100110 01110
01110011 01110100
100
011001110 01101110
001
011110011 01101111110100
0110111 01101111
011011111 01001101
Thank you for your assistance
Okay, so that's a somewhat unusual data format since it's not just pure binary, but has spaces as well. So it looks like each of those variable-length elements is probably a character. Often the shorter sequences (001, 100, etc.) will be the most common letters like 'E', and the longer ones would be rare ones, although I'm a little surprised at the length of the longest ones, so it may be something else.
well Its a word document I was typing
the spaces
like its just speration of the next one
should I make it like a paragrpah
Oh, gotcha. So the original data is just a constant bit stream?
yes
like the matrix
going downwards
and I was just typing it
01101111 01100011 01100111 011011111 01101110 011011111 011000111 01101110 101111 01101000 0111010 001 01100101 011100010 111 01110110 01101000 00101 01101101 101 110101 0111001010 101 01100101 01110100011101 01100010 001 01101001 01101111 0011 011010001 0010 01110100 01110 011011111 011 01101001 1110 001 111 01101000 111 01100010 01001 011010000 10011 0110111 1101 011000010 01001 01101110 0110111 01111001 01110010 0011 01101111 011110100 101 011100110 01111001 0011 0111010100 01101111 10000 01100110 01110 01110011 01110100 100 011001110 01101110 001 011110011 01101111110100 0110111 01101111 011011111 01001101
is that easier?
Have you tried just a regular 8-bit ASCII decoding? The first few patterns look like 'o', 'c', 'g'.
ocgo·7Øí×´:,®.ìÐVÛ«Y]b--æÑ'G7ÛOÑØÐ}a%¹»Ë·½+äÝFø39ÍÒ3Í¿Fííô
on the translator
ocgo�7��״:,�.��V۫�Y]b--��'G7�O�ؒЛ}a%��ˑ��+���F�39��3��ͿF���
and thats on the UTF8
I did one earlier and it came out like this. - O c g n n e h v m e i b o i t i b o b r o t y o f s n
but I think it was incorrect
How confident are you that you typed it correctly?
Being just one bit off could screw up a lot of decodings.
The first one
I am more confident
FXZPC/18NC6/$7
04.BELL1,&3BELL!14.6BELL':+&9+!'12!
ENQUIRY&78FHVUPZ
ENQUIRY!38/, )2:;BELL)8&4.?.2:$!;32778/ ,.+(8;+1!/1&!
When I saw this I was excited because I clealry can see Enquiry
and also BELL
and that was ITA2
Well I apprciate your correspondence, sorry if I was way off on this
It looks like ENQUIRY and BELL are special escape characters in ITA2, not actually the letters E-N-Q, etc.
thank you
If it is actually ITA2/Baudot, you could use a code converter like this one: https://github.com/silizium/baudot
There's also this online converter, but whether it's likely to work depends more critically on the actual encoding of your data stream: https://www.boxentriq.com/code-breaking/baudot-code
@distant valve
Thnak you for your correspondence!
so using the online converter I just translated it back to binary
I was seeing if the ITA2 could be read in a differnt way after the conversion but I think Ed was correct in saying the Enquiry readout was just an errror
Not really an error as much as something was decoding control characters (like the ones for "bell" and "enquiry") to their names.
yes so control characters are like a emoji
or was the binary code designed to output that data?
However, that decoder might have been trying to decode some other format, and so certain strings of bits happened to look like control characters to it.
I'm unsure what you mean by "the binary code designed to output that data". Binary is just a raw representation of data.
Ok my assumption was Binary to ITA2 and ITA2 to decrpyte it further
Yes so the source of it was a bunch of binary data
following down like in the matrix films
which I wrote down
When you say "binary", what do you really mean? Just that you have a raw bitstream?
Wow, that's kinda obnoxious. You really think that's a picture of an ITA2 bitstream?
That sure doesn't look like ITA2 to me.
and one of the formats it output
was ITA 2
FXZPC/18NC6/$7
04.BELL1,&3BELL!14.6BELL':+&9+!'12!
ENQUIRY&78FHVUPZ
ENQUIRY!38/, )2:;BELL)8&4.?.2:$!;32778/ ,.+(8;+1!/1&!
and I clearly saw the words bell and enquiry
so I wanted to learn about ITA2
I did not intend to waste your time in anyway and i certianly appricate the correspodnecne
I think that was just random bits happening to line up with control characters (like I said)
Since the picture shows bits arranged in groups of 8, I would expect it's an 8-bit encoding (such as ASCII or EBCDIC) instead of ITA2 (which is a 5-bit encoding)
That could mean several things. It could be some other encoding (like BIG5, CP1251, or somesuch), it could be encrypted, or (likely) it's just random data.
It might even be UTF-8
Okay, gotta go to work, be back later
Im new to Crpytography
Thank you for your correspondence
If I can ask one more hting
Is Hex Data
With a photo like that would there be any reason to translate the binary to hex?
because it output with no errors
Binary and hex are basically equivalent. There's a one-to-one mapping between them in both directions, so it's impossible to have an error, as there's no such thing as an invalid character.
(Unless you do things like type a '2' in a binary string, etc.)
So I have a question - whats the best way to look at meta data of a jpeg - what about storage data (when it says x amount of bites)
and regarding the invalid character � - what does this character mean?
Usually various image/photo programs will have a "properties" or "get info" command that will show the metadata for an image file. On MacOS, the Preview app does that, for instance.
Not every byte value has a printable representation, depending on the font and character set you use. Even normal text has things like spaces and carriage returns which are special characters. The "invalid character" is saying that there's some data value which the given character encoding doesn't know what to do with.
When it says Size : 779 Mega bytes - can there be binary or some sort of data in there?
if I wanted to put a pictures through an analyzer for like a hidden website in the meta data, what tool do you reccomend?
I'm not sure of the right tool off the top of my head, but I'm sure you can find one with a little searching.
The "size: 779MB" seems a little suspicious. Is the file actually that large? It might be corrupted data giving a bogus value for the size field.
779 bytes (4 KB on disk)
548,978 bytes (553 KB on disk)
ya not mb
sorry
I apprciate all your assistance
Ive been looking at this puzzle for 3 days
and ive gotten no where
lol
Do you know what Cryptography method they use in US Air Force?
Can you link to the puzzle? I'm curious what you're dealing with.
Probably a lot of different ones, of very high security levels. AES, for example, is a standard government-approved code.
Ok umm its a long ongoing puzzle
one sec im just trying to think how best to format this
Don't worry about it if it's too involved. I thought you just had a particular JPEG file you were interested in.
Well he tweets so theres about 20 photos
https://miro.com/app/board/uXjVObxRF1U=/ @granite spear
so base 64 and hex? its just the same?
Not the same, but they are both just textual representations of arbitrary binary data, so you can convert between hex, base 64, and binary without losing any information.
Sure, what?
This image it looks like
CBC
The Advanced Encryption Standard (AES), is a block cipher adopted as an encryption standard by the U.S. government for military and government use. ECB (Electronic Codebook) is essentially the first generation of the AES. It is the most basic form of block cipher encryption. CBC (Cipher Blocker Chaining) is an advanced form of block cipher […]
Like encrypted CBC data
How would I go analyze if it is
the background of that character
is what looks like cbc encryption
I tend to think that's unlikely. Any good encryption algorithm will produce data that looks random, so the flip side of that is that any random data will potentially look like encrypted data too, even if it's originally meaningless.
so its not like a qr code where its visual
But to answer your question, you'd basically have to guess the encryption key and try it on the data, to see if it decodes to anything meaningful.
for the AES encryption
What is an encryption key can it be a word
or does it need to be like a long list of numbers
Nope, it's not visual. AES just operates on data, so you'd encrypt a file, for example.
so process would be decrypt image and use encryption key
to see if something else comes up
AES keys are a binary string of a particular length, like AES-256 has 256-bit keys. Often they will be created by hashing a longer passphrase which is something people can remember and type.
so a word can be a encryption key
or will it be a binary or hex like code
Well Ed I certinaly appricate your ongoing correspondence, I dont wish to pick your brain all night, I shall try to advance this on my own and follow up. I hope you have a relaxing weekend!
Yep, a word can be an encryption key too. It would either be hashed to make a key, or the bytes of the word would be treated like binary, depending on the software.
so is there something I should look for? when you say hashed to make a key? the software is just jpeg images
I think its AES because the puzzle creator is us air force
I mean the software that performs the (hypothetical) encryption of the data.
AES encryption and decryption online tool for free.It is an aes calculator that performs aes encryption and decryption of image, text and .txt file in ECB and CBC mode with 128, 192,256 bit. The output can be base64 or Hex encoded.
gonna use this
last question of the night seriosuly
key size in bits
what does that mean
Just bear in mind that AES is (so far as we know) uncrackable, so if you don't have any extra information about the key, you won't have any luck with it.
The mathematics of AES uses the key in its operations, and there are different variants of the algorithm for different key lengths. The longer ones are more secure, but longer keys are harder for people to remember.
yea I think I have a few words and numbers which can be keys
so im just gonna plug them in
🤞
Yes, that's the length in bits of the key used in the particular AES variant. So AES-128 would make use of 128 key bits (or 16 bytes).
Good luck!
Hey ed I have a 16 bit encrpytion key but its not letting me input it
74 68 65 6F 75 74 65 72 63 69 74 69 7A 65 6E 73
AES encryption and decryption online tool for free.It is an aes calculator that performs aes encryption and decryption of image, text and .txt file in ECB and CBC mode with 128, 192,256 bit. The output can be base64 or Hex encoded.
under AES online decryption
"Length of secret key should be 16 for 128 bits key size"
I dont understand isnt it 16 bites
From the example it looks like it just wants an ASCII key of 16 characters, instead of hex.
just plain text got it
Input length must be multiple of 16 when decrypting with padded cipher
says that when I put a base 64 code I found
AES operates on 16-byte blocks, so either you have to give it that amount of data, or else the software needs to have some rules about how to add extra padding bytes.
Ok ed I will start fresh tommorow thank you again!
Could someone please explain to me why coils are sometimes connected in the middle like this? Is it to create 2 different oscillators from one coil? For frequency mixing or something?
This is the second time I've seen it
Hi everyone I just got this SDR stick I ordered the blue one and they sent me this is it any different ?
same MCU
SDR# max gain 19db
it's not an older version or something right?
blockSize: 128/32
});
/**
* A collection of cipher parameters.
*
* @property {WordArray} ciphertext The raw ciphertext.
* @property {WordArray} key The key to this ciphertext.
* @property {WordArray} iv The IV used in the ciphering operation.
* @property {WordArray} salt The salt used with a key derivation function.
* @property {Cipher} algorithm The cipher algorithm.
* @property {Mode} mode The block mode used in the ciphering operation.
* @property {Padding} padding The padding scheme used in the ciphering operation.
* @property {number} blockSize The block size of the cipher.
* @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.
*/
@granite spear morning do all js have this code in it?
got it from here
I'm not too familiar with cryptography support in Javascript. There seems to be a CryptoJS library which a lot of people use, for example.
Is there a service that does investigations that you could reccomend?
What do you mean? Like a code-cracking consultant for hire?
Yea is there a service where I can submit these images and infomration i have found because I am not sure how to utilize it correctly
Pay an hourly rate or one time fee
I don't know of one offhand, but you might also seek out like a hobbyist puzzle-solving Discord. Some people are into code-breaking and alternate-reality games and puzzle hunts, etc.
ok thank you, you wouldnt be intrested in it would you? I can pay in crypto
or like you and madboger
Just to review all these images and use the meta data correctly
view*
because I have spent 3-4 day son it
Thanks, but it's not really my thing. Are there any other people involved in this puzzle that you could collaborate with?
everyone I know already gave jup
ok well I appricate your correspondence
If I have any follow up questions I shall post them here, i hope this isnt a mis use of this channel
This is a Hartley oscillator: https://en.wikipedia.org/wiki/Hartley_oscillator
The Hartley oscillator is an electronic oscillator circuit in which the oscillation frequency is determined by a tuned circuit consisting of capacitors and inductors, that is, an LC oscillator. The circuit was invented in 1915 by American engineer Ralph Hartley. The distinguishing feature of the Hartley oscillator is that the tuned circuit cons...
It's for a variety of reasons. It's known as a tapped inductor or autotransformer, and can perform a variety of useful functions. One common one (which I think is what is going on in the schematic you showed) is impedance translation: it resonates the whole coil with the capacitor for tuning to use a smaller capacitor and load the source less, but taps off at the 1/3 point to provide a lower impedance signal to the amplifier. Another common use is phase inversion, if you ground the tap, a positive voltage on one end will produce a negative voltage on the other end (this is how a Hartley oscillator works).
Heh jinx
The ARRL Handbook has detailed descriptions of this and related oscillators
Thank you
Hello. Is multi-tasking using (FreeRTOS) possible with the LoRaWAN LMICC library ?
I am running two tasks on my FeatherBoard:
-one to sendLoRa packets and then suspending it to run another task and do some computation
-and then resuming back the sendLora task but the transmission never resumes
I'm not sure about the LMICC library specifically, but it's possible you might have some more generic issue with task suspending/resuming or the task priorities preventing the transmission task from running.
hmm thank you EdKeyes. I think there is something more complicated than that because the LMIC library has a built-in run time environment to take care of timer queues
Gotcha. Yeah, that could coexist in weird ways or be confused by being suspended.
yeah and I am the one confused at this point haha
This discussion may be useful -- it is a few years old. https://www.thethingsnetwork.org/forum/t/freertos-port-for-lorawan/8998
Thanks jerry. I'll see what I can find from this discussion
i need some help with a crystal radio.. having touble figuring it out.
if i understand what i looked up. its esentially a very low powered tesla coil that doesnt arch and puts out sound
The Wikipedia article is pretty good: https://en.wikipedia.org/wiki/Crystal_radio
Read that. Had trouble remembering what the symbols were. Plus im trying to build one with more modern parts and dont know what to use
I also dont know if i can hook it up to power or if thatwoulddefeat the purpose
no, it doesn't hook to power. To make a good crystal radio, you need to use a germanium diode, and a high-impedance earphone.
Both are not so easy to find these days
Does anyone have any knowledge of how to set up the RFM9x with a raspberry pi zero? also out of interest is it possible to use the rfm9x with pure python rather than circuitpython?
Can't say I've done it personally, but https://learn.adafruit.com/adafruit-radio-bonnets/rfm9x-raspberry-pi-setup would be the place to start. As for Python vs CircuitPython, they're pretty much the same on Pi, as far as I know. The Blinka package just allows Python3 to interface with all the CircuitPython modules and necessary hardware, but you're still running it in Python3.
I have only used CIrcuitPython on the pi. It works well with any rfm9x board.
I should qualify “well”. The CIrcuitPython library tries to be compatible with the Arduino RadioHead library. It mostly succeeds but there can be issues when using the “reliable datagram” mode between an Arduino board and a pi. I can provide more details if you are interested.
Order Today Jameco Valuepro Earphone for Crystal Radio. Authorized Distributor - Products in stock ready to ship.
@buoyant spindle ^^