One very nice thing about the Waveshare 3S UPS is the number of outputs. Along with 5V for the RPi, it has pins for 3.3V, 5V and 12V, making it a power source for the USB hub and for the one small relay used in the shutdown circuit, along with 2 GPIO activated relays, one for shutdown and the other for a dash light.
During design I added 2x 2-pin sockets for 12V and 2x 3-pin sockets for 5V and a signal line tied to GPIO. One 12V socket feeds the hub and one 5V feeds the amplifiers power on signal relay, which found a home above the fuses.
'35 Flatlander
Re: '35 Flatlander
It took the better part of 3 days to get the OBD to show signs of life. The learning here is don't buy cheap shit. Yeah you can get away with it most of the time, but then you lose 3 days. I usually go for second or third cheapest and don't mind spending on quality if it's worth it. But I bought the cheap one.
After the first day I suspected the wired OBD interface was not working right, but had nothing to compare it to. I've never worked with OBD before, hard or software, so had to learn its character from scratch. I'm old enough to have played with AT commands on modems but that was like mid-eighties. The second day I ordered a next.day.delivery unit that was a bit more upscale, if $28 Canadian is upscale.
Today, the third day, the new interface shows up. My head was full of broken.interface.tests so it took a bit to flush the trash out of my few remaining coherent brain cells, but the right combo finally showed up. The correct OBD baudrate setting in main_configuration.json is 38400, and is one of 2 options listed in the ELM327 data sheet https://cdn.sparkfun.com/assets/learn_t ... M327DS.pdf, the other being 9600.
I used Putty on a laptop to troubleshoot the baud. The cheap first interface was erratic at either speed, but the new one spoke right up when queried at 38400. So I swapped it into the workstation and after cold boot was rewarded with a flashing OBD DISCONNECTED that I didn't know was going to be there. Moving it into the truck to test went smooth, with the water temperature telling me it's 17C. More and better testing tomorrow, day 4, after the A.Truck delivers a short USB extension cord.
Also, prior to going hard at baud, I verified the API was in the loop by opening a remote terminal and running OBDQuery.py copied from the github. The cheap unit could get the API to respond with version numbers during the hello handshake but it would stall there, looping through the rest of main(). The new unit is a chatterbox.
The big difference between the 2 units is the cheap one shows up as /dev/ttyACM0 and the new unit as /ttyUSB0. I don't know if this is the point of failure but it's sure a pain in the ass when A/B testing.
The new unit has a HS/MS switch and the default is HS, with the other used for some Fords as far as I know.
Don't buy cheap shit.
After the first day I suspected the wired OBD interface was not working right, but had nothing to compare it to. I've never worked with OBD before, hard or software, so had to learn its character from scratch. I'm old enough to have played with AT commands on modems but that was like mid-eighties. The second day I ordered a next.day.delivery unit that was a bit more upscale, if $28 Canadian is upscale.
Today, the third day, the new interface shows up. My head was full of broken.interface.tests so it took a bit to flush the trash out of my few remaining coherent brain cells, but the right combo finally showed up. The correct OBD baudrate setting in main_configuration.json is 38400, and is one of 2 options listed in the ELM327 data sheet https://cdn.sparkfun.com/assets/learn_t ... M327DS.pdf, the other being 9600.
I used Putty on a laptop to troubleshoot the baud. The cheap first interface was erratic at either speed, but the new one spoke right up when queried at 38400. So I swapped it into the workstation and after cold boot was rewarded with a flashing OBD DISCONNECTED that I didn't know was going to be there. Moving it into the truck to test went smooth, with the water temperature telling me it's 17C. More and better testing tomorrow, day 4, after the A.Truck delivers a short USB extension cord.
Also, prior to going hard at baud, I verified the API was in the loop by opening a remote terminal and running OBDQuery.py copied from the github. The cheap unit could get the API to respond with version numbers during the hello handshake but it would stall there, looping through the rest of main(). The new unit is a chatterbox.
The big difference between the 2 units is the cheap one shows up as /dev/ttyACM0 and the new unit as /ttyUSB0. I don't know if this is the point of failure but it's sure a pain in the ass when A/B testing.
The new unit has a HS/MS switch and the default is HS, with the other used for some Fords as far as I know.
Don't buy cheap shit.
Re: '35 Flatlander
Over the past month everything has worked very well but with a few glitches, mainly related to Apple force updating my phone to iOS 26.5. It killed my Bluetooth setup. I redid the Bluetoothctl links from scratch but it only came back maybe 95%: the phone/RPi connection doesn't auto-connect if the phone has previously linked to another device. Updating Hudiy to 2.16 didn't help with Bluetooth but did improve the sound, imo. Not too concerned; It's a work in progress.
On the Hudiy end, the only glitch is the RPM gauge; it will intermittently not come up on start. Every second or third start, the needle will come on for a half second then disappear. A reboot or two and it works fine. I've looked through the code but can't spot anything unusual, again not worried about it. It'll get fixed. I did change the needle colors from red to white for higher contrast.
Being a 1997 Chev, the PIDs available through ELM327 are limited to the first 32. 0100 lists what's available:
0104 engine load
0105 coolant temperature
010C RPM
010D speed
010F MAF air temperature
0110 MAF flow
012F fuel level # not available
0142 control module voltage # not available
0146 ambient air temperature # not available
015C engine oil temperature # not available
There may be a few others that I'm not interested in using; I have it written down and need to clean up my notes and update the dokuwiki file. I'll likely drop the MAF signals from the remote touchpad.
If someone thinks I should have more PIDs available, please let me know and/ or suggest how to check. I spent time with the laptop connected to the ELM327 and running PID codes but am open to more testing.
I made a mask for the 9" screen out of PETG-CF with clear PETG-Transparent letters for the original gauges, then added overlays to backlight. Gonna think about a way to make the backlight turn red/ flash when out of spec.
On the Hudiy end, the only glitch is the RPM gauge; it will intermittently not come up on start. Every second or third start, the needle will come on for a half second then disappear. A reboot or two and it works fine. I've looked through the code but can't spot anything unusual, again not worried about it. It'll get fixed. I did change the needle colors from red to white for higher contrast.
Being a 1997 Chev, the PIDs available through ELM327 are limited to the first 32. 0100 lists what's available:
0104 engine load
0105 coolant temperature
010C RPM
010D speed
010F MAF air temperature
0110 MAF flow
012F fuel level # not available
0142 control module voltage # not available
0146 ambient air temperature # not available
015C engine oil temperature # not available
There may be a few others that I'm not interested in using; I have it written down and need to clean up my notes and update the dokuwiki file. I'll likely drop the MAF signals from the remote touchpad.
If someone thinks I should have more PIDs available, please let me know and/ or suggest how to check. I spent time with the laptop connected to the ELM327 and running PID codes but am open to more testing.
I made a mask for the 9" screen out of PETG-CF with clear PETG-Transparent letters for the original gauges, then added overlays to backlight. Gonna think about a way to make the backlight turn red/ flash when out of spec.