¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io

NanoVNA software developers wanted #hacking


 

At the minimum you may
need to include some ferrite beads in the power and serial connections.
Firmware should sleep Bluetooth while sweeping and pause sweeps while Bluetooth is active.


 

That is a lot of data to buffer.

On Wednesday, November 6, 2019, 12:14:38 p.m. GMT-5, Oristo <ormpoa@...> wrote:

> At the minimum you may
need to include some ferrite beads in the power and serial connections.
Firmware should sleep Bluetooth while sweeping and pause sweeps while Bluetooth is active.


 

That is a lot of data to buffer
nRF52832-QFAA/QFN48 has 64KB RAM + 512KB flash

ESP8266 reportedly has > 40KB heap+data space available.

I guess HC-05/6 is unbuffered but also not BTLE,
so less interesting for e.g. Web Bluetooth API


 

That is a lot of data to buffer.
Given custom NodeMcu/nRF5 firmware, nanoVNA need pass only 101x2x4 bytes of float per scan,
which could then be converted to ASCII by BTLE micro for USB COM compatibility.


vaclav_sal
 

Just FYI and to keep with the original post.
I have manged to extract multiple "projects" from simply cloning the original Github repository.
So part of the goal is done.
Now I have to figure out which of the multitude of C projects is the chief.
I can add a new file, using plain "project" perspective - which is a step up.
There seems to be some test / emulation code projects too.

As far as RFI from Bluetooth hardware - will cross that river when I get there,
Still looking for software partner(s).


 

I need to integrate Eclipse GUI with NanoVNA "stuff"
/g/nanovna-users/wiki/Building-Firmware


vaclav_sal
 

For anybody interested in USB / bluetooth dongle hardware - I have these two , both capable passing "audio data" (?) -
I did nor research that any further. Older stuff / versions in range $5 US.

Bus 001 Device 005: ID 0a5c:2121 Broadcom Corp. BCM2210 Bluetooth
Bus 001 Device 012: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

hci1: Type: BR/EDR Bus: USB
BD Address: 00:15:83:15:A2:CB ACL MTU: 672:4 SCO MTU: 48:1
UP RUNNING PSCAN ISCAN
RX bytes:978 acl:0 sco:0 events:43 errors:0
TX bytes:666 acl:0 sco:0 commands:43 errors:0

hci0: Type: BR/EDR Bus: USB
BD Address: 00:50:B6:80:4D:5D ACL MTU: 1017:8 SCO MTU: 64:0
UP RUNNING PSCAN ISCAN
RX bytes:1030 acl:0 sco:0 events:49 errors:0
TX bytes:705 acl:0 sco:0 commands:49 errors:0


 

Device 005: ID 0a5c:2121
Device 012: ID 0a12:0001
These both appear to be USB dongles that e.g
plug into PC for playing Bluetooth from smartphones.

* nanoVNA cannot physically drive these without additional hardware
* nanoVNA lacks storage for firmware to drive them,
much less interact appropriately with smartphones,
which would by default suppose that nanoVNA is a (PC) host..


vaclav_sal
 

The Bluetooth dongles were posted just for illustration what is on the market.
I am not in a position to offer any more at this time, nor discuss it.
I am still concentrating on hacking the NanoVNA software as "open source" resource.


vaclav_sal
 

This may be very long shot posting here , but....
I am attaching part of what EGit "created" from local repository of NanoVNA software.
Apparently these files are some kind of modules the software is build from.
That is pretty normal and smart.

It woudl make my efforts much easier to know up front what is a purpose of each project / file.

I am asking if there is a document / list which spells out such info.


Or if this a wrong place to ask - where is a correct place to send my inquiry?

Yes, the "project" I checked has nice "brief" indicating the purpose of the code.
Actually very helpful.


 

Vaclav,
This is the wrong place to ask about ChibiOS.??

Send the repo owner a message asking about it or just got here:? ? ?
ChibiOS is a real-time executive that is used on the Nanovna.??

The Nanovna-F uses the RTOS equivalent to ChibiOS.

...Larry

On Thursday, November 7, 2019, 1:28:44 p.m. GMT-5, vaclav_sal via Groups.Io <vaclav_sal@...> wrote:

This may be very long shot posting here? , but....
I am attaching part of what EGit "created" from local repository of NanoVNA? software.
Apparently? these files are some kind of modules the software is build from.
That is pretty normal and smart.

It woudl make my efforts much easier to know up front what is a purpose of each project / file.

I am asking if there is a document / list which spells out such info.


Or if this a wrong place to ask - where is a correct place to send my inquiry?

Yes, the "project" I checked has nice "brief" indicating the purpose of the code.
Actually very helpful.


 

what is a purpose of each project / file.
Some links here:
/g/nanovna-users/wiki/Building-Firmware


vaclav_sal
 

Oristo,
perfect answer.

I gust I need to add wiki to list of resources.


A follow-up questions / comments
I have not figured out how to " rebuild " the whole firmware , working on that step.
I assume that I can modify any of the "project" and then "rebuild / recompile" the whole executable firmware.

I may even try to add my own "project" to keep the rest untouched.

Making progress thanks to group contributions.
Appreciate that very much .


 

how to " rebuild " the whole firmware
links at second line of
/g/nanovna-users/wiki/Building-Firmware
and e.g.


I may even try to add my own "project" to keep the rest untouched.
That is the purpose for git; create a branch


vaclav_sal
 

I did start this thread as me "hacking NanoVNA " software.
I am not sure if it is OK to continue in that direction.
For one, long threads are not mu favorite, however some administrators object to "re-posts".

I have cloned NanoVNA-H and run "make" in my local repository.

I run into same error as with previous "NanoVNA".

The error is fixable by using "make" recommended solution, no problem there.

What is puzzling is - as a "copy" of some original NanoVNA software, why does NanoVNA-H still objects to the
"missing C11" options in compiler options? What is so different with fft.h file? ( I have not look at the actual file , not yet.)
Actually how do other "software developers" deal with this ?


Here is a snippet of "make" output:


fft.h: In function 'reverse_bits':
fft.h:31:2: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
for (int i = 0; i < n; i++, x >>= 1)
^
fft.h:31:2: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code


 

Hello,
I found your idea of adding Bluetooth interesting, but I am a little
confused: Are you normally a C-programmer? Do you work with embedded
software? The firmware is written in C, and I probably wouldn't recommend a
project like this as a first go - it would take at least some experience :-)

--
Rune / 5Q5R

On Sun, 10 Nov 2019 at 19:10, vaclav_sal via Groups.Io <vaclav_sal=
[email protected]> wrote:

I did start this thread as me "hacking NanoVNA " software.
I am not sure if it is OK to continue in that direction.
For one, long threads are not mu favorite, however some administrators
object to "re-posts".

I have cloned NanoVNA-H and run "make" in my local repository.

I run into same error as with previous "NanoVNA".

The error is fixable by using "make" recommended solution, no problem
there.

What is puzzling is - as a "copy" of some original NanoVNA software, why
does NanoVNA-H still objects to the
"missing C11" options in compiler options? What is so different with fft.h
file? ( I have not look at the actual file , not yet.)
Actually how do other "software developers" deal with this ?


Here is a snippet of "make" output:


fft.h: In function 'reverse_bits':
fft.h:31:2: error: 'for' loop initial declarations are only allowed in C99
or C11 mode
for (int i = 0; i < n; i++, x >>= 1)
^
fft.h:31:2: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11
to compile your code




vaclav_sal
 

On Thu, Nov 7, 2019 at 02:12 PM, Oristo wrote:



I may even try to add my own "project" to keep the rest untouched.
That is the purpose for git; create a branch
I am not sure I agree.
It is MY understanding that (git) branch is sort-of "making a detour" in coding and eventually include such detour into the main flow.

Assuming that I have the original
code "divided" into plain C code projects I woudl like to add my own project, not modify existing projects.

However, I am not in position to try that - I am still trying to make sure I can reliably replicate what I know about hacking the original code. So far it looks as Eclipse EGit is actually making this learning process worst. Pretty frustrating IMHO.


 

I'm using eclipse to edit and the github gui to sync with github.
Apart from remembering to save the files you edited because otherwise the make file will not do anything this works well.
For eclipse and build environment I followed the edy555 guide (see the nanoVNA wiki)
--
NanoVNA Wiki: /g/nanovna-users/wiki/home
NanoVNA Files: /g/nanovna-users/files?
Erik, PD0EK


 

...PCB version of NanoVNA-H to V3.4...easy to DIY Bluetooth connection
The recently announced (for ~ US$20) Arduino NANO 33 BLE claims USB host support:


Based on Nordic nRF52480 (which cannot natively implement USB host),
this may be a minimal hardware prototype for Bluetooth LE via USB with existing nanoVNAs,
except that dedicating the Arduino NANO 33 BLE USB port to host may be too disruptive,
so perhaps prototyping by a USB host shield may still be more expedient:


Cheap USB Host Shields are typically DuinoFun clones, e.g.


 

Everyone keeps talking about (relatively) expensive solutions to get? a wireless connection from the NanoVNA.
Why not just but a RaspberryPi Zero-W for $10US from Adafruit and use it as a USB Host to WiFi bridge?


In fact, with some programming, you could remotely command it to scan and store data locally on its SD card.
So - let's get programming.....

...Larry

On Monday, November 25, 2019, 7:27:08 a.m. GMT-5, Oristo <ormpoa@...> wrote:

> ...PCB version of NanoVNA-H to V3.4...easy to DIY Bluetooth connection

The recently announced (for ~ US$20) Arduino NANO 33 BLE claims USB host support:


Based on Nordic nRF52480 (which cannot natively implement USB host),
this may be a minimal hardware prototype for Bluetooth LE via USB with existing nanoVNAs,
except that dedicating the Arduino NANO 33 BLE USB port to host may be too disruptive,
so perhaps prototyping by a USB host shield may still be more expedient:


Cheap USB Host Shields are typically DuinoFun clones, e.g.