googlecreativelab / anypixel

A web-friendly way for anyone to build unusual displays
Apache License 2.0
6.44k stars 517 forks source link

Manufacturing the hardware boards - PCB / Firmware Programming questions #27

Open HedronUser opened 7 years ago

HedronUser commented 7 years ago

I'm looking at quotes for producing the controller and display boards on a small scale (~50).

  1. Is there a solder-type requirement for making these boards or do the components care what solder is used?

It's unclear to me how to "set the correct memory layout for each device in the linker script."

  1. Where is the referenced linker script and do I adjust it before uploading firmware for each board and MCU (controller and display)? 2.a Do I need to send this instruction to the PCB manufacturer, will they understand what that means? 2.b. Are there any instructions needed for properly uploading the provided firmware to the boards or do I just compile and upload everything as a single hex file as is?

  2. What is the SMT oven profile for these boards?

  3. Is conformal coating needed?

HedronUser commented 7 years ago

I received a bit more info from the manufacturer on these questions.

  1. ROHS - No Clean Pb Free solder is standard

  2. Oven profile is for heat-sensitive components. Im wondering are there sensitive components on these boards we need to be aware of?

  3. Conformal coating is really for outdoor / high-moisture environments. So its not necessary.

Lingering questions about testing and setting up system:

What is the procedure for testing operation of these boards?

There is a protocols section for testing the PCBs over a 16-pin header, https://github.com/googlecreativelab/anypixel/blob/master/firmware/PROTOCOLS.md , but it is missing the descriptions of several things (dot correction, rgb raw, calibration lookup table request, etc) . It is unclear how one should compile a header/test sequence. A simple diagram showing the google wall with referenced variables used would help out a lot. Some step by step instructions with example of stacking the bytes together would be awesome.

The unit address section has (20 + 10* row + column) How are these referenced on existing google wall?

What is the sequence number?

What is the port number?

What is the proper format of ip address? How does one set the memory layout of each device?

Where is the referenced linker script for setting memory layout?

Do I need to worry about setting the memory layout in the firmware or can it be done after the upload?

ryburke commented 7 years ago

Hey thanks for your interest in AnyPixel and for your super pointed questions. We're running around right now on a couple other projects but we'll get back to you soon. Thanks for your patience.

ddresch commented 5 years ago

@HedronUser did you make any progress with your project or did you stop it? Would be awesome to hear any feedback!

HedronUser commented 5 years ago

Hey Dirk,

Our client went another direction so we stopped moving forward with it. It was unfortunate that the BOM for the hardware was difficult to track down by our manufacturer and that the hardware design is so expensive to replicate. For example, the RGB LEDs specified were found to be out of production and a direct replacement was not found so from our perspective a redesign of the board would be necessary to make the design work. Why didn’t google go the route of the on-die addressable LED like the ws2812 or similar with dedicated data and power injection circuits? Developing that software stack might have been more applicable IMO. On the other hand, I understand any pixel wanting to use dedicated processing at the submatrix array level but it is a lot of extra chip programming, extra expense, and a lot of potential ways to go wrong and debug.

Thanks for reaching out, -Jesse

On Nov 13, 2018, at 9:08 AM, Dirk Dresch notifications@github.com wrote:

@HedronUser did you make any progress with your project or did you stop it? Would be awesome to hear any feedback!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.