[KERNEL][3.0.21+][HD video working now on 16Gb NT] Nook Tablet ICS kernel development

Search This thread

nook_lover

Senior Member
Dec 7, 2011
171
140
Last edited:

nook_lover

Senior Member
Dec 7, 2011
171
140
...The platforms we should be targeting are:
Archos 80 Gen9...

I've extracted "ducati-m3.bin" from the latest ICS firmware for Archos 80 Gen9 from this thread. Would any of the Ducati binaries be useful for the following devices mentioned by Adam Outler?

Pandaboard with OMAP4430
Panasonic Lumix
Fujitsu Arrows
Samsung GS2 (i9100G)
Sharp Aquos
Archos 80 Gen9
and of course...
Motorola Droid Razr
Motorola Atrix II
Motorola Xyboard
Motorola Droid Bionic

EDIT: Archos is 512 MB RAM based, so maybe it's more useful for Kindle Fire than ours.
 

Attachments

  • ducati-m3.zip
    2.4 MB · Views: 73
Last edited:

Danrarbc

Senior Member
Oct 19, 2010
169
155
I've extracted "ducati-m3.bin" from the latest ICS firmware for Archos 80 Gen9 from this thread. Would any of the Ducati binaries be useful for the following devices mentioned by Adam Outler?

Pandaboard with OMAP4430
Panasonic Lumix
Fujitsu Arrows
Samsung GS2 (i9100G)
Sharp Aquos
Archos 80 Gen9
and of course...
Motorola Droid Razr
Motorola Atrix II
Motorola Xyboard
Motorola Droid Bionic

EDIT: Archos is 512 MB RAM based, so maybe it's more useful for Kindle Fire than ours.
The 8GB Nook has 512MB of RAM.
 
Last edited:

Kuzma30

Retired Recognized Developer
Nov 20, 2011
300
1,330
Vinnitsa
kuzma30.wordpress.com
And GPtimer 11 as LED PWM. :(

Now sound card (new drivers) is listed in ALSA list. Device recognize headphone insert.
Go to the nex step - enable support for it in ICS.

Code:
##Came to Codec DRiver Init routine...
Came to tlv320aic31xx_codec_probe...
Set codec interrupt
POWER ON codec
Release RESET codec pin
snd_soc_register_codec returned 0
tlv320aic31xx_init success !!!
OMAP4 EVT SoC init
Use ABE support
##aic31xx_probe: AIC31xx Audio Codec 0.1
##i2c_get_adapter success. Creating a new i2c client device..
##i2c_device Pntr ec7b4800
##Codec CntrlData ec7b4800
aic31xx_probe: Codec Private allocation fine...
##Writing default values to Codec Regs..
mmc0: new high speed DDR MMC card at address 0001
mmcblk0: mmc0:0001 SEM16G 14.8 GiB 
mmcblk0boot0: mmc0:0001 SEM16G partition 1 1.00 MiB
mmcblk0boot1: mmc0:0001 SEM16G partition 2 1.00 MiB
Alternate GPT is invalid, using primary GPT.
 mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11
 mmcblk0boot1: unknown partition table
 mmcblk0boot0: unknown partition table
### Page 0 Regs from 0 to 95
reg = 0 val = 0
reg = 1 val = 0
reg = 2 val = 1
reg = 3 val = 66
reg = 4 val = 3
reg = 5 val = 11
reg = 6 val = 4
reg = 7 val = 0
reg = 8 val = 0
reg = 9 val = 0
reg = 10 val = 0
reg = 11 val = 1
reg = 12 val = 1
reg = 13 val = 0
reg = 14 val = 80
reg = 15 val = 80
reg = 16 val = 8
reg = 17 val = 0
reg = 18 val = 1
reg = 19 val = 1
reg = 20 val = 80
reg = 21 val = 80
reg = 22 val = 4
reg = 23 val = 0
reg = 24 val = 0
reg = 25 val = 0
reg = 26 val = 1
reg = 27 val = c
reg = 28 val = 0
reg = 29 val = 1
reg = 30 val = 1
reg = 31 val = 0
reg = 32 val = 0
reg = 33 val = 0
reg = 34 val = 0
reg = 35 val = 0
reg = 36 val = 80
reg = 37 val = 22
reg = 38 val = 0
reg = 39 val = 0
reg = 40 val = 0
reg = 41 val = 0
reg = 42 val = 0
reg = 43 val = 0
reg = 44 val = 0
reg = 45 val = 0
reg = 46 val = 0
reg = 47 val = 0
reg = 48 val = c0
reg = 49 val = 0
reg = 50 val = 0
reg = 51 val = 2
reg = 52 val = 32
reg = 53 val = 12
reg = 54 val = 3
mmc1: host does not support reading read-only switch. assuming write-enable.
reg = 55 val = 2
reg = 56 val = 2
reg = 57 val = 11
reg = 58 val = 10
reg = 59 val = 0
reg = 60 val = 1
reg = 61 val = 4
reg = 62 val = 0
reg = 63 val = 14
reg = 64 val = c
reg = 65 val = 0
reg = 66 val = 0
reg = 67 val = 87
reg = 68 val = 6f
reg = 69 val = 38
reg = 70 val = 0
reg = 71 val = 0
reg = 72 val = 0
reg = 73 val = 0
reg = 74 val = 0
reg = 75 val = ee
reg = 76 val = 10
reg = 77 val = d8
reg = 78 val = 7e
reg = 79 val = e3
reg = 80 val = 0
reg = 81 val = 0
reg = 82 val = 80
reg = 83 val = 0
reg = 84 val = 0
reg = 85 val = 0
reg = 86 val = 0
reg = 87 val = 0
reg = 88 val = 7f
reg = 89 val = 0
reg = 90 val = 0
reg = 91 val = 0
reg = 92 val = 0
reg = 93 val = 0
reg = 94 val = 0
### Page 1 Regs from 30 to 52
reg = 30 val = 3
reg = 31 val = cc
reg = 32 val = 6
reg = 33 val = af
reg = 34 val = 70
reg = 35 val = 0
reg = 36 val = 7f
reg = 37 val = 7f
reg = 38 val = 7f
reg = 39 val = 7f
reg = 40 val = 0
reg = 41 val = 0
reg = 42 val = 0
reg = 43 val = 0
reg = 44 val = 6
reg = 45 val = 86
reg = 46 val = 0
reg = 47 val = 80
reg = 48 val = 0
reg = 49 val = 0
reg = 50 val = 20
reg = 51 val = 0
####SPL_DRIVER_GAIN 0 SPR_DRIVER_GAIN 0

##### L_ANALOG_VOL_2_SPL 127 R_ANLOG_VOL_2_SPR 127

#### LDAC_VOL 0 RDAC_VOL 0

###OVER Temperature STATUS (Page 0 Reg 3) 66

###SHORT CIRCUIT STATUS (Page 0 Reg 44) 0

###INTR_FLAG: SHORT_CKT(Page 0 Reg 46) 0

###Speaker_Driver_Short_Circuit (Page 1 Reg 32)6

@@@  MIC_PGA (P1 R47) = 0x80

@@@  ADC_FGA (P0 R82) = 0x80

@@@  ADC_CGA (P0 R83) = 0x0

##Switching the Codec to STANDBY State...
Control name 'Class - D driver Volume(0 = 6 dB, 4 = 24 dB)' truncated to 'Class - D driver Volume(0 = 6 dB, 4 = 24 dB'
##snd_soc_add_controls: ARRAY SIZE : 68
###aic31xx_add_widgets
#Completed adding dapm widgets size = 25
#Completed adding DAPM routes = 33
pre_pmd: switching to LO
pre_pmd: switching to LO
##HPL Power down Iterations 1
mmc1: new high speed SDHC card at address b368
mmcblk1: mmc1:b368 USD   7.46 GiB 
##HPR Power down Iterations 1
widgets updated
aic31xx_probe: Exiting : 0
Check client and interface hw capabilities start
Check client and interface hw capabilities if branch
Check client and interface hw capabilities end
setup any hostless PCMs - i.e. no host IO is performed start 
setup any hostless PCMs - i.e. no host IO is performed end
ASoC PCM operations start
ASoC PCM operations end
asoc: null-codec-dai <-> MultiMedia1 LP mapping ok
Check client and interface hw capabilities start
Check client and interface hw capabilities if branch
Check client and interface hw capabilities end
setup any hostless PCMs - i.e. no host IO is performed start 
setup any hostless PCMs - i.e. no host IO is performed end
ASoC PCM operations start
ASoC PCM operations end
asoc: null-codec-dai <-> MultiMedia1 mapping ok
Check client and interface hw capabilities start
Check client and interface hw capabilities if branch
Check client and interface hw capabilities end
setup any hostless PCMs - i.e. no host IO is performed start 
setup any hostless PCMs - i.e. no host IO is performed end
ASoC PCM operations start
ASoC PCM operations end
asoc: null-codec-dai <-> MultiMedia2 mapping ok
Check client and interface hw capabilities start
Check client and interface hw capabilities else branch
Check client and interface hw capabilities end
setup any hostless PCMs - i.e. no host IO is performed start 
setup any hostless PCMs - i.e. no host IO is performed end
ASoC PCM operations start
ASoC PCM operations end
asoc: tlv320aic3100-MM_EXT <-> omap-mcbsp-dai.2 mapping ok
entered the omap4_aic31xx_init function....
snd_soc_dapm_new_controls passed..
tlv320aic3100-codec tlv320aic3100-codec: dapm: unknown pin Headset Stereophone
tlv320aic3100-codec tlv320aic3100-codec: dapm: unknown pin Headset Mic
 codec is  not null
headset not connected
Qoo_headset_jack_status_check: Exiting
omap4_aic31xx_init: Exiting
Check client and interface hw capabilities start
Check client and interface hw capabilities else branch
asoc: tlv320aic3100-MM_EXT <-> omap-mcbsp-dai.2 mapping ok
Check client and interface hw capabilities start
Check client and interface hw capabilities else branch
asoc: tlv320aic3100-MM_EXT <-> omap-mcbsp-dai.2 mapping ok
input: OMAP4_ACCLAIM-ABE Headset Jack as /devices/platform/soc-audio/sound/card0/input5
OMAP4 EVT Soc Init success..
ALSA device list:
  #0: OMAP4_NOOKTABLET_AIC3110-ABE
....
[COLOR="DarkGreen"]insert headphone[/COLOR]
....
 codec is  not null
headset connected

Headset without MIC Inserted                         Recording not possible...
Qoo_headset_jack_status_check: Exiting
 codec is  not null
headset not connected
Qoo_headset_jack_status_check: Exiting
 

rjmohit

Senior Member
Sep 20, 2010
328
63
Google Pixel 3 XL
The Samsung Galaxy Tab 2 range has almost the same specifications as our NT, they'll be launched soon with ICS on board. We might get some help from their sources when samsung releases them.
Check out the specs here and here.
 
  • Like
Reactions: chrmhoffmann

Kuzma30

Retired Recognized Developer
Nov 20, 2011
300
1,330
Vinnitsa
kuzma30.wordpress.com
Problem with sleep resolved
Code:
request_suspend_state: sleep (0->3) at 144656982425 (2012-04-05 05:04:30.825531007 UTC)
ft5x06_suspend() - Driver is suspending: start.
kxtf9: kxtf9_disable ...
kxtf9: kxtf9_device_power_off ...
ft5x06_suspend() - Driver is suspending: disable IRQ.
kxtf9: kxtf9_enable_store > kxtf9 disabled
ft5x06_suspend() - Driver is suspending: flash workqueue.
ft5x06_suspend() - Driver is suspending: platform suspend start.
ft5x06_suspend() - Driver is suspending: platform suspend end.
ft5x06_suspend() - Driver is suspending: keep focaltech controller in reset after this point.
ft5x06_suspend() - Driver is suspending: regulator disable.
ft5x06_suspend() - Driver is suspending end.
kxtf9: kxtf9_disable ...
DSSCOMP: dsscomp_early_suspend
DSSCOMP: blanked screen
Boxer panel SUSPEND!
Boxer panel DISABLE!
[BL set power] 0
NookTablet LCD disable!
request_suspend_state: wakeup (3->0) at 237685003322 (2012-04-05 05:06:03.853551904 UTC)
Boxer panel RESUME!
Boser panel ENABLE!
DSSCOMP: dsscomp_late_resume
kxtf9: kxtf9_enable ...
kxtf9: kxtf9_enable ...
kxtf9: kxtf9_device_power_on ...
ft5x06_resume() - Driver is resuming start function.
ft5x06_reset_panel_via_gpio() - Toggling GPIO 39 to reset the Touch Panel...
boxer_disp_spi spi4.0: setup: speed 375000, sample leading edge, clk normal
boxer_disp_spi spi4.0: setup mode 0, 16 bits/w, 375000 Hz max --> 0
kxtf9: kxtf9_hw_init ...
kxtf9: kxtf9_hw_init > kxtf9 in operating mode!
kxtf9: kxtf9_hw_init > kxtf9 resume DATA_CTRL_REG!
kxtf9: kxtf9_hw_init > kxtf9 resume CTRL_REG3!
kxtf9: kxtf9_hw_init > kxtf9 resume TILT_TIMER!
kxtf9: kxtf9_hw_init > kxtf9 resume WUF_TIMER!
kxtf9: kxtf9_hw_init > kxtf9 resume WUF_THERSH!
kxtf9: kxtf9_enable_store > kxtf9 enabled
kxtf9: kxtf9_update_odr ...
kxtf9: kxtf9_delay_store ...
kxtf9: kxtf9_update_odr ...
kxtf9: kxtf9_delay_store ...
kxtf9: kxtf9_update_odr ...
kxtf9: kxtf9_delay_store ...
NookTablet LCD enable!

But I have a problem with power off in ICS
Code:
aic31xx_set_bias_level: Entered: level 0
##aic31xx_set_bias_level :Current & previous levels same
max17042: max17042_disable ...
PVR: PVRSRVDriverShutdown(pDevice=eccaba00)
PVR: SysSystemPrePowerState: Entering state D3
PVR: Uninstalling device LISR on IRQ 53 with cookie ecdffa00
PVR: DisableSystemClocks: Disabling System Clocks
Boxer panel DISABLE!
[BL set power] 0
NookTablet LCD disable!
omap_hsmmc omap_hsmmc.2: shutting down mmc
omap_hsmmc omap_hsmmc.0: shutting down mmc
omap_hsmmc omap_hsmmc.1: shutting down mmc
Disabling non-boot CPUs ...
CPU1: shutdown
Power down.
Looks good? But when I press "n" button I receive such log
Code:
request_suspend_state: sleep (0->3) at 359301635742 (2012-04-05 04:49:54.801086424 UTC)
ft5x06_suspend() - Driver is suspending: start.
ft5x06_suspend() - Driver is suspending: disable IRQ.
ft5x06_suspend() - Driver is suspending: flash workqueue.
ft5x06_suspend() - Driver is suspending: platform suspend start.
ft5x06_suspend() - Driver is suspending: platform suspend end.
ft5x06_suspend() - Driver is suspending: keep focaltech controller in reset after this point.
ft5x06_suspend() - Driver is suspending: regulator disable.
ft5x06_suspend() - Driver is suspending end.
DSSCOMP: dsscomp_early_suspend
ignoring apply mgr(lcd2) while blanking
DSSCOMP: blanked screen
request_suspend_state: wakeup (3->0) at 385582357327 (2012-04-05 04:50:21.081808009 UTC)
Boser panel ENABLE!

Need work to correct power off cycle.
 

nook_lover

Senior Member
Dec 7, 2011
171
140
Is maguro's ducati-m3.bin the same?
Do you had a look at it?

"Maguro" is Galaxy Nexus and it's OMAP 4460 and Adam Outler stated it's different.

EDIT: I found a couple of ICS leak Ducati binaries, this time they are for Droid RAZR from this and this threads. Nobody answered if any of the OMAP4430/SGX540 Ducati ICS binaries can be useful, so I keep posting them.

Do they all have GPTimer 9 and 11 as WDT? And we need them 9 and 10 and no other device uses this configuration?

What about the version dependencies of the tools (xdctools etc) used for Ducati binaries?

Feel free to delete my posts if they are useless :)
 

Attachments

  • fastboot-p2b_spyder-umts_spyder-userdebug-4.0.3-6.7.1_GC-61-19-test-keys-ChinaRetail-CN.zip
    2.4 MB · Views: 14
  • OTA.ICS.Build.6.14.75.XT912.zip
    2.4 MB · Views: 23
Last edited:

joecareytm

Member
Jan 7, 2012
17
2
Lakeland, FL
Have you guys checked out the Samsung Epic 4g Touch? They just released ICS for it and also CM9 Alpha 2. Not sure if this is relevant just trying to help. If I knew how to open it up and look at it I'd look more into myself.
 

Aleq

Senior Member
Apr 6, 2008
264
101
Unfortunately just like Tab, Samsung Epic 4G Touch contains Samsung Exynos CPU, not TI OMAP as GSM Arena incorrectly states.

Correct me if I'm wrong.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 103
    THIS IS FOR DEVELOPMENT COMMUNICATION ONLY -- THERE IS A USER-BASED THREAD IN GENERAL SECTION HERE:
    http://xdaforums.com/showthread.php?p=26931097

    I've started porting 3.0.x Android kernel to NookTablet.
    CURRENT LOG:
    http://pastebin.com/qWXL5LuG

    Working /Not working features:
    1. external SD card (thanks fattire), internal emmc works!
    2. LCD screen (working), back-light(always on as temporary hack). Tested backlight without loading ducati-m3.bin - it works. Thanks to icemank121 in IRC for recommending Hashcode to check the Archos Gen 9 tablet's backlight driver and mik_os for adaptation for NT.
    3. Touchscreen (enabled)
    4. G-sensor (enabled)
    5. Battery driver (enabled)

    6. Audio driver (enabled, working). Thanks to chrmhoffmann.
    7. WIFI (working).
    8. ADB works (test with CWM)
    9. Booting without rootfs in RAM. Ready for beta testing Ubuntu/Linux boot. http://xdaforums.com/showpost.php?p=23072540&postcount=119
    10. power button works in ICS. Poweroff working now. Thanks to Hashcode.
    11. Ducati don't work if backlight is working. (Timer 11 conflict)
    12. Add USB OTG driver to the kernel / don't have USB OTG cable to test :(
    13. Charger working with USB/wall charger.
    14. After software reset SD card don't recognized before shutdown. Fixed by mik_os.
    15. NT reboot only when USB cable is connected http://xdaforums.com/showpost.php?p=25749805&postcount=419
    Fixed. Tnahks to Rebellos and mik_os (http://xdaforums.com/showpost.php?p=25791963&postcount=426)
    16. Deep sleep working, but drain 2-3%/h
    17. Skype working for me now! Testing with 2 my skype account.[/COLOR] It working on buildin mic and headset mic too. Headset tested by joelee100. On test branch using of mic cause device reboot.
    18. Test HD video on YouTube on 16gb device. It working now. Thanks to HashCode to consulting
    Test release CM9 is here http://xdaforums.com/showpost.php?p=26762846&postcount=503


    The repositorie is here https://github.com/Kuzma30/kernel3NookTablet
    Some features are disabled. I will enable them, one by one.
    Help is greatly appreciated!

    This is beta version of 3.x kernel. Only for development use (yet)!

    Kernel development team: chrmhoffmann, fattire, mik_os, Rebell and hashcode (from KF)

    THANKS FOR DONATION TO : lost101 (10$), Aleq (10$), sangahm(15$), old_fart (10$), plantucha (5$), scuffell (10$), angusj (10$)

    Special thanks to aludal for his help at the initial stages of this development. Short descriptions of many stages for this project are being published at aludal's blog fineoils.blogspot.com

    Special thanks to demetris_I for his help in searching, communicating. He work like a BIG "SEARCH" MACHINE.
    37
    What's going on here!

    I guess he's doing good? I have no idea how you guys make heads or tails out of that stuff. Amazing!

    Iv'e tried reading up on compiling and such and honestly I'm lost. I consider myself to be above average in the computer world and it's all greek to me.

    Any suggestions as to a book or books for NooB's? Can compiling be accomplished without any experience with C++ ?? Does what I'm talking about even apply to the Kernel? In other words is what's going on here considered being "compiled"

    TIA

    So "compiling" as you may know is the process of taking human-readable code (or at least computer-programmer-human readable, it's not like a Steven King story) and converting it into a binary blob of code that can be processed and interpreted by the silicon chips in the computer. That translation is compiling, and there are several steps to it...

    What you're looking at in Kuzma's post isn't actual code, but a log of output showing the process of booting the kernel-- the kernel being the most "low-level" program that runs on the nook tablet. The Android kernel, based on the Linux kernel, is in charge of ensuring all the other programs get CPU time to run, and it oversees all the basic systems and all the hardware and everything at the most fundamental level. It's super complex. To use a bizarre analogy-- if a regular app you'd use in Android is as intricate as a shopping mall, I'd say the kernel's inner workings are about as complex as the city of Manhattan. :)

    The Nook Tablet's stock system comes with the 2.6.35 version kernel. However, that kernel is fairly old as kernels go. The newer 3.2.x kernels have been souped up by Texas Instruments (who make the OMAP4 platform upon which the Nook Tablet is based). These OMAP-specific enhancements add things to make the Nook Tablet be able to do super-fast graphic effects, play hardware-accelerated video, and offload processing from the CPU to other chips and save power in other ways. The 3.x kernels also have other improvements that Ice Cream Sandwich depends on for stuff like the network auditing (where you can see how many MB you download in a nice graph and automatically stop it from exceeding a limit).

    So for the past few weeks, hashcode, chrmhoffman, nemith, myself, and others have been moving features back from the 3.x kernel to the NT's 2.6.35 kernel because it's generally easier to grab a feature at a time and integrate it back. But going the other way is a much better if not harder way of doing it-- Kuzma's jumping to to the latest version from TI, then then grab all the 2.6.35 NT-specific code (such as touchscreen drivers, and SD cards and other peripherals and settings) and moving them forward into the newest kernel so it's "caught up".

    But to do this, you have to more or less work "blind" because you don't have a working screen to even see errors or to know if things are working or not. You just pop in the new kernel file, turn it on, and cross your fingers that everything will work out perfectly.

    No not really. That would never work. Instead, you need a way to see what's going on. And so you need to "tap" the physical hardware by connecting up some wires to the NT so it'll send a signal to your computer showing you what's happening with the kernel as you boot it on the NT-- whether the code you've changed is working or not.

    That's what the log above represents-- it's the output of the boot process, which shows various parts of the Nook Tablet starting up in the 3.x kernel-- this is the actual output of the kernel when it runs. Normally this output is "hidden" from view-- it's only viewable when you type the "dmesg" command in the shell. But he's tapped the internals of the Nook Tablet and is able to view it and log it and show it to us.

    And he's saying that he's having problems with registering the external MMC, also known as the "SD card". And so then he shows the part of the code in the kernel that is producing the error.

    The kernel is written in the C language, which is perhaps not the first one I'd recommend if you want to get your feet wet with this stuff. Instead, I'd take a look at python as a language. It's meant to be an easy language to learn, it's available free, it runs on everything from Macs to Linux to Windows to Android. It also happens to be very very very powerful and is used everywhere from NASA to the stock market to writing games. It's not a toy, even though children can learn it quickly.

    Which is why I'm going to recommend the book "Hello World" for you to check out. It's a great book written for kids, but I think it's a good place for you to start. I have nothing to do with it, just a fan and I've recommended it to others with good results.

    Hope this gives the discussion some context.
    33
    I have some very good news.
    We may finally have the opportunity to have ducati-m3.bin with GPTimer 9, 10 as WDT.
    It will take some days or weeks from now, so be patient.
    As i have some more news will post back.
    Thats all am allowed to say in time being.
    Keep your hope up guys we may finally have video acceleration on ICS!
    32
    I am continue working on kernel. If I have a news I'll report.
    24
    hey fattire,
    I don't wanna mess up your thread with noob questions, but why don't you release CM9 with the 2.6.35 kernel until the 3.x kernel is finished ? (feel free to delete the post after you answered it).

    Would you ask a writer why they dont just release part of their next book? Would you ask a painter to display a 1/2 finished work of art?

    This is the right way to do it. Anything else would be a hack. Porting the kernel over gives us a reference point to start with. You can pretty much assume that any custom kernel to come in the future will be based on work that is going on right here, right now.

    Please be considerate and do not clutter this thread with "Im impatient and i want somethimg now". Ive got work to do on Ubuntu as soon as this kernel is finished. CM9 will use this kernel when it is finished. Its likely that Barnes & Noble will use this kernel when its finished and will be asking for help and/or hiring those who did most of the work.

    Just hold your horses guy. We all want something new. You can build and test... You can research... You can try to understand... But please, dont rush perfection. Have respect for the work being done here and if you must, send a pm with a request. This is true development.