#help-with-radio

1 messages · Page 17 of 1

somber pagoda
#

@grand breach Thanks for the reply. I have it running but I didn't use the IRQ. Have a great day.

uneven jewel
#

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?

restive fjord
#

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...

young cove
restive fjord
young cove
#

Do you see the same signal level in both directions, if you run the test program on both boards?

normal drift
#

@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.

GitHub

CircuitPython module for the RFM95/6/7/8 LoRa wireless 433/915mhz packet radios. - Adafruit_CircuitPython_RFM9x/rfm9x_rpi_simpletest.py at main · adafruit/Adafruit_CircuitPython_RFM9x

restive fjord
normal drift
#

@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.

restive fjord
normal drift
primal warren
#

I use wire antennæ on mine and they work fine

uneven jewel
#

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?

young cove
primal warren
#

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.

sonic coral
#

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?

primal warren
#

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)

sonic coral
#

Hmm. Something to investigate. I guess that would require the receiver to send a payload back to the transmitter with information about the RSSI.

granite spear
#

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..."

primal warren
#

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.

granite spear
#

Niantic? The Pokemon Go developer?

primal warren
#

Yes, them.

#

Their games have a bewildering variety of bizarre failure modes if there's even the briefest glitch in connectivity or GPS coverage.

granite spear
#

Ah, gotcha...

uneven jewel
sonic coral
#

Look at "Radio Mobile Online"

#

It lets you define a transmitting antenna and a receiving antenna. Then it creates a map of potential coverage

steep herald
#

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?

primal warren
#

"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."

steep herald
#

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?

primal warren
#

There's only one antenna pin, so these presumably internal modules

sonic coral
#

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)

night kraken
#

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?

worn bridge
#

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.

grand breach
#

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.

night kraken
night kraken
night kraken
#

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.

grand breach
#

Adafruit has one:

#

uFL = IPEX

night kraken
#

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.

grand breach
#

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.

worn bridge
#

Yeah, but don’t force a u.fl into a w.fl.

#

U.FL is super common, W.FL not so much.

night kraken
worn bridge
#

I have no idea why espressif decided on a different connector for this board.

night kraken
worn bridge
#

I linked a Digi-Key product that should work, I just don’t know how well…

night kraken
#

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

night kraken
worn bridge
#

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

grand breach
#

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.

night kraken
night kraken
grand breach
#

The one @worn bridge provided a link to DigiKey for? That one is directional. RF energy radiates perpendicular to the flat panel.

night kraken
#

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

grand breach
#

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.

night kraken
#

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

grand breach
#

Good Luck!

night kraken
#

Thanks!

night kraken
grand breach
#

Can't help you there. No Clue.

night kraken
#

Ok, I'm hoping @worn bridge will respond when they get a chance, just to make sure I'm looking into the right thing

worn bridge
#

Yes

night kraken
#

Ok, thanks

narrow dagger
#

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)

outer wave
#

k6aus here 🙂

dark tiger
#

Now I feel silly forgetting to check them on recent project idea I had

#

km4lmw

cedar marten
#

I wish I was a ham

#

XD

ruby wharf
#

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?

Adafruit Learning System

Add low-power long-range radio communication to your Raspberry Pi Project

twin crystal
#

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?

normal drift
twin crystal
#

it's almost exactly the rf95_reliable_datagram_client and server code. I can post it though, let me clean it up a little.

normal drift
#

Also, a picture showing the wiring may help.

twin crystal
#

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.

normal drift
#

Why not use the Reset? It is usually toggled during the setup.

twin crystal
#

none of the demo code called it ¯_(ツ)_/¯

normal drift
#

Hmm. Ok. It’ll be a few minutes before I can look at it.

twin crystal
#

thanks a ton, I'm really stuck 😄

normal drift
#

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);

twin crystal
#

hmm.. okay I can solder those up on both sides. would that really cause the problem I'm having?

normal drift
#

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...

twin crystal
#

I added driver.setFrequency(915); and now it just hangs XD

#

maybe i should go add that reset wire.

normal drift
#

well -- I have two examples -- one uses the RESET, the other does not.... so I'm not sure...

#

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

twin crystal
#

just added the reset, i'll give these a try

normal drift
#

most of my examples have the RESET being set HIGH. not sure why I left it out of that server example...

twin crystal
#

this is working! thank you! I think I can get it working in my code from here 😄

normal drift
#

Great! Good luck!

woven rampart
#

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.

granite spear
#

The services supported will depend on your locale, but a number of places should still have 3G running at least.

normal drift
west perch
#

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

stone stone
#

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

granite spear
stone stone
#

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

granite spear
#

I did a solder-down module, yeah.

stone stone
#

it appanrelty can use other modulation modees such as OOK FSK, etc

#

can it also receive them?

granite spear
#

Yep.

stone stone
#

I'm wondering how they compare to chirping in terms of range

granite spear
#

Lower range, but higher data rates.

stone stone
#

interesting...

granite spear
#

The datasheet has a big list of receiver sensitivities for the different schemes and options.

stone stone
#

does it implement fec or anything?

granite spear
#

It has a very crappy Hamming code option.

stone stone
#

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

granite spear
#

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.

stone stone
#

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?

granite spear
#

Reasonably so. The discussion about the spreading factors gives you a picture of what they're basically doing.

granite spear
#

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.

stone stone
#

thats soemthign at least

mellow plank
#

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.

young cove
mellow plank
#

Great, thanks. I’ll check out the mailing list

viral vapor
#

Anyone tried using a STM32 Nucleo 64 L4xxxx series with the LoRa radios 915 Adafruit makes?

normal drift
#

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.

misty sleet
#

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)

primal warren
#

Do you have the reset pin wired up, and the library configured to use the GPIO pin it's connected to?

misty sleet
#

Yes

misty sleet
#

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

plush moon
#

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. ¯_(ツ)_/¯

primal warren
#

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.

granite spear
plush moon
#

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.

unreal wing
#

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.

normal drift
#

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 …

unreal wing
#

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

granite spear
unreal wing
#

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

primal warren
#

I managed over 1km with these trivial wire antennæ

granite spear
unreal wing
#

Swarm, I'll have to check that out

primal warren
#

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æ

unreal wing
#

I would just connect the satellite with coax cable to the lora module?

primal warren
#

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).

unreal wing
#

Nice. That's a pretty slick idea

slender echo
#

Can we operate NRF24 module on frequencies other than 2.4 ghz ??

slender echo
#

Does more current === more range ??

#

Or more voltage === more range ??

slender echo
#

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 ??

slender echo
#

How receivers listing reserved frequencies are catched by police ??

#

🤔

#

It is impossible

#

Is function generator with antina enough to create noise at a frequency ??

primal warren
#

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.

slender echo
#

and how to make it efficient ??

primal warren
#

The most efficient antennæ are normally resonant designs with a good impedance matching network.

primal warren
#

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.

primal warren
#

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.

slender echo
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.

slender echo
primal warren
#

It depends on what you have. If you have frequency, you can divide the speed of light by that to get wavelength.

primal warren
#

That depends on what kind of antenna you are building.

slender echo
#

antina

slender echo
worn bridge
#

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.

slender echo
worn bridge
#

Yes, from the Fourier series.

half plover
#

Ohhh windowing will make it better

#

Learned this in DSP 😂

worn bridge
#

Yep

#

You can isolate the magnitude of each frequency by separating the terms of the summation.

slender echo
worn bridge
slender echo
#

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 ??

slender echo
#

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

worn bridge
# slender echo Is their any formula for that ??

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?

slender echo
#

And it will be easier for me to generate noise if harmonic noise is already their

slender echo
worn bridge
# slender echo I was thinking to make a jammer

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.

slender echo
worn bridge
#

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...

slender echo
worn bridge
#

Nope

slender echo
#

Because no one can see who is resiving signal

#

It is impossible

worn bridge
#

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.

slender echo
slender echo
worn bridge
#

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.

slender echo
#

And your time

slender echo
#

Can I transmit 2 frequencies at same time in 1 antina ??

#

Or i need to do it simultaneously ??

slender echo
#

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)

primal warren
#

"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.

slender echo
#

Can someone please tell me how fm works ??

#

I understand what is am

#

But fm is hard

ocean kayak
#

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...

normal drift
#

@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?

plush moon
#

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!

primal warren
#

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.

plush moon
#

I would never, ever live somewhere with an HOA. I am already a cranky old man at the age of 46.

primal warren
#

I salute you, well done

plush moon
primal warren
#

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

Adafruit Learning System

Radio transceiver modules for long distance data communication

#

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

plush moon
# primal warren The math isn't really difficult on the face of it, just divide the speed of ligh...

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

RAKwireless Store

Quickly deploy your LoRa solution at a low cost with RAK2245 Pi HAT edition which offers complete compatibility with the Raspberry Pi 40pin header and steady connection.

#

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?

RAKwireless Store

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 ...

primal warren
#

I'd try a piece of wire before I went with something bigger, heavier, and more expensive.

plush moon
# primal warren This seemed pretty clear to me

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.

primal warren
#

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)

plush moon
#

the fiberglass? It says that it's omnidirectional?

primal warren
#

Oh, you're right, I misread it

plush moon
#

Hey, @primal warren, thank you so much for helping me understand these things and guiding me. ❤️

broken pier
#

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.

granite spear
broken pier
#

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

granite spear
#

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.

broken pier
#

I think that is what I will do. I was looking for something like compChars = comp(longCSVstring); and send that instead.

granite spear
#

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.

broken pier
#

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

lilac arrow
broken pier
#

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!

restive fjord
#

i'm curious to the results as it's something i'll be poking at later

broken pier
#

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.

restive fjord
#

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 ;)

primal warren
restive fjord
primal warren
#

Maybe those are more to your liking?

south osprey
#

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

young cove
#
primal warren
magic verge
#

Remove one of the power rail assemblies, then connect the remaining pieces together.

chilly tendon
#

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.

plush moon
#

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)

plush moon
#

interesting! Alright, added to my list of deep-dives

#

alright, I added a comment to the issue, so maybe somebody bites

#

it says it works with CircuitPython MicroPython [edited, because duh]... Hmm

young cove
plush moon
#

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.

young cove
#

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

plush moon
#

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.

primal warren
#

I really doubt people are using XBee modules for cryptomining.

plush moon
#

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

primal warren
#

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.

plush moon
#

people are building clusters and using them for cryptomining

primal warren
#

That seems silly to me, like using old IBM mainframes for mining.

plush moon
#

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

primal warren
#

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.

plush moon
#

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.

primal warren
#

Those silly people really don't understand effective crypto. Not that I'm surprised.

plush moon
#

That's why there are no graphics cards that aren't marked up 500%.

primal warren
#

There are lots of graphics cards available at better than list, just not the few popular ones.

plush moon
#

I mean, yeah, no, they don't. Does that stop them from buying up all the graphics cards?

primal warren
#

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.

plush moon
#

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.

plush moon
#

weird part is that I am getting some GPS coordinates and altitude...

#

but, it still never updates

pastel granite
#

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.

pastel granite
#

Alternatively, is there a downside to using UART over BLE?

young cove
pastel granite
#

Yes

young cove
#

UART really is quite easy, but it's good to invent a relatively clean protocol, handle error recovery (lost bytes), etc.

#

there are guides for both of these, too

#

there are arduino versions too

pastel granite
#

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 🙂

dry spoke
#

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?

normal drift
young cove
normal drift
young cove
#

I just deprecated the guide and added a red alert

normal drift
#

Thanks

young cove
# pastel granite Sorry for the late reply <@!329766224093249548> - was on a call. I have uart/ser...

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

pastel granite
pastel granite
#

Evening, everyone 🙂

open kelp
#

This is an modified example code for an nRF24L01 example. but it doesn't work what is wrong? or is the wiring wrong?

pastel granite
granite spear
pastel granite
#

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.

pastel granite
#

Is it worth printing out the actual contents of ReceivedMessage?

open kelp
#

its just an test. later i will conect an relay to the putput and buttons,... to the input

pastel granite
#

I hear you - this is just getting a feel for how it all fits together?

open kelp
#

jup

#

and i feel that it doesnt work xD

pastel granite
#

Ok, so you're saying if (RecievedMessage[0] == 123) is failing - you're not getting to Serial.println"123"?

open kelp
#

yes

pastel granite
#

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 😉

open kelp
#

1 sec...

pastel granite
#

All good 🙂

open kelp
#

if thats correct it receives nothing 😄

pastel granite
#

is it print or println?

open kelp
#

doesnt matter (i think) the serial monitor is empty anyways

pastel granite
#

kk

#

Can you check if you're getting into the while?

#

something like Serial.print("Radio is available") after while(radio.available())?

open kelp
#

looks like there is nothing available.

pastel granite
#

Looks like while (radio.available()) is failing to me - @granite spear ?

#

Also, you're sure your receiver is on COM15?

pastel granite
#

(Y)

#

er 👍

#

Maybe where you init the radio in your setup method?

open kelp
#

waaaaiiit ive just put Serial.println("active") in the loop and it doesn't output anything...

pastel granite
#

Ah - so maybe loop isn't getting called?

open kelp
#

what does that mean?

pastel granite
#

You're writing in C?

open kelp
#

c++

#

normal arduino ide

pastel granite
#

kk, 1 sec

#

Ok. Having not written in this language, should you replace void loop(void) with void loop() in the receiver code?

open kelp
#

i think i found it

pastel granite
#

And, in your setup have you checked to see if radio.begin() is returning true?

open kelp
#

there is no Serial.begin(9800); in the setup

pastel granite
#

ahh~

#

Nice 🙂

open kelp
#

jup now it works °_°

pastel granite
#

👍

open kelp
#

sorry for taking your time 😉 but funny that nether of us saw it

pastel granite
#

haha all good - I'm not working with arduino or c++ 😉 Sorry if I wasted your time 😉

quick hedge
#

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?

primal warren
#

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

pastel granite
#

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.

quick hedge
young cove
# pastel granite Question regarding BLE: I have a service containing characteristics that I want...

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?

pastel granite
young cove
#

are you doing a NOTIFY from the peripheral to the central?

pastel granite
young cove
#

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.

pastel granite
#

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?

young cove
#

why is the central not ready, by the way?

pastel granite
#
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

young cove
#

NO_ACCESS means the other side can't read. You can set it to OPEN instead

pastel granite
#

Ah!

#

Ok.

young cove
#

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

pastel granite
#

I appreciate it

pastel granite
#

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.

young cove
#

you could use a WRITE characteristic from the central to say: please give me data now.

pastel granite
#

I think you understand, but want to make sure I'm clear so I don't frustrate you 😉

young cove
#

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?

pastel granite
#

Forgive my ignorance.

young cove
#

it's a service with multiple characteristics. The UART service uses one read and one write characterisitc

pastel granite
#

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 🙂

young cove
#

np

#

good luck!

#

this is just how this particular service works

pastel granite
#

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.

young cove
#

Well, the request for data is implicitly "I'm ready".

pastel granite
#

I could also have methods like _send_ready and _wait_for_ready that both sides could call.

young cove
#

I don't think you necessarily have to negotiate "ready'.

#

and the connection can go down or be disrupted at any time

pastel granite
#

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?

young cove
#

are you using two nRF boards here? What is running the central code?

pastel granite
#

I am running two nrf boards

young cove
#

so you wrote both sides here

pastel granite
#

Yes

#

the server runs the central code

#

the sensor runs the client code

#

for lack of a better term

young cove
#

the peripheral could keep sending the same data until it gets an ack from the central

pastel granite
#

Yes, I thought of that - and that seems the safest way to do it, but I wasn't sure how to implement

young cove
#

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

pastel granite
#

No, because the sensors collect data only periodically - say, once never 15 minutes for arguments sake

young cove
#

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

pastel granite
#

and I'll need them all

young cove
#

512 bytes or so?

pastel granite
#

No, much smaller

young cove
#

then all the data can be concatenated in one characteristic, and you can parse it on the other side

pastel granite
#

Sure, unless there's been a big connectivity issue and the sensor as accrued 1000 records

young cove
#

oh, i see

pastel granite
#

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

young cove
#

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

pastel granite
#

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.

young cove
#

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

pastel granite
#

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

young cove
#

this is more like MQTT or UDP (with a little negotiation) than reliable TCP

pastel granite
#

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"

young cove
#

MQTT is like leightweight HTTP

pastel granite
#

Nice

young cove
pastel granite
#

Ok - I think I have enough to put something together and test

young cove
#

anyway, just conceptually

pastel granite
#

Thanks again, Dan - I'll look at what you sent and hash something out. Again, I appreciate the time 🙂

young cove
#

yw!

pastel granite
#

@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.

young cove
#

some_service.name_of_characteristic = the_data

#

same way you get it out

pastel granite
#

where the_data is data that has been packed using some_stuct_format

young cove
#

let me double check, hold on

pastel granite
#

thanks 🙂

young cove
#

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)

pastel granite
#

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
young cove
#

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

pastel granite
#

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
#

?

young cove
#

yes

pastel granite
#

and on the server say

mySensorService = My_Service()
new_observation = mySensorService.observation()
#

?

young cove
#

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

pastel granite
#

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?

young cove
#

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

pastel granite
#

From my side it looks like a way to wait for data

#

but maybe I'm looking at it incorrectly

young cove
#

you are polling, it does not block, you get back None if there is no packet

pastel granite
#

Right, so in the server side I could do something like

new_observation = None
while new_observation is None:
  new_observation = my_service.observation
young cove
#

right, that is how all the sample programs for say a heart rate monitor work

pastel granite
#

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)

young cove
#

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

pastel granite
#

I understand

#

ok, I'll run with this

#

thanks for clearing that up - was really scratching my head on this one 😉

young cove
#

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

pastel granite
#

ok, that makes sense - it's effectively saying "I have data, read from me"?

young cove
#

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

pastel granite
#

Cheers - it's difficult to understand which to use in which circumstance

young cove
#

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?

pastel granite
#

Yes. I'm understanding this better.

pastel granite
#

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?

young cove
#

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

pastel granite
#

That's good - it's more flexible

#

This seems like enough to run with - thank you again 🙂

#

lol

young cove
#

BLE is a strange mix of very low level concerns and higher level protocols

pastel granite
#

Indeed! lol

sharp sundial
#

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?

normal drift
#

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!

sharp sundial
normal drift
#

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
#

Thank you

plush moon
#

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?

sharp sundial
normal drift
sharp sundial
#

sorry, this was just still connected with my previous question

#

i will go there

sharp sundial
#

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

primal warren
#

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.

sharp sundial
primal warren
#

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.

sharp sundial
#

I will test it and see what happens

primal warren
#

One experiment beats a dozen opinions

novel hinge
#

Hello

#

is there any updated documentation for connecting /sending data to the things network using the Radio feather Wing RFM95W 900 ?

young cove
novel hinge
#

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

young cove
novel hinge
#

Arduino

young cove
novel hinge
#

yes and I was getting some errors while uploading the code

young cove
#

compile errors?

novel hinge
#

yes. I guess, maybe, something related to the [RadioHead] library ?

young cove
#

TCCR1A is used on the original Arduino. Did you set the board to nRF52840?

novel hinge
young cove
#

it appears to me that the library code is not conditionally compiling for nRF52 (ARM Cortex-M4) properly.

normal drift
young cove
#

thank you @normal drift; I knew you would know

novel hinge
#

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

normal drift
#

@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

novel hinge
#

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.

normal drift
#

hmm -- I get the same errors with RAdiohead on an nrf52840 --- must be an issue with that BSP

normal drift
novel hinge
novel hinge
novel hinge
#

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.

normal drift
novel hinge
#

sure

#

I just removed the keys

normal drift
#

Actually I see that warning -- it has no impact

#

What you have should work.

novel hinge
#

Oh okay. So I guess the only error I have left is " MIC mismatch" on ttn

normal drift
#

Where do you see that?

novel hinge
#

On The Things Network device

normal drift
#

may help...

#

I've not seen that.

novel hinge
#

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 !

normal drift
#

Yay! You are very welcome.

novel hinge
#

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 ? 😖

tidal forge
#

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

young cove
#

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

tidal forge
#

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!

restive fjord
#

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?

granite spear
young cove
#

it could potentially work but the firmware might not be set up for CPy to use it

granite spear
#

Thanks, @young cove, I missed reading the "Nano" part.

restive fjord
young cove
restive fjord
young cove
#

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.

plush moon
#

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.

toxic quest
#

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 ....

plush moon
#

you can use that with Arduino IDE

toxic quest
#

do I need to change the boot loader from circuit python?

plush moon
#

one sec, I think so

#

Follow that guide and you'll be up and running.

toxic quest
#

cool thanks @plush moon ! that looks much more promising!

plush moon
#

Lady Ada to the rescue.

plush moon
#

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

toxic quest
#

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)

plush moon
#

oh it's amazing

#

CircuitPython is the best.

toxic quest
#

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."

normal drift
stray prairie
#

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.

granite spear
#

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.

stray prairie
#

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

granite spear
#

Not offhand, but "SDR dongle" should pop up some options.

stray prairie
#

that search is making ebay and amazon give me duplicates of the "RTL-SDR" dongle

#

so I'm gonna look into that

normal drift
#

Only goes to 1850MHz though

distant valve
#

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?

granite spear
distant valve
#

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

granite spear
#

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.

distant valve
#

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?

granite spear
#

What's the origin of this data in the first place?

distant valve
#

a binary code

granite spear
#

Could it be encrypted?

distant valve
#

but when I got Binary to text it doesnt make sense

#

what do you mean?

granite spear
#

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.

distant valve
#

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

granite spear
#

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?"

distant valve
#

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?

granite spear
#

Doesn't really matter, they're equivalent formats.

#

One hex digit is exactly 4 bits.

distant valve
#

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

granite spear
#

That's just how things are printed, yeah.

distant valve
#

so how do you think I should proceed

granite spear
#

Could you upload as close to an original file of the data as you have?

distant valve
#

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

granite spear
#

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.

distant valve
#

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

granite spear
#

Oh, gotcha. So the original data is just a constant bit stream?

distant valve
#

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?

granite spear
#

Have you tried just a regular 8-bit ASCII decoding? The first few patterns look like 'o', 'c', 'g'.

distant valve
#

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

granite spear
#

How confident are you that you typed it correctly?

#

Being just one bit off could screw up a lot of decodings.

distant valve
#

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

distant valve
granite spear
#

It looks like ENQUIRY and BELL are special escape characters in ITA2, not actually the letters E-N-Q, etc.

distant valve
#

thank you

primal warren
#

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

Baudot code decoding tool. The original Baudot code was invented by Émelie Baudot in 1870. It was a 5-bit code that became known as the International Telegraph Alphabet No 1(ITA1). In 1901, the code was improved by Donald Murray. Murray designed the code to minimize the wear on the machinery.

#

@distant valve

distant valve
#

Thnak you for your correspondence!

distant valve
#

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

primal warren
#

Not really an error as much as something was decoding control characters (like the ones for "bell" and "enquiry") to their names.

distant valve
#

yes so control characters are like a emoji

#

or was the binary code designed to output that data?

primal warren
#

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.

distant valve
#

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

primal warren
#

When you say "binary", what do you really mean? Just that you have a raw bitstream?

distant valve
#

Yes it was an image

#

so I took that image and then input it to binary to text

primal warren
#

Wow, that's kinda obnoxious. You really think that's a picture of an ITA2 bitstream?

distant valve
#

No I

#

I converted it

#

from Binary to text

primal warren
#

That sure doesn't look like ITA2 to me.

distant valve
#

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

primal warren
#

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)

distant valve
#

I understand but those formats

#

output alot of not recognized symbols

primal warren
#

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

distant valve
#

Im new to Crpytography

#

Thank you for your correspondence

#

If I can ask one more hting

#

Is Hex Data

distant valve
#

With a photo like that would there be any reason to translate the binary to hex?

#

because it output with no errors

granite spear
#

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.)

distant valve
#

and regarding the invalid character � - what does this character mean?

granite spear
granite spear
distant valve
#

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?

granite spear
#

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.

distant valve
#

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?

granite spear
granite spear
distant valve
#

Ok umm its a long ongoing puzzle

#

one sec im just trying to think how best to format this

granite spear
#

Don't worry about it if it's too involved. I thought you just had a particular JPEG file you were interested in.

distant valve
#

Well he tweets so theres about 20 photos

#

so base 64 and hex? its just the same?

granite spear
#

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.

distant valve
#

Thank you ed

#

Last thing can you assist me with?

granite spear
#

Sure, what?

distant valve
#

This image it looks like

#

CBC

#

Like encrypted CBC data

#

How would I go analyze if it is

#

the background of that character

#

is what looks like cbc encryption

granite spear
#

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.

distant valve
#

so its not like a qr code where its visual

granite spear
#

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.

distant valve
#

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

granite spear
#

Nope, it's not visual. AES just operates on data, so you'd encrypt a file, for example.

distant valve
#

so process would be decrypt image and use encryption key

#

to see if something else comes up

granite spear
#

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.

distant valve
#

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!

granite spear
#

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.

distant valve
#

I think its AES because the puzzle creator is us air force

granite spear
#

I mean the software that performs the (hypothetical) encryption of the data.

distant valve
#

gonna use this

#

last question of the night seriosuly

#

key size in bits

#

what does that mean

granite spear
#

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.

distant valve
#

yea I think I have a few words and numbers which can be keys

#

so im just gonna plug them in

granite spear
#

🤞

distant valve
#

for key size

#

128/192/256

#

does that mean anything

granite spear
#

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).

distant valve
#

ok I will do my reasearch

#

thank you

#

You are mvp

granite spear
#

Good luck!

distant valve
#

74 68 65 6F 75 74 65 72 63 69 74 69 7A 65 6E 73

#

under AES online decryption

#

"Length of secret key should be 16 for 128 bits key size"

#

I dont understand isnt it 16 bites

granite spear
#

From the example it looks like it just wants an ASCII key of 16 characters, instead of hex.

distant valve
#

just plain text got it

distant valve
#

Input length must be multiple of 16 when decrypting with padded cipher

#

says that when I put a base 64 code I found

granite spear
#

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.

distant valve
#

Ok ed I will start fresh tommorow thank you again!

tidal forge
#

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

wary kite
#

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?

distant valve
#

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

granite spear
#

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.

distant valve
granite spear
distant valve
#

Pay an hourly rate or one time fee

granite spear
#

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.

distant valve
#

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

granite spear
#

Thanks, but it's not really my thing. Are there any other people involved in this puzzle that you could collaborate with?

distant valve
#

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

young cove
# tidal forge Could someone please explain to me why coils are sometimes connected in the midd...

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...

primal warren
# tidal forge Could someone please explain to me why coils are sometimes connected in the midd...

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

young cove
#

The ARRL Handbook has detailed descriptions of this and related oscillators

tidal forge
#

Thank you

novel hinge
#

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

granite spear
#

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.

novel hinge
#

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

granite spear
#

Gotcha. Yeah, that could coexist in weird ways or be confused by being suspended.

novel hinge
#

yeah and I am the one confused at this point haha

novel hinge
#

Thanks jerry. I'll see what I can find from this discussion

buoyant spindle
#

i need some help with a crystal radio.. having touble figuring it out.

buoyant spindle
#

if i understand what i looked up. its esentially a very low powered tesla coil that doesnt arch and puts out sound

lilac arrow
buoyant spindle
#

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

young cove
#

Both are not so easy to find these days

fickle thicket
#

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?

worn bridge
# fickle thicket Does anyone have any knowledge of how to set up the RFM9x with a raspberry pi ze...

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.

Adafruit Learning System

Upgrade your Raspberry Pi with a LoRa or Packet radio, so it can communicate over very long distances!

normal drift
#

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.

young cove
#

@buoyant spindle ^^