Category Archives: Projects

Phil 5.16.12

8:00 – 4:30 FP

  • The communications test ran all night and was still working and responsive when I came in. Time to make some sounds!
  • Fixing up the messages, and eliminating redundant/unneeded info in the Json packet – all done, and the data transfer seems much happier
  • Added clamping to keep volume and pitch from getting out of hand.
  • Moving the hardware initialization from SoundDataObject to SoundController. I think I’ll also explicitly set up the sound objects, at least for now.

Tom 5.15.2012

Start: 10:00

  • Worked on new schematics for electronics board.
  • It is going to be tough to fit everything on an atx board but I am pretty sure its doable
  • reduced the size of the three sensor circuits to be about the size of 1
  • Reorganized the preamp circuit so 5 can be closer together
  • Found 2/5 connectors.  Still have trouble finding elbow serial ports, ribbons were not as hard
  • Trying to figure out the best place for the power and ground to run.  Also need to figure out how to run the new leads to the arduino

End: 6:00

Mike 5.15.2012

  • Backups on the production server
  • Prepared some of the connection test document and troubleshooting, will have more to add to troubleshooting once we resolve something
  • Read up on how the network works, proxies, firewalls, pki, etc. to see what may be blocking some users
  • Updated my internal FGM resume
  • It works! I have a small gwt app that displays exactly when it was built, the svn version number, and who built it.  We can also add other fields as needed.
  • Need to turn it in to a library.

Phil 5.15.12

8:00 – 4:30 FP

  • Working on the SoundController class. Going to try out the basic mechanisms in the sandbox before trying them on the arduino.
  • Got the JSON key/value search working. Now I need to organize all the unique sound objects.
  • SoundController class is working in the sandbox
  • Meeting over at UMBC to go over SIGCHI
  • Have SoundController on the arduino and am currently testing.  If all fingers are updating data, the communication gets bandwidth limited. This is ok to work out the sounds, particularly on a finger-by-finger basis, but it will need to be optimized to keep the refresh rate up.

Tom 5.14.2012

Start: 10:00

  • Pitch bend is a little tricky to use.  The midi command is (0xE(channel), byte 1, byte 2) .  The two bytes are signed but negative values are not used so the range of each byte is 0-127(0x00-0x7f).  The two bytes combine to make a 14-bit number with a range of 0-16383, with zero being the most flat and 16383 being the most sharp.  This means to have no pitch bend it has to be set 8192.  And example of the three bytes sent for this command on channel 0 is (oxE0, 0x00, 0x40).  It is important to remember that this is not equal to 0x4000 but instead 0x2000 as the most significant bit of the first byte is dropped.
  • Decided to change the way I was designing the new board in a way to minimize making mistakes on things which are still working.  Instead of starting from scratch I copied the board.   Things will still need to be moved but at least the traces are already connected.
  • Phil suggested having the new board follow the atx form factor so it can be mounted in a computer case.  The area will have to be 24.5x25cm all output ports will be in the 16x5cm rectangle where the pc outputs are usually.
  • Using a computer case gave me the idea that we might be able to use a pc power supply.  The peak current is fine the only problem is the minimum current on the 12 volt is 1 amp.  I will have to do some tests when the new stuff comes in.
  • Measured and placed the mounting holes for the arduino on the new board schematics
  • Found some of the connectors which will be needed to use ribbon wiring for the arduino in the pad2pad tool.

End: 6:00

Mike 5.14.2012

  • Backed up the production server
  • Drafted a new timeline for deploying the VIS Tool with the final date of July 9th for full production (aprox. 2 months of connection testing and early adopters should be sufficient depending on connection issues), sent it to Jim/Tangie
  • Sent an email to the admin of the user who is having connection problems, hopefully he can tell me why he can connect and she cannot
  • Added classification markings to the vis index sites
  • Still playing around with maven and creating a webservice that returns the build date and SVN version number.  I finally have the date and version being placed in the manifest file correctly.

Phil 5.14.12

8:00 – 4:00 FP

  • It’s Bike To Work Week. I’ll need to ride in one day when it’s not raining.
  • Continuing to add SoundWrapper to FingerIO
  • Hmm. The SoundWrappers think that there is always a new sound. Ok, fixed.
  • Decoupled the reads and writes, putting everything on timers.
  • Since I now have 15 unique JSON messages specifying sound per finger, I’m setting up the Sound handling on the arduino side to maintain and assign the data.

Phil 5.11.12

8:00 – 2:30 FP

  • Working on finger sound management
  • Building the Hysterisis class – done
  • Building sound class: volume, id, sound state, ..?
  • Adding SoundWrapper into FingerIO

Tom 5.10.2012

Start: 10:30

  • Found parts needed so that I can have a working finger to experiment with sounds
  • Considered some alternative size exciters and different high power amplifiers but determined they would not be as good as the ones we had
  • Looked into playing midi sequences
  • Found that you can use a program called a midi sequencer to create sequence files
  • I loaded a midi file from Final fantasy 7 into the sequenecer and was able to see a list of the midi commands.  I am not sure how you load this to our boards though.
  • There are lots of libraries in java that make midi easy.  I haven’t found the ones for c++ yet or anything specific to the board for sending sequences

End: 6:30

Mike 5.10.12

Phil 5.10.12

8:00 – 2:00 FP

  • Came in this morning to happily running communication 🙂
  • Sound design
    • Finger moving forward
    • Finger moving backwards
    • initial contact
    • sustained contact
    • release
    • Hysterisis box or something similar to slow down the amount of calls to the sound class
    • I think I need individual messages for each finger
      • {“nm”:f1, “cmd”:start, “srl”:2, “nt”:3, “vol”:0.7, “chnl”:4} // normal command
      • {“nm”:none} // nothing new, keep on doing the same thing for all fingers
  • Restructuring FingerIO to contain the logic for producing the above JSON strings

2:00 – 4:30 ESSO

  • VISIBILITY meeting

5.9.2012 Mike

  • Usual backups at site
  • Meeting is set for tomorrow (Thursday the 10th) to talk about the new data ingest.  Dong, Phil and I will all be going.
  • Finished updating the new index site on the inside and deployed it to the production server with application links to the test server.  I will update the links when we make the move.
  • Back at the mill, resolved all my issues and finished rebuilding each of the projects.  All set to move them inside to the test server once it is no longer the production server.

Phil 5.9.12

8:00 – 5:00 FP

  • The wired network was down since yesterday around 3:30. Bounced everything which didn’t seem to work, but everything came back up in 20 minutes.
  • Moving my DataElement/BaseDataObject classes back over to the Arduino for evaluation and testing.
  • Grr. Memory leaks. Because I’m using strcat, I needed to ensure that the buffer[0] was set to NULL before starting.
  • Looks like that did it. Need to test in the sim, and then it’s time to add the sound in!
  • Sound is working. The system freezes after a few minutes’ use. I’m testing the communication in the sim alone now and it doesn’t seem to be breaking. I’ll run an overnight test.

Tom 5.9.2012

Start: 9:00

  • Finished writing the readme for the MidiAmp Library
  • Added a couple of things to add to the MidiAmp library to our checklist.
  • First thing is to change the Amp class to use SoftwareSerial.h instead of wire.h if possible, so that one arduino can control more then 8 fingers
  • Secondly I need to test the aftertouch and pitchbend midi commands and update the documentation once I figure out how they work.  Also I need to add the ability to play midi sequences.
  • Started rewriting my control module to work with Phil’s framework but quickly hit a wall because I wasn’t sure how his code worked.
  • Worked out this class with him and got sound working
  • Phil says by the time we get to two hands we will probably be using a different micro controller so don’t worry about changing the amp class.
  • We need to order an extra exciter and midi card so I can have something to test sequences and stuff on.   An additional midi card could be useful if we decide to use the base shaker for whole hand collision.
  • Currently the hand is reverberating on the metal frame of the table.  This is making it louder but also giving it a metallic sound.  Mounting it firmly to a wooden box would produce much cleaner sounds as well as maybe absorb some of the excess vibration.

End: 5:00

Mike 5.8.2012

  • Usual backups at site
  • Fixed an issue on the upcoming production server with our deployed webapps,  apparently copy/paste across remote desktops sometimes adds random bytes to the end of files.  This caused some run-time errors in visibility.  It may be best to zip everything up before moving it between servers.  At least then we’ll know right away if anything is corrupted as the zip will have errors.  Or move everything across networked drives…
  • Jim and Tangie want to set up a meeting to talk about new data ingest.  This is going to be set up for sometime next week.
  • Working on rebuilding the entire visibility suite + PM + PA with the new PKI login stuff to bring in and deploy.  Ran in to some errors in UsersAndRoles, I think I have fixed them.  Also there is a weird class called SolrXMLIngestor that makes constant calls to ‘{UPLOADS_DIR}/temp__’ which is hard-coded in to the class so it doesn’t seem very temporary to me…