Unofficial Hardware - nasser2019/CommaAi GitHub Wiki
Community developed hardware based on EON style form factor. For webcam and pc based development click here.
Typically used for customizing an EON case or creating an EON device from scratch
- Unibody LePro3 @CloudJ
- FrEON @ch4se
- variety of mounts from @Tunder
- Magnectic Mount @CloudJ
- comma2 style mount, magnet mount for EON case @Daehyuk
- Noctua - Quiet
- CloudJ 60mm Fan Mount
- Ramp @ch4se
The Lithium batteries in Eons cannot handle the heat of being left in an un-cooled windshield. They can expand and even explode if left in the summer heat. They also, of course, wear out.
- The EON needs to know it has a battery to even try to boot.
The internal software of the phone needs to see that a battery exists. In the case of a OnePlus3T, it just needs to see a voltage between 4.35 and 2.9V from the battery wire. - The Eon requires large spikes of power that most USB chargers (including the white/grey panda) can't provide.
Power is made up of Current (Amps) and Voltage. We measure power in watts usually. Watts are calculated by multiplying the current times the voltage.
In the case of USB, the voltage is 5 Volts. The default USB specification sets the default current to only 500ma (500 miliamps, or 1/2 of an amp.)That is not nearly enough to run an Eon. Measurements show that the eon requires a pretty constant power of over 3 Watts, and it occasionally spikes to over 10 watts. So basic usb chargers that only output 2.5W won't be able to power the Eon. Even more advanced chargers that can output more current (amps) require the device to send them a special signal to ensure it's okay to use so much.
On top of that constant 3 Watts, the Eon occasionally requires large spikes of power that can't be provided by most all chargers (including the white/grey Panda.) The lithium batteries in cell phones solve this because they can provide a large amount of current for small periods of time. So any time there is a big spike that USB can't handle, it's easily provided by the battery.
When the Eon doesn't get the amount of current it needs, it simply reboots.
The community has come up with two ways to deal with these issues.
- Use a DC-to-DC converter (a.k.a. a "buck converter") to take the 5V USB provides and convert it to 4.3V at the battery terminal to fool the phone into thinking it has a battery. This solves the booting issue, but can still have problems with the power spikes, since most dc-dc converters can't handle the additional current.
- Supercapacitors. They can store and release huge amounts of current even quicker than a battery, but they have much smaller total storage. So you can connect supercapacitors to the battery leads, and as long as you get enough current from the USB to run the EON, the supercapacitors will have enough extra charge to handle the spikes. Conveniently, the OnePlus3T automatically charges the supercapacitors as if they were just batteries. They also provide a voltage that tells the Eon that it has a battery, so it allows it to boot.
Supercapacitors and DC-to-DC converters can also handle the extreme heat of a car dashboard.
Replace battery with DC-to-DC converter
Make sure to wrap the DC-to-DC converter in electric tape to prevent shorting
- Step one: Carefully remove the battery.
- Step two: Solder connections to the DC-to-DC converter.
- Step three: Solder 5V connection to the USB flex cable by stripping the middle section of the USB flex cable.
- Step four: Solder "battery" connection to battery PCB or logic board.
- Step five: Solder ground connection to the gold connector on USB flex cable or use logic board ground.
Replace battery with Supercapacitors
This method is for the OnePlus 3T EON - not tested on LeEco Note: Supercapacitors require charging. But unlike with batteries, they will try to pull as much current as possible from the charging source. The more charged they are, the less current they will try to draw. This means that completely uncharged supercapacitors will look like a short-circuit to any monitoring electronics. However, once they're partially full, they'll be kinder to the charger. The OnePlus 3T seems to handle this situation well without modification.
- Purchase 2 supercapacitors at least 6 Farad and 2.7V. Here's a link I used.
- Part number: HV0830-2R7605-R
- You want a low ESR Value (Max initial of 0.040ohms in this setup). Thus, the small flat low farad (less than 1F) supercaps will not work!
- Carefully remove the battery (iFixit how-to link)
- Remove the tiny circuit board from the old battery (shown below). Cut the big metal from the batteries so the board comes out like below. Take note of which direction the connector for the battery plugs into the phone's socket, since its possible to insert upside-down. DON'T PUT IT IN UPSIDE DOWN LATER!
- Cut that circuit board at the point shown in the picture.(Can just use wire-cutters)
- Peel the blue stuff off of the [B- SDA SCL B+] section.
- Connect 2 of the supercapacitors in series by twisting one's (+) lead and the other's (-) lead. Solder them together if you want to and be sure to insulate them (wrap electrical tape, captan tape or heat-shrink.)
- Connect the free (+) in your capacitor array to the (+) on your battery board, and the (-) in your capacitor array to the (-) on your battery board. Depending on how you physically mount all of this, you may need to use wires to connect the capacitors to the board.
- INSULATE all bare wires and connections. That includes the leads to the capacitors. They can't touch any other metal.
- Test if it all works.
- Plug your battery board back into it's socket [DON'T PLUG IN UPSIDE-DOWN!]
- Then plug your USB in and see if it boots.
- It may take a few times to boot fully while it tries to charge the capacitors. It may also show the "batteries too low" screen. But it should eventually (and from now on) boot just fine.
- Mount capacitors and alter case as needed to close up the phone
- Somehow arrange inside your case or alter your case so the capacitors fit and are mounted well.
You will need platform-tools
, eon-neos repo
and python3
to unlock your bootloader and flash the OS.
- platform-tools
- Windows: https://dl.google.com/android/repository/platform-tools-latest-windows.zip and extract.
- Linux:
sudo apt-get install android-sdk-tools-platform -y
or your distro equivalent.
- python3
- Older Version of Windows: https://www.python.org/ftp/python/3.8.2/python-3.8.2.exe
- If you're running Windows 10 May 2019 (version 1903) of newer, type
python3
in Command Prompt and it will redirect you to Python installation page within Microsoft Store. - Linux:
sudo apt install python3
or distro equivalent.
- eon-neos: https://github.com/commaai/eon-neos/archive/master.zip and extract it.
openpilot 0.8.3 dropped the support for EON (OnePlus 3T), therefore openpilot 0.8.2 is the last supported version for OnePlus 3T. Installing the latest version of NEOS as-is will result in bootlooping into bootloader. If you're planning to use EON (OnePlus 3T), modifying the update.json
file to fetch the older OTA file is required.
Open eon-neos-master
folder and find update.json
file. Replace the contents with following:
{
"ota_url": "https://commadist.azureedge.net/neosupdate/ota-signed-827a2324b19e5ff45ec3553b8f73afa3ac8b9fafa3415df6e93926733deaa07c.zip",
"ota_hash": "827a2324b19e5ff45ec3553b8f73afa3ac8b9fafa3415df6e93926733deaa07c",
"recovery_url": "https://commadist.azureedge.net/neosupdate/recovery-db31ffe79dfd60be966fba6d1525a5081a920062b883644dc8f5734bcc6806bb.img",
"recovery_len": 15926572,
"recovery_hash": "db31ffe79dfd60be966fba6d1525a5081a920062b883644dc8f5734bcc6806bb"
}
If your Oneplus 3T is running OxygenOS 9.0.x (which at this point it likely is), you will have to rollback to OxygenOS 5.0.8 or earlier to avoid issues. You can do this by:
-
Using MSM Tool on windows
- Turn your device off. If it's unresponsive, hold the power button for 40 seconds.
- Once it's off, hold Volume Up while plugging the phone to computer.
- If Device Manager recognizes the device as
QDLoader
orQualcomm 9008
, It means you're running a recent version of Windows and installed the necessary drivers automatically. - If
Unknown devices
orQHUSB_BULK
, you need to install drivers with this guide. (Step 1-1, 5, 6) - Download OxygenOS 5.0.8 Unbrick Image and extract.
- Launch MSMTool executable in extracted folder and press start.
- Once it finishes (goes green), it should restart. Otherwise, disconnect and boot into system.
-
Flashing package with older firmware via TWRP.
- XDA user hellcat50 has compiled a list of OnePlus 3/3T modem firmware images here.
- Dropbox: https://www.dropbox.com/sh/5hewkxyl1nm767h/AAD5dPL64kPB5jmGp6Id6CHQa?dl=0
- MEGA: https://mega.nz/folder/GvwRRAQb#TI94QsrN6nwDuWH6fKQAAw/folder/LuYDVSKL
- Download OnePlus 3T 5.0.8 image and flash it from the recovery (TWRP or other custom recovery is needed in advance)
Unlocking allows you to flash custom firmware. Necessary for NEOS. You can lock bootloader after installing NEOS to save your precious bootloader warning seconds.
- Enter settings app.
- Press 'About phone'.
- Tap 'Build Number' like a mad lad till you see results.
- Go back, click 'Developer Options'.
- Enable 'OEM unlocking' and 'Advanced Reboots'.
- Hold power button. Press restart then bootloader.
- Plug your phone in and use fastboot.
- On windows, go to folder you extracted and open CMD. use 'fastboot.exe' - On linux, fastboot is avaliable in terminal.
- Check if phone is properly connected by typing 'fastboot devices'. It should appear and show connection as 'fastboot'.
- (Warning: will clear data.) Type 'fastboot oem unlock' and say yes to prompts. Your phone will clear data and reboot.
- Fill me in.
Windows:
- Open powershell in the
eon-neos-master
directory. - Run
python download.py
. - Put your Eon into fastboot mode by turning off your Eon, then holding volume down + power (comma two, EON Gold, LePro 3), or volume up + power (EON, OnePlus 3T).
- Run
flash.ps1
(right click, run with powershell).
Linux/OS X:
- Open a terminal.
- Run
./download.py
- Put your Eon into fastboot mode by turning off your Eon, then holding volume down + power (comma two, eon gold), or volume up + power (eon).
- Run
./flash.sh
- Alternatively, if you
Success! With NEOS OS installed, you are ready to install OpenPilot.
- Image Flashing
Flashing Steps and Troubleshooting
Flashing Notes from @Erich
Images that'll work with 0.6... system.simg https://drive.google.com/file/d/1ySz1zLiy9bP6c8lDRgCo7k2kcCReGF__/view?usp=drivesdk boot.img https://drive.google.com/file/d/1c1ovbvBP8TqOEiNbh-KAPyI5hxlW1_a1/view?usp=drivesdk recovery.img https://drive.google.com/open?id=1mbXjhU2qlfz0jCNdDxHFnFj1YM5CeAQn logo.bin https://drive.google.com/file/d/1UEFVnuMp3wlfN9P9pdys33-sNlVfDkLj/view?usp=sharing
Flashing Notes from @Ari
Just for everyone stuck, I took my working eon and flashed the latest Android 9 then flashed neos and got mac 02:00:00 Then I flashed this unbrick image https://androidfilehost.com/?fid=11410963190603910547 Booted into android 8, enabled oem unlock and unlocked the bootloader again. After it finished booting into android, > I went back to the bootloader and flashed the system and boot images extracted from this OTA zip https://commadist.azureedge.net/neosupdate/ota-signed-c992abb59cbaf6588f51055db52db619061107851773fc8480acb8bb5d77a28f.zip Then I ran fastboot format userdata (because neos doesn't support encrypted data partition from Oxygen OS) and then I rebooted into neos and wifi was working again