Use NintendoDS as a WiFi Temperature station
- linux
- DevkitPro, easiest way to download it is through pacman: https://devkitpro.org/wiki/Getting_Started
- create hotspot on your laptop
- run .nds file on your NDS
- connect to your hotspot on your NDS via the .nds file
- run the python script: desktop_client.py
- NDS opens port 8080, python script connects PC to it, then:
- NDS receives ACK character from PC
- NDS measures temperature,
- sends its value
- python script appends stats array
- python script waits 1s
- repeat
- in Ubuntu open "Network Connections" and click "add new"
- go to the "Wi-Fi security" - NDS supports only WEP security (so remember, it's dangerous to beacon that poorly secured network all the time, use this hotspot only when playing with your NDS) - select "WEP 40/128 bit key (Hex or ASCII)"
- select some random 5 character (only digits) password
- in "Wi-Fi" tab select "Mode" to "Hotspot"
- save it
- open "Network"
- click "Connect to to a hidden network"
- select network that you've just created (by default its name will be "hotspot")
- you're done, if you were previously connected with another network via wifi you'll be disconnected
- now you can connect to this network through your NDS
As I figured out, NDS temperature sensors just aren't made for this purpose, lol. The 2 temperature sensors I use are under the touchscreen, see: http://www.akkit.org/info/gbatek.htm#dstouchscreencontrollertsc
The Temperature Range for the TSC 2046 chip is -40'C..+85'C (for AK4181AVT only -20'C..+70'C). According to Nintendo, the DS should not be exposed to "extreme" heat or cold, the optimal battery charging temperature is specified as +10'C..+40'C. The original firmware does not support temperature calibration, calibration is supported by nocash firmware (if present).
Temperature oscillates +-1C almost every second, though it still detects temperature changes, so If you smooth the output plot it may be accurate enough. Here's a plot of 5 minutes of measurment every 1 second (I put the console on a windowsill on a sunny day):
I decided to smooth it by linear interpolation, so the same data but transformed look like this:
- I used devkitPro libnds examples of interprocessor (ARM7<->ARM9) transmission for probing temperature, also modified their example of connecting to the access point