Converte dados de radares e zonas de perigo do MapaRadar para o formato CSV usado pela central RNEG RT6 de veículos Peugeot e Citroën.
Testado em um Peugeot 308 com central RNEG RT6 e firmware RT6 2.86B.
Este repositório não inclui bases de radares, arquivos convertidos, mapas OSM, índices gerados ou saídas prontas. Esses arquivos devem ser obtidos e mantidos localmente por cada usuário.
A central RT6 usa arquivos .LZW para carregar Pontos de Interesse (POI). Este
projeto gera os dois CSVs intermediários esperados por ferramentas como o
RadarViewer v2.0:
| Arquivo | Conteúdo |
|---|---|
RADAR.csv |
Radares fixos, radares móveis, semáforos com radar e câmeras |
DANGERZ.csv |
Polícia rodoviária, pedágios e lombadas |
O fluxo básico é:
dados MapaRadar -> python main.py -> output/RADAR.csv + output/DANGERZ.csv
Este projeto suporta dois caminhos de conversão:
| Fluxo | Quando usar | Como funciona |
|---|---|---|
| CSV convertido via MiraScript | Quando você já gerou converted_radars.csv e converted_dangerz.csv no próprio veículo |
A central RT6 executa o MiraScript, gera as coordenadas proprietárias, e este projeto usa esses CSVs para montar RADAR.csv e DANGERZ.csv finais |
| Conversão direta em Python | Quando você quer converter no computador, sem rodar MiraScript e sem depender do veículo durante a conversão | O Python calcula as coordenadas RT6 por interpolação e gera os CSVs finais diretamente |
O primeiro fluxo tende a ser o mais fiel porque usa a função proprietária da própria central. O segundo fluxo é mais prático para atualizações feitas no PC, mas requer as dependências Python e dados locais suficientes para montar o interpolador.
Este projeto existe graças ao trabalho das comunidades MapaRadar, c4clube e clubepeugeot, que preservaram e compartilharam conhecimento sobre atualização de POIs, radares e centrais RT6. A atualização original dos radares para RT6 era acompanhada no fórum MapaRadar:
https://forum.maparadar.com/viewtopic.php?t=61848
Consulte e respeite as regras da comunidade e as condições de uso dos dados.
- Python 3.8 ou superior
- Dependências do
requirements.txtpara ter todos os modos disponíveis:numpyescipy: necessários para--no-carosmium: necessário para--build-osm-index
O modo padrão, usando arquivos já convertidos pela central, usa apenas a biblioteca padrão do Python.
git clone https://github.com/tomsnunes/peugeot-citroen-rt6-maparadar-updater.git
cd peugeot-citroen-rt6-maparadar-updater
python -m venv .venv
# Windows PowerShell
.\.venv\Scripts\Activate.ps1
# Linux/macOS
source .venv/bin/activate
pip install -r requirements.txtCrie as pastas abaixo localmente. Elas são ignoradas pelo Git.
databases/
maparadar/
maparadar_radars.csv
maparadar_dangerz.csv
base/
base_radar.csv
base_dangerz.csv
converted/
converted_radars.csv
converted_dangerz.csv
openstreetmap/
brazil-*.osm.pbf
output/
Arquivos comuns aos dois fluxos:
databases/maparadar/maparadar_radars.csvdatabases/maparadar/maparadar_dangerz.csvdatabases/base/base_radar.csvdatabases/base/base_dangerz.csv
Arquivos usados no fluxo com MiraScript:
databases/converted/converted_radars.csvdatabases/converted/converted_dangerz.csv
Esses arquivos são gerados no veículo usando MiraScript e contêm as coordenadas proprietárias calculadas pela própria central RT6.
Arquivos opcionais para direções via OSM:
databases/openstreetmap/*.osm.pbfdatabases/openstreetmap/highway_index.npz
Formato esperado para os CSVs do MapaRadar, sem cabeçalho:
-46.549897,-23.120720,Radar Fixo - 50 kmh@50
-43.192310,-22.910480,Lombada - 0 kmh@0Os arquivos base_*.csv são referências limpas no formato RT6, usadas para
recuperar direções conhecidas. Por decisão de publicação, este repositório não
distribui esses dados, mas você pode utilizar a última versão disponível no fórum do MapaRadar mencionado acima como base, pretendo manter sempre uma versão mensal atualizada disponível.
Use este caminho quando você já tiver os arquivos converted_radars.csv e
converted_dangerz.csv gerados pela central RT6 com MiraScript.
# Usa os CSVs convertidos pela central, quando disponíveis
python main.pySe os arquivos convertidos existirem em databases/converted/, o programa usa
as coordenadas deles e evita recalcular coordenadas em Python.
Use este caminho para converter no computador, sem rodar MiraScript no veículo para a atualização atual.
# Força a conversão de coordenadas em Python
python main.py --no-carEsse modo usa numpy e scipy. Ele não chama MiraScript nem precisa que o
veículo esteja presente durante a conversão, mas ainda depende dos arquivos de
referência locais necessários para treinar/validar a interpolação de coordenadas.
# Calcula direções para pares novos usando índice OSM local ou Overpass API
python main.py --compute-dirs
# Processa apenas radares
python main.py --radar-only
# Processa apenas zonas de perigo
python main.py --dangerz-onlyPara criar um índice OSM local de direções, coloque um PBF do Brasil em
databases/openstreetmap/ e rode:
python main.py --build-osm-indexO PBF pode ser baixado, por exemplo, na página da Geofabrik para o Brasil:
https://download.geofabrik.de/south-america/brazil.html
Após a conversão, os arquivos gerados ficam em:
output/RADAR.csv
output/DANGERZ.csv
Eles são escritos em formato RT6, com quebras de linha CRLF e codificação ASCII.
Depois disso, use o RadarViewer v2.0 para gerar os arquivos .LZW aceitos pela
central.
Depois de gerar ou baixar a base final de atualização para RT6, prepare o pendrive com cuidado. Essas centrais são sensíveis à leitura: qualquer erro no software, nos arquivos ou no pendrive pode fazer a atualização falhar.
Procedimento de instalação:
- Formate um pendrive em bom estado em FAT32, de preferência com alocação de 4096 bytes.
- Descompacte a base diretamente no pendrive, por exemplo usando WinRAR.
- Ligue o automóvel e aguarde a central RT6 terminar de iniciar completamente.
- Conecte o pendrive na porta USB do veículo.
- Aguarde a central analisar o conteúdo e confirme a atualização quando for solicitado.
- Aguarde a atualização terminar sem remover o pendrive.
- Remova o pendrive somente ao final e confira os alertas na central.
Dicas para evitar erros com o pendrive:
- Use sempre um pendrive em bom estado e pouco usado.
- Formate em FAT32 pelo Windows; formatações feitas no macOS ou Linux podem causar incompatibilidades nessas centrais.
- Se o pendrive já tiver sido usado várias vezes, prefira formatação lenta, porque a formatação rápida pode não limpar completamente a mídia.
- Se o pendrive for muito usado, zere/restaure a mídia antes de formatar e copiar a atualização.
| Arquivos convertidos existem | Opção --no-car |
Coordenadas usadas |
|---|---|---|
| Sim | Não | Arquivos convertidos pela central |
| Sim | Sim | Interpolação Python |
| Não | Não | Interpolação Python como fallback |
| Não | Sim | Interpolação Python |
A conversão Python usa interpolação RBF com scipy treinada a partir de pares
conhecidos. Ela é útil quando não há arquivos convertidos pela central, mas a
maior fidelidade vem dos arquivos convertidos no próprio RT6.
A direção (dir) de cada POI segue esta prioridade:
- Coordenada exata encontrada no arquivo base.
- Coordenada próxima no arquivo base, dentro de 50 unidades RT6.
- Direção da via via OSM, apenas com
--compute-dirs. - Valor
360, indicando alerta em todas as direções.
Alguns itens ficam propositalmente com 360, como radares móveis, lombadas,
pedágios e câmeras isoladas sem par confiável.
- O projeto não baixa dados automaticamente do MapaRadar.
- O repositório público não inclui bases, arquivos convertidos, PBFs OSM, índice OSM ou saídas geradas.
- O fallback via Overpass API requer internet e pode ser lento.
- A conversão Python depende da qualidade e cobertura dos pares de treinamento disponíveis localmente.
Contribuições são bem-vindas. Antes de abrir um pull request:
- Não inclua arquivos de
databases/,output/ouscripts/. - Rode
python main.py --help. - Rode uma checagem de sintaxe/importação nos arquivos Python.
- Descreva o veículo, firmware e arquivos usados para validar a mudança.
MIT License. Consulte o arquivo LICENSE.
This tool converts MapaRadar radar and danger-zone data into RT6-compatible CSV files for Peugeot and Citroën vehicles with the RNEG RT6 navigation unit.
The RT6 unit imports POI data through .LZW files. This project generates the
two intermediate CSV files commonly used with RadarViewer v2.0:
| File | Contents |
|---|---|
RADAR.csv |
Fixed radars, mobile radars, speed cameras, traffic-light cameras |
DANGERZ.csv |
Highway police checkpoints, toll booths, speed bumps |
Basic flow:
MapaRadar data -> python main.py -> output/RADAR.csv + output/DANGERZ.csv
This project supports two conversion paths:
| Workflow | When to use it | How it works |
|---|---|---|
| MiraScript-converted CSV | When you already generated converted_radars.csv and converted_dangerz.csv in the vehicle itself |
The RT6 unit runs MiraScript, produces the proprietary coordinates, and this project uses those CSVs to build the final RADAR.csv and DANGERZ.csv files |
| Direct Python conversion | When you want to convert on the computer, without running MiraScript and without depending on the vehicle during conversion | Python computes RT6 coordinates by interpolation and writes the final CSV files directly |
The first workflow is usually the most faithful because it uses the proprietary function from the RT6 unit itself. The second workflow is more convenient for PC-based updates, but it requires the Python dependencies and enough local data to build the coordinate interpolator.
This project builds on the work of the MapaRadar, c4clube, and clubepeugeot communities, which preserved and shared knowledge about POI, radar, and RT6 updates. The original RT6 radar update discussion was maintained in the MapaRadar forum:
https://forum.maparadar.com/viewtopic.php?t=61848
Please respect the community rules and the data usage terms.
- Python 3.8 or newer
- Dependencies from
requirements.txtfor all documented modes:numpyandscipy: required for--no-carosmium: required for--build-osm-index
The default mode, when using RT6-converted coordinate files, only uses Python's standard library.
git clone https://github.com/tomsnunes/peugeot-citroen-rt6-maparadar-updater.git
cd peugeot-citroen-rt6-maparadar-updater
python -m venv .venv
# Windows PowerShell
.\.venv\Scripts\Activate.ps1
# Linux/macOS
source .venv/bin/activate
pip install -r requirements.txtCreate these folders locally. They are ignored by Git.
databases/
maparadar/
maparadar_radars.csv
maparadar_dangerz.csv
base/
base_radar.csv
base_dangerz.csv
converted/
converted_radars.csv
converted_dangerz.csv
openstreetmap/
brazil-*.osm.pbf
output/
Files common to both workflows:
databases/maparadar/maparadar_radars.csvdatabases/maparadar/maparadar_dangerz.csvdatabases/base/base_radar.csvdatabases/base/base_dangerz.csv
Files used by the MiraScript workflow:
databases/converted/converted_radars.csvdatabases/converted/converted_dangerz.csv
These files are generated in the vehicle using MiraScript and contain the proprietary coordinates calculated by the RT6 unit itself.
Optional files for OSM-based directions:
databases/openstreetmap/*.osm.pbfdatabases/openstreetmap/highway_index.npz
Expected MapaRadar CSV format, without a header:
-46.549897,-23.120720,Radar Fixo - 50 kmh@50
-43.192310,-22.910480,Lombada - 0 kmh@0The base_*.csv files are clean RT6 reference files used to recover known
directions. By publishing choice, this repository does not distribute those data
files, but you can use the latest version available at MapaRadar forum mentioned above as the base file, I will keep an updated monthly release on the forum too.
Use this path when you already have converted_radars.csv and
converted_dangerz.csv generated by the RT6 unit with MiraScript.
# Uses RT6-converted CSV files when available
python main.pyIf converted files exist in databases/converted/, the program uses their
coordinates and avoids recalculating coordinates in Python.
Use this path to convert on the computer, without running MiraScript in the vehicle for the current update.
# Forces Python coordinate conversion
python main.py --no-carThis mode uses numpy and scipy. It does not call MiraScript and does not
require the vehicle to be present during conversion, but it still depends on the
local reference files needed to train/validate coordinate interpolation.
# Computes directions for new pairs using a local OSM index or the Overpass API
python main.py --compute-dirs
# Process only radars
python main.py --radar-only
# Process only danger zones
python main.py --dangerz-onlyTo build a local OSM direction index, place a Brazil PBF file in
databases/openstreetmap/ and run:
python main.py --build-osm-indexOne source for Brazil PBF files is Geofabrik:
https://download.geofabrik.de/south-america/brazil.html
The generated files are:
output/RADAR.csv
output/DANGERZ.csv
They are written in RT6 format, with CRLF line endings and ASCII encoding. Use
RadarViewer v2.0 afterwards to generate the .LZW files accepted by the unit.
After generating or downloading the final RT6 update package, prepare the USB drive carefully. These head units are sensitive to read errors: any issue in the software, files, or USB drive may cause the update to fail.
Installation procedure:
- Format a healthy USB drive as FAT32, preferably with 4096-byte allocation.
- Extract the update package directly to the USB drive, for example using WinRAR.
- Start the vehicle and wait until the RT6 unit has fully finished booting.
- Plug the USB drive into the vehicle USB port.
- Wait for the unit to analyze the contents and confirm the update when prompted.
- Wait until the update finishes without removing the USB drive.
- Remove the USB drive only after completion and check the alerts on the unit.
Tips to avoid USB drive errors:
- Always use a healthy USB drive that is not heavily worn.
- Format as FAT32 on Windows; formatting on macOS or Linux may cause compatibility issues with these units.
- If the USB drive has been used many times, prefer a full/slow format because quick format may not fully clean the media.
- If the USB drive is heavily used, reset/wipe it before formatting and copying the update.
| Converted files present | --no-car option |
Coordinates used |
|---|---|---|
| Yes | No | RT6-converted files |
| Yes | Yes | Python interpolation |
| No | No | Python interpolation fallback |
| No | Yes | Python interpolation |
Python conversion uses scipy RBF interpolation trained from known coordinate
pairs. It is useful when converted files are unavailable, but the most faithful
coordinates come from the RT6-converted files.
The dir field is selected in this order:
- Exact coordinate found in the base reference file.
- Nearby coordinate in the base reference file, within 50 RT6 units.
- OSM road direction, only with
--compute-dirs. 360, meaning alert from all directions.
Some entries intentionally remain at 360, such as mobile radars, speed bumps,
toll booths, and unpaired cameras without a reliable facing direction.
- This project does not automatically download MapaRadar data.
- The public repository does not include databases, converted files, OSM PBFs, OSM indexes, generated outputs, or scripts.
- The Overpass API fallback requires internet access and may be slow.
- Python coordinate conversion depends on the quality and coverage of local training pairs.
Contributions are welcome. Before opening a pull request:
- Do not include files from
databases/,output/, orscripts/. - Run
python main.py --help. - Run a syntax/import check for the Python files.
- Describe the vehicle, firmware, and files used to validate the change.
MIT License. See LICENSE.