Project Radar Boards Schiphol Control: verschil tussen versies

Uit MakerSpace Leiden
Ga naar: navigatie, zoeken
k (MarkKlaauw heeft pagina RadarBoardsSchipholControl hernoemd naar Radar Boards Schiphol Control: Changed title)
(81 tussenliggende versies door 3 gebruikers niet weergegeven)
Regel 1: Regel 1:
 
[[Bestand:schiphol-in-use.jpg|miniatuur|display in use (top left hand corner)]]
 
[[Bestand:schiphol-in-use.jpg|miniatuur|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.
+
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.
 
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.
Regel 9: Regel 9:
 
But easiest may be to use normal ATMEL programmeing on MISO/MOSI - which are nicely broken out on the connector.
 
But easiest may be to use normal ATMEL programmeing on MISO/MOSI - which are nicely broken out on the connector.
  
Rudimentary code: https://github.com/MakerSpaceLeiden/AirtrafficControlDisplaysSchiphol
+
= Code =
  
[[Bestand:schiphol-first-light.mov|320px]]
+
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>
  
[[Bestand:Datasheet-display-board-both.jpg|miniatuur]]
+
Om een van de hierboven ge-"transclude"d pagina's te wijzigen, bezoek de pagina via [[:Categorie:DisplayBoardsSchiphol]].
  
Seems to be the reference circuit from the display datasheet with an Atmel161:
+
= 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:Datasheet-display-schiphol-sample.png|420px]]
+
[[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
  
With an SNx4HC138 3 line to 8 line decoder/demux used. De displays zijn niet op alle borden gelijk - maar wel uit de zelfde serie en aansturing.
+
[[Bestand:0900766b808b01d8.pdf|340px|DLx3416]]
 +
[[:Bestand:0900766b808b01d8.pdf|DLx3416]]<br>
 +
[[Bestand:DLX1414series.pdf|340px|DLx1414]]
 +
[[:Bestand:DLX1414series.pdf|DLx1414]]<br>
 +
[[:Bestand:PD2573.pdf|PD2573]]
  
== Boards ==
+
Various people hack them
  
[[Bestand:Datasheet-display-board.jpg|120px]][[Bestand:Datasheet-display-display-front.jpg| 120px]][[Bestand:Datasheet-display-display-back.jpg| 120px]]
+
* https://www.flickr.com/photos/okini393939/5148872258
 
+
* https://github.com/TiNredmc/PD443X_Lib
== Main connector ==
+
* https://github.com/TiNredmc/PD443Xclock
 
 
{| class="wikitable"
 
|-
 
| 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 ==
 
 
 
HC138 is een multiplexer (https://www.ti.com/lit/ds/symlink/sn74hc138.pdf?ts=1623312092250&ref_url=https%253A%252F%252Fwww.google.com%252F)
 
 
 
Pin 1,2,3 zijn de selects. 4,5 enables, G1 de active high
 
  
ABC worden alleen gebruikt - en schakelen het display
+
= Requirements for development =
  
=== Multiplexer numbering ===
+
In general an AVR compiler, baseline libc and a programmer is needed.
  
[[Bestand:schiphol-mul-num.png|420px]]
+
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]].
  
== ATMEGA 161L ==
+
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).
  
{| class="wikitable"
+
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]].
|-
 
| 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 || Brightness up to ground
 
|-
 
| 9 || Brightness down to ground
 
|-
 
| 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 ==
+
== Requirements Apple MacOSX ==
  
The various cards contains displays from the PD family.
+
When using ports install:
  
 +
    sudo port instal avr-gcc avr-libc avrdude
  
=== Multiplexer numbering ===
+
Also install '''avr-binutils''' and '''avr-gdb''' if you want to do debugging.
  
[[Bestand:schiphol-mul-disp-num.png|420px]]
+
== Requirements Linux ==
  
=== Datasheet displays ===
+
In general something like
 
 
The photo's are from the card with the  6 displays of type PD443.
 
 
 
[[Bestand:PD-series-displays-datahsheet.pdf|340px]]
 
 
 
Various people hack them
 
 
 
* https://www.flickr.com/photos/okini393939/5148872258
 
* https://github.com/TiNredmc/PD443X_Lib
 
* https://github.com/TiNredmc/PD443Xclock
 
  
== Main Board ==
+
    sudo apt-get update
 +
    sudo apt-get install avr-libc binutils-avr gcc-avr avrdude
  
Connection on the main bord - top row near the yellow 'TOP1' label.
+
should do.
  
Wiring / pinout main CPU board
+
== Requirements Windows ==
  
[[Bestand:radarboard-pinout-main.jpg|400px]].
+
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]].
  
{| class="wikitable"
+
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]].
|-
 
| TOP 1 || SCK of CPU display board
 
|-
 
| TOP 2 || MISO  of CPU display board
 
|-
 
| TOP 3 || MOSI  of CPU display board
 
|-
 
| TOP 10 || RST  of CPU display board
 
|-
 
| TOP 13,14 || TX/RX  of CPU display board
 
|-
 
| BOT far left/right || Power
 
|-
 
|}
 
  
Progamming cable ATMEL [[Bestand:atmel-isp-pinout.png|180px]] to which this needs to be connected.
+
     
 +
      [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 22: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