So the rough plan is to get a good looking nautical map printed on the front of the PCB using this new Colourful Silkcreen PCB option at JLCPCB that was added to EasyEDA PRO. Then, inspired by the article ``THE SCIENCE OF REVERSE MOUNTED LEDS'', mount LEDs on the back of the map exactly in the spot of a lighthouse, buoy and so on. And them have some Arduino or similar flash these in the right patterns. And finally submit this to EasyEDA their Spark 2023 trial programme.
Lights
As to some background - maritime navigations at night relies in no small part on beacons, lighthouses and buoys with lights that flash in particular colours and lights. With a fair bit of coordination to make sure that any pattern than you can reasonably see (i.e. given the curvature of the earth and so on) is unique.
This is patterns, known more formally as Light characteristics, are shown on naval charts, in pilot guides and Almanacs. These use an abbreviated form; such as 'F R' or 'Oc R(4) 30'. Which then translates to it being a fixed red light; or a light that is occulted shortly 4 times in a 30 second period.
Now a lot of these codes may appear terribly underspecified (to a programmer or mathematician) and incomplete. This is largely as there is a historic assumption that most `flashing' lights do not actually flash (historically that would either be impossible with a flame; or burn our the filament at those high intensities). Instead - the flashing was achieved by shades moving in front of the light; typically by a set of these rotating around the light on a clockwork. And that meant that it was easier to occult (i.e. shortly dip rather than flash), and that patterns where easiest when they are regularly spaced within the repeat period. So there is a bit of mental model to apply when translating these codes into actual flashing patterns. But more about this later.
Maps
The next issue is that of maps. We could, of course, scan an existing naval map; and simply crop and scale this down to size. But that would be far too easy. Thanks to project such as OpenCPN, maps like OpenSeaMap, OpenNauticalChart and Open Street Maps have come leaps and bounds in recent years in terms of supporting sailors.
And thanks to their open APIs - it is not hard to extract the right vector data. In theory. And with lovely tools, such as Bernard R. Fischer his SMRender it is easy to just select some area and render a PNG, SVG or PDF with just the right data; in a nautical style. And to make things even easier; it the documentation even details how to extract the light characteristics.
Rasterizing
Now naval maps have historically been quite reliant on many layers of spot-colour printing; as opposed to a single CMYK run in which the dots are so small that they optically merge into a single colour. Now this poses a bit of a challenge because that historic spot-colour technique excels at very crisp, think (black) lines and large areas of one colour with abrupt changes possible. And over time - the chart makers have learned how to make really good use of this - improving the way information is presented in tandem with the printing technology.
CMYK however is quite `bad' at crips lines and areas of one subtle shade. This is as it relies on an optical trick of mixing 3 colours (Cyan(C), Magenta(M) and Yellow (Y)) to create the illusion of some other colour, like green, red or brown. With Black (or "Key", the final K of CMYK) thrown in as to get a rich black. And then using some sort of average diffusion (or dithering) to roughly get the right mix.
This works really well for things that have a natural flow and many shades; such as a photograph of a person or nature. But not exactly for the case where you have one area, say, in light blue, thin black line and then a darker blue area. The colours will blend a bit; and the black may smudge because it is touched by dots on either side.
The issue...
Read more »