yashsingh1/xdaforums huggingface dataset:
[Android Head-Units] Pxdev:
I was looking into this for my HU, it seems that a number of people have bought a number of off the shelf SWC decoders $40-120 that either do not work or have limited functionality. It is great you researching this-I hope you success. Apparently CAN-BUS coding is car model specific.

Arduino (or other) with CAN coding specific for your car would be ideal.

Alternatively, Euro cars have simpler coding down Steering column to CAN terminal at base.

i.e.

1-button presses on steering wheel to

2- LIN then send it through the rotating joint

3- receive it as LIN at base box

4- covert it back to button presses

5-send the button presses to the CAN processor to get converted to CAN to be sent on the CAN bus.

So button presses are available in steering wheel, encoded LIN bus, decoded separately at base box, then re-encoded to CANbus

Hope this helps.
[Android Head-Units] Pxdev:
One alternate solution if your HU supports IR remote-Ebay has for <$10 a learn-able IR remote control gizmo that attaches to the steering wheel, or could be incorporated inside the steering wheel using existing buttons...
[Android Head-Units] O.i.D:
Hi Pxdev,

Thanks for the input and support :)

For my car (Mazda 3) the steering wheel buttons are resistors/a voltage divider so I was able to connect one end to ground and the other to KEY1.

For my car I am still pushing to get the original car LCD to work as I don't have any clock or trip/consumption information. I have found the commands for the LCD text area and enable the clock.

For my friends car I still need to implement the steering wheels and hopefully other functions. I have found most of the CAN commands.

I'm currently fighting with an MCP2515 and it's weird register filters for the CAN bus. I should have some free time these days to move this forward!

I will then need to learn how to write an app for android again as the last time I made an app was about 8 years ago...
[Android Head-Units] O.i.D:
Well,

Now that I have some free time I whipped up Version 1 of the device. Basically it converts the CAN bus codes from the Volvo XC90 steering wheel to SWC for the Android head unit.

I've also added 4 extra outputs to control reverse, brake, illumination and whatever else can be found on the CAN bus.

Now to work on getting my Mazda's original LCD to display at least display the fuel information again. Should be easier as I have access to my car!
[Android Head-Units] t3l3m4k0:
Nice & professional job.

I was looking for IDs and only think i was found is the structure message between Canbus Box Converter and MCU

1rst byte: 2E ->start

2nd byte: XX -> request ID

3 byte: NN -> number of data bytes length

4 to NN+3 bytes: DD ... DD -> data of request

NN+4 byte: cheksum from second byte to NN+3 byte complement 2

I'm looking at android apk's but i don't know java and how Android packages structure works
[Android Head-Units] O.i.D:
Thanks, it still needs some hot glue to hold everything together from the vibrations but I hope the hardware doesn't need any revisions. Hopefully all upgrades can be run from a laptop.

Looks like the controller you have has a very similar protocol. There are lot's of makers and for different car models the communication protocol varies so I'm glad it's similar to what I found :)

Good luck with the Java, I need to look into it again soon... but so many things to do...

On the other hand, looks like the Mazda LCD is rather straight forwards! I'll Tidy up the info I have and post it later. Now to make another similar box for my car. :fingers-crossed:
[Android Head-Units] O.i.D:
Well, here are the codes needed to control the LCD.

Quite a few more ID's are needed to fill in the data from the car. I ended up using ID's;

0x433 (for Ambient temp),

0x2A0 (for HVAC),

0x285 (car key ignition),

0x400 (Trip computer for fuel consumption and speed).

Below are the the ID's for;

0x28F (LCD control A),

0x290 (LCD control B),

0x291 (LCD control C),

0x2A0 (HVAC control).

Mazda 3	ID	DLC	Example data	Byte	HEX	BIN	Description
LCD A	28F	8	80 00 00 22 20 00 00 00	B1	80	10000000	b8 must be 1 to enable
[INDENT][INDENT][INDENT]	81	10000001	AF
82	10000010	RDM
84	10000100	RPT
88	10001000	DOLBY
90	10010000	ST
A0	10100000	MD IN
C0	11000000	CD IN
B2	10	00010000	AUTO-M
20	00100000	TP
40	01000000	TA
80	10000000	PTY
B4	01	00000001	Disables ID 0x28F?
02	00000010	"." between character 10 and 11
04	00000100	"." between character 11 and 12
10	00010000	Minutes and seconds symbols
20	00100000	":" between character 3 and 4
B5	02	00000010	Send 3 times to perform LCD selftest
08	00001000	INFO button, toggle with 0x20
10	00010000	CLOCK button, toggle with 0x20. Wait a few seconds to enter clock settings.
20	00100000	No button press. Must be sent after INFO or CLOCK to resend button press.[/INDENT][/INDENT][/INDENT]
LCD B	290	8	C0 31 32 33 34 35 00 00	B1	C0	11000000	Can be swapped with ID 0x291 0X85
[INDENT][INDENT][INDENT]	B2	31	00110001	ASCII HEX character 1 "1"
B3	32	00110010	ASCII HEX character 2 "2"
B4	33	00110011	ASCII HEX character 3 "3"
B5	34	00110100	ASCII HEX character 4 "4"
B6	35	00110101	ASCII HEX character 5 "5"[/INDENT][/INDENT][/INDENT]
LCD C	291	8	85 61 62 63 64 65 66 67	B1	C0	11000000	Can be swapped with ID 0x290 0XC0
[INDENT][INDENT][INDENT]	B2	61	01100001	ASCII HEX character 6 "a"
B3	62	01100010	ASCII HEX character 7 "b"
B4	63	01100011	ASCII HEX character 8 "c"
B5	64	01100100	ASCII HEX character 9 "d"
B6	65	01100101	ASCII HEX character 10 "e"
B7	66	01100110	ASCII HEX character 11 "f"
B8	67	01100111	ASCII HEX character 12 "g"[/INDENT][/INDENT][/INDENT]
HVAC	2A0	4	A1 22 83 B0	B1	b8 must be 1 to enable. b0 and b1 cannot be both 1.
[INDENT][INDENT][INDENT]	80	10000000	No temp displayed
81	10000001	HVAC Temp displayed
82	10000010	AMB Temp displayed
84	10000100	A/C+RECTANGLE
88	10001000	ECO
90	10010000	AUTO
A0	10100000	AIR RECIRCULATION
C0	11000000	EXTERIOR AIR CIRCULATION
B2	00-99	Treat as decimal temperature, no HEX allowed, only 0-9
B3	01	00000001	Air to face
02	00000010	Person icon
04	00000100	Air to windshield
08	00001000	1 LSB of decimal temp
10	00010000	2 bit of decimal temp
20	00100000	4 bit of decimal temp
40	01000000	8 MSB of decimal temp
80	10000000	Decimal point
B4	08	00001000	1 Fan icon lvl 0
10	00010000	2 Fan icon lvl 1
20	00100000	4 Fan icon lvl 3
40	01000000	8 Fan icon lvl 7
80	10000000	Air to feet[/INDENT][/INDENT][/INDENT]
[Android Head-Units] pepelaalfa:
Hi my friends.

Im very interested on this subject.

I have a chinesse radio hizpo, and I want to make a canbus interface for my car.

I go inside the sofware on the radio using adb, and I find the apk who managed all the options for canbus. The apk is called MainUI, I decompiled it but i cant find the arrays, or list with the commands for every car brand.

My car is a PSA, and when a select PSA WC in the radio (code 148), the first 2 bytes or head code is 5AA5, if i select audi, the first is 2E, but with others is E6, and the code who start by 2E, (vol+) only works if the radio is in 2E mode. I havent any canbus decoder, so i can't monitorize the traffic, only I can read the serial port of the radio, and send to it commands.

I think the codes are inside a compiled library .so, i upload it in order to anyone try to decompile it.

https://srv-file6.gofile.io/download/tr2P6W/canjni.rar
[Android Head-Units] Audican:
Hello i can you help me i have head unit 8227l,My car is an audi a4 but it's not among the models that are written in the canbus protocol. Can i update can bus protocol?

I buy can bus decoder for audi a4..

But in head unit nit chenge nothing...
[Android Head-Units] sergiotacchini:
problema autoradio tesla style per buick ,opel,cruze...

ho un problema con autoradio per opel,buick..... modello tesla :

Android: SD8227_HW:1.0_SW:0.3.4_20180917

system: 4.4.2 kenel: 3.4.35

cpu: ARMv7 Processor rev 3 (v7l) X 4

display: 768*1024(6bits)

CAN: BNR-Focusexcelle(H)-V12.0-Connected

MCU1: HW8227-0.1-SW0-6.6

CanVersion info: BINARY BK V209

ha queste caratteristiche ma dopo un aggiornamento alla versione 6.0 non ci sono piu' i comandi al volante,qualcuno puo' aiutarmi?:
[Android Head-Units] Mohie.soheim:
Hello sir,

Please how can i enter this codes in the canbus setting
[Android Head-Units] morcibacsi:
Hi, I was doing some research on a Junsun head unit. It is "specially crafted" for Peugeot 307 cars, but as I was digging through various forums on the internet it seems it is the same MTK 8227l based Android unit as the others. It comes with a Raise CAN bus adapter which translates the CAN signals to the unit to serial ttl signals on 19200 baud with 8 databits and 1 stopbit no parity. Some CAN bus messages are translated to this ttl signal, howerver some of them a controlled in an analogue way. For example the box detects the reverse gear on the CAN bus but it uses a wire to signal the head unit to show the picture of the camera the same goes for the display dimming and also for the power-on signal. I have created a small Arduino library for the button presses and the trip computer information. As I mentioned the box is for a Peugeot, so if you want to use my lib, you have to select that one from the settings.

The arduino library: https://github.com/morcibacsi/JunsunPSARemote

The button codes:

Source 0xFD 0x04 0x02 0x11 0x17
Seek up 0xFD 0x04 0x02 0x12 0x18
Seek down 0xFD 0x04 0x02 0x13 0x19
Vol up 0xFD 0x04 0x02 0x14 0x1A
Vol down 0xFD 0x04 0x02 0x15 0x1B
Mute/Unmute 0xFD 0x04 0x02 0x16 0x1C
Scroll up 0xFD 0x04 0x02 0x17 0x1D
Scroll down 0xFD 0x04 0x02 0x18 0x1E

I attached some screenshots from the device. And photos of the CAN adapter. It has a TJA1055 CAN transceiver and an ARM based microcontroller called Pocket Link (maybe an STM32 knock-off ?)

Unit description:

HMI: JC.D.Q.F.2.01.2020.07.13.09.30

MCU: TS907.190518(H)

MEDIA: HC_v2.0.0.200416_0930(v1.71)
[Android Head-Units] YosCoh1234:
Question about common ground

morcibacsi - I am trying to use your library, currently without success. I had a question regarding your commend about connecting a common ground. I have my Arduino powered via usb from the car multimedia, is this considered common ground? I measured the difference in voltage from the ground entering the multimedia and the arduino pin and it had 0.4v.

If this isnt a good solution shat should i do? Connect the arduino ground pin to the ground on connector c? Something else?

I am new to electronics so not that familiar with the concept of common grounds.

Thanks
[Android Head-Units] morcibacsi:
Common GND means that you need to connect one of the GND pins on the ESP32 to the GND of the head unit. You need to find that. It should be the same as the GND of your car. In a fakra (quadlock) connector it is pin number A16 on an ISO A connector it is pin number 8.
[Android Head-Units] YosCoh1234:
Found more info

While looking into this found more info that may be of interest in this thread:

See: https://github.com/runmousefly/Work/blob/master/MctCoreServices/src/com/mct/carmodels/RZC_PeugeotSeriesProtocol.java

This contains more id's that should work.

Credit to: https://xdaforums.com/android-auto/mtcb-android-head-units-qa/canbox-decoder-reverse-engineering-t4057759/page2
[Android Head-Units] Sdpuk2020:
I’ve been looking for some information regarding canbus connection of my head unit

it’s an xtrons. The loom has Can-rxd and Can-txd but no external decoder plug.

does this mean I can connect this directly into my car without the need of any other hardware?

My car provides CanH and CanL from the same 2 pins on the quadlock as the iso on the head unit
[Android Head-Units] morcibacsi:
CAN RX and CAN TX most probably a serial ttl protocol, you shouldn't connect that to CAN_H and CAN_L from your car. The decoders like I uploaded pictures of are responsible to translate the CAN signals to serial TTL signals. Most of the sellers offer car specific CAN adapters and patch leads for their head units. Or based on some reverse engineering you can find here you can roll your own as well of course.
[Android Head-Units] firstbob:
If you make your own CAN bus decoder (CAN bus to serial) can you make your own serial protocol? In other words, would an android app have direct access to the serial port that CAN bus decoder is connected to or there's another layer between?
[Android Head-Units] Pradip2626:
dear friend,

did u make any decoder for volvo ? it worked , i m also stuck with same problem , can you help me out ?
[Android Head-Units] kobraevents:
see below:
[Android Head-Units] kobraevents:
Hi morcibacsi,

i didnt found these codes in your lib. For example in JunsunPSAVANButton Volume Up is called as 0x01. So could add the codes for scroll up/down and some more features like the climate control in your lib?
[Android Head-Units] morcibacsi:
I'm sorry I sold the device a long time ago, so I can't add any new features,. But pull requests are always welcome.
[Android Head-Units] kobraevents:
could you describe how do you "found" the codes?

so id like to build a code to bruteforce the codes in a loop. but i need some start help here. And what i found out so far is that the android head unit didnt send anything on the serial. Thats normal?

On my device i can push some climate settings or car settings, but on the serial string nothing happend.

my code so far for the CAN:

for (int i = 0; i < 4096; i++) {

uint8_t data[] = { (uint8_t) 0x01, i }; //for press

uint8_t functionId = 1;

uint8_t messageLength = (sizeof(data) / sizeof((data)[0]));

uint8_t outputBuffer[17];

outputBuffer[0] = 0x2E;

outputBuffer[1] = functionId;

outputBuffer[2] = messageLength;

uint8_t sumOfPayload = outputBuffer[1] + outputBuffer[2];

for (int i = 0; i < messageLength; ++i){

outputBuffer[i + 3] = data;

sumOfPayload += data;

}

outputBuffer[messageLength + 3] = 0xFF - sumOfPayload;

Stream* serialPort = &mySerial;

serialPort->write (outputBuffer, messageLength + 4);

Serial.println( i ); //Print out the actual register address worked with 128, 0, 64 or 255

delay(500); //wait to check if there happened something on the dash

}
[Android Head-Units] morcibacsi:
I hooked an Arduino between the "CAN box" and the head unit and monitored the messages. If you set a different car type in the settings you have different messages, and a different protocol. So if you select for example Peugeot it is possible that some features won't work. By the way there was a github repository somewhere which contained the source code of the app running on the headunit, with that it might be easier to extract some additional codes. Unfortunately I didn't save it, but if it comes across, I'll post the link.
[Android Head-Units] kobraevents:
Work/MctCoreServices/src/com/mct/carmodels/RZC_PeugeotSeriesProtocol.java at master · runmousefly/Work

Work. Contribute to runmousefly/Work development by creating an account on GitHub.

github.com

there i found some more information about the canbox codes, but thats not the biggest help, cause you got no information about the Strings the Box send to the Head Unit. Furthermore i didnt get the need for building for each car one String with they functions. Theoretical every Canbox (who decodes the car signals to ttl) could you the same Strings to every HeadUnit.

The most problems caused by the climate informations.

But i got some more codes by brutfroceing my headunit with peugot can signals.

i will try it for volkswagen too -> has more options.

* 0x2,0x2 ::Launcher Pages

* 1:: swipe to right

* 0x7 ::enter

* 0x3::Backwards

* 0x4 ::Forward //nothing, sometimes fine, sometimes nothing happend

* F:: Source

* 12 ::Forward

* 14::Volume +

* 15 ::Volume -

* 16::mute

* 20::Video

* 21 ::switch source

* 29 ::Menu

* 36 ::music

* 44:: Album Prev Play

* 50:: radio

* 80:: standby off/on
[Android Head-Units] morcibacsi:
Ah yes, this was the repository I mentioned. Unfortunately as I see these "CAN boxes" aren't standardized. I mean with a proper implementation there was no need to set up your vehicle type as the CAN box could act as a gateway. It could pick up whatever protocol the car uses (VAN, CAN, LIN, doesn't matter) if there was a standard protocol, all of these boxes would use the same protocol towards the headunit. And that's it: No fiddling around with car types. And when a function was not available in a specific car, the "CAN box" simply wouldn't send a that specific payload towards the headunit. They could even craft a new CAN box as long as they implement the protocol, they wouldn't need to compile a new firmware for the headunit.... yet they chose the more complicated way, with specific protocols based on car types. What a shame...
[Testing] chautau:
We have been using Garage (garage.fueled.com) internally for the past few years, and are really excited to finally release it to the greater tech community.

It only takes a few lines of code to get started, and is completely free. The iOS SDK is publicly available to download on GitHub and should take less than 5 minutes to get up and running.

How it works:

Shake your phone to activate and capture what you’re looking at

Draw on the captured screenshot and add details about the issue

Record your screen to capture more complex issues

Send your bug directly to your Jira project

We know that there are many tools out there that do something similar, but we wanted to build something that was simple without too many extraneous features. Our criteria for a successful product was that it is easy to set up and could submit bugs in as few steps as possible. Testers should spend less time reporting and more time using the app.

We also wanted Garage to link directly to Jira, so that bugs are automatically sent to the project board with specs like the user’s device and build version. This makes it easier for developers to review issues, and product managers to prioritize accordingly.

As with all of our products, we will continue to iterate and improve. So, if you have any feedback or questions around implementation, please reach out!

Now, get out there and crush some bugs!
[Asus ZenFone Max Pro M1  Questions & Answers] KARTIK REDDY:
I'm on stock android version 8.1.0 with FEB 1,2019 security patch level

Build number - OPM1.WW_Phone-15.2015.1902.340-20190216

I've not updated my device to latest update available as it have too much bugs, i'll never update in future too unless its better than oreo stable one

I want to enable camera2api in my device to use

On googling how to do it, many results came but few are too old when the device was launched or for pie, i can't get video/instruction for oreo 8.1.0 version on which my device is.

If anyone knows how to do it safely without any risk on MY version of android, PLEASE HELP/REPLY ASAP !!!!!

P.S - i want to enable it without unloacking bootloader or messing up the OTAs or messing up with system except enabling camera2api
[Asus ZenFone Max Pro M1  Questions & Answers] Tianhe:
Try the fastboot command to enable cam2api since you are still on Oreo (Search the forum, the credit should go to [MENTION=1813976]shakalaca[/MENTION] ).

If it doesn't work then you will need root access.
[Nintendo Switch Questions & Answers] Maufeat:
Currently it's kinda hard to navigate because it's not possible to type with joycons. Apps like YouTube are also impossible to use in docked mode. Does anyone already experimented a bit and got a better experience?
[Nintendo Switch Questions & Answers] xk0niR:
You could try to remote control your switch with your smartphone.

Something like DroidMote should work. I might try DroidMote myself but the Server app is paid and I don't really want to add my Google account to the switch (I am not using GAPPS on switch). Maybe buying it on my phone, backing up with Titanium Backup and restoring it on the switch will do the trick.
[Nintendo Switch Questions & Answers] OreBoySwaggin:
You *may* be able to get an android tv bluetooth remote and connect it. I have not tried.
[Nintendo Switch Questions & Answers] kekistaneerefugee:
Kodi can give you a great dashboard for an htpc setup with a custom theme. You can even have it auto launch when you boot into android so you never see the android interface just a nice tv setup. That's how I have my Android tv boxes. I use one of these style remotes as well for the keyboard:

https://www.amazon.com/ILEBYGO-Back...e+tv+keyboard&qid=1564503866&s=gateway&sr=8-4

You will want to use Android TV apps for landscape apps like youtube etc.
[Nintendo Switch Questions & Answers] xxcrashxx:
I use one of these when it's in docked mode. Just have the dongle plugged into the dock and you have an easy to use mouse and keyboard.

https://www.amazon.com/Upgraded-Rii-Wireless-Keyboard-Raspberry/dp/B00Z81U3YY
[Nintendo Switch Questions & Answers] MsMiss:
Try hal launcher and the leakback keyboard.
[Nintendo Switch Questions & Answers] Renato2005:
sorry for kidnapping your thread, but when you use docked mode, does it go to fullscreen? Mine stays with black bars up and down... would say that it's not outputting the correct resolution...
[Nintendo Switch Questions & Answers] carolef1984:
Just want to recommend airscreen so you can use it as a Chromecast.
[Nintendo Switch Questions & Answers] lzcrz:
Replace the default launcher with TV Launcher or HALauncher. Use a blue tooth or wireless keyboard until the soft keyboard get fix. The current Amazon Fire TV remote can be paired using blue tooth and works with this android build.
[Nintendo Switch Questions & Answers] pok5:
I think would be great if someone with more experience could port this solution https://drive.google.com/folderview?id=0ByIKEmoQi-hpYXBpbV9Sb3JFeVk

It is way to convert Shield Tablet into Android TV Shield. I've found this pdf with guide and files in zips folder. It obviously doesn't flash because Lineage has different file structure, but maybe it doesn't require much tweaking. It would be great, because it comes with Chromecast support and there are plenty Android TV apps which require full Android TV structure.
[Nintendo Switch Questions & Answers] :
The scripts itself seems compatable, the only thing that needs proper porting would be TV Gapps. If anyone can port these successfully let me know.
[Nintendo Switch Questions & Answers] Miustone:
Think it shouldn't be to hard to transform the OS into a Android TV. Just don't have a Switch to play with it, but i really like the Idea... Think i will grab a Switch around Christmas and make it happen...
[Nintendo Switch Questions & Answers] uigger:
is it technically possible to implement framerate switching and widevine level 1 support for drm protected content playback in hd in the switch android port?

see my questions here:

https://xdaforums.com/nintendo-swit...wers/to-change-tv-refreshrate-docked-t3992615

i'm really curious about that.

would be awesome to watch stuff with the proper refreshrate for smooth playback and the drm protected content in hd in docked mode
[Vivo Nex Questions & Answers] kyo11111:
nex s Jovi button can't use to trigger google assistant

when screen lock in adroid pie

does anyone have same problem?
[Xiaomi Redmi Note 7 Questions & Answers] Asif Rayhan:
Today i flashed global rom in my redmi note 7(lavender) cn. But i made a mistake. I select clean all and lock. When i tried to boot it shows 'this miui version cannot be installed in this device'. But I removed mi account from my phone. That's why i can't unlock the bootloader. Then i opened the backpart and tried to do edl flash with mi flash tool. But it showed ' cannot receive hello packet'. Then i tried to flash with Q_loader. But it fails. Now what can i do. Please help
[Xiaomi Redmi Note 7 Questions & Answers] Anurag151143526:
Lol

I hv the greatest solution for this shi..t

Just go to fast boot mode by pressing volume down and power.

And

Open mi bootloader unlock tool in pc

And simply unlock ur bootloader normally

This will unlock ur bootloader again

And do whatever uh want

Flash rom again but this tym select only clean all

Device will boot normally

Thats it

This trick worked for meh..
[Xiaomi Redmi Note 7 Questions & Answers] Asif Rayhan:
I don't have any mi account in my device. How can I unlock the bootloader?