Thermistor Sensor

Temperature readings are a very useful data source. From mini weather setups to indoor readings, the thermistor sensor has many possible applications. The Arduino is a great board for gathering sensor data, being so low powered, easy to use, and giving precise controls and readings with its built in crystal oscillator.

I built this little setup using a Tinkerkit thermistor module and an Arduio Uno.

Thermistor Wiring

This module has a NTC, 100k, disc thermistor. I used a 1k resistor on the output pin coming from the thermsitor.

Thermistor Sensor

I borrowed some code from this forum post. You may have to change some values depending on what thermistor, resistor pair you use, but that code should give you a near approximation. For a more in-depth, accurate approach, consider reading this post.

Button Controlled Relay

Do you ever get tired of getting up to turn the light off? Is that fan running when it doesn’t always need to be? A relay is a simple switch controlled by a small input signal, and when paired with an Arduino board, it can be told through code to turn on under specified conditions. This gives more control than a manual switch, and more convenience.

Button Controlled Relay

I am using an Arduino Uno and a TinkerKit relay module in this example. The red wire coming from the relay is 5v, the black wire is GND, and the center orange wire is the signal input wire to activate the relay. I put a button in to control the relay, and that required more code.

I ran into debouncing problems, and had to do some research. With push buttons, the button could be slightly pressed and send multiple short signals. As you can imagine, your lights flickering on and off like that would be an annoyance, and it would be hard to stop the flickering in the desired position, on or off. After reading, I found that some had suggested a 10ms delay in the loop would solve that problem. Here is the code I used after some edits.

const int BUTTON_PIN = 7; // set button pin
const int RELAY_PIN  = 3; // set relay pin

int button_state = 0; //variable for button's state
int button_state_old = 0; //variable to store old button state
int relay_state = 0; //variable to store relay state

void setup() {
  pinMode(BUTTON_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode
  pinMode(RELAY_PIN, OUTPUT);        // set arduino pin to output mode

void loop() {
  button_state = digitalRead(BUTTON_PIN); //read button input value and store

  if ((button_state == HIGH) && (button_state_old == LOW)) {
    relay_state = 1 - relay_state;
    delay(10); //10ms delay

  button_state_old = button_state; //set old button state

    if (relay_state == 1) {
    digitalWrite(RELAY_PIN, LOW); //switch relay on
  } else {
    digitalWrite(RELAY_PIN, HIGH); //switch relay off

Nintendo DSI Shoulder Repair

There is this game on my DSI that I really like to play, maybe you have heard of it?

Mario Cart Cartridge

The game requires the R and L buttons for drifting. I bought my DSI at a garage sale, and shortly afterwards the buttons started to not work properly. I did however, find that I could hit the buttons really hard and they would work… sometimes. Needless to say, I quickly lost the use of my left and right trigger buttons.

I recently started a project to repair the buttons, and I will talk you through my disassembly process.


I just used some simple screwdrivers to take off the back panel. My biggest fear was to accidentally strip one of the screws, but with some smaller screwdrivers, and a little patience that can be easily avoided. IFIXIT already has a great step by step guide for this, and that is what I followed for disassembly. Here is the striped down back panel where the L and R buttons reside.

DSI In Parts

I have already removed the buttons in this picture, but that is where they would be. I highly suggest cleaning the buttons with some rubbing alcohol before removing the buttons, as that would save a lot of hassle. One of the most frustrating things with this design, two separable sides, is the center ribbon cable that is so short and hard to re-attach. Anyways, if you can just clean off the buttons, than congratulations, you probably didn’t button mash like I did. Since I did, I had to remove them.

Tiny Buttons

They are really like a millimetre by a millimetre in size. I had some trouble de-soldering them, but with the enlisted help of my brothers hands, it was manageable. Note, don’t attempt to remove buttons alone, unless you are a serious soldering master.

Well, as it now stands, I am awaiting the new buttons in the mail. I will show you where I got them from, and how to reassemble when I get them. Until then, please be careful with your DSI as it is a computer and easily damageable. Seriously, the IFIXIT guide is the way to go with any computer repairs.

Lego Card Shuffler

Now that it is summer I have a lot of time on my hands. I started looking into the logistics of building a Lego card shuffler. There are many YouTube videos of Lego card shufflers. They are all quite similar in their construction except the robotic card dealer.

Lego Shuffler

I started to build a single roller for one side. Most of the videos I watched said that the hardest thing was to ensure one card came out at a time, and it was. I used rubber bands to force the cards into the rollers, but for future innovation such as multiple unaided shuffles that will have to change. I wanted to limit the whole thing to one motor. It would have been much easier with a motor on each side, but I have limited resources.

The card bed and rollers

To use one motor, I had to connect both sides together. I tried to use gears, but it was to far a distance to cover with plastic gears and they started to skip. I ended up using a piston like those used on trains to transfer the motors power. I got the idea from this video.

“Real” card shufflers don’t require you to take the cards out. This is the most obvious way to improve this design. To further improve, there would also have to be some minor programming for timing. I think that the hardest part would be splitting the deck. Using a lowering and raising deck like automatic card shufflers do seems like the easiest way to solve this.

Another thing about this design it that it doesn’t shuffle the cards super accurately. I put the cards in, half upside down, half face up.

The card shuffler in action

The cards came out like this. They tend to get stuck together because they come out and stack vertically.

The shuffler accuracy
The cards stacking improperly