Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - tangrs

Pages: [1]
TI-Nspire / TI Nspire serial adapter design files
« on: March 19, 2022, 09:34:29 am »
Hello all,

I've received numerous emails asking for the design files for my TI Nspire serial adapter design from 2014, ever since I stopped selling them.

Recently, I recovered the long-lost design files. The design is, uh, not my finest piece of work, but I've attached the files anyway :)

They're all creative commons licensed, so feel free to distribute, or build on top of it.


TI-Nspire / [Help needed!] Looking for some hardware
« on: December 18, 2014, 03:01:04 am »
Hi everyone!

I am looking for some hardware so I can do some reverse engineering. I am wondering if the members of Omnimaga could help me out.

As you know, I am developing serial breakout boards and one of the requests I got was to add a USB host plug header. Unfortunately, it doesn't seem like it's straightforward to implement and I'll need to do a little hardware reverse engineering to ascertain some component values.

In other words, I'm looking to borrow a lab cradle if anyone has one that they can lend me for a bit so I can figure all this stuff out.

The second piece of hardware I'm looking for is a broken TI-Nspire classic calculator/motherboard.

I am looking to finally work out the mystery of the NAND controller on classic TI-Nspire (i.e. clickpad and touchpads/non-cx) motherboards. I was hoping to find some test points where I can attach a logic analyser and compare the output with the commands I am sending to the controller. Unfortunately the NAND chip is BGA package which means I can't get under the chip to see where the traces lead to. I'll need a sacrificial motherboard where I can desolder and potentially rip the chip off the motherboard to see where the traces run to.

It does seem like a shame to ruin a perfectly good calculator for this purpose. If anyone has a broken classic TI-Nspire or the half of the motherboard with the NAND chip on it (marked with NAND256), I'd really love it if you could send it over for me.

In both cases, I'd be happy to pay for postage if you would be kind enough to send it to me.

Thanks in advance guys!

TI-Nspire / TI-Nspire USB serial breakout boards
« on: November 22, 2014, 06:35:06 am »
Hey guys, it's tangrs.

Just want to announce something I've been working on over the past few weeks. It's a USB serial adapter that plugs right into the TI-Nspire dock connector.

The one shown in the pictures above is a very early prototype. The PCB is a hacked up home-made one (holy crap, DIY reflow soldering is a pain in the ass without solder mask) and the 3D printed bracket that goes with it is still in its early designs. The prototype works though :) I've already ordered some professionally made PCBs for the connector part.

So, my question to all of you guys, how many would be interested in buying one of these once I've got a decent design up and running? I'm deciding whether to mass produce a small batch of these once I'm finished with the design :)

TI-Nspire / TI-Nspire CX dock connector breakout boards
« on: May 28, 2014, 05:22:36 am »

I apologize in advance if selling stuff is against the rules of the forum.

I made a very, very basic design for a breakout board that's soldered to the CX model (old versions not supported, sorry!). Think modchip but for breaking out the dock connector.

I originally designed this just for myself but the PCB manufacturers sent me 6 extra boards. Unfortunately, they sent me boards thicker than I expected and mirrored my design :( Also, unless you solder some right angle pin headers, you won't be able to close the lid on the back of the calculator.

They're still usable if you do a bit of manual drilling work and a bit of extra patience when soldering. I'd rather see these boards be put to use than thrown away or chucked in the corner.

If anyone's interested, I'm willing to send the extra PCBs for AUD$5 postage (that's about EUR$3.40 or USD$4.60) to anywhere in the world. Add AUD$2 for the matching surface mount pin header but I only have 4 of these left. Please note that is is for advanced users who have de/soldering skills and is okay with opening up their TI-Nspire CX's.

I'll post some soldering/installation instructions if there are people interested.

TI-Nspire / LED protection in TI-Nspires partially cracked
« on: March 17, 2013, 06:54:46 am »
Quote from: somewhere in TI's PTT documentation
The flashing LED is hardware-secure and cannot be impacted by coded software.

Lies! :P

At the moment, it only responds to writes to 90110b00 though - flashing still doesn't work. It probably needs more researching.

This one really had me stumped for a while. TI hid this one well. I've spent almost a year behind the scenes, on and off with this one.

A bit too long considering the final answer to the puzzle was actually pretty short :)

As to releases, I don't think I will until I'm convinced that this won't piss off TI. My interests in this was as a puzzle and its potential uses in the Linux kernel (as an indicator of hard drive activity for example) but somehow, I don't think TI thinks the same way.

TI-Nspire / Calling all Linux Kernel developers!
« on: October 02, 2012, 06:10:36 am »
Quick links

Most up to date information: About 95% of the things you need to know about Nspire Linux are available on the Linux page on Hackspire.
Downloads: Nightly builds of just about everything you need can be found on TI-Planet, courtesy of Lionel and Fabian (Vogtinator).
Bug reports: They are very welcome! Don't hesitate to contact myself, Lionel or Fabian or simply post in this thread if you're experiencing kernel panics or just general weirdness and it isn't already documented on Hackspire. We're relying on users to report bugs and strange behavior. However, if you just need general help on how to get things running, you're better off getting help at...
Getting help: If you need any help booting, getting a working rootfs, etc... there is a thread dedicated to this that you can post in. The kind members of the community can help you quickly and efficiently and leave the rest of us time for developing!
Feature requests: We're working as hard as we can making all the hardware available in Linux but if there's a feature or certain behavior that you think could improve Linux (e.g. a better function for an unused key), feel free to post in this thread for discussion.

Original post below:


After finally getting my head around the basics of Linux kernel developing, I've completed a basic, shaky port of Linux to the TI-Nspire CAS CX.

It boots to userland with minimal hardware support (just an interrupt controller, timer and an early boot console on the UART).

(The kernel panic is just Linux complaining about the lack of a root fs but it otherwise boots fine)

Unfortunately, as much as I'd like to work on this alone, I have exams soon so I'll need some helpers.

If anyone wants to help, give me a yell and I'll clean up the code a litte and upload it somewhere.

Blog post

Edit: Kernel and bootloader sources are up!

New bootloader source code (use this)
Old bootloader source code
Linux source code

TI-Nspire / Early beta of nspire version string patcher
« on: August 07, 2012, 08:14:31 am »
For a bit of fun, I made a version string patcher for the Nspire.

It's still a WIP requiring polish but it works for now :)

I'll publish binaries soon but the impatient can see how it works by visiting the github repo

Ndless / Ndless bFLT loader
« on: April 02, 2012, 01:33:00 am »
This topic will be for technical discussion for the bFLT loader.

Source code and API documentation

Let me start off this discussion.

I propose that, once bFLT becomes stable enough, it be integrated into the core Ndless code and have the SDK updated to only produce bFLT executables. However it seems that if bFLT were to be integrated into Ndless, we'll need to change some parts of the Ndless SDK itself to work in it's favor. I hope we can quickly deprecate the current way of loading binaries.

First, because bFLT stores sections in the order of .text, .data, .bss, we need to update the Ndless ldscript to reflect that. Otherwise, we run into overlapping problems. More information can be found at the bottom of the README. This is the first and easiest step.

Next: Because we do all the relocating, the startup files become redundant - even a hindrance when we deal with shared libraries. The only thing the startup files should do is branch to main since the bFLT loader will handle everything else.

Also, we need some sort of way to work out the assignment of library IDs. bFLT shared libraries work by IDs. Each library is given a unique ID and it is up to the user to ensure it is unique. Unfortunately, the number of IDs are limited and only 254 are actually available for use (255 and 0 are reserved).

I'll leave it at that for now.

@edit: is there a way of implementing _syscallvar_savedlr without relying on a linker script?
@edit2: I'm also having trouble producing a bFLT executable that doesn't rely on nspire-gcc or nspire-ld. Anyone have luck with this?
I'm having trouble writing a ldscript that will force the GOT to be at the beginning of the data section.
Got it.


The bFLT loader has a working SDK ready for developing and testing! You can now produce bFLT binaries without affecting your normal Ndless SDK!

Ndless / Standalone relocator - Ndless-Elfloader alternative
« on: March 31, 2012, 12:16:28 am »
As I was using Ndless-Elfloader for one of my projects, I realized a problem.

I spent more time working out problems in the ELF loader than actually working on my problem. The ELF loader was clunky and wouldn't work on the newer OS's and it was a huge problem to maintain. That aside, prototyping a program to work using it just took way too long.

I started developing a new, lighter loader similar to Ndless's binary loader to use in my projects. It's in it's early stages right now and probably useless to most people but I have included the source in case any developers are interested in using it.

Read up the README for more information, advantages and disadvantages.

Source code

TI-Nspire / Nspire Clock
« on: March 30, 2012, 07:06:13 am »
I don't think a clock program had ever been made for the nspire. Had 3hrs of spare time today and made a simple one.

Source code and Readme

Binary is attached

TI-Nspire / NSpire multithreading proof-of-concept
« on: March 25, 2012, 04:12:39 am »
While making the movie player, I had realised one problem and that was that the frames could not decode fast enough. So I decided that multithreading was needed so it could continue to decode frames in the background while occasionally waking up to update the screen.

Of course, Ndless provides no such features. You have to write it yourself! So, without further ado, I present to you a proof-of-concept of multithreading on the Nspire calculator. After I refine it a bit, I'll integrate it into the movie player.

It's BSD licenced so feel free to take it, hack it, modify it, improve it, use it in your own projects or rip it to shreds.

Source code

TI-Nspire / Nspire Movie Player - alternative to nPlayer
« on: March 07, 2012, 05:30:11 am »
Inspired by nPlayer, I spent a long time trying to write an improved video player and looking for a easy way to get compression on the video files.

Today, I managed to incorporate JPEG compression into my program and I'm happy to say, I have managed to bring the file size of a movie file from ~131.84MB per minute (sequential raw bitmaps at 15fps) to a measly ~2.86MB per minute (sequential JPEGs at 15fps).

I can play the whole Rickroll song while only using about 10.5MB for the movie file. Combine that with the ~90MB free space you get on a CX, you could probably fit about a half an hour movie or anime on it.

Although it's a WIP, I probably won't have any time to further improve it (school yah see). The nPlayer developer(s) are welcome to use my ideas and code (code is GPL'd though) to improve nPlayer.

Anyway, here's the video and link to the source code.

Source code

Ndless / Retro TV effect for Nspire
« on: February 21, 2012, 04:57:52 am »
Here is a small novelty I made over the past few days. It's a retro TV effect that works when you switch off your calculator.

Here's a Youtube video of it in action:

Unfortunately, at the moment it only works on the CX model running OS 3.1.

I'm still looking around for a better hooking address but apart from that it works okay-ish. More details in the README if anyone is interested in improving it.

Source and downloads

Ndless / ELF Loader for Ndless - (now ready for non-dev use)
« on: December 15, 2011, 04:41:52 am »
The ELF loader has reached a stage where most people can use it to load basic stuff.

When you run the program, it installs a hook. After that, you can load ELF files as if you'd load a normal Ndless binary.

More instructions on how to compile the loader and how to develop applications that take advantage of it are described in the README.

You can get the source code on Github.

Happy deving!

I'd also like to thank everyone who contributed to Ndless. I did borrow some of Ndless's code for use in this loader.

Original post:

I'm not sure if it's relevant here, but I'm developing an opensource ELF loader for Ndless.

I'm writing this because the current Ndless way of loading binaries doesn't work for code that relies on static initialization of pointers.

I.e. code like this doesn't work:

Code: [Select]
void foo() {

int main() {
  static void (*var)() = foo; //Since it's static, the address will be inserted at link time (which is 0x8000+offset on my machine)
  var(); //The GOT based relocation code in Ndless currently does not update the static variable function pointer.
  return 0; //Crash

Unfortunately, there's no way to fix this because Ndless binaries are converted into a memory image before running. That means the relocation code doesn't know what to update in the .data section of the memory because it doesn't know what symbols exist and need updating and where they're located.

Loading from an ELF file works because the symbol definitions are there and the relocation code knows where to find the bits that need patching. That's why I wrote this ELF loader.

Anyway, the core code is there, just needs a lot of polishing up.

If anyone wants to help, the source code is available on Github
I'm hoping eventually, it will be integrated into the program loader on Ndless.

Thanks for your time,
Apologies if this is the wrong forum to post.

TI-Nspire / NSpire Gamekit - a game framework for Ndless (WIP)
« on: September 13, 2011, 04:29:19 am »
I got bored and decided to try and write homebrew for the calcs again.

Bascially, I wanted to port a game but I thought it might be better to write a reusable framework instead. That would mean for future games, I wouldn't have to rewrite a lot of the stuff relating to graphics and all and others could potentially use it.

So here it is:

The code probably isn't the most prettiest you've seen and it doesn't exactly run fast but it does the job. It's a work in progress.
I hope this could be useful to some people and would appreciate some feedback.


Pages: [1]