Project Radar Boards Schiphol Control: verschil tussen versies

Uit MakerSpace Leiden
Ga naar: navigatie, zoeken
(Schiphol Airtraffic Control displays)
k (MarkKlaauw heeft pagina RadarBoardsSchipholControl hernoemd naar Radar Boards Schiphol Control: Changed title)
(113 tussenliggende versies door 3 gebruikers niet weergegeven)
Regel 1: Regel 1:
 +
[[Bestand:schiphol-in-use.jpg|miniatuur|display in use (top left hand corner)]]
 +
 +
We got a [[https://wiki.makerspaceleiden.nl/mediawiki/index.php/Categorie:SchipholElektronica pile of Control Tower displays from Schiphol airport (or Eurocontrol, etc)]] used for tracking what is in the air.
 +
 +
They are basically small 2-3 CPU boards on a common RS 485 bus or on RS 232. One CPU is purely for programming. The other is the main board and handles the traffic on the bus (it may be ASTERIX format?) and the other handles the display. They are interconnected by a TTL serial on 9600 8N1. Each box also contains a high quality PSU.
 +
 +
The programming chip is also 9600 8N1 and contains some debugging tooling. Photo below shows the testpoints used for programming.
 +
 +
But easiest may be to use normal ATMEL programmeing on MISO/MOSI - which are nicely broken out on the connector.
 +
 +
= Code =
 +
 +
Some fairly functional code: https://github.com/MakerSpaceLeiden/AirtrafficControlDisplaysSchiphol
 +
 +
[[Bestand:schiphol-first-light.mov|320px]]<br>
 +
[https://www.youtube.com/watch?v=RdrHZAX6c4I grote (50229) display eerste test-tekst (youtube)]
 +
 
= Schiphol Airtraffic Control displays =
 
= Schiphol Airtraffic Control displays =
 +
<tabs>
 +
<tab name="main board 50xxx>
 +
{{:Main_Board_50XXX_series}}
 +
</tab>
 +
<tab name = "board 50.028">
 +
{{:Board 50.028}}
 +
</tab>
 +
<tab name="board 50219">
 +
{{:Board 50219}}
 +
</tab>
 +
<tab name="board 50226">
 +
{{:Board 50226}}
 +
</tab>
 +
<tab name = "board 50227">
 +
{{:Board 50227}}
 +
</tab>
 +
<tab name="board 50228>
 +
{{:Board 50228}}
 +
</tab>
 +
<tab name = "board 50229">
 +
{{:Board 50229}}
 +
</tab>
 +
<tab name="board 7003-asy">
 +
{{:Board 7003-asy}}
 +
</tab>
 +
</tabs>
 +
 +
Om een van de hierboven ge-"transclude"d pagina's te wijzigen, bezoek de pagina via [[:Categorie:DisplayBoardsSchiphol]].
 +
 +
= Datasheet displays =
 +
50228 and 50229 use PD44x (PD4435, red) displays. 50.028 and 50219 use DLO3416 (red). 50227 uses DLO1414 (smaller 4-digit display, red). 7003-assy uses PD2473 (green) (PD44x datasheet).
 +
 +
[[Bestand:PD-series-displays-datahsheet.pdf|340px|PD44x]]
 +
[[:Bestand:PD-series-displays-datahsheet.pdf|PD44x]]<br>
 +
Code in https://github.com/MakerSpaceLeiden/AirtrafficControlDisplaysSchiphol/blob/main/shared/pd44.c
 +
 +
[[Bestand:0900766b808b01d8.pdf|340px|DLx3416]]
 +
[[:Bestand:0900766b808b01d8.pdf|DLx3416]]<br>
 +
[[Bestand:DLX1414series.pdf|340px|DLx1414]]
 +
[[:Bestand:DLX1414series.pdf|DLx1414]]<br>
 +
[[:Bestand:PD2573.pdf|PD2573]]
 +
 +
Various people hack them
 +
 +
* https://www.flickr.com/photos/okini393939/5148872258
 +
* https://github.com/TiNredmc/PD443X_Lib
 +
* https://github.com/TiNredmc/PD443Xclock
 +
 +
= Requirements for development =
  
[[Bestand:Datasheet-display-board-both.jpg|miniatuur]]
+
In general an AVR compiler, baseline libc and a programmer is needed.
  
Seems to be the reference circuit from the display datasheet with an Atmel161:
+
You will need an AVR programmer. A simple one like [[https://www.tinytronics.nl/shop/nl/communicatie-en-signalen/usb/usbasp-usb-avr-programmer-met-flatcable USBasp]] should do. It has been tested against an [[https://www.amazon.nl/DollaTek-compatibele-AVR-programmeerer-systeem-programmeer-ondersteunt/dp/B07L2SYF4K/ref=asc_df_B07L2SYF4K/ SK500]].
  
[[Bestand:Datasheet-display-schiphol-sample.png|320px]]
+
For more complex interactive 'talking' to it (e.g. if you wanted to hook it up to FlightTracker, your clock or a calendar) - you will need a 5 volt tolerant [[https://www.otronic.nl/a-61052754/serieel/ch340-ttl-usb-serial-port-adapter-3-3v-5v/ USB to TTL Serial]] adaptor (or connect something like an Arduino or ESP32 to it. You may need a 3/5 volt [[https://www.tinytronics.nl/shop/nl/componenten/ic's-en-microcontrollerchips/ic's/sn74ahct125n-4-kanaals-level-converter-3.3v-naar-5v-14-pin-dip level]] [[https://www.tinytronics.nl/shop/nl/communicatie-en-signalen/level-converters/robotdyn-spi-i2c-uart-bi-directionele-logic-level-converter-4-kanaals converter]] in that case).
  
With an SNx4HC138 3 line to 8 line decoder/demux used.  
+
You will also need 6 'dupont' cables -- they are [[https://www.amazon.nl/gp/product/B07VCCJTXN/ref=ox_sc_act_image_1 best]] [[https://www.otronic.nl/c-5347412/draden-en-kabels/ bought]] [[https://www.tinytronics.nl/shop/nl/kabels-en-connectoren/kabels-en-adapters/prototyping-draden/dupont-compatible-en-jumper/dupont-jumper-draad-male-female-20cm-10-draden in bulk]].  
  
= Boards ==
+
== Requirements Apple MacOSX ==
  
[[Bestand:Datasheet-display-board.jpg|120px]][[Bestand:Datasheet-display-display-front.jpg| 120px]][[Bestand:Datasheet-display-display-back.jpg| 120px]]
+
When using ports install:
  
== Main connector ==
+
    sudo port instal avr-gcc avr-libc avrdude
  
{| class="wikitable"
+
Also install '''avr-binutils''' and '''avr-gdb''' if you want to do debugging.
|-
 
| 1 NC || 2 NC
 
|-
 
| 3 NC || 4 NC
 
|-
 
| 5 ? || 6 ?
 
|-
 
| 7 RST || 8 SCK
 
|-
 
| 9 MISO || 10 MOSI
 
|-
 
| 11 RX || 12 TX
 
|-
 
| 13 SS || 14 Vdd
 
|-
 
| 15 Vdd || 16 ?
 
|-
 
| 17 ? || GND
 
|-
 
| GND || GND
 
|}
 
  
== Multiplexer ==
+
== Requirements Linux ==
  
HC138 is een multiplexer (https://www.ti.com/lit/ds/symlink/sn74hc138.pdf?ts=1623312092250&ref_url=https%253A%252F%252Fwww.google.com%252F)
+
In general something like
  
Pin 1,2,3 zijn de selects. 4,5 enables, G1 de active high
+
    sudo apt-get update
 +
    sudo apt-get install avr-libc binutils-avr gcc-avr avrdude
  
== ATMEGA 161L ==
+
should do.
  
{| class="wikitable"
+
== Requirements Windows ==
|-
 
| 1 || MOSI - pin 9 connector
 
|-
 
| 2 || MISO - pin 10 connector
 
|-
 
| 3 || SCK - pin 8 connector
 
|-
 
| 4 || RST - pin 7 connector
 
|-
 
| 5 || RX - pin 11 connector
 
|-
 
| 6 || NC
 
|-
 
| 7 || TX - pin 12 connector
 
|-
 
| 8 || GND ?
 
|-
 
| 9 || GND ?
 
|-
 
| 10 ||
 
|-
 
| 11 ||
 
|-
 
| 12 || pin 10 display WR
 
|-
 
| 13 || pin 1 display RD
 
|-
 
| 14 ||
 
|-
 
| 15 ||
 
|-
 
| 16 ||
 
|-
 
| 17 ||
 
|-
 
| 18 || pin 9 display A0
 
|-
 
| 19 || pin 8 display A1
 
|-
 
| 20 || pin 7 display A2
 
|-
 
| 21 || MCP 1 - 'A' select
 
|-
 
| 22 || MCP 2 - 'B' select
 
|-
 
| 23 || MCP 3 - 'C' select
 
|-
 
|24 || pin 5 display CE1
 
|-
 
| 25 ||
 
|-
 
| 26 || pin 4 display RST
 
|-
 
| 27 ||
 
|-
 
| 28 ||
 
|-
 
| 29 ||
 
|-
 
| 30 || pin 11 display D7
 
|-
 
| 31 || pin 12 display D6
 
|-
 
| 32 || pin 13 display D5
 
|-
 
| 33 || pin 14 display D4
 
|-
 
| 34 || pin 15 display D3
 
|-
 
| 35 || pin 16 display D2
 
|-
 
| 36 || pin 17 display D1
 
|-
 
| 37 || pin 18 display D0
 
|-
 
| 38 || VCC
 
|-
 
| 39 ||
 
|-
 
| 40 ||
 
|-
 
| 41 ||
 
|-
 
| 42 ||
 
|-
 
| 43 ||
 
|-
 
| 44 || SS - pin 13 connector
 
|-
 
|}
 
  
== Display ==
+
The canonical tool is [[https://www.microchip.com/en-us/development-tools-tools-and-software/microchip-studio-for-avr-and-sam-devices AVR Studio]] and the process is explained on [[https://microchipsupport.force.com/s/article/How-to-program-an-AVR-Microcontroller this page]].
  
https://nl.mouser.com/datasheet/2/311/00034150_0-1196251.pdf
+
That said [[https://platformio.org/platforms/atmelavr PlatformIO with AVR]] seems to be becoming the popular choice nowadays. See this [[https://docs.platformio.org/en/latest/platforms/atmelavr.html starter documentation]].
  
== Main Board ==
+
     
 +
      [env:schiphol]
 +
      platform = atmelavr
 +
      # board = atmega161
 +
      board_build.mcu = atmega161
 +
      board_build.f_cpu = 8000000
 +
      upload_protocol = custom
 +
      upload_port = usb
 +
      #        $(AVRDUDE) $(AVRDUDEFLAGS) $(AVRDUDECONF) -c avrispmkII -p m161 -U flash:w:$<:i
 +
      upload_flags =
 +
          -C
 +
          $PROJECT_PACKAGES_DIR/tool-avrdude/avrdude.conf
 +
          -p
 +
      m161
 +
          -c
 +
          avrispmkII
 +
      upload_command = avrdude $UPLOAD_FLAGS -U flash:w:$SOURCE:i

Versie van 9 jun 2024 om 21:28

display in use (top left hand corner)

We got a [pile of Control Tower displays from Schiphol airport (or Eurocontrol, etc)] used for tracking what is in the air.

They are basically small 2-3 CPU boards on a common RS 485 bus or on RS 232. One CPU is purely for programming. The other is the main board and handles the traffic on the bus (it may be ASTERIX format?) and the other handles the display. They are interconnected by a TTL serial on 9600 8N1. Each box also contains a high quality PSU.

The programming chip is also 9600 8N1 and contains some debugging tooling. Photo below shows the testpoints used for programming.

But easiest may be to use normal ATMEL programmeing on MISO/MOSI - which are nicely broken out on the connector.

Code

Some fairly functional code: https://github.com/MakerSpaceLeiden/AirtrafficControlDisplaysSchiphol

Bestand:Schiphol-first-light.mov
grote (50229) display eerste test-tekst (youtube)

Schiphol Airtraffic Control displays

Om een van de hierboven ge-"transclude"d pagina's te wijzigen, bezoek de pagina via Categorie:DisplayBoardsSchiphol.

Datasheet displays

50228 and 50229 use PD44x (PD4435, red) displays. 50.028 and 50219 use DLO3416 (red). 50227 uses DLO1414 (smaller 4-digit display, red). 7003-assy uses PD2473 (green) (PD44x datasheet).

PD44x PD44x
Code in https://github.com/MakerSpaceLeiden/AirtrafficControlDisplaysSchiphol/blob/main/shared/pd44.c

DLx3416 DLx3416
DLx1414 DLx1414
PD2573

Various people hack them

Requirements for development

In general an AVR compiler, baseline libc and a programmer is needed.

You will need an AVR programmer. A simple one like [USBasp] should do. It has been tested against an [SK500].

For more complex interactive 'talking' to it (e.g. if you wanted to hook it up to FlightTracker, your clock or a calendar) - you will need a 5 volt tolerant [USB to TTL Serial] adaptor (or connect something like an Arduino or ESP32 to it. You may need a 3/5 volt [level] [converter] in that case).

You will also need 6 'dupont' cables -- they are [best] [bought] [in bulk].

Requirements Apple MacOSX

When using ports install:

    sudo port instal avr-gcc avr-libc avrdude

Also install avr-binutils and avr-gdb if you want to do debugging.

Requirements Linux

In general something like

   sudo apt-get update
   sudo apt-get install avr-libc binutils-avr gcc-avr avrdude

should do.

Requirements Windows

The canonical tool is [AVR Studio] and the process is explained on [this page].

That said [PlatformIO with AVR] seems to be becoming the popular choice nowadays. See this [starter documentation].


      [env:schiphol]
      platform = atmelavr
      # board = atmega161
      board_build.mcu = atmega161
      board_build.f_cpu = 8000000
      upload_protocol = custom
      upload_port = usb
      #         $(AVRDUDE) $(AVRDUDEFLAGS) $(AVRDUDECONF) -c avrispmkII -p m161 -U flash:w:$<:i
      upload_flags =
          -C
          $PROJECT_PACKAGES_DIR/tool-avrdude/avrdude.conf
          -p
      	m161
          -c
          	avrispmkII
      upload_command = avrdude $UPLOAD_FLAGS -U flash:w:$SOURCE:i