ParaTNC and ParaMETEO is a two APRS controller which has sligtly different target and different features. Source code in this repository called ParaTNC is a firmware to both of them. The name comes from the fact that ParaTNC was the first project.
__ParaTNC__ supports key elements of what good APRS device should have:
- Two directional KISS TNC (no init strings required).
- WIDE1-1 digipeater, with an option to limit digipeating only to SSIDs 7, 8 and 9.
- Weather station with support for various meteo sensors. Full list od supported devices in point section below.
- Extensive telemetry with an information about the count of receved, transmitted and digipeated frames plus status of weather sensors.
- Support for VE.Direct serial protocol used in Victron PV charging controllers. The data about currents and voltages in the PV system are transmitted using APRS telemetry.
- Support for UMB Binary porotocol as a mater.
- Support for Modbus RTU
- Three different grounds separated one from the another (Controller, weather sensors, analog interface to FM radio)
__ParaMETEO__ is full outdoor and easy to install, complete APRS device which can be supplied with power either from mains and PV system.. It supports the same list of feature than ParaTNC and:
- integrated MPPT charger for 12V / 9Ah AGM battery enclosed in the same case.
- integrated GSM module and support for APRS-IS communication (can run RX-igate)
- support for MAX31865 amplifier for 2, 3 or 4-wire PT100/PT1000 temperature sensor
- 7.5V dc converter to supply HT radio installed in the case for APRS radio network
***Please remember than ParaTNC firmware no longer runs on STM32VLDSICOVERY board!***
ParaTNC PCB could be manufactured used a set of generber files locates in ./hardware/ directory a long with schematics and layout renders (top and bottom layer).
+ Battery Current (charging as positive, discharging as negative) in third channel of telemetry.
+ Battery Voltage as fourth telemetry channel.
+ PV cell Voltage as fifth telemetry channel.
+ Charging Controller status (like current charging mode) and minimum/maximum battery current in last 10 minutes.
+ Error Codes if any (short circuit, overheat, overvoltage on PV or battery input)
*** Please note that VE.Direct is supported only in ParaTNC. In theory it is possible to connect any Victron Energy controller to ParaMETEO, but it has no sense in practice. ParaMETEO has it's own integrated chaging controller. ***
At this point ParaTNC is delivered in form of source code which needs to be manually compiled by the user. Most options are configured by #define in './include/station_config.h' and then hard-coded by the C preprocessor during compilation. An example file consist a lot of comments which explains what is what, but generally an user can choose there which mode should be enabled:
Harcoded values from station_config.h are then used as defaults. Normally firmware loads config from separate sections in flash memory. Configuration is stored twice in two section, to enable easy and safe configuration change from host pc. Each section has a programming counter and CRC value. Software calculates checksum and use last good configuration.
To build the ParaTNC software 'GNU ARM Embedded Toolchain' is required. This set contains gcc-arm-none-eabi compiler, gdb debugger, linker, HEX generator and set of libraries. ParaTNC is developed in Xubuntu 16.04LTS, 20.04LTS and 22.04 using toolchain in version 2018-q2. Please take note that You have to use 64-bit version of the operation system as the 32-bit variant of the toolchain is not avaliable.
Both a makefile and an Eclipse project are configured to look for toolchain in this directory. In some cases to perform a debugging in Elipse You will have to install libncurses5 library which is required to start GDB. To check if this is a case try to start the debugger manually by issuing such command in the prompt
To start debugging session in Eclipse you must create new 'GDB OpenOCD Debugging' configuration and set paths to OpenOCD and GDB in 'Debugger' tab. OpenOCD usually sits in '/usr/bin/openocd', the path to GDB is shown in the paragraph before. Remember to set 'Config Options:' to tell the OpenOCD what JTAG adapter/debugger is used in Your setup. If You're using ST-Link/V2 paste '-f interface/stlink-v2.cfg -f target/stm32f1x_stlink.cfg'