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 - Vogtinator

Pages: [1]
TI-Nspire / New TI-Nspire emulator: Firebird Emu
« on: June 05, 2015, 09:30:31 am »
You may have heard about it already, but if you haven't… this is the official first release of Firebird Emu, a new TI-Nspire emulator!
The core of Firebird is based on Goplat's renowned "nspire_emu", but with quite some changes.

Major changes:
  • Supported platforms: Linux, Mac OS X (10.7+), Windows, Android (ARM and x86), iOS (without JIT, except if running on a jailbroken device)
  • Flexible GUI with many user-friendly additions
  • Supports nspire-linux
Also, GDB support for debugging of ndless apps has been improved and nspire-linux boots successfully, like in the second screenshot.

So, if you want to debug your Ndless programs, test Lua scripts or just use the calculator, this is the right emulator for you.

Please note that like nspire_emu, you need to provide a Boot1 file, which you can obtain from your own device easily with PolyDumper. Of course you can still use the flash files from nspire_emu.

Prebuilt packages for Android (armv7), Linux/X11 (64-bit), Mac OS and Windows are on GitHub:

Running on Mac OS X, in English, custom dock arrangement

On Linux, in German

On Windows, in French

On Android

and a video:

On an iPhone, although not really useful right now, probably better on an iPad

Contributors to the project:
  • Fabian "Vogtinator" Vogt: UI design, work on emu core, German translation
  • Antonio Vazquez: code cleanups, linux support work, archlinux packaging
  • Adrien "Adriweb" Bertrand: mostly testing (especially Mac and iOS), French translation
  • Lionel Debroux: some x64-related cleanups
  • You? ;)
This post is also on tiplanet:

TI-Nspire / Snow
« on: December 08, 2014, 02:29:32 pm »
I've been very busy lately but still wanted to do something calc and programming related, so I made this:

It's a bit hard to see, but it's snow falling down :crazy: (I should have made a .gif...)

Uses the native OS thread functions, so if it crashes, it's the OS :P
Only works on CX CAS 3.6, haven't included the syscall addresses for other versions.
To get rid of it, turn it off and on again, although it will leak memory if you do that. It's not in any way a clean implementation, but who cares..

TI-Nspire / GDB debugging on HW?
« on: November 22, 2014, 09:55:42 am »
So, as there is gdbstub in nspire_emu and OCD.
I thought about combinging these two and support native GDB debugging on calc either over serial or USB with NavNet and libti*/libnspire
Would there be interest in this? If yes, USB or serial? Both have some downsides.

TI-Nspire / micropython - Python for Nspire calculators
« on: October 28, 2014, 06:48:08 am »
Yeah, it's been quite a while since the first release and I haven't posted here as it wasn't very stable at all, but now all bugs I could find are gone.
It's a port of micropython, specifically for microcontrollers and due to the working integration of newlib and a "real" nio_use_stdio with the help of libsyscalls it could be ported quite easily. I added a small set of 2d functions to test the performance with mandelbrot and now it seems to be quite useful, and it's actually used by students already!
You can use a text editor to write .py.tns files and execute them directly (due to the file association) or use micropython in interactive mode.
It's using a heavily modified version of nspire-io for line history and I also changed the input method to be more PC-like (hold shift for upper case, for example). tab inserts 4 spaces for easier intendation.

More in-depth information on ti-planet: and

TI-Nspire / pyWrite - python script editor
« on: October 12, 2014, 07:38:59 am »
Well, I haven't got much time to develop this much further than this right now, so I'll publish the current state.
It was intended to be in between nTxt and Jens' script editor.

- Mouse cursor (DMZ theme, author unknown)
- "Save&Run": micropython must be at "/documents/ndless/micropython.tns" for it to work.
- Multiple fonts (but you can't switch :P)
- Saving isn't implemented (;D)

If there is enough interest, I may release the source code and develop it further when I have time again.

Other / Having fun with a Samsung digital camera
« on: July 07, 2014, 03:47:30 pm »
My old (well, 4 years old) camera doesn't want to open the shutter anymore, so it was time to get a new one, primarily for the school trip to croatia in two weeks  ;D
It had to be cheap, in case someone steals or somehow makes it less usable, you know  <_<
Most cams in that price range were awful, REALLY awful, but the samsung wb350f was nice to control and looked a bit less plasticky than the other ones. </advertisement>
It has a whole lot of totally useless features, like an NFC tag, Wi-Fi connection to upload pictures and movies to picasa, facebook, dropbox, youtube, send it per email, a baby monitor (not kidding!), remote control using a smartphone (I don't have one, just a normal mobile phone) and the list goes on and on.
But to upload to dropbox, it has to register a oauth token and such it opens a webbrowser to a dropbox login page with some samsung customizations. You can probably guess what comes next: Set up a DNS server to redirect (CNAME) to a custom server with ssl certificate and redirect everything to Success!

The browser doesn't seem to support CSS or anything like that, but the font rendering is quite good ::)
I would love to play around with this some more, but without windows I can't do firmware updates, use the samsung software etc. >:(
I found a directory "java" on the microsd card, so the browser (forgot the name) may be java (ME?) itself. Also a previous model is a bit more open in a hack-friendly way and runs enlightenment, so probably linux-based?
Let's see what this thing can do!

Ndless / Some syscalls disable IRQs/FIQs
« on: January 24, 2014, 06:38:11 pm »
When I enable interrupts using
Code: [Select]
    __asm__ volatile("mrs r0, cpsr;"
                    "bic r0, r0, #0x80;"
                    "msr cpsr_c, r0;" ::: "r0");

and call "printf", "fputs" etc. the 0x80 bit is set again.
Workaround is to clear the bit in the CPSR after the syscall.
SPSR_svc seems to have the correct value in the SWI handler.
I'm using ndless 3.1 r914, is this a bug or did I overlook something important?

TI-Nspire / nGL - a fast (enough) 3D engine for the nspire
« on: November 26, 2013, 01:11:43 pm »

I started this program a long while ago and it never really advanced. But now I'm making progress again!
It's basically a little library (but not intended to be a library to link with) which handles the basic stuff you need for 3D:
-Translation ;D
-Colors  :hyper:
-Drawing triangles and quads
-Backface culling
-Bad wireframe mode
-Matrix stack (glPushMatrix, glPopMatrix)
-Textures O.O
-sin and cos LUT for the fixed point datatype with highest possible accuracy (degrees)
-OpenGL immediate-mode like API
-Written in C++ (operator overloading) but C-style API if needed

At first I tried to implement it with float, but that was ridiculously slow and laggy. Especially the z-buffering was painful to watch..
But after I implemented fixed point arithmetic things changed: The attached demo runs at ~100fps (1 degree rotation per frame) in the emulator and a bit slower on a real calc. I was curious how fast it really was, so I tried loading some .obj files and it was smooth until 2000 triangles. I'm sure it can be optimized further, it doesn't use a single line of assembler yet.

I tried to port glxgears but a quick and dirty port had some issues with the blue gear.

Known issues:
-No triangle-based clipping: pixel based is a bit slower (depends on the objects on screen) and if you're near a triangle, it may look weird or even crash
-Bad integer division algorithm (gcc's own): division through a small number takes ages
-Drawing triangles is still a bit slow, two increments, one multiplication and several comparisions per pixel (without textures)
-glRotatef not yet implemented
-Sometimes it tries to divide through zero and it hangs, I don't know why  >:(
-Textures lack perspective (difficult to optimize)
-Viewport is fixed: bottom: y=0 top: y=239 left: x=0 right: x=320, in OpenGL it's most times -1-1, so a scaling factor is needed

But nevertheless, I'm going to implement a simple 3D game (no, not minecraft) with this lib, but I don't know what kind of game:
- 3D Tetris (boring..)
- Motor race in 3D (how should the cars and the environment look like, also: collision detection)
- 3D snake (even more boring..)

Edit: Ok, it seems like I made a minecraft game nevertheless...
Latest release of crafti: v1.2 GitHub
Source code and tutorial for nGL are on GitHub as well

Demo controls:
-touchpad: camera rotation
-8-4-6-2: camera position
-x: rotate the four cubes

Do you think this is useful or will it stay an experiment forever?

TI-Nspire / Nspire Audio player!
« on: February 28, 2013, 02:26:08 pm »
WARNING: Two people destroyed their touchpads by accidentially shorting some pins, so be VERY careful!
Read the thread here

Some days ago I found out (with diags) there are some GPIOs connected to the dock connector.
We also have one relatively fast timer we could use for pwm and one for loading new data from the buffer, so here ya go:

Dock connector (connected to pins 5 + 6):

There are still a few bugs/improvements that need to be done:
-Only 10 kHz sampling rate, more is possible
-Crashes on exit
-Loads file twice
-Max file size 2000000 Bytes (2MB)
-Only works on CX
-Only loads "/documents/ndless/monsta.raw.tns" for now
-Haven't got a name, any suggestions?

I'll publish the source code after it works completely.

Possible features:
-WAV loading
-Volume control
-Stereo :-)

BTW: Don't plug your speaker in before "Playing!" or you'll short 3,6 V (While playing, you only short ~1,8V)! Unplug them before exiting, the GPIO becomes high on reset! Don't use your amplifier, you may blow it!

Edit: Updated video

Newest version: here

Calculator C / [3D Math]Correct perspective
« on: December 29, 2012, 08:21:08 am »
I don't know if it fits in here, but I can't find a better place..

Here I have a cube:

With rotation matrices I can rotate it on a specified axis and I can translate it:

But this doesn't look right, I don't want to have orthogonal projection, I want it to look like:

I already tried projection matrices but they're only displaying:

That's way to extreme and still in the wrong direction..

How can I achieve this?

BTW: The bottleneck of this seems to be the RAM write speed, on the emulator it runs > 200 FPS
On a real calulator ~90 FPS.
Would double buffering be faster than memcpy every frame?

Calculator C / Weird error: sprintf
« on: December 24, 2012, 12:11:58 pm »
I was just fiddling with some sine and cosine tables and needed some debugging.
But the output was always "0.00000". I tried to execute
Code: [Select]
float oneandahalf = 1.5f;
double twoandahalf = 2.5;
int one = 1;
char str[60];
sprintf(str, "1.5: %f 2.5: %f 1: %d", oneandahalf, twoandahalf, one);
show_msgbox(str, str);
It compiles fine, result:

Dafuq is going on there :o
Same result with nspire_emu.

Pages: [1]