Carlos’s Status Report for March 26

This week, the diodes we ordered arrived. I set up the circuit we had originally planned on to make sure that unique keys can be detected. The script I ran can be seen here. I modified the script to be easier to use different keys, and the only change that will need to be made is adding more IO pins to the row and column lists. I also made a class to keep track of what values correspond to what keys when sending the keyboard reports. These values are based on the documentation from the USB  usage tables. An image of the circuit I set up is shown below. The blue wires correspond to the rows, and the yellow wires correspond to columns. The circuit diagram can be seen in an older team post here.

When all four switches are closed, all four keys are detected, and every combination of on and off for each switch is recognized as distinct. This means the ghosting issues we were seeing before were caused due to the missing diodes, and that the diodes are not optional for functionality.

On another note, CLASS has not responded to my email yet, so I will need to look into following up and potentially using another source of contact.

Ji status report March 26th

Due to the ethics seminar, we could not do much on Wednesday. We did discuss briefly how our project would potentially cause harm. On one hand, it is a ‘better’ keyboard and keyboards already exist. On the other, Social Media is just a better messaging board. We concluded that by giving some people easier access to services that already exist, we could not cause much harm. We also discussed how a cheaper accessibility keyboard may reduce the job opportunities for stenographers, but there are plenty of other jobs other than typing for the impaired.

We also discussed biases. As a team of able-bodied designers, we need to learn from people with cerebral palsy and what they want in a keyboard/mouse set, and not just what we think they want. We reached out to find people with cerebral palsy and are currently awaiting a response.

On Monday, we were still awaiting the shipment of diodes. I searched for key switches for keyboards (the things you press). We went with linear key switches, the simplest and most common type of key switch.

This is the link to the keys we plan on purchasing. We chose Gateron Ink Black switches because they are relatively inexpensive and have consistently been rated as having a ‘smooth’ feel. I was concerned about the mention of lubricating the keys, but apparently it does not particularly matter for people who do not already construct mechanical keyboards. I had considered the silent version of the keys, but they are more expensive and seem to require more force to operate.

https://divinikey.com/products/gateron-ink-v2-switches?variant=32067927048257

Team Status Report March. 26

This week we received our diodes and were able to set up a 2×2 prototype of our board. Ee will order the PCB from whichever board-house is most convenient and fast. Besides that, there didn’t seem to be any immediate issues with the PCB so ordering it after this point shouldn’t be too big of an issue.

We reached out to CLASS about finding someone with Cerebral Palsy but have yet to receive a response.

Progress was slow this week since we only really met on Monday because Tuesday was our Ethics Meeting. Progress should be back on track next week.

Jorge’s Status Report March 26

This week we did not get that much done, we met on Monday and then Wednesday had our Ethics meeting.

I largely looked at possible revisions for our PCB and looked for potential boardhouses to order from, but it would be best to have a fully working breadboard prototype before we order the PCB. Our Diodes arrived on Friday so that should be done some time next week.

Besides that, Carlo’s wrote an email and we reached out to CLASS, the organization that could potentially put us in contact with someone with Cerebral Palsy, but they have not responded.

We should get back on track next week, but we shouldn’t imagine that we have too much time and get over-confident. In truth we only have a few weeks to integrate and it may be tight due to delays.

Carlos’s Status Report for March 19th

This week I worked with the team to finalize the matrix scanning program. We have not yet assigned all the pins we plan to use, so it’s technically not fully done, but the program can work on an arbitrary number of rows and columns once they are defined. Also, I’ll be reaching out to CLASS to hopefully find someone to work with who has spastic hemiplegia.

Team Status Report March 19th

Before spring break, we tried making a better prototype. We did not fully understand how matrix scanning worked, so we assembled a new prototype. This did not work, and upon closer inspection we learned that our diodes were not the right type.

The scanning matrix works by quickly cycling through each column, such that the selected column is pulled to digital low and all other columns are at digital high. It then checks which rows have been pulled low from the switches.

Here is a smaller scale version of the switch.

When we tried making the circuit, we failed because on closer inspection, we had the wrong kind of diode. We used LEDs, which on average drops 1.7 to 2 volts, which would mean that a row with a closed circuit would drop from 3.3 volts to 1.7 volts, which is still a digital high. We are now trying to find diodes with a lower voltage drop, around .3 volts, so that row can be pulled down to a voltage low. We have just ordered a new set of these diodes and are awaiting supplies.

We then moved on to testing the software without the diodes, which helped, but we had the expected ghosting issue. But since the ghosting only happened when multiple columns were on at a time, the circuit and software seems to work and should still work when we add the right diodes.

When it comes to making the PCB, we ran into issues because our board went over the maximum dimensions that Eagle free would allow, so we needed a proper Eagle education license. This was an annoying delay but I (Jorge) submitted my enrollment documentation and the license was supplied the next day. It was a minimal delay, and instead of getting the PCB design finished on Wednesday I got it done Friday. Next steps would be to revise it a little and then decide on a board manufacturer and order it some time next week.

Here below is the board PCB layout

[Note: More specifics on the design in Jorge’s personal status report]

Carlos is also going to reach out to CLASS this week. An organization which the professor in HCI recommended to put us in contact with someone with Spastic Hemiplegia.

Jorge’s Status Report for March 18

  • Jorge’s Status Report for 3/18/22

This week we tested the software and made sure it worked well enough with a prototype of the board. We put in an order for the Diode’s we will need and with those we will know finally whether absolutely everything is working as intended. But as mentioned in the group report, the behavior is about what we expected. (The software works fine but once we do inputs from separate columns ghosting becomes an issue.)

Besides that it was my time to start work on the PCB layout. We ran into a slight delay which I made up by working on the layout on Friday. The Eagle license we had was only the free one and our Board dimensions were beyond the allowed limit. I had to submit some enrollment documentation, transcripts, and an ID but we ended up getting the Eagle education (through Fusion 360) license approved the next day.

 

Here below is the PCB:

Notes about the board:

  • It has no ground plane, this is unnecessary because we would only need a ground plane for the LEDs in the switches, which we are not using
  • I am slightly worried about the space the Diodes (not the LEDs) take up, but if they take up space for our switches we can just solder them on the back of the board so I don’t see that as being a big problem.
  •  The pin headers that interface the Pi are organized as rows and columns, it keeps the board neat and orderly. Rows flow through the bottom of the board, columns through the top. Both eventually rout to the top to their respective Pi interfaces
  • LED pins are left disconnected for now, if we decide to use them for some reason I can add some wires and resistors to make use of them, but it isn’t high priority.
  • Spacing is made with 20mm keycaps in mind, and a key-guard. Hopefully the dimensions wont be too ridiculous but there is room to make changes next week before we order the board.

My main worry right now is the time frame, we may need to pay for express shipping so we can get the board on schedule.

 

Ji’s Status Report, March 20th

As stated on the team report, we made the prototype board, only to run into a wall when we didn’t have the right diodes. We then moved on to the assigned ethics writeup, which we did during class.

I also proposed a way to make the board more durable: wrap the bottom and sides in adhesive rubber strips, and weigh down the bottom so that it would fall down on the rubber instead of the top. We plan to use an extra board to test durability.