guess the enclosures aren't waterproof after all LOL. Made in China?
I have a 2008 Pontiac Solstice that I have been doing a lot of work to. I have been adding technology to the car that is seen in new vehicles. The project I am working on now is upgrading the exterior lighting on the car. The car originally had a single bulb reflector halogen headlamps. They didn't do a fantastic job at lighting up the roadway and where I live there isn't much in the way of light pollution so when there is no moon you can't see 2" away. It's dark. I live at 8500 foot elevation in Colorado. 25 minute drive to get to the closest gas station. Lots of animals around.
So what I did is convert the headlamps to HIDs with projectors. I put 2 projectors in each headlamp. one is for low and high beam while the second is high beam only. The projectors move left and right depending on the steering angle and they also keep a horizon lock so any sharp change in pitch of the vehicle will cause the lamps to move up or down. the lamps also move up the faster the vehicle is going.
We have >100°F days here sometimes and the inside of the headlamp housings when sitting in direct sunlight would eclipse 150°F. The LEDs are the turn signals and daytime running lights so the processor would need to be running any time the car is running. I originally designed everything around using an ESP32 WROVER processor running MicroPython but my concern is enough muscle to handle the workload. The fusion math is pretty intensive stuff to calculate the roll and pitch of the vehicle. It is also all floating point math that take up a large amount of memory. The WROVER has 8mb of RAM but MicroPython is only able to access 4mb of it. I was hoping the Onion Omega2+ would fit the bill but the max operating temp of 55°C is not going to cut it. I also wasn't sure how much of an overhead there was going to be for running Linux on it. It takes quite a while to boot up. I am sure I could get it to boot a whole lot faster by trimming some of the fat from the boot process but the temperature thing is an issue. The way the wording is for the specs using the word "Ambient" to describe the maximum operating temperature is misleading. It makes me think that would be the maximum temperature the environment could be for the processor to run not the max temperature of the processor it's self. I can get the inside of the housing cooled down by using a fan but I will not be able to get it lower then 120 or so on a 100° day. With the processor having a 30° delta-t rise when sitting idle there is in no way I would be able to get the temperature down low enough to run it.
I really did like the idea of running a full blown version of Python but because of the tight timing specs needed to run the LEDs I am pretty sure with the workload I would be putting on it would cause problems with lighting them properly as I need to have a high frame rate. I am able to work around the timing constraints using MicroPython because I am able to run the python code for the LEDs as native machine code which is an enormous speed boost.
Downside of MicroPython is the lack of threading support. There is no event handler so stalling a thread and not have it spin its wheels requires using a complex setup of thread locks and the process of acquiring and releasing the locks is expensive.
If the maximum operating temperature was 125°C the applications it could be used for in the automotive sector alone would be endless. It's got enough processing power and memory and has most of the communications hardware needed. internal CAN support would be really nice to have. The price point is great too. The boot time would have to be improved upon but that wouldn't be that hard to do. The ESP32 made it half way with CAN support as it has a CAN interface built into it. It doesn't have the transceiver built in so an additional IC is required but it is simple enough and cheap enough to add that IC.
This is what the prototype looks like. I am having circuit boards manufactured and I should have delivery of them in a few weeks. I already have all of the components that go on the boards. This is a hard wired setup for testing so you have to excuse the appearance of it as the final version will be much much cleaner.
by using a 4 layer PCB I am able to fit everything onto a 3" x 3.75" PCB and the majority of the wiring will no longer be needed.